Exemple #1
0
bool inverse(ap::real_2d_array& a, int n)
{
    bool result;
    ap::integer_1d_array pivots;

    ludecomposition(a, n, n, pivots);
    result = inverselu(a, pivots, n);
    return result;
}
Exemple #2
0
//************************************************************************
void inv_LU(int Size, TFloat *inMatrix, TFloat *outMatrix)
{
    // ------- Инициализация ----- масива -----
    ap::real_2d_array ar;
    ar.setbounds(1,Size,1,Size);
    for(int i=0; i<Size; i++) {
        for(int j=0; j<Size; j++) {
            ar(i+1,j+1) = inMatrix[i*Size + j];
        }
    }
    // -----------
    ap::integer_1d_array pivots;

    ludecomposition(ar, Size, Size, pivots);
    bool result = inverselu(ar, pivots, Size);

    for( int i = 0; i < Size; i++) {
        for( int j = 0; j < Size; j++) {
            //outMatrix[j*Size+i] = outMatrix[i*Size + j] = ar(i+1,j+1);
            outMatrix[j*Size+i] = ar(i+1,j+1);
        }
    }
}