Numerlang: Erlang support for numerical data-types and computation without heavyweight external dependencies -- keeping Erlang responsive.

This will probably never be as fast as C/Fortran but is intended to have some numerical capabilities in Erlang where a mix of real-time responsiveness, symbolic computation and protocol implementation is needed.

It might also a experimental field for concurrent algorithms and distributed mixed numeric and symbolic computation.


  • I've already started with a n-dimensional array/matrix/tensor datatype:
    • packed storage of integer and float n-dim arrays in a bitstring (partial done)
      • I need for example n-dim bit arrays for some uses, but 20x23x15 arrays with integers of 13bit are also easily possible
    • sparse n-dim arrays of anything with array module as storage
    • maybe some for of tiling or other substructures
    • Conversion to/from nested lists (partial done)
    • Conversion to/from other data structures e.g. digraphs
    • General inner and outer product with fun operators
    • Normal inner product with * and + operators as defaults
      • giving you normal vector/matrix matrix/matrix and tensor multiplication
    • Element-wise operations of ndarrays of same dimensionality
      • again with general fun or default +, giving vector, matrix, tensor addition
    • No-copy slicing operations (keeping the same bitstring/array)
  • Once the ndarray above works in pure Erlang some time consuming operations can be implemented as NIF's (e.g. for starters a scalar product of 1/8/16/32bit integer/float/double/complex 1-dim slices on the bitstrings)
  • Then lets see what the performance gain is and what comes next ;-)


Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.