Пример #1
0
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;
}
Пример #2
0
/*************************************************************************
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;
}
Пример #3
0
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);
            }
        }
    }
}
Пример #4
0
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;
}