packages feed

moonlight-linalg-0.1.0.0: src-public/Moonlight/LinAlg/Sparse.hs

-- | Sparse matrix carriers, packed sparse operators, sealed preconditioner families, and sparse iterative solvers.
module Moonlight.LinAlg.Sparse
  ( SparseCOO,
    mkSparseCOO,
    cooRows,
    cooCols,
    cooEntries,
    SparseCSR,
    mkSparseCSR,
    csrRows,
    csrCols,
    csrRowOffsetsVector,
    csrColumnIndicesVector,
    csrValuesVector,
    SparseCSC,
    mkSparseCSC,
    cscRows,
    cscCols,
    cscColumnOffsetsVector,
    cscRowIndicesVector,
    cscValuesVector,
    denseToCOO,
    denseToCSR,
    denseToCSC,
    cooToCSR,
    cooToCSC,
    csrToCOO,
    cscToCOO,
    cooToDense,
    csrToDense,
    cscToDense,
    csrToCSC,
    cscToCSR,
    canonicalCSRFromEntries,
    GraphEdge (..),
    diagonalCSR,
    tridiagonalCSR,
    pathLaplacianCSR,
    graphLaplacianCSR,
    csrMatVecVector,
    validateCOO,
    validateCSR,
    validateCSC,
    PackedSparseEntry,
    packedSparseEntry,
    packedSparseEntrySourceOffset,
    packedSparseEntryTargetOffset,
    packedSparseEntryCoefficient,
    PackedSparseOperator,
    packedSparseOperatorSourceCardinality,
    packedSparseOperatorTargetCardinality,
    packedSparseOperatorEntryCount,
    packedSparseOperatorEntries,
    PackedSparseOperatorShapeError (..),
    PackedSparseApplyError (..),
    mkPackedSparseOperator,
    applyPackedSparseOperatorDense,
    SparseIterativeFailure (..),
    SparseIterativeResult (..),
    SparseStationaryIterationConfig (..),
    SparseConjugateGradientConfig (..),
    SparseGMRESConfig (..),
    IC0Config (..),
    SparsePreconditionerFamily (..),
    defaultSparsePreconditionerFamily,
    solveSparseJacobi,
    solveSparseRichardson,
    solveSparseCG,
    solveSparseGMRES,
  )
where

import Moonlight.LinAlg.Pure.Sparse.Packed
  ( PackedSparseApplyError (..),
    PackedSparseEntry,
    PackedSparseOperator,
    PackedSparseOperatorShapeError (..),
    applyPackedSparseOperatorDense,
    mkPackedSparseOperator,
    packedSparseEntry,
    packedSparseEntryCoefficient,
    packedSparseEntrySourceOffset,
    packedSparseEntryTargetOffset,
    packedSparseOperatorEntries,
    packedSparseOperatorEntryCount,
    packedSparseOperatorSourceCardinality,
    packedSparseOperatorTargetCardinality,
  )
import Moonlight.LinAlg.Pure.Sparse.Solver.CG
  ( solveSparseCG,
  )
import Moonlight.LinAlg.Pure.Sparse.Solver.GMRES
  ( solveSparseGMRES,
  )
import Moonlight.LinAlg.Pure.Sparse.Solver.Stationary
  ( solveSparseJacobi,
    solveSparseRichardson,
  )
import Moonlight.LinAlg.Pure.Sparse.Solver.Types
  ( IC0Config (..),
    SparseConjugateGradientConfig (..),
    SparseGMRESConfig (..),
    SparseIterativeFailure (..),
    SparseIterativeResult (..),
    SparsePreconditionerFamily (..),
    SparseStationaryIterationConfig (..),
    defaultSparsePreconditionerFamily,
  )
import Moonlight.LinAlg.Pure.Sparse.Assembly
  ( canonicalCSRFromEntries,
  )
import Moonlight.LinAlg.Pure.Sparse.Structured
  ( GraphEdge (..),
    diagonalCSR,
    graphLaplacianCSR,
    pathLaplacianCSR,
    tridiagonalCSR,
  )
import Moonlight.LinAlg.Pure.Sparse.Types
  ( SparseCOO,
    SparseCSC,
    SparseCSR,
    cooCols,
    cooEntries,
    cooRows,
    cooToCSC,
    cooToCSR,
    cooToDense,
    cscCols,
    cscColumnOffsetsVector,
    cscRowIndicesVector,
    cscRows,
    cscToCOO,
    cscToCSR,
    cscToDense,
    cscValuesVector,
    csrCols,
    csrColumnIndicesVector,
    csrMatVecVector,
    csrRows,
    csrRowOffsetsVector,
    csrToCOO,
    csrToCSC,
    csrToDense,
    csrValuesVector,
    denseToCOO,
    denseToCSC,
    denseToCSR,
    mkSparseCOO,
    mkSparseCSC,
    mkSparseCSR,
    validateCOO,
    validateCSC,
    validateCSR,
  )