Click or drag to resize

Altaxo.Calc.LinearAlgebra Namespace

Contains matrix and vector types, linear algebra algorithms, and related utilities.
Classes
 ClassDescription
Public classBandDoubleMatrix Represents a band matrix configuration for storing and manipulating a 2D array of double-precision floating-point numbers.
Public classCreateMatrix Provides convenience factory methods for creating matrices.
Public classCreateVector Provides convenience factory methods for creating vectors.
Public classDataColumnWrapper Provides wrappers that expose data columns as vectors and matrices.
Public classDataTableWrapper Wraps DataColumnCollections to matrices.
Public classDoubleBandMatrix Represents a band matrix in compact storage format (stored as a linear array).
Public classDoubleMatrixInArray1DColumnMajorRepresentation Wraps a linear array to a read-write matrix. The linear array is in column-major order, i.e. the first elements of the linear array belong to the first column of the matrix (i.e. the row values change more quickly). The index of the linear array is calculated as index = row + column*NumberOfRows. This representation is used for instance by LAPACK, Fortran, Julia, MATLAB, Octave, Scilab, GLSL and HLSL.
Public classDoubleMatrixInArray1DRowMajorRepresentation Wraps a linear array to a read-write matrix. The array is in row-major order, i.e. the first elements of the linear array belong to the first row of the matrix (the column values change more quickly). The index of the linear array is calculated as index = column + row * NumberOfColumns. This representation is used for instance by C, C++, Mathematica, Pascal and Python.
Public classFastNonnegativeLeastSquares Implementation of an algorithm that finds a vector x with all elements xi>=0 which minimizes |X*x-y|.
Public classGaussianEliminationSolverProvides implementation of Gaussian elimination with partial pivoting
Public classGenericVectorT Base class of the vector classes. Implements non-arithmetic stuff common to all vectors.
Public classIntegerVector Vector of integer elements.
Public classInvalidContentMatrixExceptionThe exception is thrown when a singular matrix is passed a method not expecting one.
Public classInvalidDimensionMatrixExceptionThe exception is thrown when a singular matrix is passed a method not expecting one.
Public classJaggedArrayMath This provides array math for a special case of matrices, so called jagged arrays.
Public classJaggedArrayMatrix JaggedArrayMatrix is a matrix implementation that is relatively easy to extend to the bottom, i.e. to append rows. It is horizontal oriented, i.e. the storage is as a number of horizontal vectors. Furthermore, as a compromise, it provides fully access to its underlying jagged array.
Public classLinearAlgebraExceptionRepresents errors that occur when using the dnA library.
Public classLinearAlgebraProviderSettings Provides access to linear algebra provider settings.
Public classLinearlySpacedIntervalByEndCountStep Defines a linearly spaced closed interval defined by end, number of elements, and step size.
Public classLinearlySpacedIntervalByEndCountStepSerializationSurrogate0 XML serialization surrogate for LinearlySpacedIntervalByEndCountStep.
Public classLinearlySpacedIntervalByStartCountStep Defines a linearly spaced closed interval defined by start, number of elements, and step size.
Public classLinearlySpacedIntervalByStartCountStepSerializationSurrogate0 Serialization surrogate for LinearlySpacedIntervalByStartCountStep.
Public classLinearlySpacedIntervalByStartEndCount Defines a linearly spaced closed interval defined by start, end, and number of elements.
Public classLinearlySpacedIntervalByStartEndCountSerializationSurrogate0 Serialization surrogate for LinearlySpacedIntervalByStartEndCount.
Public classLinearlySpacedIntervalByStartEndStep Defines a linearly spaced closed interval defined by start, end and step size.
Public classLinearlySpacedIntervalByStartEndStepSerializationSurrogate0 Surrogate class for XML serialization of LinearlySpacedIntervalByStartEndStep.
Public classMapackMatrixMatrix provides the fundamental operations of numerical linear algebra.
Public classMatrixT Defines the base class for Matrix classes.
Public classMatrixBuilderT Generic linear algebra type builder, for situations where a matrix or vector must be created in a generic way. Usage of generic builders should not be required in normal user code.
Public classMatrixExceptionRepresents errors that occur when using the matrix classes.
Public classMatrixExtensions Provides extension methods for converting matrices between numeric types.
Public classMatrixMath Class MatrixMath provides common static methods for matrix manipulation and arithmetic in tow dimensions.
Public classMatrixMathLeftSpineJaggedArrayMatrixT BEMatrix is a matrix implementation that is relatively easy to extend to the botton, i.e. to append rows. It is horizontal oriented, i.e. the storage is as a number of horizontal vectors.
Public classMatrixMathMatrixColumnROVectorT Wrapper for a matrix column to a read-only vector.
Public classMatrixMathMatrixColumnVectorT Wrapper for a matrix row to a vector.
Public classMatrixMathMatrixFromColumnMajorLinearArrayT Wraps a linear array to a read-write matrix. The array is column oriented, i.e. consecutive elements belong mostly to one column. This is the convention used for LAPACK routines.
Public classMatrixMathMatrixFromRowMajorLinearArrayT Wraps a linear array to a read-write matrix. The array is row oriented, i.e. consecutive elements belong mostly to one row.
Public classMatrixMathMatrixRowROVectorT Wrapper for a row of an existing matrix to a read-only vector.
Public classMatrixMathMatrixRowVectorT Wrapper for a matrix row to a vector.
Public classMatrixMathMatrixWithOneColumnT Implements a vertical vector, i.e. a matrix which has only one column, but many rows.
Public classMatrixMathMatrixWithOneRowT Implements a horizontal vector, i.e. a matrix which has only one row, but many columns.
Public classMatrixMathROMatrixFrom2DArrayT Wraps a 2d array to a read-only matrix.
Public classMatrixMathROMatrixFromColumnMajorLinearArrayT Wraps a linear array to a read-only matrix. The array is column oriented, i.e. consecutive elements belong mostly to one column. This is the convention used for LAPACK routines.
Public classMatrixMathROMatrixFromRowMajorLinearArrayT Wraps a linear array to a read-only matrix. The array is column oriented, i.e. consecutive elements belong mostly to one column. This is the convention used for LAPACK routines.
Public classMatrixMathRWMatrixFrom2DArrayT Wraps a 2D array to a read-only matrix.
Public classMatrixMathScalarAsMatrixT Implements a scalar as a special case of the matrix which has the dimensions (1,1).
Public classMatrixMathSingularValueDecomposition Class to calculate the singular value decomposition.
Public classMatrixMathTopSpineJaggedArrayMatrixT REMatrix is a matrix implementation that is relatively easy to extend to the right, i.e. to append columns. It is vertical oriented, i.e. the storage is as a number of vertical vectors.
Public classNotPositiveDefiniteExceptionThe exception is thrown when a none positive definite matrix is passed a method not expecting one.
Public classNotSquareMatrixExceptionThe exception is thrown when a none square matrix is passed a method not expecting one.
Public classRegularization Helper class to add regularization terms to linear algebra problems. Regularization is used to stabilize the solution of ill-posed problems by adding additional constraints that enforce smoothness or other desired properties on the solution. For this, the parameters of the linear equation system must have the same meaning and order of magnitude. Regularization is typically applied in least squares problems to prevent overfitting and improve the generalization of the solution. Examples are Inverse Laplace transformations, deconvolution problems.
Public classRODoubleMatrixInArray1DColumnMajorRepresentation Wraps a linear array to a read-only matrix. The linear array is in column-major order, i.e. the first elements of the linear array belong to the first column of the matrix (i.e. the row values change more quickly). The index of the linear array is calculated as index = row + column*NumberOfRows. This representation is used for instance by LAPACK, Fortran, Julia, MATLAB, Octave, Scilab, GLSL and HLSL.
Public classRODoubleMatrixInArray1DRowMajorRepresentation Wraps a linear array to a read-only matrix. The array is in row-major order, i.e. the first elements of the linear array belong to the first row of the matrix (the column values change more quickly). The index of the linear array is calculated as index = column + row*NumberOfColumns. This representation is used for instance by C, C++, Mathematica, Pascal and Python.
Public classROVectorBaseT Base class for read-only vector implementations.
Public classSingularMatrixExceptionThe exception is thrown when a singular matrix is passed a method not expecting one.
Public classSparseDoubleVector Represents a sparse vector of double-precision values.
Public classTikhonovRegularizedNonnegativeMatrixFactorization Provides routines for nonnegative matrix factorization with Tikhonov regularization.
Public classVectorT Defines the generic class for Vector classes.
Public classVectorBuilderT Generic linear algebra type builder, for situations where a matrix or vector must be created in a generic way. Usage of generic builders should not be required in normal user code.
Public classVectorExtensions Provides conversion helpers for vectors with common numeric element types.
Public classVectorMath VectorMath provides common static functions concerning vectors.
Protected classVectorMathROVectorWrapperOfIROVectorT Provides a read-only wrapper around an IReadOnlyListT to represent a subvector.
Protected classVectorMathVectorWrapperOfIVectorT Provides a read-write wrapper around an IVectorT to represent a subvector.
Public classVectorSpacingEvaluator Statistics of the spacing between adjacent vector elements. The spaces are defined in the forward direction, i.e. as vec[i+1]-vec[i].
Structures
 StructureDescription
Public structureMatrixWrapperStructForColumnMajorOrderLinearArrayT Very thin wrapper structure that wraps a column major order linear array, i.e. consecutive elements of the linear array belong most probably to the same column, to provide information on number of rows and columns. Attention: this is not LAPACK convention (!)).
Public structureMatrixWrapperStructForLeftSpineJaggedArrayT Very thin wrapper structure around a jagged array just to provided number of rows and columns along with the array itself. The spine array is oriented vertically, thus access to the array is down by array[row][column].
Public structureMatrixWrapperStructForRowMajorOrderLinearArrayT Thin wrapper structure that wraps a row major order linear array, i.e. consecutive elements of the linear array belong most probably to the same row, to provide information on number of rows and columns. Attention: this is not LAPACK convention (!)). If using LAPACK, you need column major order (MatrixWrapperStructForColumnMajorOrderLinearArrayT).
Public structureMatrixWrapperStructForTopSpineJaggedArrayT Very thin wrapper structure around a jagged array just to provided number of rows and columns along with the array itself. The spine array is oriented vertically, i.e. the rows protruding to the right from the spine array. Access to the underlying array is done by array[row][column].
Public structureVectorMathRODoubleArrayWrapperStructAmendedUnshifted Serves as thin wrapper struct for an array when additional data at the start and the end of the array are neccessary.
Public structureVectorMathROFloatArrayWrapperStructAmendedUnshifted Serves as thin wrapper struct for an array when additional data at the start and the end of the array are neccessary.
Public structureVectorMathROIntArrayWrapperStructAmendedUnshifted Serves as thin wrapper struct for an array when additional data at the start and the end of the array are neccessary.
Public structureVectorMathROSByteArrayWrapperStructAmendedUnshifted Serves as thin wrapper struct for an array when additional data at the start and the end of the array are neccessary.
Public structureVectorMathROShortArrayWrapperStructAmendedUnshifted Serves as thin wrapper struct for an array when additional data at the start and the end of the array are neccessary.
Interfaces
 InterfaceDescription
Public interfaceIBottomExtensibleComplexDoubleMatrix Extends IComplexDoubleMatrix in a way that another matrix of appropriate dimensions can be appended to the bottom of the matrix.
Public interfaceIBottomExtensibleComplexFloatMatrix Extends IComplexFloatMatrix in a way that another matrix of appropriate dimensions can be appended to the bottom of the matrix.
Public interfaceIBottomExtensibleMatrixT IBottomExtensibleMatrix extends IMatrix in a way that another matrix of appropriate dimensions can be appended to the bottom of the matrix.
Public interfaceICholeskyDecomposition Cholesky Decomposition of a symmetric, positive definite matrix.
Public interfaceIComplexDoubleMatrix Represents the simplest form of a 2D matrix of Altaxo.Calc.LinearAlgebra.Complex values, which is readable and writeable.
Public interfaceIComplexDoubleSequence Represents a read-only indexed sequence of complex double-precision values.
Public interfaceIComplexDoubleVector Interface for a readable and writeable vector of Complex values.
Public interfaceIComplexFloatMatrix Represents the simplest form of a 2D matrix of Complex32 values, which is readable and writeable.
Public interfaceIComplexFloatSequence Interface for a sequence of Complex values.
Public interfaceIComplexFloatVector Interface for a readable and writeable vector of Complex values.
Public interfaceIEigenvalueDecomposition Determines the eigenvalues and eigenvectors of a real square matrix.
Public interfaceIExtensibleComplexDoubleMatrix Extends IComplexDoubleMatrix in a way that another matrix of appropriate dimensions can be appended either to the right or to the bottom of the matrix.
Public interfaceIExtensibleComplexDoubleVector Special vector to which another vector can be appended to.
Public interfaceIExtensibleComplexFloatMatrix Extends IComplexFloatMatrix in a way that another matrix of appropriate dimensions can be appended either to the right or to the bottom of the matrix.
Public interfaceIExtensibleComplexFloatVector Special vector to which another vector can be appended to.
Public interfaceIExtensibleMatrixT IExtensibleMatrix extends IMatrix in a way that another matrix of appropriate dimensions can be appended either to the right or to the bottom of the matrix.
Public interfaceIExtensibleVectorT Extends IVectorT in a way that another vector can be appended at the end of this vector.
Public interfaceILinearEquationSolverT Interface to a solver for linear equations. The procedure can either be non-destructive (keeping the matrix and the vector b), or destructive (not keeping matrix m and vector b). The destructive solving process may be faster, since saving of the matrix and the vector is not required.
Public interfaceILuDecomposition LU decomposition of a rectangular matrix.
Public interfaceIMapackMatrixMatrix provides the fundamental operations of numerical linear algebra.
Public interfaceIMatrixT IMatrix represents the simplest form of a 2D matrix, which is readable and writeable.
Public interfaceIMatrixInArray1DColumnMajorRepresentationTElement Designates that the matrix is represented as a linear array of TElement values. The linear array is in column-major order, i.e. the first elements of the linear array belong to the first column of the matrix (i.e. the row values change more quickly). The index of the linear array is calculated as index = row + column*NumberOfRows. This representation is used for instance by Fortran, Julia, MATLAB, Octave, Scilab, GLSL and HLSL.
Public interfaceIMatrixInArray1DRowMajorRepresentationTElement Designates that the matrix is represented as a linear array of TElement values. The array is in row-major order, i.e. the first elements of the linear array belong to the first row of the matrix (the column values change more quickly). The index of the linear array is calculated as index = column + row*NumberOfColumns. This representation is used for instance by C, C++, Mathematica, Pascal and Python.
Public interfaceIMatrixLevel1T IMatrixLevel1 represents the simplest form of a 2D matrix, which is readable and writeable, and provides level-1 matrix operations.
Public interfaceINumericSequenceT Interface to a sequence of elements with unknown length.
Public interfaceIQrDecomposition QR decomposition for a rectangular matrix.
Public interfaceIRightExtensibleComplexDoubleMatrix Extends IComplexDoubleMatrix in a way that another matrix of appropriate dimensions can be appended to the right of the matrix.
Public interfaceIRightExtensibleComplexFloatMatrix Extends IComplexFloatMatrix in a way that another matrix of appropriate dimensions can be appended to the right of the matrix.
Public interfaceIRightExtensibleMatrixT IRightExtensibleMatrix extends IMatrix in a way that another matrix of appropriate dimensions can be appended to the right of the matrix.
Public interfaceIROBandMatrixT IROBandMatrix represents a read-only band matrix of values.
Public interfaceIROComplexDoubleMatrix IROMatrix represents a read-only matrix of Altaxo.Calc.LinearAlgebra.Complex values.
Public interfaceIROComplexDoubleVector Interface for a read-only vector of Complex values.
Public interfaceIROComplexFloatMatrix IROMatrix represents a read-only matrix of Complex32 values.
Public interfaceIROComplexFloatVector Interface for a read-only vector of Complex values.
Public interfaceIROMatrixT IROMatrix represents a read-only matrix of values.
Public interfaceIROMatrixLevel1T Operations on matrices which do not change the matrix instance.
Public interfaceIROSparseMatrixT IROSparseMatrix represents a read-only sparse matrix of values.
Public interfaceISingularValueDecomposition Singular Value Decomposition for a rectangular matrix.
Public interfaceISpacedInterval Represents an immutable interval with evenly spaced values.
Public interfaceIVectorT Interface for a a readable and writeable vector vector of values.
Enumerations
 EnumerationDescription
Public enumerationExistingData Specifies assumptions about data already present in a target storage area.
Public enumerationLinearAlgebraProvider Identifies the linear algebra provider to use.
Public enumerationSymmetricity Specifies whether a matrix is known to be symmetric or Hermitian.
Public enumerationZeros Specifies how zero values should be treated during linear algebra operations.