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; }
//************************************************************************ 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); } } }