Flag4j is a fast linear algebra library for Java and provides operations and linear algebra routines for real/complex sparse/dense tensors, matrices, and vectors.
Flag4j is currently in the final steps of development before an initial beta release. Nearly all features have been fully implemented or at least have a rudimentary beta implementation. There is still some work to be done for sparse tensors and matrices. Once that has been completed, a beta release will be imminent.
Highlighted features are a work in progress and currently not fully implemented.
- Complex Numbers
- Vectors
- Real Dense Vector
- Real Sparse Vector
- Complex Dense Vector
- Complex Sparse Vector
- Matrices
- Real Dense Matrix
- Real Sparse Matrix
- Complex Dense Matrix
- Complex Sparse Matrix
- Tensors
- Real Dense Tensor
- Real Sparse Tensor
- Complex Dense Tensor
- Complex Sparse Tensor
- Basic Arithmetic Operations: Add, subtract, scalar/element multiply, scalar/element divide, etc.
- Basic Properties: Tensor/matrix/vector shape, non-zero entries, etc.
- Basic Manipulations: Insert, join/stack/augment, extract, etc.
- Basic Comparisons: Equal, same shape, etc.
- Vector Operations
- Arithmetic: Inner/outer/cross product, vector norms, etc.
- Comparisons: Parallel, orthogonal, etc.
- Matrix Operations
- Arithmetic: Matrix multiplication, transpose, matrix norms, inverse, pseudo-inverse, etc.
- Features: Matrix rank, symmetric, definiteness, eigenvalues and vectors, singularity, triangular, etc.
- Comparisons: Similar, etc.
- Tensor Operations:
- Arithmetic: Tensor dot product, tensor transpose, etc.
- Comparisons: Tensor rank/dimension, etc.
- LU Decompositions
- No pivoting
- Partial Pivoting
- Full Pivoting
- QR Decomposition
- Householder Reflectors
- Full/Reduced
- Cholesky Decomposition
- Hessenburg Decomposition
- Eigen/Schur Decompositions
- Singular Value Decomposition
- Exact solution for well determined systems
- Least Squares solution
- Scale
- Shift
- Rotate
- Affine
- Projections
- Orthographic
- Perspective
- Random Complex Numbers
- Random Matrices
- Orthogonal, Unitary, symmetric, triangular, etc.
- Random Vectors
- Random Tensors
- Read/Write tensors, matrices, and vectors to/from a file.