cl-num-utils icon indicating copy to clipboard operation
cl-num-utils copied to clipboard

Numerical utilities, the successor of cl-numlib

This repository is archived. You may find an updated version of these libraries at https://github.com/Lisp-Stat/numerical-utilities

  • cl-num-utils

This library implements simple numerical functions for Common Lisp, including

  • =num==, a comparison operator for floats
  • simple arithmeric functions, like =sum= and =l2norm=
  • elementwise operations for arrays
  • intervals
  • special matrices and shorthand for their input
  • sample statistics
  • Chebyshev polynomials
  • univariate rootfinding

See the sources and the docstring for more details.

All the functionality has corresponding unit tests.

** Symbol conflicts with =alexandria=

When you import both =cl-num-utils= and =alexandria=, you get symbol conflicts. There are two solutions for this: either import only parts of =cl-num-utils= (see the packages named in each file), or shadow some symbols, eg #+BEGIN_SRC lisp (cl:defpackage #:my-package (:use #:cl #:alexandria #:cl-num-utils) (:shadowing-import-from #:alexandria #:mean #:variance #:median)) #+END_SRC

** Reporting bugs

Bugs are tracked on Github, please [[https://github.com/tpapp/cl-num-utils/issues][open an issue]] if you find one.

** Tasks *** TODO finish histogram code, write tests *** TODO decide whether recursive indexes are practical code is still there, but commented out