Function/procedures of ChroMathsome - Linear Algebra, basic version.
====================================================================
procedure InitRealMatrix(var M: RealMatrix; Rows, Cols: integer);
procedure DestroyRealMatrix(M: RealMatrix);
procedure InitComplexMatrix(var M: ComplexMatrix; Rows, Cols: integer);
procedure DestroyComplexMatrix(M: ComplexMatrix);
procedure Random_RealMatrix(var M: RealMatrix; Range: integer);
procedure Random_ComplexMatrix(var M: ComplexMatrix; Range: integer);
procedure Copy_RealMatrix(var M: RealMatrix; M2: RealMatrix);
procedure Copy_ComplexMatrix(var M: ComplexMatrix; M2: ComplexMatrix);
procedure Redimension_RealMatrix(var M: RealMatrix; NewRow, NewCol: integer);
procedure Redimension_ComplexMatrix(var M: ComplexMatrix; NewRow, NewCol: integer);

procedure RealMatrix_Addition(var M: RealMatrix; M1, M2: RealMatrix);
procedure ComplexMatrix_Addition(var M: ComplexMatrix; M1, M2: ComplexMatrix);
procedure RealMatrix_Subtraction(var M: RealMatrix; M1, M2: RealMatrix);
procedure ComplexMatrix_Subtraction(var M: ComplexMatrix; M1, M2: ComplexMatrix);
procedure RealMatrix_Multiplication(var M: RealMatrix; M1, M2: RealMatrix);
procedure ComplexMatrix_Multiplication(var M: ComplexMatrix; M1, M2: ComplexMatrix);
procedure AddReal_ComplexMatrix(var M: ComplexMatrix; M1: RealMatrix; M2: ComplexMatrix);
procedure SubtractReal_ComplexMatrix(var M: ComplexMatrix; M1: RealMatrix; M2: ComplexMatrix);
procedure MultiplyReal_ComplexMatrix(var M: ComplexMatrix; M1: RealMatrix; M2: ComplexMatrix);
procedure MultiplyComplex_RealMatrix(var M: ComplexMatrix; M1: ComplexMatrix; M2: RealMatrix);
procedure RealMatrix_RealScalarMultiplication(var M: RealMatrix; x: extended);
procedure ComplexMatrix_ComplexScalarMultiplication(var M: ComplexMatrix; c: complex);
procedure RealMatrix_ComplexScalarMultiplication(var M: ComplexMatrix; MOrig: RealMatrix; c: complex);
procedure ComplexMatrix_RealScalarMultiplication(var M: ComplexMatrix; x: extended);
procedure RealMatrixRow_RealScalarMultiplication(var M: RealMatrix; x: extended; Row: integer);
procedure RealMatrixColumn_RealScalarMultiplication(var M: RealMatrix; x: extended; Column: integer);
procedure ComplexMatrixRow_RealScalarMultiplication(var M: ComplexMatrix; c: Complex; Row: integer);
procedure ComplexMatrixColumn_RealScalarMultiplication(var M: ComplexMatrix; c: Complex; Column: integer);

procedure RealMatrix_Transpose(var M: RealMatrix);
procedure ComplexMatrix_Transpose(var M: ComplexMatrix);
function RealMatrix_Trace(M: RealMatrix): extended;
function ComplexMatrix_Trace(M: ComplexMatrix): complex;
function RealMatrix_Norm(M: RealMatrix): extended;
function ComplexMatrix_Norm(M: ComplexMatrix): complex;
procedure ComplexMatrix_Conjugate(var M: ComplexMatrix);
procedure ComplexMatrix_HermiteConjugate(var M: ComplexMatrix);
procedure RealMatrix_ToPower(var M: RealMatrix; x: integer);
procedure ComplexMatrix_ToPower(var M: ComplexMatrix; x: integer);

procedure NilRealMatrix(var M: RealMatrix);
procedure NilComplexMatrix(var M: ComplexMatrix);
procedure RealIdentityMatrix(var M: RealMatrix);
procedure ComplexIdentityMatrix(var M: ComplexMatrix);
procedure RealDiagonalMatrix(var M: RealMatrix; V: RealVector);
procedure ComplexDiagonalMatrix(var M: ComplexMatrix; V: ComplexVector);
procedure RealHilbertMatrix(var M: RealMatrix);
procedure ComplexHilbertMatrix(var M: ComplexMatrix);
procedure FourierMatrix(var M, U: ComplexMatrix);
procedure RealVandermondeMatrix(var M: RealMatrix; V: RealVector);
procedure ComplexVandermondeMatrix(var M: ComplexMatrix; V: ComplexVector);
procedure RealAugmentedMatrix(var M: RealMatrix);
procedure ComplexAugmentedMatrix(var M: ComplexMatrix);

procedure RealToComplexMatrix(var M: ComplexMatrix; M1, M2: RealMatrix);
procedure ComplexToRealMatrix(var RPart, CPart: RealMatrix; M: ComplexMatrix);
procedure RealMatrix_SwapRows(var M: RealMatrix; Row1, Row2: integer);
procedure ComplexMatrix_SwapRows(var M: ComplexMatrix; Row1, Row2: integer);
procedure RealMatrix_SwapColumns(var M: RealMatrix; Col1, Col2: integer);
procedure ComplexMatrix_SwapColumns(var M: ComplexMatrix; Col1, Col2: integer);
procedure RealMatrix_ReplaceElement(var M: RealMatrix; Row, Col: integer; x: extended);
procedure ComplexMatrix_ReplaceElement(var M: ComplexMatrix; Row, Col: integer; c: complex);
procedure RealSubMatrix(var M: RealMatrix; MOrig: RealMatrix; Row1, Row2, Col1, Col2: integer);
procedure ComplexSubMatrix(var M: ComplexMatrix; MOrig: ComplexMatrix; Row1, Row2, Col1, Col2: integer);

procedure RealVectorToRealMatrix(var M: RealMatrix; V: RealVector);
procedure ComplexVectorToComplexMatrix(var M: ComplexMatrix; V: ComplexVector);
procedure RealMatrixToRealVector(var V: RealVector; M: RealMatrix);
procedure ComplexMatrixToComplexVector(var V: ComplexVector; M: ComplexMatrix);
procedure RealMatrixRowToRealVector(var V: RealVector; M: RealMatrix; index: integer);
procedure ComplexMatrixRowToComplexVector(var V: ComplexVector; M: ComplexMatrix; index: integer);
procedure RealMatrixColToRealVector(var V: RealVector; M: RealMatrix; index: integer);
procedure ComplexMatrixColToComplexVector(var V: ComplexVector; M: ComplexMatrix; index: integer);
procedure RealMatrixDiagonalToRealVector(var V: RealVector; M: RealMatrix);
procedure ComplexMatrixDiagonalToComplexVector(var V: ComplexVector; M: ComplexMatrix);
procedure RealMatrix_AddRow(var M: RealMatrix; V: RealVector);
procedure ComplexMatrix_AddRow(var M: ComplexMatrix; V: ComplexVector);
procedure RealMatrix_AddColumn(var M: RealMatrix; V: RealVector);
procedure ComplexMatrix_AddColumn(var M: ComplexMatrix; V: ComplexVector);
procedure RealMatrix_DeleteRow(var M: RealMatrix; Index: integer);
procedure ComplexMatrix_DeleteRow(var M: ComplexMatrix; Index: integer);
procedure RealMatrix_DeleteColumn(var M: RealMatrix; Index: integer);
procedure ComplexMatrix_DeleteColumn(var M: ComplexMatrix; Index: integer);
procedure RealMatrix_InsertRow(var M: RealMatrix; V: RealVector; index: integer);
procedure ComplexMatrix_InsertRow(var M: ComplexMatrix; V: ComplexVector; index: integer);
procedure RealMatrix_InsertColumn(var M: RealMatrix; V: RealVector; index: integer);
procedure ComplexMatrix_InsertColumn(var M: ComplexMatrix; V: ComplexVector; index: integer);
procedure RealMatrix_ReplaceRow(var M: RealMatrix; V: RealVector; index: integer);
procedure ComplexMatrix_ReplaceRow(var M: ComplexMatrix; V: ComplexVector; index: integer);
procedure RealMatrix_ReplaceColumn(var M: RealMatrix; V: RealVector; index: integer);
procedure ComplexMatrix_ReplaceColumn(var M: ComplexMatrix; V: ComplexVector; index: integer);

{ Matrix test functions.}
function RealMatrix_IsOrthogonal(M: RealMatrix): extended;
function RealMatrix_IsSymmetric(M: RealMatrix): extended;
function RealMatrix_IsSkewSymmetric(M: RealMatrix): extended;
function RealMatrix_IsNormal(M: RealMatrix): extended;
function RealMatrix_IsIdemPotent(M: RealMatrix): extended;
function ComplexMatrix_IsOrthogonal(M: ComplexMatrix): extended;
function ComplexMatrix_IsSymmetric(M: ComplexMatrix): extended;
function ComplexMatrix_IsSkewSymmetric(M: ComplexMatrix): extended;
function ComplexMatrix_IsNormal(M: ComplexMatrix): extended;
function ComplexMatrix_IsIdemPotent(M: ComplexMatrix): extended;

{ Vector functions. }
procedure InitRealVector(var V: RealVector; Dimension: integer);
procedure DestroyRealVector(V: RealVector);
procedure InitComplexVector(var V: ComplexVector; Dimension: integer);
procedure DestroyComplexVector(V: ComplexVector);
procedure NilRealVector(var V: RealVector);
procedure NilComplexVector(var V: ComplexVector);
procedure Random_RealVector(var V: RealVector; Range: integer);
procedure Random_ComplexVector(var V: ComplexVector; Range: integer);
procedure Copy_RealVector(var V, V2: RealVector);
procedure Copy_ComplexVector(var V, V2: ComplexVector);
procedure Redimension_RealVector(var V: RealVector; NewDimension: integer);
procedure Redimension_ComplexVector(var V: ComplexVector; NewDimension: integer);
procedure RealToComplexVector(var V: ComplexVector; V1, V2: RealVector);
procedure ComplexToRealVector(var RPart, CPart: RealVector; V: ComplexVector);

procedure RealVector_AddElement(var V: RealVector; x: extended);
procedure ComplexVector_AddElement(var V: ComplexVector; c: complex);
procedure RealVector_SwapElements(var V: RealVector; index1, index2: integer);
procedure ComplexVector_SwapElements(var V: ComplexVector; index1, index2: integer);
procedure RealVector_ReplaceElement(var V: RealVector; Index: integer; x: extended);
procedure ComplexVector_ReplaceElement(var V: ComplexVector; Index: integer; c: complex);
procedure RealVector_InsertElement(var V: RealVector; Index: integer; x: extended);
procedure ComplexVector_InsertElement(var V: ComplexVector; Index: integer; c: complex);
procedure RealVector_DeleteElement(var V: RealVector; Index: integer);
procedure ComplexVector_DeleteElement(var V: ComplexVector; Index: integer);
procedure RealSubVector(var V: RealVector; VOrig: RealVector; index1, index2: integer);
procedure ComplexSubVector(var V: ComplexVector; VOrig: ComplexVector; index1, index2: integer);

function RealVector_Norm(V: RealVector): extended;
function ComplexVector_Norm(V: ComplexVector): complex;
function RealVector_Distance(V1, V2: RealVector): extended;
function ComplexVector_Distance(V1, V2: ComplexVector): complex;
procedure RealUnit_Vector(var V: RealVector);
procedure ComplexUnit_Vector(var V: ComplexVector);
function RealVector_Angle(V1, V2: RealVector): extended;
function ComplexVector_Angle(V1, V2: ComplexVector): complex;
function RealVector_DotProduct(V1, V2: RealVector): extended;
function ComplexVector_DotProduct(V1, V2: ComplexVector): complex;
procedure RealVector_CrossProduct(var V, V1, V2: RealVector);
procedure ComplexVector_CrossProduct(var V, V1, V2: ComplexVector);
procedure RealVector_RealScalarMultiplication(var V: RealVector; x: extended);
procedure ComplexVector_ComplexScalarMultiplication(var V: ComplexVector; c: complex);
procedure RealVector_ComplexScalarMultiplication(var V: ComplexVector; VOrig: RealVector; c: complex);
procedure ComplexVector_RealScalarMultiplication(var V: ComplexVector; x: extended);

procedure RealVector_Addition(var V: Realvector; V1, V2: RealVector);
procedure ComplexVector_Addition(var V: Complexvector; V1, V2: ComplexVector);
procedure RealVector_Subtraction(var V: Realvector; V1, V2: RealVector);
procedure ComplexVector_Subtraction(var V: ComplexVector; V1, V2: ComplexVector);
procedure AddReal_ComplexVector(var V: ComplexVector; V1: RealVector; V2: ComplexVector);
procedure SubtractReal_ComplexVector(var V: ComplexVector; V1: RealVector; V2: ComplexVector);


ChroMathsome - Linear Algebra Pro add-on.
=========================================
procedure RealMatrix_GaussNormalForm(var M: RealMatrix);
procedure ComplexMatrix_GaussNormalForm(var M: ComplexMatrix);
function RealMatrix_Determinant(M: RealMatrix): extended;
function ComplexMatrix_Determinant(M: ComplexMatrix): complex;
procedure RealMatrix_HermiteNormalForm(var M: RealMatrix);
procedure ComplexMatrix_HermiteNormalForm(var M: ComplexMatrix);
procedure RealMatrix_Inverse(var M: RealMatrix);
procedure ComplexMatrix_Inverse(var M: ComplexMatrix);
function RealMatrix_Rank(M: RealMatrix): integer;
function ComplexMatrix_Rank(M: ComplexMatrix): integer;
procedure RealMatrix_Minor(var Minor: RealMatrix; M: RealMatrix; Row, Col: integer);
procedure ComplexMatrix_Minor(var Minor: ComplexMatrix; M: ComplexMatrix; Row, Col: integer);
function RealMatrix_CoFactor(M: RealMatrix; Row, Col: integer): extended;
function ComplexMatrix_CoFactor(M: ComplexMatrix; Row, Col: integer): complex;
procedure RealMatrix_Adjoint(var M: RealMatrix);
procedure ComplexMatrix_Adjoint(var M: ComplexMatrix);
procedure RealFrobeniusMatrix(var M: RealMatrix; V: RealVector);
procedure RealMatrix_HessenbergForm(var M: RealMatrix);
procedure RealMatrix_Eigenvalues(var V: ComplexVector; M: RealMatrix);
procedure RealMatrix_CharacteristicEquation(var V: RealVector; M: RealMatrix);
procedure RealMatrix_SingularValueDecomposition(var A, V: RealMatrix; var w: RealVector);
procedure SysOfEquations(var M: RealMatrix; CoM: RealMatrix; CoV: RealVector);






