1 #include <../../nrnconf.h> 37 static char rcsid[] =
"arnoldi.c,v 1.1 1997/12/04 17:55:13 hines Exp";
52 if ( !
A || ! Q || ! x0 )
56 if ( Q->
n != x0->
dim || Q->
m != m )
73 for ( i = 0; i < m; i++ )
76 u = (*A)(A_param,
v,u);
134 if ( !
A || ! Q || ! b || ! R )
138 if ( Q->
n != b->
dim || Q->
m != m )
159 for ( i = 0; i < m; i++ )
168 R->
me[i+1][
i] = h_val;
183 tmp =
QRsolve(R,diag, rhs,tmp);
VEC * QRsolve(MAT *A, VEC *, VEC *b, VEC *x)
static Object ** v_resize(void *v)
#define m_set_val(A, i, j, val)
MAT * QRfactor(MAT *A, VEC *diag)
static Object ** v_sub(void *v1)
MAT * sp_arnoldi(SPMAT *A, VEC *x0, int m, Real *h_rem, MAT *Q, MAT *H)
VEC * gmres(VEC *(*A)(), void *A_param, int m, MAT *Q, MAT *R, VEC *b, double tol, VEC *x)
#define tracecatch(ok_part, function)
MAT * arnoldi(VEC *(*A)(), void *A_param, VEC *x0, int m, Real *h_rem, MAT *Q, MAT *H)
#define set_col(mat, col, vec)
VEC * sv_mlt(double, VEC *, VEC *)
VEC * sp_mv_mlt(SPMAT *A, VEC *x, VEC *out)
static Object ** v_add(void *v1)
static Object ** m_resize(void *v)
#define MEM_STAT_REG(var, type)
VEC * mv_mlt(MAT *A, VEC *b, VEC *out)
static Object ** m_zero(void *v)
#define error(err_num, fn_name)
#define set_row(mat, row, vec)
VEC * vm_mlt(MAT *A, VEC *b, VEC *out)