#include "spconfig.h"
#include "spmatrix.h"
Go to the source code of this file.
#define generic |
#define spINSIDE_SPARSE |
Definition at line 59 of file spfactor.cpp.
static void CountMarkowitz | ( | MatrixPtr | Matrix, | |
double * | RHS, | |||
int | Step | |||
) | [static] |
Definition at line 862 of file spfactor.cpp.
References MatrixElement::Col, MatrixFrame::Complex, MatrixFrame::FirstInCol, MatrixFrame::FirstInRow, MatrixFrame::IntToExtRowMap, MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzRow, MatrixElement::NextInCol, MatrixElement::NextInRow, MatrixElement::Row, MatrixFrame::Size, and Size.
Referenced by spOrderAndFactor().
static ElementPtr CreateFillin | ( | MatrixPtr | Matrix, | |
int | Row, | |||
int | Col | |||
) | [static] |
Definition at line 2500 of file spfactor.cpp.
References MatrixFrame::FirstInCol, MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzProd, MatrixFrame::MarkowitzRow, MatrixElement::NextInCol, MatrixElement::Row, MatrixFrame::Singletons, and spcCreateElement().
Referenced by RealRowColElimination().
static void CreateInternalVectors | ( | MatrixPtr | Matrix | ) | [static] |
Definition at line 776 of file spfactor.cpp.
References ALLOC, BOOLEAN, MatrixFrame::DoCmplxDirect, MatrixFrame::DoRealDirect, MatrixFrame::Error, MatrixFrame::Intermediate, MatrixFrame::InternalVectorsAllocated, MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzProd, MatrixFrame::MarkowitzRow, MatrixFrame::Size, Size, and spNO_MEMORY.
Referenced by spOrderAndFactor().
static void ExchangeColElements | ( | MatrixPtr | Matrix, | |
int | Row1, | |||
ElementPtr | Element1, | |||
int | Row2, | |||
ElementPtr | Element2, | |||
int | Column | |||
) | [static] |
Definition at line 2099 of file spfactor.cpp.
References MatrixFrame::FirstInCol, MatrixElement::NextInCol, and MatrixElement::Row.
Referenced by spcRowExchange().
static void ExchangeRowElements | ( | MatrixPtr | Matrix, | |
int | Col1, | |||
ElementPtr | Element1, | |||
int | Col2, | |||
ElementPtr | Element2, | |||
int | Row | |||
) | [static] |
Definition at line 2231 of file spfactor.cpp.
References MatrixElement::Col, MatrixFrame::FirstInRow, and MatrixElement::NextInRow.
Referenced by spcColExchange().
static void ExchangeRowsAndCols | ( | MatrixPtr | Matrix, | |
ElementPtr | pPivot, | |||
int | Step | |||
) | [static] |
Definition at line 1794 of file spfactor.cpp.
References MatrixElement::Col, MatrixFrame::Diag, MatrixFrame::FirstInCol, MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzProd, MatrixFrame::MarkowitzRow, MatrixFrame::NumberOfInterchangesIsOdd, MatrixFrame::PivotsOriginalCol, MatrixFrame::PivotsOriginalRow, MatrixElement::Row, MatrixFrame::Singletons, spcColExchange(), spcFindElementInCol(), spcRowExchange(), and SWAP.
Referenced by spOrderAndFactor().
static double FindBiggestInColExclude | ( | MatrixPtr | Matrix, | |
ElementPtr | pElement, | |||
int | Step | |||
) | [static] |
Definition at line 1719 of file spfactor.cpp.
References MatrixElement::Col, ELEMENT_MAG, MatrixFrame::FirstInCol, MatrixElement::NextInCol, and MatrixElement::Row.
Referenced by QuicklySearchDiagonal(), SearchDiagonal(), and SearchForSingleton().
static double FindLargestInCol | ( | ElementPtr | pElement | ) | [static] |
Definition at line 1656 of file spfactor.cpp.
References ELEMENT_MAG, and MatrixElement::NextInCol.
Referenced by SearchEntireMatrix(), and spOrderAndFactor().
static void MarkowitzProducts | ( | MatrixPtr | Matrix, | |
int | Step | |||
) | [static] |
Definition at line 967 of file spfactor.cpp.
References long(), MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzProd, MatrixFrame::MarkowitzRow, MatrixFrame::Singletons, MatrixFrame::Size, and Size.
Referenced by spOrderAndFactor().
static int MatrixIsSingular | ( | MatrixPtr | Matrix, | |
int | Step | |||
) | [static] |
Definition at line 2547 of file spfactor.cpp.
References MatrixFrame::Error, MatrixFrame::IntToExtColMap, MatrixFrame::IntToExtRowMap, MatrixFrame::SingularCol, and MatrixFrame::SingularRow.
Referenced by RealRowColElimination(), and spOrderAndFactor().
static ElementPtr QuicklySearchDiagonal | ( | MatrixPtr | Matrix, | |
int | Step | |||
) | [static] |
Definition at line 1263 of file spfactor.cpp.
References MatrixFrame::AbsThreshold, MatrixElement::Col, MatrixFrame::Diag, ELEMENT_MAG, FindBiggestInColExclude(), MatrixFrame::FirstInCol, MatrixFrame::FirstInRow, MatrixFrame::MarkowitzProd, MAX, MatrixElement::NextInCol, MatrixElement::NextInRow, MatrixFrame::RelThreshold, MatrixElement::Row, and MatrixFrame::Size.
Referenced by SearchForPivot().
static void RealRowColElimination | ( | MatrixPtr | Matrix, | |
ElementPtr | pPivot | |||
) | [static] |
Definition at line 2353 of file spfactor.cpp.
References ABSS, MatrixElement::Col, CreateFillin(), MatrixFrame::Error, MatrixIsSingular(), MatrixElement::NextInCol, MatrixElement::NextInRow, MatrixElement::Real, MatrixElement::Row, and spNO_MEMORY.
Referenced by spOrderAndFactor().
static ElementPtr SearchDiagonal | ( | MatrixPtr | Matrix, | |
int | Step | |||
) | [static] |
Definition at line 1423 of file spfactor.cpp.
References MatrixFrame::AbsThreshold, MatrixFrame::Diag, ELEMENT_MAG, FindBiggestInColExclude(), MatrixFrame::MarkowitzProd, RelThreshold, MatrixFrame::Size, Size, and TIES_MULTIPLIER.
Referenced by SearchForPivot().
static ElementPtr SearchEntireMatrix | ( | MatrixPtr | Matrix, | |
int | Step | |||
) | [static] |
Definition at line 1538 of file spfactor.cpp.
References MatrixFrame::AbsThreshold, MatrixElement::Col, ELEMENT_MAG, MatrixFrame::Error, FindLargestInCol(), MatrixFrame::FirstInCol, MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzRow, MatrixElement::NextInCol, MatrixFrame::RelThreshold, MatrixElement::Row, MatrixFrame::Size, Size, and TIES_MULTIPLIER.
Referenced by SearchForPivot().
static ElementPtr SearchForPivot | ( | MatrixPtr | Matrix, | |
int | Step, | |||
int | DiagPivoting | |||
) | [static] |
Definition at line 372 of file spfactor.cpp.
References MatrixFrame::PivotSelectionMethod, QuicklySearchDiagonal(), SearchDiagonal(), SearchEntireMatrix(), SearchForSingleton(), and MatrixFrame::Singletons.
Referenced by spOrderAndFactor().
static ElementPtr SearchForSingleton | ( | MatrixPtr | Matrix, | |
int | Step | |||
) | [static] |
Definition at line 208 of file spfactor.cpp.
References MatrixFrame::AbsThreshold, MatrixElement::Col, MatrixFrame::Diag, ELEMENT_MAG, FindBiggestInColExclude(), MatrixFrame::FirstInCol, MatrixFrame::FirstInRow, MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzProd, MatrixFrame::MarkowitzRow, MatrixElement::NextInCol, MatrixElement::NextInRow, MatrixFrame::RelThreshold, MatrixElement::Row, MatrixFrame::Singletons, and MatrixFrame::Size.
Referenced by SearchForPivot().
void spcColExchange | ( | MatrixPtr | Matrix, | |
int | Col1, | |||
int | Col2 | |||
) |
Definition at line 2006 of file spfactor.cpp.
References ExchangeRowElements(), MatrixFrame::ExtToIntColMap, MatrixFrame::FirstInCol, MatrixFrame::InternalVectorsAllocated, MatrixFrame::IntToExtColMap, MatrixFrame::MarkowitzCol, MatrixElement::NextInCol, MatrixElement::Row, and SWAP.
Referenced by ExchangeRowsAndCols().
ElementPtr spcCreateElement | ( | MatrixPtr | Matrix, | |
int | Row, | |||
int | Col, | |||
ElementPtr * | LastAddr, | |||
int | Fillin | |||
) |
Definition at line 240 of file spbuild.cpp.
References MatrixElement::Col, MatrixFrame::Diag, MatrixFrame::Elements, MatrixFrame::Fillins, MatrixFrame::FirstInRow, MatrixFrame::NeedsOrdering, MatrixElement::NextInCol, MatrixElement::NextInRow, MatrixElement::Real, MatrixElement::Row, MatrixFrame::RowsLinked, spcGetElement(), and spcGetFillin().
Referenced by CreateFillin(), and spcFindElementInCol().
ElementPtr spcFindElementInCol | ( | MatrixPtr | Matrix, | |
ElementPtr * | LastAddr, | |||
int | Row, | |||
int | Col, | |||
int | CreateIfMissing | |||
) |
Definition at line 372 of file spbuild.cpp.
References MatrixElement::NextInCol, MatrixElement::Row, and spcCreateElement().
Referenced by ExchangeRowsAndCols(), and spGetElement().
void spcLinkRows | ( | MatrixPtr | Matrix | ) |
Definition at line 672 of file spbuild.cpp.
void spcRowExchange | ( | MatrixPtr | Matrix, | |
int | Row1, | |||
int | Row2 | |||
) |
Definition at line 1916 of file spfactor.cpp.
References MatrixElement::Col, ExchangeColElements(), MatrixFrame::ExtToIntRowMap, MatrixFrame::FirstInRow, MatrixFrame::InternalVectorsAllocated, MatrixFrame::IntToExtRowMap, MatrixFrame::MarkowitzRow, MatrixElement::NextInRow, and SWAP.
Referenced by ExchangeRowsAndCols().
int spFactor | ( | MatrixPtr | Matrix | ) |
Definition at line 543 of file spfactor.cpp.
References ASSERT, MatrixFrame::Diag, DIAG_PIVOTING_AS_DEFAULT, MatrixFrame::DoRealDirect, MatrixFrame::Error, MatrixFrame::Factored, MatrixFrame::FirstInCol, MatrixFrame::Intermediate, IS_VALID, MatrixFrame::NeedsOrdering, MatrixElement::NextInCol, MatrixFrame::Partitioned, MatrixElement::Real, MatrixElement::Row, MatrixFrame::Size, Size, spOrderAndFactor(), spPartition(), and ZeroPivot().
Referenced by main().
int spOrderAndFactor | ( | MatrixPtr | Matrix, | |
double * | RHS, | |||
double | RelThreshold, | |||
double | AbsThreshold, | |||
int | DiagPivoting | |||
) |
Definition at line 420 of file spfactor.cpp.
References MatrixFrame::AbsThreshold, ASSERT, CountMarkowitz(), CreateInternalVectors(), MatrixFrame::Diag, ELEMENT_MAG, MatrixFrame::Error, ExchangeRowsAndCols(), MatrixFrame::Factored, FindLargestInCol(), MatrixFrame::InternalVectorsAllocated, IS_VALID, MarkowitzProducts(), MatrixIsSingular(), MatrixFrame::MaxRowCountInLowerTri, MatrixFrame::NeedsOrdering, MatrixElement::NextInCol, RealRowColElimination(), MatrixFrame::RelThreshold, MatrixFrame::Reordered, MatrixFrame::RowsLinked, SearchForPivot(), MatrixFrame::Size, Size, spcLinkRows(), and UpdateMarkowitzNumbers().
Referenced by main(), and spFactor().
void spPartition | ( | MatrixPtr | Matrix, | |
int | Mode | |||
) |
Definition at line 665 of file spfactor.cpp.
References ASSERT, BOOLEAN, DEFAULT_PARTITION, MatrixFrame::Diag, MatrixFrame::DoCmplxDirect, MatrixFrame::DoRealDirect, MatrixFrame::FirstInCol, for(), IS_SPARSE, MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzProd, MatrixFrame::MarkowitzRow, MatrixElement::NextInCol, No, MatrixFrame::Partitioned, MatrixElement::Row, MatrixFrame::Size, and Size.
Referenced by main(), and spFactor().
static void UpdateMarkowitzNumbers | ( | MatrixPtr | Matrix, | |
ElementPtr | pPivot | |||
) | [static] |
Definition at line 2423 of file spfactor.cpp.
References MatrixElement::Col, long(), MatrixFrame::MarkowitzCol, MatrixFrame::MarkowitzProd, MatrixFrame::MarkowitzRow, MatrixElement::NextInCol, MatrixElement::NextInRow, MatrixElement::Row, and MatrixFrame::Singletons.
Referenced by spOrderAndFactor().
static int ZeroPivot | ( | MatrixPtr | Matrix, | |
int | Step | |||
) | [static] |
Definition at line 2554 of file spfactor.cpp.
References MatrixFrame::Error, MatrixFrame::IntToExtColMap, MatrixFrame::IntToExtRowMap, MatrixFrame::SingularCol, and MatrixFrame::SingularRow.
Referenced by spFactor().