chickadee » matrico

matrico

A flonum matrix module for CHICKEN Scheme.

matrico Function

matricoprocedure

returns void, prints help message for matrico function.

matrico symprocedure

returns any, depending on argument symbol sym:

  • 'list - returns void, prints list of "mx" functions;
  • 'about - returns void, prints summary about matrico;
  • 'banner - returns void, prints the matrico banner;
  • 'version - returns pair holding major and minor version numbers of matrico;
  • 'citation - returns void, prints citation information for matrico;
  • 'benchmark - returns fixnum, prints approximated million-instructions-per-second for current machine;
  • otherwise - returns boolean answering if argument is a symbol matching an existing function, starting with "mx", and prints its docstring.

Matrix Type

matrixtype

a list-of-f64vectors (flonum-)matrix type. This record type is not directly accessible, and can only be manipulated through "mx-" functions.

Matrix Generators

mx rows cols valprocedure

returns rows-by-cols matrix with all entries set to flonum val for positive fixnums rows and cols.

mx% lstprocedure

returns matrix from row-major list-of-lists-of-flonums lst.

mx-identity dimsprocedure

returns dims-by-dims identity matrix for a positive fixnum dims.

mx-exchange dimsprocedure

returns dims-by-dims exchange matrix for a positive fixnum dims.

mx-hilbert dimsprocedure

returns dims-by-dims Hilbert matrix for a positive fixnum dims.

mx-pascal dimsprocedure

returns dims-by-dims (lower triangular) Pascal matrix for a positive fixnum dims.

mx-lehmer rows colsprocedure

returns rows-by-cols Lehmer matrix for the positive fixnums rows and cols.

mx-random rows cols low uppprocedure

returns rows-by-cols uniformly distributed random matrix in the interval flonum low to flonum upp for the positive fixnums rows and cols.

mx-tridiag dims low mid uppprocedure

returns dims-by-dims matrix with lower, main, upper band entries given by the flonums low, mid, upp for a positive fixnum dims.

mx-unit rows numprocedure

returns dims-by-one column-matrix of zeros except the positive fixnum num-th entry set to one for a positive fixnum dims, aka canonical base vector.

mx-iota dimsprocedure

returns dims-by-one column-matrix with entries set to corresponding row index for a positive fixnum dims.

mx-linspace x y numprocedure

returns matrix of positive fixnum num row-wise linearly spaced entries with endpoints given by flonums or column-matrixes x and y.

mx-logspace x y numprocedure

returns matrix of positive fixnum num row-wise (base-10) logarithmic spaced entries with endpoints given by flonums or column matrixes x and y.

Matrix Dimensions

mx-cols matprocedure

returns fixnum number of columns of matrix mat.

mx-rows matprocedure

returns fixnum number of rows of matrix mat.

mx-numel matprocedure

returns fixnum number of entries of matrix mat.

mx-dims matprocedure

returns fixnum number of dimensions of matrix mat.

Matrix Predicates

mx? anyprocedure

returns boolean answering if any is a matrix.

mx-col? matprocedure

returns boolean answering if matrix mat has only a single column.

mx-row? matprocedure

returns boolean answering if matrix mat has only a single row.

mx-scalar? matprocedure

returns boolean answering if matrix mat has only a single row and single column.

mx-vector? matprocedure

returns boolean answering if matrix mat has only a single row or single column.

mx-square? matprocedure

returns boolean answering if matrix mat has the same number of rows and columns.

mx-samecols? x yprocedure

returns boolean answering if matrixes x and y have same number of columns.

mx-samerows? x yprocedure

returns boolean answering if matrixes x and y have same number of rows.

mx-samedim? x yprocedure

returns boolean answering if matrixes x and y have same number of columns and rows.

mx-any? pred matprocedure

returns boolean answering if any entry of matrix mat fulfills predicate procedure pred.

mx-all? pred matprocedure

returns boolean answering if all entries of matrix mat fulfill predicate procedure pred.

mx=? x y tolprocedure

returns boolean answering if all entry-wise distances between matrixes x and y are below tolerance flonum tol.

Matrix Accessors

mx-ref11 matprocedure

returns flonum being the entry in the first row and first column of matrix mat.

mx-ref mat row colprocedure

returns flonum being matrix mat entry in row and column specified by fixnums row, col.

mx-set mat row col valprocedure

returns matrix copy of matrix mat but with entry in row fixnum row and column fixnum col set to flonum or one-by-one matrix val.

mx-set! mat row col valprocedure

returns void, sets entry of matrix mat in row and column specified by fixnums row and col to flonum or one-by-one matrix val.

mx-col mat colprocedure

returns matrix being matrix mat's column specified by fixnum col.

mx-row mat rowprocedure

returns matrix being matrix mat's row specified by fixnum row.

mx-diag matprocedure

returns column-matrix holding square matrix mat's diagonal entries.

mx-submatrix mat row1 row2 col1 col2procedure

returns matrix holding entries of matrix mat in rows specified by fixnums row1 to row2 and columns specified by fixnums col1 to col2.

Matrix Expanders

mx+ x yprocedure

returns matrix of entry-wise addition of matrixes x and y.

mx* x yprocedure

returns matrix of entry-wise multiplication of matrixes x and y.

mx- x yprocedure

returns matrix of entry-wise subtraction of matrixes x and y.

mx/ x yprocedure

returns matrix of entry-wise division of matrixes x by y.

mx^ x yprocedure

returns matrix of entry-wise exponentiation of matrixes x to the y.

mx-where pred x yprocedure

returns matrix of entries of matrixes x or y based on predicate procedure pred.

Matrix Mappers

Entry-Wise Elementary Functions

mx- xprocedure

returns matrix of entry-wise negation of matrix x.

mx/ xprocedure

returns matrix of entry-wise reciprocal of matrix x.

mx*2 xprocedure

returns matrix of entry-wise doubling of matrix x.

mx^2 xprocedure

returns matrix of entry-wise squaring of matrix x.

Entry-Wise Rounding Functions

mx-round matprocedure

returns matrix with entries of matrix mat rounded to nearest integer.

mx-floor matprocedure

returns matrix with entries of matrix mat rounded to nearest upper integer.

mx-ceil matprocedure

returns matrix with entries of matrix mat rounded to nearest lower integer.

Entry-Wise Generalized Functions

mx-abs matprocedure

returns matrix with entry-wise absolute value of matrix mat.

mx-sign matprocedure

returns matrix with entry-wise sign of matrix mat.

mx-delta matprocedure

returns matrix with entry-wise Kronecker delta of matrix mat.

mx-heaviside matprocedure

returns matrix with entry-wise Heaviside step of matrix mat.

Entry-Wise Trigonometric Functions

mx-sin matprocedure

returns matrix with entry-wise sine of matrix mat.

mx-cos matprocedure

returns matrix with entry-wise cosine of matrix mat.

mx-tan matprocedure

returns matrix with entry-wise tangent of matrix mat.

Entry-Wise Inverse Trigonometric Functions

mx-asin matprocedure

returns matrix with entry-wise inverse sine of matrix mat, aka arcsine.

mx-acos matprocedure

returns matrix with entry-wise inverse cosine of matrix mat, aka arccosine.

mx-atan matprocedure

returns matrix with entry-wise inverse tangent of matrix mat, aka arctangent.

Entry-Wise Hyperbolic Functions

mx-sinh matprocedure

returns matrix with entry-wise hyperbolic sine of matrix mat.

mx-cosh matprocedure

returns matrix with entry-wise hyperbolic cosine of matrix mat.

mx-tanh matprocedure

returns matrix with entry-wise hyperbolic tangent of matrix mat.

Entry-Wise Inverse Hyperbolic Functions

mx-asinh matprocedure

returns matrix with entry-wise inverse hyperbolic sine of matrix mat, aka area hyperbolic sine.

mx-acosh matprocedure

returns matrix with entry-wise inverse hyperbolic cosine of matrix mat, aka area hyperbolic cosine.

mx-atanh matprocedure

returns matrix with entry-wise inverse hyperbolic tangent of matrix mat, aka area hyperbolic tangent.

Entry-Wise Haversed Trigonometric Functions

mx-hsin matprocedure

returns matrix with entry-wise haversed sine of matrix mat.

mx-hcos matprocedure

returns matrix with entry-wise haversed cosine of matrix mat.

Entry-Wise Logarithmic Hyperbolic Functions

mx-lnsinh matprocedure

returns matrix with entry-wise log-sinh of matrix mat.

mx-lncosh matprocedure

returns matrix with entry-wise log-cosh of matrix mat.

Entry-Wise Roots

mx-sqrt matprocedure

returns matrix with entry-wise square root of matrix mat.

mx-signsqrt matprocedure

returns matrix with entry-wise sign times square-root of absolute value of matrix mat.

Entry-Wise Logarithms

mx-ln matprocedure

returns matrix with entry-wise natural logarithm of matrix mat.

mx-lb matprocedure

returns matrix with entry-wise base-2 logarithm of matrix mat.

mx-lg matprocedure

returns matrix with entry-wise base-10 logarithm of matrix mat.

Entry-Wise Exponential

mx-exp matprocedure

returns matrix with entry-wise exponential of matrix mat.

mx-gauss matprocedure

returns matrix with entry-wise Gaussian of matrix mat.

Entry-Wise Special Functions

mx-sinc matprocedure

returns matrix with entry-wise cardinal sine of matrix mat.

mx-sigm matprocedure

returns matrix with entry-wise sigmoid of matrix mat.

mx-stirling matprocedure

returns matrix with entry-wise Stirling approximation of matrix mat.

Matrix Reducers

Sums

mx-rowsum matprocedure

returns column-matrix of summing row entries of matrix mat.

mx-colsum matprocedure

returns row-matrix of summing column entries of matrix mat.

mx-sum matprocedure

returns flonum of summing all entries of matrix mat.

Products

mx-rowprod matprocedure

returns column-matrix of multiplying row entries of matrix mat.

mx-colprod matprocedure

returns row-matrix of multiplying column entries of matrix mat.

mx-prod matprocedure

returns flonum of multiplying all entries of matrix mat.

Minima

mx-rowmin matprocedure

returns column-matrix of row-wise minima of matrix mat.

mx-colmin matprocedure

returns row-matrix of column-wise minima of matrix mat.

mx-min matprocedure

returns flonum minimum of all matrix mat entries.

Maxima

mx-rowmax matprocedure

returns column-matrix of row-wise maxima of matrix mat.

mx-colmax matprocedure

returns row-matrix of column-wise maxima of matrix mat.

mx-max matprocedure

returns flonum maximum of all matrix mat entries.

Midrange

mx-rowmidr matprocedure

returns column-matrix of row-wise midrange of matrix mat.

mx-colmidr matprocedure

returns row-matrix of column-wise midrange of matrix mat.

mx-midr matprocedure

returns flonum midrange of all matrix mat entries.

Means

mx-rowmean mat typprocedure

returns column-matrix of row-wise power means of matrix mat of type symbol typ, which can be -1, 0, 1, 2, or 'inf.

mx-colmean mat typprocedure

returns row-matrix of column-wise power means of matrix mat of type symbol typ, which can be -1, 0, 1, 2, or 'inf.

mx-mean mat typprocedure

returns flonum power mean of all matrix mat entries of type symbol typ, which can be -1, 0, 1, 2, or 'inf.

Norms

mx-rownorm mat typprocedure

returns column matrix of row-wise matrix norms of matrix mat of type symbol typ, which can be 1, 2, or 'inf.

mx-colnorm mat typprocedure

returns row matrix of column-wise matrix norms of matrix mat of type symbol typ, which can be 1, 2, or 'inf.

mx-norm mat typprocedure

returns flonum matrix norms of matrix mat of type symbol typ, which can be 1, 'inf, 'fro, or 'max.

Linear Algebra

mx-horcat x yprocedure

returns matrix of horizontally concatenated matrixes x and y.

mx-vercat x yprocedure

returns matrix of vertically concatenated matrixes x and y.

mx-vec matprocedure

returns matrix of vertically concatenated columns of matrix mat, aka vectorization.

mx-transpose matprocedure

returns matrix of entries of matrix mat with swapped row and column indices.

mx-axpy a x yprocedure

returns matrix of entry-wise generalized addition of flonum a times matrix x plus matrix y.

mx-sympart matprocedure

returns matrix being symmetric part of square matrix mat.

mx-skewpart matprocedure

returns matrix being skey-symmetric part of square matrix mat, aka anti-symmetric part.

mx-diagonal matprocedure

returns diagonal matrix from column matrix mat.

Linear Problems

mx-qr matprocedure

returns pair of orthogonal matrix (Q) and upper right triangular matrix (R) factoring full column rank matrix mat.

mx-solver matprocedure

returns function returning column-matrix solving the linear (least-squares) problem of matrix mat, given a column-matrix vec via QR decomposition.

mx-solve mat vecprocedure

returns column-matrix solving the linear problem of matrix mat and column-matrix vec via QR decomposition.

mx-orth matprocedure

returns matrix orthogonalizing matrix mat.

mx-absdet matprocedure

returns flonum being absolute value of the determinant of matrix mat.

mx-logdet matprocedure

returns flonum being the (natural) logarithm of the determinant of matrix mat.

Traces

mx-trace matprocedure

returns flonum being sum of square matrix mat's diagonal entries.

mx-multrace matprocedure

returns flonum being product of square matrix mat's diagonal entries.

mx-prodtrace* x ytprocedure

returns flonum being the trace of the matrix product of matrix x and transposed matrix yt.

mx-prodtrace x yprocedure

returns flonum being the trace of the matrix product of matrixes x and y.

Matrix Multiplication

mx-scalar xt yprocedure

returns flonum resulting from scalar product of column-matrixes xt and y.

mx-dyadic x yprocedure

returns flonum resulting from dyadic product of column-matrix x and row-matrix y.

mx-dot* xt yprocedure

returns matrix resulting from matrix multiplication of (transposed) matrix xt and matrix y.

mx-dot x yprocedure

returns matrix resulting from matrix multiplication of matrixes x and y.

mx-gram matprocedure

returns matrix resulting from matrix multiplication of transposed matrix mat with itself, aka Gram matrix.

mx-gram* matprocedure

returns matrix resulting from matrix multiplication of matrix mat with itself transposed.

mx-square matprocedure

returns matrix resulting from matrix multiplication of matrix mat with itself.

Multivariate Statistics

mx-xcov x yprocedure

returns matrix of cross-covariances of matrixes x and y, representing columns of observations.

mx-cov matprocedure

returns matrix of covariances of matrix mat, representing columns of observations.

mx-var matprocedure

returns column matrix of variances of matrix mat, representing columns of observations.

mx-std matprocedure

returns column matrix of standard deviations of matrix mat, representing columns of observations.

mx-xcor x yprocedure

returns matrix of cross-correlations of matrixes x and y, representing columns of observations.

mx-cor matprocedure

returns matrix of correlations of matrix mat, representing columns of observations.

mx-angle x yprocedure

returns matrix of angles between matrixes x and y, representing columns of observations.

mx-coher x yprocedure

returns flonum of distance coherence between matrixes x and y.

Analysis

mx-diff matprocedure

returns matrix of differences of consecutives columns of matrix mat.

mx-trapz matprocedure

returns column-matrix trapezoid approximate integral of matrix mat being columns data-points of rows-dimensional function.

mx-ode2-hyp num sys tim x0procedure

returns states-times-steps matrix trajectory solving an ordinary differential equation, by a 2nd order hyperbolic Runge-Kutta method of fixnum num stages, with vector field procedure or pair of vector field and output procedures sys, time step flonum and time horizon flonum in pair tim, initial state column-matrix x0.

mx-ode2-ssp num sys tim x0procedure

returns states-times-steps matrix trajectory solving an ordinary differential equation, by a 2nd order strong stability preserving Runge-Kutta method of fixnum num stages, with vector field procedure or pair of vector field and output procedures sys, time step flonum and time horizon flonum in pair tim, initial state column-matrix x0.

Matrix Utilities

mx->list matprocedure

returns list of entries of one-dimensional matrix mat.

mx-print matprocedure

returns void, prints matrix mat to terminal.

mx-export str mat #!rest sepprocedure

returns void, writes matrix mat to new character sep-separated-value file in relative path string str, by default sep is , resulting in CSV.

mx-save str matprocedure

returns void, writes matrix mat to new Scheme (SCM) file with name string str.

mx-load strprocedure

returns matrix loaded from SCM file in relative path specified by string str.

Additional Flonum Operations

The matrico module implicitly exports the (chicken flonum) module, as well as the following additional flonum operations:

fpprocedure

is an alias for exact->inexact.

fp% n dprocedure

returns flonum fraction with numerator fixnum n and denominator fixnum d.

fpzero?? xprocedure

returns boolean answering if flonum x is exactly zero.

fpzero? x tolprocedure

returns boolean answering if absolute value of flonum x is less than flonum tol.

fp*2 xprocedure

returns flonum double of flonum x.

fp^2 xprocedure

returns flonum square of flonum x.

fprec xprocedure

returns flonum reciprocal of flonum x.

fptauprocedure

returns flonum circle constant Tau via fraction.

fpeulprocedure

returns flonum Euler's number via fraction.

fpphiprocedure

returns flonum golden ratio via fraction of consecutive Fibonacci numbers.

fpdelta xprocedure

returns flonum Kronecker delta of flonum x.

fpheaviside xprocedure

returns flonum Heaviside step function of flonum x.

fpsign xprocedure

returns flonum sign of flonum x.

fpln xprocedure

returns flonum natural logarithm of flonum x.

fplb xprocedure

returns flonum base-2 logarithm of flonum x.

fplg xprocedure

returns flonum base-10 logarithm of flonum x.

fphsin xprocedure

returns flonum haversed sine of flonum x.

fphcos xprocedure

returns flonum haversed cosine of flonum x.

fplnsinh xprocedure

returns flonum log-of-sinh of flonum x.

fplncosh xprocedure

returns flonum log-of-cosh of flonum x.

fpsignsqrt xprocedure

returns flonum sign times square root of absolute value of flonum x.

fpsinc xprocedure

returns flonum cardinal sine function with removed singularity of flonum x.

fpsigm xprocedure

returns flonum standard logistic function of flonum x, aka sigmoid.

fpgauss xprocedure

returns flonum Gauss bell curve function evaluation of flonum x.

fpstirling xprocedure

returns flonum Stirling approximation of factorial of flonum x.

Authors

Christian Himpe

Repository

https://git.io/matrico

License

Copyright (c) 2022 Christian Himpe. zlib-acknowledgement license

Version History

0.1
Initial Release
0.2
Major Update
0.3
Major Update
0.4
Minor Update
0.5
Minor Update
0.6
Major Update (details)

Contents »