Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: numcl/numcl

Version 0.2.0 Pick-axe

26 Feb 21:05
7a8a695

Choose a tag to compare

Pre-release

Pick-axe can't really cut things, but it sounds like an axe. It may work. This is the second release of NUMCL.

Major update: Einsum now has broadcasting and more!

In this release the powerful Einsum facility got a major update and will become the backbone of all complex operations and optimization. It now supports not only broadcasting (supported by numpy's einsum), but also the stepped iteration, backward iteration, the start and the end of iteration. In the future, all operations will be implemented using einsum. Merging multiple consecutive calls to einsum in order to avoid creating the intermediate array is future work.

The new interface to Einsum is as follows. Detailed specification of the Einsum interface is available from here.

 (defun einsum (subscript &rest args) ...)

Performs Einstein's summation. The SUBSCRIPT specification is significantly extended
from that of Numpy and can be seen as a full-brown DSL for array operations.

SUBSCRIPTS is a sequence of the form
  (<ISPEC>+ [-> <TRANSFORM>*] [-> <OSPEC>*] [-> <IOPTION>*] [-> <OOPTION>*]).
The remaining arguments ARGS contain the input arrays and optionally the output arrays.

Inputs are interpreted in the following rule, depending on the number of arrows.

 (<ISPEC>+)
 (<ISPEC>+ -> <OSPEC>*)
 (<ISPEC>+ -> <TRANSFORM>* -> <OSPEC>*)
 (<ISPEC>+ -> <TRANSFORM>* -> <OSPEC>* -> <IOPTION>*)
 (<ISPEC>+ -> <TRANSFORM>* -> <OSPEC>* -> <IOPTION>* -> <OOPTION>*)

Other updates

  • 6b9bfc0 , 80efb69 optimized the basic element-wise math operations (e.g. sin, log)
  • 8a90edb optimizing broadcasting with specializing
  • 116ac96 optimized arange with specializing
  • 61c2854 optimized arange with compiler macro to avoid parsing the python-style argument in runtime
  • 1e64422 einsum respects locality better, encouraging the blocked execution (e.g. for matmul)
  • 484307e optimized copy with specializing
  • e14aacb optimized asarray with specializing
  • bc508ba added numcl-array-p and type numcl-array
  • 470c7eb 20760e3 4e4d162 7cd98e6 fixed / added type inferer for cosh, sinh, tanh, acos, asin, atan, realpart, imagpart , log, conjugate
  • c8bb026 fix issue #18 : single operand -
  • a90555d 236a3ac added a new function log2 , fixed square
  • other misc fixes

Version 0.1.0 ButterKnife: Feature complete

25 Jun 11:15

Choose a tag to compare

Butter knife doesn't cut through anything but soft materials like butter. This is the initial release of NUMCL.

It provides a baseline, unoptimized implementation that is expected to be slow. The optimized version (e.g. #4) will be released in the next version. You can find the documentation (preliminary) at https://numcl.github.io/numcl/ .

This version also depends on the latest Trivia pattern matcher (https://github.com/guicho271828/trivia) and the sub-libraries ( https://github.com/numcl/specialized-function , https://github.com/numcl/gtype ). Also make sure you run (ql:update-all-dists) before testing!

The exported functions include:

  • shape size rank dtype length
  • to-simple-array
  • reshape flatten squeeze expand-dims
  • aref
  • arange linspace
  • asarray copy astype
  • zeros ones empty full
  • empty-like full-like zeros-like ones-like
  • concatenate stack unstack
  • map map-into map-array map-array-into
  • broadcast
  • sin cos tan asin acos atan sinh cosh tanh exp log abs signum 1+ 1-
  • cis conjugate phase realpart imagpart
  • numerator denominator
  • logcount
  • integer-length
  • - + * / max min clip
  • = < > <= >= /=
  • square sqrt
  • logand logandc1 logandc2 logeqv logior lognand lognor logorc1 logorc2 logxor lognot
  • mod rem round floor ceiling truncate fround ffloor fceiling ftruncate
  • reduce-array
  • sum prod amax amin mean variance standard-deviation var stdev avg
  • histogram
  • array-index-from-row-major-index
  • argwhere where nonzero take
  • shuffle
  • bernoulli bernoulli-like beta binomial exponential f gamma multinomial negative-binomial normal poisson uniform
  • einsum transpose matmul inner vdot outer kron eye diag tri tril triu vander