[][src]Crate aljabar

The super generic super experimental linear algebra library.

This library serves the dual purpose of being an experimental API for future rust linear algebra libraries as well as a test of rustc's strength in compiling a number of in development features, such as const generics and specialization.

It is not the specific goal of this project to be useful in any sense, but hopefully it will end up being roughly compatible with cgmath.

Aljabar has no benchmarks and cannot make any performance guarantees at the moment.

Structs

Matrix

An N-by-M Column Major matrix.

Vector

N-element vector.

Traits

InnerSpace

Vector spaces that have an inner (also known as "dot") product.

MetricSpace

A type with a distance function between two values.

One

Defines the multiplicative identity element for Self.

Real

Types that have an exact square root.

RealInnerSpace

Defines an InnerSpace where the Scalar is a real number. Automatically implemented.

RealMetricSpace

A metric spaced where the metric is a real number.

SquareMatrix

Defines a matrix with an equal number of elements in either dimension.

VectorSpace

Vectors that can be added together and multiplied by scalars form a VectorSpace.

Zero

Defines the additive identity for Self.

Functions

mat1x1

Returns a 1-by-1 square matrix.

mat2x2

Returns a 2-by-2 square matrix. Although matrices are stored column wise, the order of arguments is row by row, as a matrix would be typically displayed.

mat3x3

Returns a 3-by-3 square matrix.

mat4x4

Returns a 4-by-4 square matrix.

vec1
vec2
vec3
vec4

Type Definitions

Mat1x1

A 1-by-1 square matrix.

Mat2x2

A 2-by-2 square matrix.

Mat3x3

A 3-by-3 square matrix.

Mat4x4

A 4-by-4 square matrix.

TruncatedVector

A Vector with one fewer dimension than N.

Vector1

1-element vector.

Vector2

2-element vector.

Vector3

3-element vector.

Vector4

4-element vector.

Vector5

5-element vector.