|
|
@ -195,8 +195,7 @@ spOrderAndFactor(void *eMatrix, RealNumber RHS[], RealNumber RelThreshold, |
|
|
MatrixPtr Matrix = (MatrixPtr)eMatrix; |
|
|
MatrixPtr Matrix = (MatrixPtr)eMatrix; |
|
|
ElementPtr pPivot; |
|
|
ElementPtr pPivot; |
|
|
int Step, Size, ReorderingRequired; |
|
|
int Step, Size, ReorderingRequired; |
|
|
ElementPtr SearchForPivot(); |
|
|
|
|
|
RealNumber LargestInCol, FindLargestInCol(); |
|
|
|
|
|
|
|
|
RealNumber LargestInCol; |
|
|
|
|
|
|
|
|
/* Begin `spOrderAndFactor'. */ |
|
|
/* Begin `spOrderAndFactor'. */ |
|
|
assert( IS_VALID(Matrix) && !Matrix->Factored); |
|
|
assert( IS_VALID(Matrix) && !Matrix->Factored); |
|
|
@ -982,10 +981,6 @@ static ElementPtr |
|
|
SearchForPivot( MatrixPtr Matrix, int Step, int DiagPivoting ) |
|
|
SearchForPivot( MatrixPtr Matrix, int Step, int DiagPivoting ) |
|
|
{ |
|
|
{ |
|
|
ElementPtr ChosenPivot; |
|
|
ElementPtr ChosenPivot; |
|
|
ElementPtr SearchForSingleton(); |
|
|
|
|
|
ElementPtr QuicklySearchDiagonal(); |
|
|
|
|
|
ElementPtr SearchDiagonal(); |
|
|
|
|
|
ElementPtr SearchEntireMatrix(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `SearchForPivot'. */ |
|
|
/* Begin `SearchForPivot'. */ |
|
|
|
|
|
|
|
|
@ -1087,7 +1082,7 @@ SearchForSingleton( MatrixPtr Matrix, int Step ) |
|
|
int I; |
|
|
int I; |
|
|
long *pMarkowitzProduct; |
|
|
long *pMarkowitzProduct; |
|
|
int Singletons; |
|
|
int Singletons; |
|
|
RealNumber PivotMag, FindBiggestInColExclude(); |
|
|
|
|
|
|
|
|
RealNumber PivotMag; |
|
|
|
|
|
|
|
|
/* Begin `SearchForSingleton'. */ |
|
|
/* Begin `SearchForSingleton'. */ |
|
|
/* Initialize pointer that is to scan through MarkowitzProduct vector. */ |
|
|
/* Initialize pointer that is to scan through MarkowitzProduct vector. */ |
|
|
@ -1521,7 +1516,6 @@ long MinMarkowitzProduct, *pMarkowitzProduct; |
|
|
int I; |
|
|
int I; |
|
|
ElementPtr ChosenPivot, pOtherInRow, pOtherInCol; |
|
|
ElementPtr ChosenPivot, pOtherInRow, pOtherInCol; |
|
|
RealNumber Magnitude, LargestInCol, LargestOffDiagonal; |
|
|
RealNumber Magnitude, LargestInCol, LargestOffDiagonal; |
|
|
RealNumber FindBiggestInColExclude(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `QuicklySearchDiagonal'. */ |
|
|
/* Begin `QuicklySearchDiagonal'. */ |
|
|
ChosenPivot = NULL; |
|
|
ChosenPivot = NULL; |
|
|
@ -1697,7 +1691,6 @@ SearchDiagonal( MatrixPtr Matrix, int Step ) |
|
|
RealNumber Magnitude, Ratio; |
|
|
RealNumber Magnitude, Ratio; |
|
|
RealNumber RatioOfAccepted = 0; |
|
|
RealNumber RatioOfAccepted = 0; |
|
|
RealNumber LargestInCol; |
|
|
RealNumber LargestInCol; |
|
|
RealNumber FindBiggestInColExclude(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `SearchDiagonal'. */ |
|
|
/* Begin `SearchDiagonal'. */ |
|
|
ChosenPivot = NULL; |
|
|
ChosenPivot = NULL; |
|
|
@ -1827,7 +1820,6 @@ SearchEntireMatrix( MatrixPtr Matrix, int Step ) |
|
|
RealNumber Magnitude, LargestElementMag, Ratio; |
|
|
RealNumber Magnitude, LargestElementMag, Ratio; |
|
|
RealNumber RatioOfAccepted = 0; |
|
|
RealNumber RatioOfAccepted = 0; |
|
|
RealNumber LargestInCol; |
|
|
RealNumber LargestInCol; |
|
|
RealNumber FindLargestInCol(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `SearchEntireMatrix'. */ |
|
|
/* Begin `SearchEntireMatrix'. */ |
|
|
ChosenPivot = NULL; |
|
|
ChosenPivot = NULL; |
|
|
@ -2089,7 +2081,6 @@ ExchangeRowsAndCols( MatrixPtr Matrix, ElementPtr pPivot, int Step ) |
|
|
{ |
|
|
{ |
|
|
int Row, Col; |
|
|
int Row, Col; |
|
|
long OldMarkowitzProd_Step, OldMarkowitzProd_Row, OldMarkowitzProd_Col; |
|
|
long OldMarkowitzProd_Step, OldMarkowitzProd_Row, OldMarkowitzProd_Col; |
|
|
ElementPtr spcFindElementInCol(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `ExchangeRowsAndCols'. */ |
|
|
/* Begin `ExchangeRowsAndCols'. */ |
|
|
Row = pPivot->Row; |
|
|
Row = pPivot->Row; |
|
|
@ -2717,7 +2708,6 @@ RealRowColElimination( MatrixPtr Matrix, ElementPtr pPivot ) |
|
|
ElementPtr pSub; |
|
|
ElementPtr pSub; |
|
|
int Row; |
|
|
int Row; |
|
|
ElementPtr pLower, pUpper; |
|
|
ElementPtr pLower, pUpper; |
|
|
extern ElementPtr CreateFillin(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `RealRowColElimination'. */ |
|
|
/* Begin `RealRowColElimination'. */ |
|
|
|
|
|
|
|
|
@ -2805,7 +2795,6 @@ ComplexRowColElimination( MatrixPtr Matrix, ElementPtr pPivot ) |
|
|
ElementPtr pSub; |
|
|
ElementPtr pSub; |
|
|
int Row; |
|
|
int Row; |
|
|
ElementPtr pLower, pUpper; |
|
|
ElementPtr pLower, pUpper; |
|
|
ElementPtr CreateFillin(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `ComplexRowColElimination'. */ |
|
|
/* Begin `ComplexRowColElimination'. */ |
|
|
|
|
|
|
|
|
@ -2976,7 +2965,6 @@ static ElementPtr |
|
|
CreateFillin( MatrixPtr Matrix, int Row, int Col ) |
|
|
CreateFillin( MatrixPtr Matrix, int Row, int Col ) |
|
|
{ |
|
|
{ |
|
|
ElementPtr pElement, *ppElementAbove; |
|
|
ElementPtr pElement, *ppElementAbove; |
|
|
ElementPtr spcCreateElement(); |
|
|
|
|
|
|
|
|
|
|
|
/* Begin `CreateFillin'. */ |
|
|
/* Begin `CreateFillin'. */ |
|
|
|
|
|
|
|
|
|