NEURON
sputils.cpp File Reference
#include "spconfig.h"
#include "spdefs.h"
#include "spmatrix.h"
#include <cfloat>

Go to the source code of this file.

Macros

#define spINSIDE_SPARSE
 
#define SLACK   1e4
 

Functions

void spcLinkRows (MatrixPtr)
 
void spcRowExchange (MatrixPtr, int row1, int row2)
 
void spcColExchange (MatrixPtr, int col1, int col2)
 
ElementPtr spcFindElementInCol (MatrixPtr Matrix, ElementPtr *LastAddr, int Row, int Col, BOOLEAN CreateIfMissing)
 
static int CountTwins (MatrixPtr Matrix, int Col, ElementPtr *ppTwin1, ElementPtr *ppTwin2)
 
static void SwapCols (MatrixPtr Matrix, ElementPtr pTwin1, ElementPtr pTwin2)
 
void spMNA_Preorder (char *eMatrix)
 
void spScale (char *eMatrix, RealVector RHS_ScaleFactors, RealVector SolutionScaleFactors)
 
void spMultiply (char *eMatrix, RealVector RHS, RealVector Solution, std::optional< RealVector > iRHS, std::optional< RealVector > iSolution)
 
void spMultTransposed (char *eMatrix, RealVector RHS, RealVector Solution, std::optional< RealVector > iRHS, std::optional< RealVector > iSolution)
 
void spDeterminant (char *eMatrix, int *pExponent, RealNumber *pDeterminant, std::optional< RealNumber * > piDeterminant)
 
void spStripFills (char *eMatrix)
 
RealNumber spPseudoCondition (char *eMatrix)
 
RealNumber spCondition (char *eMatrix, RealNumber NormOfMatrix, int *pError)
 
RealNumber spNorm (char *eMatrix)
 
RealNumber spLargestElement (char *eMatrix)
 
RealNumber spRoundoff (char *eMatrix, RealNumber Rho)
 

Macro Definition Documentation

◆ SLACK

#define SLACK   1e4

◆ spINSIDE_SPARSE

#define spINSIDE_SPARSE

Definition at line 57 of file sputils.cpp.

Function Documentation

◆ CountTwins()

static int CountTwins ( MatrixPtr  Matrix,
int  Col,
ElementPtr ppTwin1,
ElementPtr ppTwin2 
)
static

Definition at line 217 of file sputils.cpp.

◆ spcColExchange()

void spcColExchange ( MatrixPtr  Matrix,
int  col1,
int  col2 
)

Definition at line 1880 of file spfactor.cpp.

◆ spcFindElementInCol()

ElementPtr spcFindElementInCol ( MatrixPtr  Matrix,
ElementPtr LastAddr,
int  Row,
int  Col,
BOOLEAN  CreateIfMissing 
)

Definition at line 232 of file spbuild.cpp.

◆ spcLinkRows()

void spcLinkRows ( MatrixPtr  Matrix)

Definition at line 608 of file spbuild.cpp.

◆ spCondition()

RealNumber spCondition ( char *  eMatrix,
RealNumber  NormOfMatrix,
int *  pError 
)

Definition at line 799 of file sputils.cpp.

◆ spcRowExchange()

void spcRowExchange ( MatrixPtr  Matrix,
int  row1,
int  row2 
)

Definition at line 1797 of file spfactor.cpp.

◆ spDeterminant()

void spDeterminant ( char *  eMatrix,
int *  pExponent,
RealNumber pDeterminant,
std::optional< RealNumber * >  piDeterminant 
)

Definition at line 549 of file sputils.cpp.

◆ spLargestElement()

RealNumber spLargestElement ( char *  eMatrix)

Definition at line 1097 of file sputils.cpp.

◆ spMNA_Preorder()

void spMNA_Preorder ( char *  eMatrix)

Definition at line 162 of file sputils.cpp.

◆ spMultiply()

void spMultiply ( char *  eMatrix,
RealVector  RHS,
RealVector  Solution,
std::optional< RealVector iRHS,
std::optional< RealVector iSolution 
)

Definition at line 401 of file sputils.cpp.

◆ spMultTransposed()

void spMultTransposed ( char *  eMatrix,
RealVector  RHS,
RealVector  Solution,
std::optional< RealVector iRHS,
std::optional< RealVector iSolution 
)

Definition at line 468 of file sputils.cpp.

◆ spNorm()

RealNumber spNorm ( char *  eMatrix)

Definition at line 1001 of file sputils.cpp.

◆ spPseudoCondition()

RealNumber spPseudoCondition ( char *  eMatrix)

Definition at line 718 of file sputils.cpp.

◆ spRoundoff()

RealNumber spRoundoff ( char *  eMatrix,
RealNumber  Rho 
)

Definition at line 1172 of file sputils.cpp.

◆ spScale()

void spScale ( char *  eMatrix,
RealVector  RHS_ScaleFactors,
RealVector  SolutionScaleFactors 
)

Definition at line 323 of file sputils.cpp.

◆ spStripFills()

void spStripFills ( char *  eMatrix)

Definition at line 629 of file sputils.cpp.

◆ SwapCols()

static void SwapCols ( MatrixPtr  Matrix,
ElementPtr  pTwin1,
ElementPtr  pTwin2 
)
static

Definition at line 250 of file sputils.cpp.