bebekim / common-lisp-numsci-call-for-needs

An effort to consolidate the needs and plans of individuals and organizations using Common Lisp to meet their numerical and scientific computing needs.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Common Lisp: Numerical and Scientific Computing - Call for Needs

There are numerous numerical and scientific computing libraries in Common Lisp - the awesome-cl list is given below. And yet, it always feels insufficient.

The following repository is an effort to consolidate the needs of multiple individuals and organizations who are using or want to use Common Lisp to meet their numerical and scientific (numsci) computing needs. To contribute, simply create an issue with the following details:

  1. What problems or end-goals do you plan to use the numsci ecosystem for? Examples may include: graphics, physics, biology, etc. Try to be specific, but if it’s difficult to be specific because, say, you are still in an exploratory phase, that’s okay.
  2. What current libraries from those listed below are the closest to meeting your needs?
  3. What non-lisp libraries and framework do you think are the closest to meeting your needs?
  4. Do you think your needs can be met by a thin CFFI wrapper around the foreign libraries? Did you try cl-autowrap? If you tried cl-autowrap but ran into difficulties, could you describe the issues you faced?
  5. What problems do you face while using the lisp numsci libraries, and what is your wish-list for them? When was the last time you wanted to drop Common Lisp in favour of another ecosystem? What made you want to switch, what made you stick?
  6. Any other details you wish to provide.

The issues may eventually be consolidated into this README by issuing Pull requests. If you feel the consolidation process can be improved in some way, feel free to create an issue for that too, and tag it as Meta.

awesome-cl list

  • maxima - Computer Algebra System. [GNU GPL3][2].
  • numcl - Numpy clone in Common Lisp. [LGPL3][9].
  • GSLL - GNU Scientific Library for Lisp; allows the use of the GSL from Common Lisp. [GNU LGPL2.1][11].
  • Xecto - A library for regular array parallelism. [3-clause BSD][15].
  • Petalisp - an attempt to generate high performance code for parallel computers by JIT-compiling array definitions. It works on a more fundamental level than NumPy, by providing even more powerful N-dimensional arrays, but just a few building blocks for working on them. [AGPL-3.0][agpl3].
  • cl-ana - Common Lisp data analysis library with emphasis on modularity and conceptual clarity. It aims to be a general purpose framework for analyzing small and large scale datasets, including binned data analysis and visualization. [GNU GPL3][2].
  • linear-programming – a library for solving linear programming problems. [MIT][200].
  • avm - Efficient and expressive arrayed vector math library with multi-threading and CUDA support. [MIT][200].
  • array-operations - a collection of functions and macros for manipulating Common Lisp arrays and performing numerical calculations with them. [MIT][200].
  • cl-geometry - a system for two dimensional computational geometry for Common Lisp. [MIT][200].
  • Vellum - Data Frames for Common Lisp. BSD_2Clause.
  • rtg-math - a selection of the math routines most commonly needed for making realtime graphics in lisp (2, 3 and 4 component vectors, 3x3 and 4x4 matrices, quaternions, spherical and polar coordinates). BSD_2Clause.
  • origin - A native Lisp graphics math library with an emphasis on performance and correctness. Includes: vectors, matrices (up to 4x4), quaternions, single/double-float support, destructive/non-destructive operations, shaping & intersections. [MIT][200].

Matrix libraries

  • magicl - Matrix Algebra proGrams In Common Lisp based on BLAS/LAPACK and Expokit, by Rigetti Computing. [BSD_3Clause][15].
  • lisp-matrix - A matrix package. [FreeBSD][39].
  • 3d-matrices - A library implementing common matrix calculations, with an emphasis on 2x2,3x3, and 4x4 matrices as commonly used in graphics. It provides some numerical functions as well, but those are not the focus. The library is heavily optimised, so it is not made of pretty code. [zlib][33].
  • clem - a matrix library. [BSD_2Clause][17].

Statistics

  • lisp-stat - an environment for statistical computing, conceptually similar to R, that is also suitable for front-line production deployments. “It grew out of a desire to have an environment for rapidly prototyping analytical and A.I. solutions, and move directly to production environments with minimal friction.”
  • common-lisp-stat - Common Lisp statistics library. [FreeBSD][39].

Units

  • physical-quantities - a library that provides a numeric type with optional unit and/or uncertainty for computations with automatic error propagation. GPL2

Utils

  • cmu-infix - A library for writing infix mathematical notation in Common Lisp. See also polisher.

About

An effort to consolidate the needs and plans of individuals and organizations using Common Lisp to meet their numerical and scientific computing needs.