bool complexinverse(ap::complex_2d_array& a, int n) { bool result; ap::integer_1d_array pivots; complexludecomposition(a, n, n, pivots); result = complexinverselu(a, pivots, n); return result; }
/************************************************************************* Obsolete 1-based subroutine *************************************************************************/ bool complexsolvesystem(ap::complex_2d_array a, ap::complex_1d_array b, int n, ap::complex_1d_array& x) { bool result; ap::integer_1d_array pivots; complexludecomposition(a, n, n, pivots); result = complexsolvesystemlu(a, pivots, b, n, x); return result; }
void complexludecompositionunpacked(ap::complex_2d_array a, int m, int n, ap::complex_2d_array& l, ap::complex_2d_array& u, ap::integer_1d_array& pivots) { int i; int j; int minmn; if( m==0||n==0 ) { return; } minmn = ap::minint(m, n); l.setbounds(1, m, 1, minmn); u.setbounds(1, minmn, 1, n); complexludecomposition(a, m, n, pivots); for(i = 1; i <= m; i++) { for(j = 1; j <= minmn; j++) { if( j>i ) { l(i,j) = 0; } if( j==i ) { l(i,j) = 1; } if( j<i ) { l(i,j) = a(i,j); } } } for(i = 1; i <= minmn; i++) { for(j = 1; j <= n; j++) { if( j<i ) { u(i,j) = 0; } if( j>=i ) { u(i,j) = a(i,j); } } } }
double complexrcondinf(ap::complex_2d_array a, int n) { double result; int i; int j; double v; double nrm; ap::integer_1d_array pivots; nrm = 0; for(i = 1; i <= n; i++) { v = 0; for(j = 1; j <= n; j++) { v = v+ap::abscomplex(a(i,j)); } nrm = ap::maxreal(nrm, v); } complexludecomposition(a, n, n, pivots); internalestimatecomplexrcondlu(a, n, false, true, nrm, v); result = v; return result; }