cl-ana

2022-07-08

cl-ana is a free (GPL) data analysis library in Common Lisp providing tabular & binned data analysis along with nonlinear least squares fitting & visualization.

Upstream URL

github.com/ghollisjr/cl-ana

Author

Gary Hollis, Gerd Heber <gheber@hdfgroup.org>

License

GPLv3, BSD,
README

cl-ana

cl-ana is a free (GPL) data analysis library in Common Lisp providing tabular & binned data analysis along with nonlinear least squares fitting & visualization.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.pathname-utils

  • cl-ana.package-utils

  • cl-ana.generic-math

  • cl-ana.math-functions

  • cl-ana.calculus

  • cl-ana.binary-tree

  • cl-ana.list-utils

  • cl-ana.array-utils

  • cl-ana.tensor

  • cl-ana.error-propogation

  • cl-ana.quantity

  • cl-ana.spline

  • cl-ana.table

  • cl-ana.table-utils

  • cl-ana.hdf-table

  • cl-ana.ntuple-table

  • cl-ana.csv-table

  • cl-ana.reusable-table

  • cl-ana.linear-algebra

  • cl-ana.lorentz

  • cl-ana.histogram

  • cl-ana.fitting

  • cl-ana.file-utils

  • cl-ana.statistics

  • cl-ana.statistical-learning

  • cl-ana.plotting

  • cl-ana.table-viewing

  • cl-ana.int-char

  • cl-ana.clos-utils

  • cl-ana.serialization

  • cl-ana.hash-table-utils

  • cl-ana.map

  • cl-ana.makeres

  • cl-ana.makeres-macro

  • cl-ana.makeres-block

  • cl-ana.makeres-progress

  • cl-ana.makeres-table

  • cl-ana.makeres-graphviz

  • cl-ana.makeres-branch

  • cl-ana.makeres-utils

  • cl-ana.columnar-table

cl-ana.array-utils

Utilities for working with arrays

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

cl-ana.binary-tree

Simple binary-tree implementation, not meant for high-performance code.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.functional-utils

  • cl-ana.list-utils

  • cl-ana.macro-utils

cl-ana.calculus

A few numerical and/or symbolic calculus functions.

License:
GPLv3
Dependencies:
  • cl-ana.generic-math

  • cl-ana.linear-algebra

cl-ana.clos-utils

clos-utils provides various lacking utilities for working with structures and CLOS class instances as well as utilities for transforming them into clists which can be written/read with standard stream objects portably.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.list-utils

  • cl-ana.symbol-utils

  • cl-ana.tensor

  • closer-mop

cl-ana.columnar-table

Used to access tables which have been pivoted so that a rows values are stratified across all rows, and a column's values are accessible all from a single row.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.reusable-table

  • cl-ana.table

cl-ana.csv-table

Table subclass specializing on CSV files; allows for whatever lisp types are understood by the reader.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • antik

  • cl-ana.list-utils

  • cl-ana.table

  • cl-csv

  • iterate

cl-ana.error-propogation

Implements error propogation inside the generic-math framework.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.generic-math

  • cl-ana.math-functions

cl-ana.file-utils

Various utilities for working with files

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • external-program

  • split-sequence

cl-ana.fitting

Library for non-linear least squares fitting (works for linear functions as well though); makes use of GSLL's fit functions.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.error-propogation

  • cl-ana.generic-math

  • cl-ana.map

  • cl-ana.math-functions

  • gsll

cl-ana.functional-utils

Utilities for doing functional programming not already provided by Alexandria.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:

    None

cl-ana.generic-math

Provides generic versions of (most ATM) the standard Common Lisp math functions; this allows easy extension to new mathematical objects.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.list-utils

  • cl-ana.package-utils

cl-ana.gnuplot-interface

Interface for spawning & communicating with gnuplot sessions from LISP.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • external-program

cl-ana.gsl-cffi

Functions for interfacing with GSL which don't seem to work/aren't currently provided through GSLL.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cffi

cl-ana.hash-table-utils

Utilities for working with hash tables

License:
GPLv3
Authors:
Gary Hollis
Dependencies:

    None

cl-ana.hdf-cffi

hdf5-cffi is a CFFI wrapper for the HDF5 library.

Version:
1.8.18
License:
BSD
Authors:
Gerd Heber <gheber@hdfgroup.org>
Defsystem Dependencies:
  • cffi-grovel

Dependencies:
  • cffi

cl-ana.hdf-table

Table subclass specializing on HDF5 datasets

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.binary-tree

  • cl-ana.hdf-typespec

  • cl-ana.hdf-utils

  • cl-ana.list-utils

  • cl-ana.memoization

  • cl-ana.table

  • cl-ana.typed-table

  • cl-ana.typespec

cl-ana.hdf-typespec

Utilities for creating/reading HDF5 types from/into typespecs.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cffi

  • cl-ana.hdf-cffi

  • cl-ana.list-utils

  • cl-ana.memoization

  • cl-ana.string-utils

  • cl-ana.symbol-utils

  • cl-ana.typespec

cl-ana.hdf-utils

Utilities for a more lispy interface to HDF5

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cffi

  • cl-ana.hdf-cffi

  • cl-ana.hdf-typespec

  • cl-ana.macro-utils

  • cl-ana.memoization

  • cl-ana.pathname-utils

  • cl-ana.string-utils

  • cl-ana.typespec

cl-ana.histogram

Support for binned data analysis via contiguous and sparse histograms; integrated into the generic-math framework.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.binary-tree

  • cl-ana.clos-utils

  • cl-ana.fitting

  • cl-ana.functional-utils

  • cl-ana.generic-math

  • cl-ana.hash-table-utils

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.map

  • cl-ana.symbol-utils

  • cl-ana.tensor

  • iterate

cl-ana.int-char

For some reason my SBCL doesn't support int-char anymore, so here it is.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:

    None

cl-ana.linear-algebra

(minimal) Linear algebra library which is integrated into the generic math framework.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.generic-math

  • cl-ana.list-utils

  • cl-ana.math-functions

  • cl-ana.tensor

  • gsll

cl-ana.list-utils

Utilities for working with lists not already provided by Alexandria.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.functional-utils

  • cl-ana.string-utils

cl-ana.lorentz

Implements lorentz vectors, lorentz transformations, etc.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.generic-math

  • cl-ana.linear-algebra

  • cl-ana.tensor

  • iterate

cl-ana.macro-utils

Basic macro utilities

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.list-utils

  • cl-ana.string-utils

  • cl-ana.symbol-utils

  • split-sequence

cl-ana.makeres

makeres is a make-like tool for building analysis results in Common Lisp

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.error-propogation

  • cl-ana.file-utils

  • cl-ana.functional-utils

  • cl-ana.generic-math

  • cl-ana.hash-table-utils

  • cl-ana.hdf-utils

  • cl-ana.histogram

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.map

  • cl-ana.memoization

  • cl-ana.pathname-utils

  • cl-ana.plotting

  • cl-ana.reusable-table

  • cl-ana.serialization

  • cl-ana.string-utils

  • cl-ana.symbol-utils

  • cl-ana.table

  • cl-fad

  • external-program

  • uiop

cl-ana.makeres-block

makeres-block is a makeres graph transformation which allows multiple results to be defined by a single block of code.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.makeres

cl-ana.makeres-branch

makeres-branch is a graph transformation for use with cl-ana.makeres

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.generic-math

  • cl-ana.hash-table-utils

  • cl-ana.list-utils

  • cl-ana.makeres

  • cl-ana.map

cl-ana.makeres-graphviz

makeres-graphviz provides graph visualization for makeres target graphs.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.makeres

  • external-program

cl-ana.makeres-macro

makeres-macro is a graph transformation for use with makeres

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.list-utils

  • cl-ana.makeres

cl-ana.makeres-progress

makeres-progress is a graph transformation for use with makeres

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.generic-math

  • cl-ana.makeres

cl-ana.makeres-table

makeres-table is a graph transformation for makeres

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.csv-table

  • cl-ana.hash-table-utils

  • cl-ana.hdf-table

  • cl-ana.hdf-utils

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.makeres

  • cl-ana.makeres-macro

  • cl-ana.memoization

  • cl-ana.ntuple-table

  • cl-ana.reusable-table

  • cl-ana.string-utils

  • cl-ana.table

cl-ana.makeres-utils

Utilities for using makeres effectively.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.file-utils

  • cl-ana.fitting

  • cl-ana.functional-utils

  • cl-ana.generic-math

  • cl-ana.histogram

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.makeres

  • cl-ana.map

  • cl-ana.pathname-utils

  • cl-ana.plotting

  • cl-ana.reusable-table

  • cl-ana.string-utils

  • cl-ana.symbol-utils

  • cl-ana.table

cl-ana.map

Defines generic functions for working with/converting things which behave like maps (in the mathematical sense), e.g. hash tables, alists, etc.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.hash-table-utils

cl-ana.math-functions

Auxiliary math functions provided within the generic-math framework.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.generic-math

  • gsll

cl-ana.memoization

Provides memoized functions (only compute for new arguments, otherwise lookup in a hash table)

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

cl-ana.ntuple-table

Table subclass specializing on ntuples as implemented via GSLL & used by CERN's PAW

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cffi

  • cl-ana.gsl-cffi

  • cl-ana.list-utils

  • cl-ana.table

  • cl-ana.typed-table

  • cl-ana.typespec

  • gsll

cl-ana.package-utils

Provides various utilities for using packages as well as the abstraction of a package group

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

cl-ana.pathname-utils

Utilities for working with pathnames

License:
GPLv3
Authors:
Gary Hollis
Dependencies:

    None

cl-ana.plotting

Extensible plotting library for Common Lisp using gnuplot as the backend.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.error-propogation

  • cl-ana.functional-utils

  • cl-ana.generic-math

  • cl-ana.gnuplot-interface

  • cl-ana.histogram

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.map

  • cl-ana.math-functions

  • cl-ana.pathname-utils

  • cl-ana.string-utils

  • cl-ana.tensor

  • external-program

  • sb-posix

  • split-sequence

  • uiop

cl-ana.quantity

Provides basic physics functions such as dimensional analysis, units, and some common definitions.

Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.error-propogation

  • cl-ana.generic-math

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.math-functions

  • cl-ana.symbol-utils

cl-ana.reusable-table

Table wrapper for reading which automatically re-loads table for reading after fully reading the contents (not guarranteed by the raw table types).

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.table

cl-ana.serialization

serialization provides functionality for writing various objects to HDF5 files as datasets (which is the only way with HDF5).

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.error-propogation

  • cl-ana.hdf-table

  • cl-ana.hdf-utils

  • cl-ana.histogram

  • cl-ana.int-char

  • cl-ana.macro-utils

  • cl-ana.typespec

cl-ana.spline

Provides natural splines to arbitrary order using GSL.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cffi

  • cl-ana.fitting

  • cl-ana.generic-math

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.math-functions

  • cl-ana.tensor

  • gsll

cl-ana.statistical-learning

Various statistical functions integrated into the generic-math framework.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.functional-utils

  • cl-ana.generic-math

  • cl-ana.histogram

  • cl-ana.linear-algebra

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.map

  • cl-ana.math-functions

  • cl-ana.statistics

cl-ana.statistics

Various statistical functions integrated into the generic-math framework.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.generic-math

  • cl-ana.histogram

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.map

  • cl-ana.math-functions

cl-ana.string-utils

String utilities not already provided by Alexandria

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • split-sequence

cl-ana.symbol-utils

Basic utilities for working with symbols

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.list-utils

cl-ana.table

Table class; provides basic necessary interface for working with sets of data.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.functional-utils

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.string-utils

  • cl-ana.symbol-utils

cl-ana.table-utils

Utilities for working with tables

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • cl-ana.generic-math

  • cl-ana.hash-table-utils

  • cl-ana.statistics

  • cl-ana.string-utils

  • cl-ana.symbol-utils

  • cl-ana.table

cl-ana.table-viewing

Library for easily viewing the contents of a table (preferably a reusable table)

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.generic-math

  • cl-ana.histogram

  • cl-ana.macro-utils

  • cl-ana.plotting

  • cl-ana.string-utils

  • cl-ana.table

cl-ana.tensor

tensor provides utilities for treating nested sequences as multidimensional arrays; integration into the generic math framework yields MATLAB/GNU Octave-style functionality with arrays, lists, etc.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.generic-math

  • cl-ana.list-utils

  • cl-ana.macro-utils

  • cl-ana.symbol-utils

cl-ana.typed-table

Table types which have typed columns. Provides automatic conversion between foreign and LISP objects.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cl-ana.list-utils

  • cl-ana.string-utils

  • cl-ana.symbol-utils

  • cl-ana.table

  • cl-ana.typespec

cl-ana.typespec

typespec provides a mechanism for referring to foreign or LISP datatypes as well as utilities for conversion between the two.

License:
GPLv3
Authors:
Gary Hollis
Dependencies:
  • alexandria

  • cffi

  • cl-ana.int-char

  • cl-ana.list-utils

  • cl-ana.memoization

  • cl-ana.string-utils

  • cl-ana.symbol-utils

  • cl-ana.tensor

Dependencies (11)

  • alexandria
  • antik
  • cffi
  • cl-csv
  • cl-fad
  • closer-mop
  • external-program
  • gsll
  • iterate
  • split-sequence
  • uiop

Dependents (0)

    • GitHub
    • Quicklisp