You are looking at historical revision 43485 of this page. It may differ significantly from its current revision.
matrico
A flonum matrix module for CHICKEN Scheme.
- matrico
- matrico Function
- Matrix Type
- Matrix Generators
- Matrix Dimensions
- Matrix Predicates
- Matrix Accessors
- Matrix Expanders
- Matrix Mappers
- Entry-Wise Elementary Functions
- Entry-Wise Rounding Functions
- Entry-Wise Generalized Functions
- Entry-Wise Trigonometric Functions
- Entry-Wise Inverse Trigonometric Functions
- Entry-Wise Hyperbolic Functions
- Entry-Wise Inverse Hyperbolic Functions
- Entry-Wise Haversed Trigonometric Functions
- Entry-Wise Logarithmic Hyperbolic Functions
- Entry-Wise Roots
- Entry-Wise Logarithms
- Entry-Wise Exponential
- Entry-Wise Special Functions
- Matrix Reducers
- Linear Algebra
- Analysis
- Matrix Utilities
- Authors
- Repository
- License
- Version History
matrico Function
[procedure] (matrico)returns void, prints help message for matrico function.
[procedure] (matrico sym)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
[type] matrixa list-of-f64vectors (flonum-)matrix type. This record type is not directly accessible, and can only be manipulated through "mx-" functions.
Matrix Generators
[procedure] (mx rows cols val)returns rows-by-cols matrix with all entries set to flonum val for positive fixnums rows and cols.
[procedure] (mx% lst)returns matrix from row-major list-of-lists-of-flonums lst.
[procedure] (mx-identity dims)returns dims-by-dims identity matrix for a positive fixnum dims.
[procedure] (mx-exchange dims)returns dims-by-dims exchange matrix for a positive fixnum dims.
[procedure] (mx-hilbert dims)returns dims-by-dims Hilbert matrix for a positive fixnum dims.
[procedure] (mx-pascal dims)returns dims-by-dims (lower triangular) Pascal matrix for a positive fixnum dims.
[procedure] (mx-lehmer rows cols)returns rows-by-cols Lehmer matrix for the positive fixnums rows and cols.
[procedure] (mx-random rows cols low upp)returns rows-by-cols uniformly distributed random matrix in the interval flonum low to flonum upp for the positive fixnums rows and cols.
[procedure] (mx-tridiag dims low mid upp)returns dims-by-dims matrix with lower, main, upper band entries given by the flonums low, mid, upp for a positive fixnum dims.
[procedure] (mx-unit rows num)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.
[procedure] (mx-iota dims)returns dims-by-one column-matrix with entries set to corresponding row index for a positive fixnum dims.
[procedure] (mx-linspace x y num)returns matrix of positive fixnum num row-wise linearly spaced entries with endpoints given by flonums or column-matrixes x and y.
[procedure] (mx-logspace x y num)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
[procedure] (mx-cols mat)returns fixnum number of columns of matrix mat.
[procedure] (mx-rows mat)returns fixnum number of rows of matrix mat.
[procedure] (mx-numel mat)returns fixnum number of entries of matrix mat.
[procedure] (mx-dims mat)returns fixnum number of dimensions of matrix mat.
Matrix Predicates
[procedure] (mx? any)returns boolean answering if any is a matrix.
[procedure] (mx-col? mat)returns boolean answering if matrix mat has only a single column.
[procedure] (mx-row? mat)returns boolean answering if matrix mat has only a single row.
[procedure] (mx-scalar? mat)returns boolean answering if matrix mat has only a single row and single column.
[procedure] (mx-vector? mat)returns boolean answering if matrix mat has only a single row or single column.
[procedure] (mx-square? mat)returns boolean answering if matrix mat has the same number of rows and columns.
[procedure] (mx-samecols? x y)returns boolean answering if matrixes x and y have same number of columns.
[procedure] (mx-samerows? x y)returns boolean answering if matrixes x and y have same number of rows.
[procedure] (mx-samedim? x y)returns boolean answering if matrixes x and y have same number of columns and rows.
[procedure] (mx-any? pred mat)returns boolean answering if any entry of matrix mat fulfills predicate procedure pred.
[procedure] (mx-all? pred mat)returns boolean answering if all entries of matrix mat fulfills predicate procedure pred.
[procedure] (mx=? x y tol)returns boolean answering if all entry-wise distances between matrixes x and y are below tolerance flonum `tol`.
Matrix Accessors
[procedure] (mx-ref11 mat)returns flonum being the entry in the first row and first column of matrix mat.
[procedure] (mx-ref mat row col)returns flonum being matrix mat entry in row and column specified by fixnums row, col.
[procedure] (mx-set mat row col val)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.
[procedure] (mx-set! mat row col val)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.
[procedure] (mx-col mat col)returns matrix being matrix mat's column specified by fixnum col.
[procedure] (mx-row mat row)returns matrix being matrix mat's row specified by fixnum row.
[procedure] (mx-diag mat)returns column-matrix holding square matrix mat's diagonal entries.
[procedure] (mx-submatrix mat row1 row2 col1 col2)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
[procedure] (mx+ x y)returns matrix of entry-wise addition of matrixes x and y.
[procedure] (mx* x y)returns matrix of entry-wise multiplication of matrixes x and y.
[procedure] (mx- x y)returns matrix of entry-wise subtraction of matrixes x and y.
[procedure] (mx/ x y)returns matrix of entry-wise division of matrixes x by y.
[procedure] (mx^ x y)returns matrix of entry-wise exponentiation of matrixes x to the y.
[procedure] (mx-where pred x y)returns matrix of entries of matrixes x or y based on predicate procedure pred.
Matrix Mappers
Entry-Wise Elementary Functions
[procedure] (mx- x)returns matrix of entry-wise negation of matrix x.
[procedure] (mx/ x)returns matrix of entry-wise reciprocal of matrix x.
[procedure] (mx*2 x)returns matrix of entry-wise doubling of matrix x.
[procedure] (mx^2 x)returns matrix of entry-wise squaring of matrix x.
Entry-Wise Rounding Functions
[procedure] (mx-round mat)returns matrix with entries of matrix mat rounded to nearest integer.
[procedure] (mx-floor mat)returns matrix with entries of matrix mat rounded to nearest upper integer.
[procedure] (mx-ceil mat)returns matrix with entries of matrix mat rounded to nearest lower integer.
Entry-Wise Generalized Functions
[procedure] (mx-abs mat)returns matrix with entry-wise absolute value of matrix mat.
[procedure] (mx-sign mat)returns matrix with entry-wise sign of matrix mat.
[procedure] (mx-delta mat)returns matrix with entry-wise Kronecker delta of matrix mat.
[procedure] (mx-heaviside mat)returns matrix with entry-wise Heaviside step of matrix mat.
Entry-Wise Trigonometric Functions
[procedure] (mx-sin mat)returns matrix with entry-wise sine of matrix mat.
[procedure] (mx-cos mat)returns matrix with entry-wise cosine of matrix mat.
[procedure] (mx-tan mat)returns matrix with entry-wise tangent of matrix mat.
Entry-Wise Inverse Trigonometric Functions
[procedure] (mx-asin mat)returns matrix with entry-wise inverse sine of matrix mat, aka arcsine.
[procedure] (mx-acos mat)returns matrix with entry-wise inverse cosine of matrix mat, aka arccosine.
[procedure] (mx-atan mat)returns matrix with entry-wise inverse tangent of matrix mat, aka arctangent.
Entry-Wise Hyperbolic Functions
[procedure] (mx-sinh mat)returns matrix with entry-wise hyperbolic sine of matrix mat.
[procedure] (mx-cosh mat)returns matrix with entry-wise hyperbolic cosine of matrix mat.
[procedure] (mx-tanh mat)returns matrix with entry-wise hyperbolic tangent of matrix mat.
Entry-Wise Inverse Hyperbolic Functions
[procedure] (mx-asinh mat)returns matrix with entry-wise inverse hyperbolic sine of matrix mat, aka area hyperbolic sine.
[procedure] (mx-acosh mat)returns matrix with entry-wise inverse hyperbolic cosine of matrix mat, aka area hyperbolic cosine.
[procedure] (mx-atanh mat)returns matrix with entry-wise inverse hyperbolic tangent of matrix mat, aka area hyperbolic tangent.
Entry-Wise Haversed Trigonometric Functions
[procedure] (mx-hsin mat)returns matrix with entry-wise haversed sine of matrix mat.
[procedure] (mx-hcos mat)returns matrix with entry-wise haversed cosine of matrix mat.
Entry-Wise Logarithmic Hyperbolic Functions
[procedure] (mx-lnsinh mat)returns matrix with entry-wise log-sinh of matrix mat.
[procedure] (mx-lncosh mat)returns matrix with entry-wise log-cosh of matrix mat.
Entry-Wise Roots
[procedure] (mx-sqrt mat)returns matrix with entry-wise square root of matrix mat.
[procedure] (mx-signsqrt mat)returns matrix with entry-wise sign times square-root of absolute value of matrix mat.
Entry-Wise Logarithms
[procedure] (mx-ln mat)returns matrix with entry-wise natural logarithm of matrix mat.
[procedure] (mx-lb mat)returns matrix with entry-wise base-2 logarithm of matrix mat.
[procedure] (mx-lg mat)returns matrix with entry-wise base-10 logarithm of matrix mat.
Entry-Wise Exponential
[procedure] (mx-exp mat)returns matrix with entry-wise exponential of matrix mat.
[procedure] (mx-gauss mat)returns matrix with entry-wise Gaussian of matrix mat.
Entry-Wise Special Functions
[procedure] (mx-sinc mat)returns matrix with entry-wise cardinal sine of matrix mat.
[procedure] (mx-sigm mat)returns matrix with entry-wise sigmoid of matrix mat.
[procedure] (mx-stirling mat)returns matrix with entry-wise Stirling approximation of matrix mat.
Matrix Reducers
Sums
[procedure] (mx-rowsum mat)returns column-matrix of summing row entries of matrix mat.
[procedure] (mx-colsum mat)returns row-matrix of summing column entries of matrix mat.
[procedure] (mx-sum mat)returns flonum of summing all entries of matrix mat.
Products
[procedure] (mx-rowprod mat)returns column-matrix of multiplying row entries of matrix mat.
[procedure] (mx-colprod mat)returns row-matrix of multiplying column entries of matrix mat.
[procedure] (mx-prod mat)returns flonum of multiplying all entries of matrix mat.
Minima
[procedure] (mx-rowmin mat)returns column-matrix of row-wise minima of matrix mat.
[procedure] (mx-colmin mat)returns row-matrix of column-wise minima of matrix mat.
[procedure] (mx-min mat)returns flonum minimum of all matrix mat entries.
Maxima
[procedure] (mx-rowmax mat)returns column-matrix of row-wise maxima of matrix mat.
[procedure] (mx-colmax mat)returns row-matrix of column-wise maxima of matrix mat.
[procedure] (mx-max mat)returns flonum maximum of all matrix mat entries.
Midrange
[procedure] (mx-rowmidr mat)returns column-matrix of row-wise midrange of matrix mat.
[procedure] (mx-colmidr mat)returns row-matrix of column-wise midrange of matrix mat.
[procedure] (mx-midr mat)returns flonum midrange of all matrix mat entries.
Means
[procedure] (mx-rowmean mat typ)returns column-matrix of row-wise power means of matrix mat of type symbol typ, which can be -1, 0, 1, 2, or 'inf.
[procedure] (mx-colmean mat typ)returns row-matrix of column-wise power means of matrix mat of type symbol typ, which can be -1, 0, 1, 2, or 'inf.
[procedure] (mx-mean mat typ)returns flonum power mean of all matrix mat entries of type symbol typ, which can be -1, 0, 1, 2, or 'inf.
Norms
[procedure] (mx-rownorm mat typ)returns column matrix of row-wise matrix norms of matrix mat of type symbol typ, which can be 1, 2, or 'inf.
[procedure] (mx-colnorm mat typ)returns row matrix of column-wise matrix norms of matrix mat of type symbol typ, which can be 1, 2, or 'inf.
[procedure] (mx-norm mat typ)returns flonum matrix norms of matrix mat of type symbol typ, which can be 1, 'inf, 'fro, or 'max.
Linear Algebra
[procedure] (mx-horcat x y)returns matrix of horizontally concatenated matrixes x and y.
[procedure] (mx-vercat x y)returns matrix of vertically concatenated matrixes x and y.
[procedure] (mx-vec mat)returns matrix of vertically concatenated columns of matrix mat, aka vectorization.
[procedure] (mx-transpose mat)returns matrix of entries of matrix mat with swapped row and column indices.
[procedure] (mx-axpy a x y)returns matrix of entry-wise generalized addition of flonum a times matrix x plus matrix y.
[procedure] (mx-sympart mat)returns matrix being symmetric part of square matrix mat.
[procedure] (mx-skewpart mat)returns matrix being skey-symmetric part of square matrix mat, aka anti-symmetric part.
[procedure] (mx-diagonal mat)returns diagonal matrix from column matrix mat.
Linear Problems
[procedure] (mx-qr mat)returns pair of orthogonal matrix (Q) and upper right triangular matrix (R) factoring full column rank matrix mat.
[procedure] (mx-solver mat)returns function returning column-matrix solving the linear (least-squares) problem of matrix mat, given a column-matrix vec via QR decomposition.
[procedure] (mx-solve mat vec)returns column-matrix solving the linear problem of matrix mat and column-matrix vec via QR decomposition.
[procedure] (mx-orth mat)returns matrix orthogonalizing matrix mat.
[procedure] (mx-absdet mat)returns flonum being absolute value of the determinant of matrix mat.
[procedure] (mx-logdet mat)returns flonum being the (natural) logarithm of the determinant of matrix mat.
Traces
[procedure] (mx-trace mat)returns flonum being sum of square matrix mat's diagonal entries.
[procedure] (mx-multrace mat)returns flonum being product of square matrix mat's diagonal entries.
[procedure] (mx-prodtrace* x yt)returns flonum being the trace of the matrix product of matrix x and transposed matrix yt.
[procedure] (mx-prodtrace x y)returns flonum being the trace of the matrix product of matrixes x and y.
Matrix Multiplication
[procedure] (mx-scalar xt y)returns flonum resulting from scalar product of column-matrixes xt and y.
[procedure] (mx-dyadic x y)returns flonum resulting from dyadic product of column-matrix x and row-matrix y.
[procedure] (mx-dot* xt y)returns matrix resulting from matrix multiplication of (transposed) matrix xt and matrix y.
[procedure] (mx-dot x y)returns matrix resulting from matrix multiplication of matrixes x and y.
[procedure] (mx-gram mat)returns matrix resulting from matrix multiplication of transposed matrix mat with itself, aka Gram matrix.
[procedure] (mx-gram* mat)returns matrix resulting from matrix multiplication of matrix mat with itself transposed.
[procedure] (mx-square mat)returns matrix resulting from matrix multiplication of matrix mat with itself.
Multivariate Statistics
[procedure] (mx-xcov x y)returns matrix of cross-covariances of matrixes x and y, representing columns of observations.
[procedure] (mx-cov mat)returns matrix of covariances of matrix mat, representing columns of observations.
[procedure] (mx-var mat)returns column matrix of variances of matrix mat, representing columns of observations.
[procedure] (mx-std mat)returns column matrix of standard deviations of matrix mat, representing columns of observations.
[procedure] (mx-xcor x y)returns matrix of cross-correlations of matrixes x and y, representing columns of observations.
[procedure] (mx-cor mat)returns matrix of correlations of matrix mat, representing columns of observations.
[procedure] (mx-angle x y)returns matrix of angles between matrixes x and y, representing columns of observations.
[procedure] (mx-coher x y)returns flonum of distance coherence between matrixes x and y.
Analysis
[procedure] (mx-diff mat)returns matrix of differences of consecutives columns of matrix mat.
[procedure] (mx-trapz mat)returns column-matrix trapezoid approximate integral of matrix mat being columns data-points of rows-dimensional function.
[procedure] (mx-ode2-hyp num sys tim x0)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, initial state column-matrix x0, time step flonum dt, and time horizon flonum tf.
[procedure] (mx-ode2-ssp num sys tim x0)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, initial state column-matrix x0, time step flonum dt, and time horizon flonum tf.
Matrix Utilities
[procedure] (mx-print mat)returns void, prints matrix mat to terminal.
[procedure] (mx-export str mat)returns void, writes matrix mat to new comma-separated-value (CSV) file with name string str.
[procedure] (mx-save str mat)returns void, writes matrix mat to new Scheme (SCM) file with name string str.
[procedure] (mx-load str)returns matrix loaded from SCM file in relative path specified by string str.
Authors
Repository
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 (details)