The clem Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The clem Reference Manual

This is the clem Reference Manual, version 0.4.8, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Apr 28 11:29:12 2020 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction


More bogus changes.

Common-Lisp Egregious Matrices (CLEM)

This is Cyrus Harmon's matrix package for common-lisp. Documentation
should one day be found in doc/index.html.

Background

This was going to be called Common-Lisp Efficient Matrices (CLEM), but
since efficiency is relative, I've decided to back off of that claim
and call it Common-Lisp Egregious Matrices. It is a goal of the
project that one day the intended meaning of egregious in this context
will evolve from the "outstandingly bad" meaning to the "remarkably
good" sense. Unfortunately, we're probably closer to outstandingly bad
at this point.

Why are the matrices egregious?

Well, the main problem is a lack of efficeincy. Through relatively
profuse use of declarations, many of the main matrix operations are
efficient in the lisp-sense in that they are non-consing. It does not,
however, mean that they are particularly fast. This package has only
been tested on SBCL and SBCL's floating point performance is at least
decent. In theory, further tuning of the lisp matrix code and perhaps
the output of the compiler may help increase the performance here. As
it stands, matrix multiplication is an order of magnitude (base 10)
slower here than in BLAS. This performance is actually reasonably good
for a high-level language, in my opinion, and can hopefully be
improved upon. As informal benchmarks for comparison, I used BLAS and
a slightly hand-tuned matrix multiply written in C. Interestingly, I
could make the C version run about three times faster than the lisp
version, while the BLAS matrix multiply was another 3x faster than
that, yielding a roughly 10x speedup for BLAS relative to the CLEM
matrix multiply. It seems as though the performance hit is largely a
memory-access penalty. (Oh, I'll undoubtedly mention this again, but
at the moment this has only been tested on SBCL on PPC. It would be
interesting to see what the results on other processor families are,
but I would imagine they would be fairly similar.) Smarter memory
access patterns through the matrices to be multiplied and to
accumulate the results may help performance here.

But clearly there is more to life than matrix multiplication. One of
the goals of building this package in lisp is to get access to the
nice features of high-level languages. It's all well and good to write
matrix-intensive code in fortran, but I really wouldn't to write code
for interacting with databases, or for processing XML documents or for
serving web-applications in fortran. I hope that CLEM can be used in
contexts such as these.

Why not just use Matlab or R?

This is a very good question. First and foremost, I like the features
of the lisp language and miss them greatly when I go into those
environments. The editing and debugging tools of a modern common lisp
(Emacs/SLIME today and perhaps CLIMACS/SLIME in the not-too-distant
future) are a major win in my eyes. Yes, there are amazing libraries
for doing just about everything under the sun in both Matlab and R,
but they strike me as less-good for general purpose computing than
common lisp. These really should be treated as the pros and cons for
each are in fact quite different.

Matlab

One major problem with Matlab is the licensing model. Ensuring that
Matlab is on every computer to run Matlab software is quite
annoying. A second problem is that the language, while very nice for
building quick and dirty scripts and prototypes, doesn't seem to be
nearly as nice for building large systems as common lisp. More on this
later.

R

R is great, but it's interpreted language leads to performance
problems. It is true that the core math routines in general are
implemented in fast fortran down "under the covers", but for
higher-level processing, one is stuck with a mediocre interpreted
language. It's true that the R language is essentially a scheme
variant, but it is a scheme variant with a C-like syntax on top that,
in my opinion, leaves much to be desired in comparison with common
lisp.

What about Matlisp?

Yes, matlisp is very nice and interfaces with fortran libraries for
fast math performance. In fact, I have started working on tying CLEM
into matlisp. This will probably be more important for floating point
and complex matrices than for integer matrices. Integer matrices are
important to me as one of the main data types I will be working with
are images, so I wanted an efficient package for dealing with integer
matrices.

Anyway, we'll see if this ever proves to be useful. In the meantime,
it has been a fun exercise in trying to build a lisp-based system for
matrix math.

What does CLEM do?

Typed methods for matrix math
* mat-add
* mat-subtr
* mat-mult
* mat-mult-block (to replace mat-mult when fully debugged)
* mat-hprod (hadamard product (C_ij = A_ij * B_ij for all i,j))
* scalar-mult
* scalar-divide
* sum
* sum-range
* max-val
* min-val

Matrix type conversions

Convolution

Morphological Operations

* gaussian-blur
* dilate
* erode

Derivatives

* x-derivative
* y-derivative
* gradmag

Examples

Check out test for now. Hope to have more of this in the near future.



Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 clem

Author

Cyrus Harmon <ch-lisp@bobobeach.com>

License

BSD

Version

0.4.8

Source

clem.asd (file)

Component

src (module)


Next: , Previous: , Up: Top   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Next: , Previous: , Up: Modules   [Contents][Index]

3.1 clem/src

Parent

clem (system)

Location

src/

Components

Previous: , Up: Modules   [Contents][Index]

3.2 clem/src/typed-ops

Dependencies
Parent

src (module)

Location

src/typed-ops/

Components

Next: , Previous: , Up: Top   [Contents][Index]

4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.1 clem.asd

Location

clem.asd

Systems

clem (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.2 clem/src/defpackage.lisp

Parent

src (module)

Location

src/defpackage.lisp

Packages

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.3 clem/src/utilities.lisp

Dependency

defpackage.lisp (file)

Parent

src (module)

Location

src/utilities.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.4 clem/src/metaclasses.lisp

Dependency

defpackage.lisp (file)

Parent

src (module)

Location

src/metaclasses.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.5 clem/src/early-matrix.lisp

Dependencies
Parent

src (module)

Location

src/early-matrix.lisp

Exported Definitions

matrix (class)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.6 clem/src/mref.lisp

Dependency

early-matrix.lisp (file)

Parent

src (module)

Location

src/mref.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.7 clem/src/macros.lisp

Dependencies
Parent

src (module)

Location

src/macros.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.8 clem/src/matrix-classes.lisp

Dependencies
Parent

src (module)

Location

src/matrix-classes.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.9 clem/src/matrix.lisp

Dependencies
Parent

src (module)

Location

src/matrix.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.10 clem/src/print.lisp

Dependency

matrix.lisp (file)

Parent

src (module)

Location

src/print.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.11 clem/src/typed-matrix.lisp

Dependencies
Parent

src (module)

Location

src/typed-matrix.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.12 clem/src/mloop.lisp

Dependencies
Parent

src (module)

Location

src/mloop.lisp

Exported Definitions

mloop (macro)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.13 clem/src/defmatrix.lisp

Dependencies
Parent

src (module)

Location

src/defmatrix.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.14 clem/src/defmatrix-types.lisp

Dependency

defmatrix.lisp (file)

Parent

src (module)

Location

src/defmatrix-types.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.15 clem/src/scalar.lisp

Dependency

matrix.lisp (file)

Parent

src (module)

Location

src/scalar.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.16 clem/src/typed-matrix-utils.lisp

Dependency

typed-matrix.lisp (file)

Parent

src (module)

Location

src/typed-matrix-utils.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.17 clem/src/vector.lisp

Dependency

matrix.lisp (file)

Parent

src (module)

Location

src/vector.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.18 clem/src/matrixops.lisp

Dependency

typed-matrix-utils.lisp (file)

Parent

src (module)

Location

src/matrixops.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.19 clem/src/interpolation.lisp

Dependencies
Parent

src (module)

Location

src/interpolation.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.20 clem/src/transform.lisp

Dependencies
Parent

src (module)

Location

src/transform.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.21 clem/src/extrema.lisp

Dependencies
Parent

src (module)

Location

src/extrema.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.22 clem/src/add.lisp

Dependencies
Parent

src (module)

Location

src/add.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.23 clem/src/subtr.lisp

Dependencies
Parent

src (module)

Location

src/subtr.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.24 clem/src/scale.lisp

Dependencies
Parent

src (module)

Location

src/scale.lisp

Exported Definitions

mat-scale (method)

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.25 clem/src/move.lisp

Dependencies
Parent

src (module)

Location

src/move.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.26 clem/src/sum.lisp

Dependencies
Parent

src (module)

Location

src/sum.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.27 clem/src/arithmetic.lisp

Dependencies
Parent

src (module)

Location

src/arithmetic.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.28 clem/src/log.lisp

Dependencies
Parent

src (module)

Location

src/log.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.29 clem/src/logical-operations.lisp

Dependencies
Parent

src (module)

Location

src/logical-operations.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.30 clem/src/abs.lisp

Dependencies
Parent

src (module)

Location

src/abs.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.31 clem/src/normalize.lisp

Dependencies
Parent

src (module)

Location

src/normalize.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.32 clem/src/statistics.lisp

Dependencies
Parent

src (module)

Location

src/statistics.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.33 clem/src/exponential.lisp

Dependencies
Parent

src (module)

Location

src/exponential.lisp

Exported Definitions
Internal Definitions

def-matrix-square (macro)


Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.34 clem/src/typed-ops/defmatrix-equal.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-equal.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.35 clem/src/typed-ops/defmatrix-hprod.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-hprod.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.36 clem/src/typed-ops/defmatrix-mult.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-mult.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.37 clem/src/typed-ops/defmatrix-mult-block.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-mult-block.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.38 clem/src/typed-ops/defmatrix-transform.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-transform.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.39 clem/src/typed-ops/defmatrix-scale.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-scale.lisp

Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

4.1.40 clem/src/typed-ops/defmatrix-subset-matrix.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-subset-matrix.lisp

Exported Definitions

subset-matrix (method)

Internal Definitions

def-matrix-subset-matrix (macro)


Previous: , Up: Lisp files   [Contents][Index]

4.1.41 clem/src/typed-ops/defmatrix-convolve.lisp

Parent

typed-ops (module)

Location

src/typed-ops/defmatrix-convolve.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 clem

Source

defpackage.lisp (file)

Use List
Used By List

clem-user

Exported Definitions
Internal Definitions

Previous: , Up: Packages   [Contents][Index]

5.2 clem-user

Source

defpackage.lisp (file)

Use List

Next: , Previous: , Up: Top   [Contents][Index]

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.1 Macros

Macro: defmatrixclass TYPE DIRECT-SUPERCLASSES &key ELEMENT-TYPE ACCUMULATOR-TYPE INITIAL-ELEMENT MINVAL MAXVAL VAL-FORMAT
Package

clem

Source

matrix-classes.lisp (file)

Macro: mloop (MSPECS M N I J) &body BODY
Package

clem

Source

mloop.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.2 Functions

Function: compute-bounds X1 Y1 X2 Y2 XFRM

takes a region bound by x1 and x2 on the x-axis and y1 and y2 on the y-axis and returns the coordinates of the bounding rectangle after applying the affine transform xfrm

Package

clem

Source

transform.lisp (file)

Function: copy-affine-transformation-7-parameters SRC
Package

clem

Source

transform.lisp (file)

Function: decf-transformation-parameters SRC DELTA
Package

clem

Source

transform.lisp (file)

Function: gaussian-blur M &key K SIGMA TRUNCATE
Package

clem

Source

matrixops.lisp (file)

Function: gaussian-kernel K SIGMA
Package

clem

Source

matrixops.lisp (file)

Function: get-affine-transformation-7-parameters-properties TRANSVEC
Package

clem

Source

transform.lisp (file)

Function: gradmag M &key TRUNCATE
Package

clem

Source

matrixops.lisp (file)

Function: laplacian M &key MATRIX-CLASS TRUNCATE
Package

clem

Source

matrixops.lisp (file)

Function: make-affine-transformation &key X-SHIFT Y-SHIFT X-SCALE Y-SCALE X-SHEAR Y-SHEAR THETA
Package

clem

Source

transform.lisp (file)

Function: make-affine-transformation-matrix-from-7-parameters TRANSVEC
Package

clem

Source

transform.lisp (file)

Function: matrix-means &rest MATRICES
Package

clem

Source

matrixops.lisp (file)

Function: matrix-medians MATRICES
Package

clem

Source

matrixops.lisp (file)

Function: move-affine-transformation-7-parameters SRC DEST
Package

clem

Source

transform.lisp (file)

Function: sample-variance-window A &key K TRUNCATE
Package

clem

Source

matrixops.lisp (file)

Function: transform-coord X Y XFRM

applies the affine transformation xfrm to the point {x,y} and returns the position of the point after applying the transformation

Package

clem

Source

transform.lisp (file)

Function: transformation-parameter XFRM I
Function: (setf transformation-parameter) V XFRM I
Package

clem

Source

transform.lisp (file)

Function: variance-window A &key K
Package

clem

Source

matrixops.lisp (file)

Function: x-derivative M &key MATRIX-CLASS TRUNCATE
Package

clem

Source

matrixops.lisp (file)

Function: y-derivative M &key MATRIX-CLASS TRUNCATE
Package

clem

Source

matrixops.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

6.1.3 Generic functions

Generic Function: affine-transform MAT XFRM &key U V X Y INTERPOLATION BACKGROUND MATRIX-CLASS
Package

clem

Source

transform.lisp (file)

Methods
Method: affine-transform (MAT matrix) (XFRM affine-transformation) &key U V X Y INTERPOLATION BACKGROUND MATRIX-CLASS
Generic Function: array->bit-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->bit-matrix (A array)
Generic Function: array->complex-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->complex-matrix (A array)
Generic Function: array->double-float-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->double-float-matrix (A array)
Generic Function: array->fixnum-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->fixnum-matrix (A array)
Generic Function: array->integer-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->integer-matrix (A array)
Generic Function: array->matrix A &key MATRIX-CLASS
Package

clem

Source

matrix.lisp (file)

Methods
Method: array->matrix (A array) &key MATRIX-CLASS
Generic Function: array->real-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->real-matrix (A array)
Generic Function: array->sb16-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->sb16-matrix (A array)
Generic Function: array->sb32-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->sb32-matrix (A array)
Generic Function: array->sb8-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->sb8-matrix (A array)
Generic Function: array->single-float-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->single-float-matrix (A array)
Generic Function: array->t-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->t-matrix (A array)
Generic Function: array->ub16-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->ub16-matrix (A array)
Generic Function: array->ub32-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->ub32-matrix (A array)
Generic Function: array->ub8-matrix A
Package

clem

Source

defmatrix-types.lisp (file)

Methods
Method: array->ub8-matrix (A array)
Generic Function: binary-threshold U TVAL
Package

clem

Source

matrixops.lisp (file)

Methods
Method: binary-threshold (U matrix) (TVAL number)
Generic Function: cols M

Returns the number of columns in the matrix.

Package

clem

Source

matrix.lisp (file)

Methods
Method: cols (CV col-vector)
Source

vector.lisp (file)

Method: cols (RV row-vector)
Source

vector.lisp (file)

Method: cols (M matrix)
Generic Function: copy-to-bit-matrix M &key CONSTRAIN
Package

clem

Source

typed-matrix-utils.lisp (file)

Methods
Method: copy-to-bit-matrix (M matrix) &key CONSTRAIN
Generic Function: copy-to-double-float-matrix M &key CONSTRAIN
Package

clem

Source

typed-matrix-utils.lisp (file)

Methods
Method: copy-to-double-float-matrix (M matrix) &key CONSTRAIN
Generic Function: copy-to-fixnum-matrix M &key CONSTRAIN
Package

clem

Source

typed-matrix-utils.lisp (file)

Methods
Method: copy-to-fixnum-matrix (M matrix) &key CONSTRAIN
Generic Function: copy-to-ub16-matrix M &key CONSTRAIN
Package

clem

Source

typed-matrix-utils.lisp (file)

Methods
Method: copy-to-ub16-matrix (M matrix) &key CONSTRAIN
Generic Function: copy-to-ub32-matrix M &key CONSTRAIN
Package

clem

Source

typed-matrix-utils.lisp (file)

Methods
Method: copy-to-ub32-matrix (M matrix) &key CONSTRAIN
Generic Function: copy-to-ub8-matrix M &key CONSTRAIN
Package

clem

Source

typed-matrix-utils.lisp (file)

Methods
Method: copy-to-ub8-matrix (M matrix) &key CONSTRAIN
Generic Function: dilate U V
Package

clem

Source

matrixops.lisp (file)

Methods
Method: dilate (U matrix) (V matrix)
Generic Function: dim M

Returns a list containg the number of elments in each dimension of the matrix.

Package

clem

Source

matrix.lisp (file)

Methods
Method: dim (CV col-vector)
Source

vector.lisp (file)

Method: dim (RV row-vector)
Source

vector.lisp (file)

Method: dim (S scalar)
Source

scalar.lisp (file)

Method: dim (M matrix)
Generic Function: discrete-convolve U V &key TRUNCATE NORM-V MATRIX-CLASS
Package

clem

Source

matrixops.lisp (file)

Methods
Method: discrete-convolve (U ub8-matrix) (V single-float-matrix) &key TRUNCATE NORM-V MATRIX-CLASS
Source

defmatrix-convolve.lisp (file)

Method: discrete-convolve (U ub8-matrix) (V double-float-matrix) &key TRUNCATE NORM-V MATRIX-CLASS
Source

defmatrix-convolve.lisp (file)

Method: discrete-convolve (U ub8-matrix) (V ub8-matrix) &key TRUNCATE NORM-V MATRIX-CLASS
Source

defmatrix-convolve.lisp (file)

Method: discrete-convolve (U single-float-matrix) (V single-float-matrix) &key TRUNCATE NORM-V MATRIX-CLASS
Source

defmatrix-convolve.lisp (file)

Method: discrete-convolve (U double-float-matrix) (V double-float-matrix) &key TRUNCATE NORM-V MATRIX-CLASS
Source

defmatrix-convolve.lisp (file)

Method: discrete-convolve (U matrix) (V matrix) &key TRUNCATE NORM-V MATRIX-CLASS
Generic Function: erode U V
Package

clem

Source

matrixops.lisp (file)

Methods
Method: erode (U matrix) (V matrix)
Generic Function: horzcat M1 &rest MR
Package

clem

Source

matrix.lisp (file)

Methods
Method: horzcat (M1 matrix) &rest MR
Generic Function: identity-matrix K &key MATRIX-CLASS
Package

clem

Source

matrix.lisp (file)

Methods
Method: identity-matrix K &key MATRIX-CLASS
Generic Function: invert-matrix A
Package

clem

Source

matrix.lisp (file)

Methods
Method: invert-matrix (A matrix)
Generic Function: m* &rest MATRICES

General purpose matrix multiplication
operator. If one argument is supplied, returns that matrix. If two arguments are supplied, if both are matrices, performs a matrix multiplication equivalent to multiplying the first matrix by the second matrix. if one argument is a matrix and the other a number, m* scales the matrix by the numeric argument. If more than two arguments are supplied, the first two arguments are treated as in the two argument case and the results are then multiplied by the remaining arguments such that (m* m1 m2 m3) == (m* (m* m1 m2) m3).

Package

clem

Source

matrix.lisp (file)

Methods
Method: m* &rest MATRICES
Source

arithmetic.lisp (file)

Generic Function: m+ &rest MATRICES

Element-wise addition of matrices. All matrices
must be of the same dimensions. Returns a matrix of the same size as each matrix in matrices, whoses elements are the some of the corresponding elements from each matrix in matrices.

Package

clem

Source

matrix.lisp (file)

Methods
Method: m+ &rest MATRICES
Source

arithmetic.lisp (file)

Generic Function: m- &rest MATRICES

When passed a single matrix, returns a new
matrix of the same dimensions as matrix whose elemnts are the result of perforing a unary minus (or sign inversion) on each element in the matrix. When passed more than one matrix, performs element-wise subtraction of each matrix after the first from the first matrix and returns a new matrix containing these values.

Package

clem

Source

matrix.lisp (file)

Methods
Method: m- &rest MATRICES
Source

arithmetic.lisp (file)

Generic Function: m.* &rest MATRICES

Hadamard multiplication operator. Performs an element-wise multiplication of the elements in each matrix.

Package

clem

Source

matrix.lisp (file)

Methods
Method: m.* &rest MATRICES
Source

arithmetic.lisp (file)

Generic Function: map-col A K F
Package

clem

Source

matrix.lisp (file)

Methods
Method: map-col (A matrix) K F
Generic Function: map-matrix-fit F A
Package

clem

Source

metaclasses.lisp (file)

Methods
Method: map-matrix-fit F (A typed-matrix)
Source

typed-matrix.lisp (file)

Method: map-matrix-fit F (A typed-mixin)
Generic Function: map-row A K F
Package

clem

Source

matrix.lisp (file)

Methods
Method: map-row (A matrix) K F
Generic Function: mat-abs M
Package

clem

Methods
Method: mat-abs (M t-matrix)
Source

abs.lisp (file)

Method: mat-abs (M number-matrix)
Source

abs.lisp (file)

Method: mat-abs (M complex-matrix)
Source

abs.lisp (file)

Method: mat-abs (M real-matrix)
Source

abs.lisp (file)

Method: mat-abs (M fixnum-matrix)
Source

abs.lisp (file)

Method: mat-abs (M sb32-matrix)
Source

abs.lisp (file)

Method: mat-abs (M sb16-matrix)
Source

abs.lisp (file)

Method: mat-abs (M sb8-matrix)
Source

abs.lisp (file)

Method: mat-abs (M ub32-matrix)
Source

abs.lisp (file)

Method: mat-abs (M ub16-matrix)
Source

abs.lisp (file)

Method: mat-abs (M ub8-matrix)
Source

abs.lisp (file)

Method: mat-abs (M integer-matrix)
Source

abs.lisp (file)

Method: mat-abs (M bit-matrix)
Source

abs.lisp (file)

Method: mat-abs (M single-float-matrix)
Source

abs.lisp (file)

Method: mat-abs (M double-float-matrix)
Source

abs.lisp (file)

Generic Function: mat-abs-range M STARTR ENDR STARTC ENDC
Package

clem

Methods
Method: mat-abs-range (M t-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M number-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M complex-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M real-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M fixnum-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M sb32-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M sb16-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M sb8-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M ub32-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M ub16-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M ub8-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M integer-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M bit-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M single-float-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Method: mat-abs-range (M double-float-matrix) STARTR ENDR STARTC ENDC
Source

abs.lisp (file)

Generic Function: mat-add A B &key IN-PLACE
Package

clem

Source

matrix.lisp (file)

Methods
Method: mat-add (M ub8-matrix) (N ub8-scalar) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub8-matrix) (N sb8-scalar) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub8-matrix) (N bit-scalar) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M bit-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M bit-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M fixnum-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M fixnum-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M sb32-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M sb32-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M sb16-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M sb16-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M sb8-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M sb8-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub32-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub32-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub16-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub16-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub8-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M ub8-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M bit-matrix) (N bit-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M single-float-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M complex-matrix) (N real-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M complex-matrix) (N integer-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M complex-matrix) (N complex-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M integer-matrix) (N integer-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M real-matrix) (N integer-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M real-matrix) (N single-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M real-matrix) (N double-float-matrix) &key IN-PLACE
Source

add.lisp (file)

Method: mat-add (M real-matrix) (N real-matrix