#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().
1.6.2