Eigen: Dense and Sparse Matrices#
Text explaining this chapter
The source code for the C# tests in Visual Studio is divided in 4 parts:
Part 1 contains the source code for test procedures which work for real and complex dense matrices, and which work for floating point and ball arithmetic. It can be found online in the XlCalcNet repository or in the corresponding local XlCalcNet folder in the file B06a_MatAll.cs.
Part 2 contains the source code for test procedures which work for real and complex dense matrices, but which work only for floating point arithmetic. It can be found online in the XlCalcNet repository or in the corresponding local XlCalcNet folder in the file B06b_MatFp.cs.
Part 3 contains the source code for test procedures which work only for real dense matrices, and only for floating point arithmetic. It can be found online in the XlCalcNet repository or in the corresponding local XlCalcNet folder in the file B06c_MatFpReal.cs.
Part 4 contains the source code for test procedures which work only for real and complex sparse matrices, and only for floating point arithmetic. It can be found online in the XlCalcNet repository or in the corresponding local XlCalcNet folder in the file B06d_SpMat.cs.
Eigen: Dense and Sparse Matrices
- Creating scalars and matrices
- Creating a matrix, and converting from compatible data types
- Creating a matrix of zeros
- Creating a matrix of ones
- Creating an identity matrix
- Creating a matrix with linearly increasing values
- Creating a general random matrix
- Creating a symmetric random matrix
- Creating a self-adjoint random matrix
- Creating a positive definite self-adjoint matrix
- Read-only properties: information about a matrix
- Accessing and setting parts of a matrix
- Getting and setting a matrix coefficient
- Getting and setting a matrix row
- Getting and setting a matrix column
- Getting and setting a block
- Getting and setting a block in the top left corner
- Getting and setting a block in the bottom left corner
- Getting and setting a block in the top right corner
- Getting and setting a block in the bottom right corner
- Getting and setting a block containing the first q rows
- Getting and setting a block containing the last q rows
- Getting and setting a block containing the first p columns
- Getting and setting a block containing the last q columns
- Getting and setting a diagonal
- Getting and setting middle rows
- Getting and setting middle columns
- Getting and setting the lower triangle
- Getting and setting the upper triangle
- Getting and setting the strictly lower triangle
- Getting and setting the strictly upper triangle
- Getting and setting the unit lower triangle
- Getting and setting the unit upper triangle
- Changing the shape of a matrix and/or the order of coefficients
- Sorting a whole matrix
- Sorting the rows of a matrix by a given column
- Sorting a whole matrix in place
- Sorting the rows of a matrix by a given column, in place
- Resize a matrix
- Conservatively resize a matrix
- Convert vector to diagonal matrix
- Adjoint of a matrix
- Conjugate of a matrix
- Transpose of a matrix
- Full Reverse of a matrix
- Row-wise Reverse of a matrix
- Column-wise Reverse of a matrix
- Full Replication of a matrix
- Row-wise Replication of a matrix
- Column-wise Replication of a matrix
- Horizontal concatenation of two matrices
- Vertical concatenation of two matrices
- Basic arithmetic operations
- Matrix deep copy (unary plus)
- Matrix negation (unary minus)
- General matrix addition
- Matrix addition of a vector as diagonal matrix
- Matrix: addition of a scalar
- General matrix subtraction
- Matrix: subtraction of a scalar
- General matrix multiplication (“gemm”)
- Rank-k update (“syrk”, “herk”)
- Rank-2k update (“syr2k”, “her2k”)
- Quadratic forms (statistics), and related expressions
- Matrix Multiplication with a selfadjoint matrix (“symm”, “hemm”)
- Matrix Multiplication with a triangular matrix (“trmm”)
- Matrix multiplication with a vector as diagonal matrix
- Matrix coefficient-wise multiplication (array multiplication)
- Matrix Multiplication with scalar
- Matrix multiplication with the inverse of a general invertible matrix (“matrix division”)
- Matrix multiplication with the inverse of a self-adjoint matrix (“ldlt solve”)
- Matrix multiplication with the inverse of a triangular matrix (“trsm”)
- Matrix coefficient-wise division (array division)
- Matrix division by scalar
- Arithmetic comparisons with a scalar or a matrix
- Descriptive Statistics
- Standard decompositions and linear solving
- Singular Value and Eigen (selfadjoint) decompositions
- Singular Value Decomposition, only singular values
- Singular Value Decomposition, singular values and thin singular vectors
- Singular Value Decomposition, singular values and full singular vectors
- Symmetric/Hermitian Eigensystem, only eigen values
- Symmetric/Hermitian Eigensystem, eigenvalues and eigenvectors
- Generalized Selfadjoint Eigensystem, only eigenvalues
- Generalized Selfadjoint Eigensystem: eigenvalues and eigenvectors
- Tridiagonalization
- Square root of a selfadjoint matrix
- Eigen decompositions of general square matrices
- Matrix balancing and eigenvalue/eigenvector computation
- Hessenberg Decomposition
- Schur Decomposition
- Eigensystem of a general square matrix: only eigenvalues
- Eigensystem of a general square matrix: eigenvalues and eigenvectors
- Real QZ Decomposition
- PseudoEigenSystem
- Real Generalized Nonsymmetric Eigenvalues
- Real Generalized Nonsymmetric Eigensystem
- Eigen: Functions of matrix argument
- Eigen: Fast Fourier Transform