Merge with c3a84087d8675dbd37e95cc6177b04b359bf4e73

This commit is contained in:
michael
2012-09-03 21:41:33 -04:00
56 changed files with 3775 additions and 278 deletions

View File

@@ -185,14 +185,14 @@ bool MultiDiagonalSymmetricMatrix::CreateIncompleteCholeskyFactorization(unsigne
MaxFillAbove++; //Conceptually, now "fill" includes an existing diagonal. Simpler in the math that follows.
unsigned int i, j, mic;
for(mic = i = 1; i != m; i++)
mic += min(StartRows[i] - StartRows[i - 1], MaxFillAbove); //Guarunteed positive since StartRows must be created in increasing order.
mic += rtengine::min(StartRows[i] - StartRows[i - 1], MaxFillAbove); //Guarunteed positive since StartRows must be created in increasing order.
//Initialize the decomposition - setup memory, start rows, etc.
MultiDiagonalSymmetricMatrix *ic = new MultiDiagonalSymmetricMatrix(n, mic);
ic->CreateDiagonal(0, 0); //There's always a main diagonal in this type of decomposition.
for(mic = i = 1; i != m; i++){
//Set j to the number of diagonals to be created corresponding to a diagonal on this source matrix...
j = min(StartRows[i] - StartRows[i - 1], MaxFillAbove);
j = rtengine::min(StartRows[i] - StartRows[i - 1], MaxFillAbove);
//...and create those diagonals. I want to take a moment to tell you about how much I love minimalistic loops: very much.
while(j-- != 0)