Skip to content
OFFICIAL SS DOCUMENTATION

SS.LinearAlgebra 1.7.0

Dense/tensor/sparse algebra, reusable sparse LU, ILU(0), nonsymmetric and symmetric-indefinite Krylov solves, sparse conditioning, decompositions, eigenanalysis, residuals, and diagnostics
API 1.7.0
MIT
source

Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0

No package dependencies declared.

Public API

Public signature
export function biConjugateGradientStabilizedJacobi(CsrMatrix matrix, double[] right, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations) -> SolverResult

Parameters: matrix: CsrMatrix, right: double[], initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int


Public signature
export function choleskyFactor(DenseMatrix matrix, double tolerance) -> CholeskyFactorization

Parameters: matrix: DenseMatrix, tolerance: double


Public signature
export record CholeskyFactorization(public double[] lower, public int size, public double tolerance)

Parameters: lower: double[], size: int, tolerance: double


Public signature
export function conditionEstimate(DenseMatrix matrix, double tolerance) -> double

Parameters: matrix: DenseMatrix, tolerance: double


Public signature
export function conjugateGradient(CsrMatrix matrix, double[] right, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations) -> SolverResult

Parameters: matrix: CsrMatrix, right: double[], initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int


Public signature
export function conjugateGradientJacobi(CsrMatrix matrix, double[] right, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations) -> SolverResult

Parameters: matrix: CsrMatrix, right: double[], initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int


Public signature
export function cscGet(CscMatrix matrix, int row, int column) -> double

Parameters: matrix: CscMatrix, row: int, column: int


Public signature
export function cscMatrix(double[] values, int[] rows, int[] columnOffsets, int rowCount, int columns) -> CscMatrix

Parameters: values: double[], rows: int[], columnOffsets: int[], rowCount: int, columns: int


Public signature
export record CscMatrix(public double[] values, public int[] rowIndices, public int[] columnOffsets, public int rows, public int columns)

Parameters: values: double[], rowIndices: int[], columnOffsets: int[], rows: int, columns: int


Public signature
export function cscMultiply(CscMatrix matrix, double[] vector) -> double[]

Parameters: matrix: CscMatrix, vector: double[]


Public signature
export function cscToDense(CscMatrix matrix) -> DenseMatrix

Parameters: matrix: CscMatrix


Public signature
export function csrGet(CsrMatrix matrix, int row, int column) -> double

Parameters: matrix: CsrMatrix, row: int, column: int


Public signature
export function csrMatrix(double[] values, int[] columns, int[] rowOffsets, int rows, int columnCount) -> CsrMatrix

Parameters: values: double[], columns: int[], rowOffsets: int[], rows: int, columnCount: int


Public signature
export record CsrMatrix(public double[] values, public int[] columnIndices, public int[] rowOffsets, public int rows, public int columns)

Parameters: values: double[], columnIndices: int[], rowOffsets: int[], rows: int, columns: int


Public signature
export function csrMultiply(CsrMatrix matrix, double[] vector) -> double[]

Parameters: matrix: CsrMatrix, vector: double[]


Public signature
export function csrToDense(CsrMatrix matrix) -> DenseMatrix

Parameters: matrix: CsrMatrix


Public signature
export function denseBackwardError(DenseMatrix matrix, double[] values, double[] right) -> double

Parameters: matrix: DenseMatrix, values: double[], right: double[]


Public signature
export function denseMatrix(double[] values, int rows, int columns) -> DenseMatrix

Parameters: values: double[], rows: int, columns: int


Public signature
export record DenseMatrix(public double[] values, public int rows, public int columns)

Parameters: values: double[], rows: int, columns: int


Public signature
export function DenseMatrix_add(DenseMatrix left, DenseMatrix right) -> DenseMatrix

Parameters: left: DenseMatrix, right: DenseMatrix


Public signature
export function DenseMatrix_get(DenseMatrix self, int index) -> double

Parameters: self: DenseMatrix, index: int


Public signature
export function DenseMatrix_multiply(DenseMatrix left, DenseMatrix right) -> DenseMatrix

Parameters: left: DenseMatrix, right: DenseMatrix


Public signature
export function DenseMatrix_multiply(DenseMatrix left, double scale) -> DenseMatrix

Parameters: left: DenseMatrix, scale: double


Public signature
export function DenseMatrix_set(DenseMatrix self, int index, double value)

Parameters: self: DenseMatrix, index: int, value: double


Public signature
export function DenseMatrix_subtract(DenseMatrix left, DenseMatrix right) -> DenseMatrix

Parameters: left: DenseMatrix, right: DenseMatrix


Public signature
export function denseResidual(DenseMatrix matrix, double[] values, double[] right) -> double

Parameters: matrix: DenseMatrix, values: double[], right: double[]


Public signature
export function denseVector(double[] values) -> DenseVector

Parameters: values: double[]


Public signature
export record DenseVector(public double[] values)

Parameters: values: double[]


Public signature
export function DenseVector_add(DenseVector left, DenseVector right) -> DenseVector

Parameters: left: DenseVector, right: DenseVector


Public signature
export function DenseVector_get(DenseVector self, int index) -> double

Parameters: self: DenseVector, index: int


Public signature
export function DenseVector_multiply(DenseVector left, double scale) -> DenseVector

Parameters: left: DenseVector, scale: double


Public signature
export function DenseVector_set(DenseVector self, int index, double value)

Parameters: self: DenseVector, index: int, value: double


Public signature
export function DenseVector_subtract(DenseVector left, DenseVector right) -> DenseVector

Parameters: left: DenseVector, right: DenseVector


Public signature
export function diagonalConditionIndicator(CsrMatrix matrix) -> double

Parameters: matrix: CsrMatrix


Public signature
export function dominantEigen(DenseMatrix matrix, double[] initial, double tolerance, int maximumIterations) -> EigenResult

Parameters: matrix: DenseMatrix, initial: double[], tolerance: double, maximumIterations: int


Public signature
export function dot(double[] left, double[] right) -> double

Parameters: left: double[], right: double[]


Public signature
export record EigenDecomposition(public double[] values, public double[] vectors, public int size, public int iterations, public double residual, public bool converged, public string diagnostic)

Parameters: values: double[], vectors: double[], size: int, iterations: int, residual: double, converged: bool, diagnostic: string


Public signature
export record EigenResult(public double value, public double[] vector, public int iterations, public double residual, public bool converged, public string diagnostic)

Parameters: value: double, vector: double[], iterations: int, residual: double, converged: bool, diagnostic: string


Public signature
export function elementEnergyCpu(double[] gradients, double[] weights, double modulus) -> ElementEnergyResult

Parameters: gradients: double[], weights: double[], modulus: double


Public signature
export function elementEnergyCuda(double[] gradients, double[] weights, double modulus) -> ElementEnergyResult

Parameters: gradients: double[], weights: double[], modulus: double


Public signature
export function elementEnergyOpenCl(double[] gradients, double[] weights, double modulus) -> ElementEnergyResult

Parameters: gradients: double[], weights: double[], modulus: double


Public signature
export record ElementEnergyResult(public double[] values)

Parameters: values: double[]


Public signature
export function frobeniusNorm(DenseMatrix matrix) -> double

Parameters: matrix: DenseMatrix


Public signature
export record GeneralizedEigenDecomposition(public double[] values, public double[] vectors, public int size, public int iterations, public double residual, public bool converged, public string diagnostic)

Parameters: values: double[], vectors: double[], size: int, iterations: int, residual: double, converged: bool, diagnostic: string


Public signature
export function generalizedSymmetricEigen(DenseMatrix stiffness, DenseMatrix mass, double tolerance, int maximumIterations) -> GeneralizedEigenDecomposition

Parameters: stiffness: DenseMatrix, mass: DenseMatrix, tolerance: double, maximumIterations: int


Public signature
export function gmresSolve(CsrMatrix matrix, double[] right, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations, int restart)->SolverResult

Parameters: matrix: CsrMatrix, right: double[], initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, restart: int


Public signature
export function hermitianEigen(complex[] matrix, int size, double tolerance, int maximumIterations) -> HermitianEigenDecomposition

Parameters: matrix: complex[], size: int, tolerance: double, maximumIterations: int


Public signature
export record HermitianEigenDecomposition(public double[] values, public complex[] vectors, public int size, public int iterations, public double residual, public bool converged, public string diagnostic)

Parameters: values: double[], vectors: complex[], size: int, iterations: int, residual: double, converged: bool, diagnostic: string


Public signature
export function incompleteLu0(CsrMatrix matrix, double tolerance)->IncompleteLuFactorization

Parameters: matrix: CsrMatrix, tolerance: double


Public signature
export record IncompleteLuFactorization(public double[] values, public int[] columnIndices, public int[] rowOffsets, public int size, public double tolerance, public bool valid, public string diagnostic)

Parameters: values: double[], columnIndices: int[], rowOffsets: int[], size: int, tolerance: double, valid: bool, diagnostic: string


Public signature
export function infinityNorm(DenseMatrix matrix) -> double

Parameters: matrix: DenseMatrix


Public signature
export function jacobiSolve(CsrMatrix matrix, double[] right, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations) -> SolverResult

Parameters: matrix: CsrMatrix, right: double[], initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int


Public signature
export function luFactor(DenseMatrix matrix, double tolerance) -> LuFactorization

Parameters: matrix: DenseMatrix, tolerance: double


Public signature
export record LuFactorization(public double[] factors, public int[] pivots, public int size, public double tolerance)

Parameters: factors: double[], pivots: int[], size: int, tolerance: double


Public signature
export function matrixMultiply(DenseMatrix left, DenseMatrix right) -> DenseMatrix

Parameters: left: DenseMatrix, right: DenseMatrix


Public signature
export function matrixVector(double[] matrix, int rows, int columns, double[] vector) -> double[]

Parameters: matrix: double[], rows: int, columns: int, vector: double[]


Public signature
export function minresSolve(CsrMatrix matrix, double[] right, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations)->SolverResult

Parameters: matrix: CsrMatrix, right: double[], initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int


Public signature
export function multiplyVector(DenseMatrix matrix, DenseVector vector) -> DenseVector

Parameters: matrix: DenseMatrix, vector: DenseVector


Public signature
export function norm(double[] values) -> double

Parameters: values: double[]


Public signature
export function oneNorm(DenseMatrix matrix) -> double

Parameters: matrix: DenseMatrix


Public signature
export function outerProduct(DenseVector left, DenseVector right) -> DenseMatrix

Parameters: left: DenseVector, right: DenseVector


Public signature
export function qrFactor(DenseMatrix matrix, double tolerance) -> QrFactorization

Parameters: matrix: DenseMatrix, tolerance: double


Public signature
export record QrFactorization(public double[] q, public double[] r, public int rows, public int columns, public double tolerance)

Parameters: q: double[], r: double[], rows: int, columns: int, tolerance: double


Public signature
export record RankRevealingLeastSquaresResult(public double[] values, public int[] pivots, public int rank, public double conditionEstimate, public double residual, public double backwardError, public bool minimumNorm, public bool converged, public string diagnostic)

Parameters: values: double[], pivots: int[], rank: int, conditionEstimate: double, residual: double, backwardError: double, minimumNorm: bool, converged: bool, diagnostic: string


Public signature
export function realSchur(DenseMatrix matrix, double tolerance, int maximumIterations) -> RealSchurDecomposition

Parameters: matrix: DenseMatrix, tolerance: double, maximumIterations: int


Public signature
export record RealSchurDecomposition(public double[] realEigenvalues, public double[] imaginaryEigenvalues, public double[] schurVectors, public double[] schurForm, public int size, public int iterations, public double reconstructionError, public double orthogonalityError, public bool converged, public string diagnostic)

Parameters: realEigenvalues: double[], imaginaryEigenvalues: double[], schurVectors: double[], schurForm: double[], size: int, iterations: int, reconstructionError: double, orthogonalityError: double, converged: bool, diagnostic: string


Public signature
export function selectSpdSolver(CsrMatrix matrix, double jacobiRatioThreshold, double symmetryTolerance) -> SpdSolverSelection

Parameters: matrix: CsrMatrix, jacobiRatioThreshold: double, symmetryTolerance: double


Public signature
export function singularValueDecomposition(DenseMatrix matrix, bool full, double rankTolerance, double convergenceTolerance, int maximumIterations) -> SingularValueDecomposition

Parameters: matrix: DenseMatrix, full: bool, rankTolerance: double, convergenceTolerance: double, maximumIterations: int


Public signature
export record SingularValueDecomposition(public double[] u, public int uRows, public int uColumns, public double[] singularValues, public double[] vTranspose, public int rank, public double reconstructionError, public double orthogonalityError, public int iterations, public bool converged, public string diagnostic)

Parameters: u: double[], uRows: int, uColumns: int, singularValues: double[], vTranspose: double[], rank: int, reconstructionError: double, orthogonalityError: double, iterations: int, converged: bool, diagnostic: string


Public signature
export function solve(double[] matrix, double[] right, int size) -> double[]

Parameters: matrix: double[], right: double[], size: int


Public signature
export function solveCholesky(CholeskyFactorization factor, double[] right) -> double[]

Parameters: factor: CholeskyFactorization, right: double[]


Public signature
export function solveIncompleteLu0(IncompleteLuFactorization factor, double[] right)->double[]

Parameters: factor: IncompleteLuFactorization, right: double[]


Public signature
export function solveLeastSquares(QrFactorization factor, double[] right) -> double[]

Parameters: factor: QrFactorization, right: double[]


Public signature
export function solveLeastSquaresRankRevealing(DenseMatrix matrix, double[] right, double rankTolerance, double convergenceTolerance, int maximumIterations) -> RankRevealingLeastSquaresResult

Parameters: matrix: DenseMatrix, right: double[], rankTolerance: double, convergenceTolerance: double, maximumIterations: int


Public signature
export function solveLu(LuFactorization factor, double[] right) -> double[]

Parameters: factor: LuFactorization, right: double[]


Public signature
export record SolverResult(public double[] values, public int iterations, public double residual, public bool converged, public string diagnostic)

Parameters: values: double[], iterations: int, residual: double, converged: bool, diagnostic: string


Public signature
export function solveSparseLu(SparseLuFactorization factor, double[] right)->SolverResult

Parameters: factor: SparseLuFactorization, right: double[]


Public signature
export function solveSpdAuto(CsrMatrix matrix, double[] right, double[] initial, double absoluteTolerance, double relativeTolerance, int maximumIterations, double jacobiRatioThreshold, double symmetryTolerance) -> SpdSolveResult

Parameters: matrix: CsrMatrix, right: double[], initial: double[], absoluteTolerance: double, relativeTolerance: double, maximumIterations: int, jacobiRatioThreshold: double, symmetryTolerance: double


Public signature
export function sparseConditionEstimate(CsrMatrix matrix, double tolerance)->SparseConditionEstimate

Parameters: matrix: CsrMatrix, tolerance: double


Public signature
export record SparseConditionEstimate(public double estimate, public double reciprocalEstimate, public double lowerBound, public double upperBound, public bool reliable, public string diagnostic)

Parameters: estimate: double, reciprocalEstimate: double, lowerBound: double, upperBound: double, reliable: bool, diagnostic: string


Public signature
export function sparseLuFactor(CsrMatrix matrix, double tolerance)->SparseLuFactorization

Parameters: matrix: CsrMatrix, tolerance: double


Public signature
export record SparseLuFactorization(public CsrMatrix matrix, public LuFactorization factor, public double pivotGrowth, public double conditionEstimate, public bool reliable, public string diagnostic)

Parameters: matrix: CsrMatrix, factor: LuFactorization, pivotGrowth: double, conditionEstimate: double, reliable: bool, diagnostic: string


Public signature
export function sparseResidual(CsrMatrix matrix, double[] values, double[] right) -> double

Parameters: matrix: CsrMatrix, values: double[], right: double[]


Public signature
export record SpdSolveResult(public double[] values, public int iterations, public double residual, public bool converged, public string method, public double diagonalConditionIndicator, public string diagnostic)

Parameters: values: double[], iterations: int, residual: double, converged: bool, method: string, diagonalConditionIndicator: double, diagnostic: string


Public signature
export record SpdSolverSelection(public string method, public double diagonalConditionIndicator, public string diagnostic)

Parameters: method: string, diagonalConditionIndicator: double, diagnostic: string


Public signature
export function symmetricDiagonalScale(CsrMatrix matrix, double[] scales) -> CsrMatrix

Parameters: matrix: CsrMatrix, scales: double[]


Public signature
export function symmetricEigen(DenseMatrix matrix, double tolerance, int maximumIterations) -> EigenDecomposition

Parameters: matrix: DenseMatrix, tolerance: double, maximumIterations: int


Public signature
export function tensor(double[] values, int[] shape) -> Tensor

Parameters: values: double[], shape: int[]


Public signature
export record Tensor(public double[] values, public int[] shape)

Parameters: values: double[], shape: int[]


Public signature
export function tensorGet(Tensor value, int[] indices) -> double

Parameters: value: Tensor, indices: int[]


Public signature
export function tensorIndex(Tensor value, int[] indices) -> int

Parameters: value: Tensor, indices: int[]


Public signature
export function tensorSet(Tensor value, int[] indices, double item)

Parameters: value: Tensor, indices: int[], item: double


Public signature
export function transpose(DenseMatrix matrix) -> DenseMatrix

Parameters: matrix: DenseMatrix


Public signature
export function tridiagonalCsr(double[] lower, double[] diagonal, double[] upper) -> CsrMatrix

Parameters: lower: double[], diagonal: double[], upper: double[]


Documentation version

Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.