1 #include <../../nrnconf.h>
35 static char rcsid[] =
"zhessen.c,v 1.1 1997/12/04 17:56:07 hines Exp";
55 if (
diag->dim <
A->m - 1 )
64 for (
k = 0;
k < limit;
k++ )
91 Real beta, r_ii, tmp_val;
96 if ( HQ == Q || H == Q )
99 if (
diag->dim < limit )
101 if ( HQ->m != HQ->n )
113 for (
i = 0;
i < H->m;
i++ )
116 for (
j = 0;
j < H->m;
j++ )
118 tmp1->
ve[
i].
re = 1.0;
121 for (
j = limit-1;
j >= 0;
j-- )
124 r_ii =
zabs(tmp2->ve[
j+1]);
125 tmp2->ve[
j+1] =
diag->ve[
j];
127 beta = ( tmp_val == 0.0 ) ? 0.0 : 1.0/tmp_val;
144 for (
i = 1;
i < limit;
i++ )
145 for (
j = 0;
j <
i-1;
j++ )
146 H->me[
i][
j].re = H->me[
i][
j].im = 0.0;
#define error(err_num, fn_name)
#define MEM_STAT_REG(var, type)
static philox4x32_key_t k
ZMAT * zHfactor(ZMAT *A, ZVEC *diag)
ZMAT * zHQunpack(ZMAT *HQ, ZVEC *diag, ZMAT *Q, ZMAT *H)
ZVEC * zhhvec(ZVEC *vec, int i0, Real *beta, ZVEC *out, complex *newval)
ZMAT * zhhtrrows(ZMAT *M, int i0, int j0, ZVEC *hh, double beta)
ZMAT * zhhtrcols(ZMAT *M, int i0, int j0, ZVEC *hh, double beta)
ZVEC * zhhtrvec(ZVEC *hh, double beta, int i0, ZVEC *in, ZVEC *out)
ZMAT * zset_col(ZMAT *mat, int col, ZVEC *vec)
ZVEC * zget_col(ZMAT *mat, int col, ZVEC *vec)
ZVEC * zv_resize(ZVEC *x, int new_dim)
ZMAT * zm_resize(ZMAT *A, int new_m, int new_n)