Introduction
B4P provides a library of powerful matrix functions. While vectors are modeled as 1-dimensional sets containing numerals,
matrices are modeled as sets (rows) containing sets containing numerals (columns).
Example: {{ 1, 2, 3 }, { 4, 5, 6 }} is a matrix consisting of 2 rows and 3 columns:
| 1 2 3 |
| 4 5 6 |
- mmul: Matrix multiplication
- minv: Matrix inversion
- mdiv: Matrix division
- mdet: Calculates determinant
- linear: Solves a set of linear equations (Gaussian elimination)
You may possibly be missing the functions like madd and msub for addition and subtraction. These two operations can be
implmented with direct matrix mathematics using deep operators as shown below:
- Matrix addition: a[] +^^ b[]
- Matrix subtraction: a[] -^^ b[]
- Scalar multiplication: a[] *^^ b[]
- Scalar division: a[] /^^ b[]
Following functions, also described in this section, allow any types in their matrices because contents are only moved and not calculated:
- horizontal: Converts a flat or vertical matrix to a horizontal matrix (1 row, several column elements)
- vertical: Converts a flat or horizontal matrix to a vertical matrix (1 column, several row elements)
- flat: Flattens the matrix to all values arranged in a simple set
- diagonal: Creates a matrix with values along the diagonal and zero in the remaining fields
- transpose: Transposes a matrix
Procedures and Functions Provided:
Identity Matrix:
identity
matrix multiplication, matrix division:
mdiv
mmul
matrix inversion:
minv
matrix determinant:
mdet
linear equation:
linear
Make matrix horizontal:
horizontal
Make matrix vertical:
vertical
Flatten matrix:
flat
Put values diagonally into matrix:
diagonal
transpose matrix:
transpose
flip matrix:
flip horizontally
flip vertically
rotate matrix:
rotate left
rotate right
compose matrix
echo matrix
print matrix