1 #include <../../nrnconf.h> 37 static char rcsid[] =
"hsehldr.c,v 1.1 1997/12/04 17:55:24 hines Exp";
61 *beta = 1.0/(norm * (norm+
fabs(out->ve[i0])));
62 if ( out->ve[i0] > 0.0 )
66 out->ve[i0] -= *newval;
82 if ( in->dim != hh->dim )
89 __mltadd__(&(out->ve[i0]),&(hh->ve[i0]),-scale,(
int)(in->dim-i0));
111 if ( M->n != hh->
dim )
113 if ( i0 > M->m || j0 > M->n )
116 if ( beta == 0.0 )
return (M);
119 for ( i = i0; i < M->m; i++ )
121 ip =
__ip__(&(M->me[i][j0]),&(hh->
ve[j0]),(
int)(M->n-j0));
158 if ( M->m != hh->
dim )
160 if ( i0 > M->m || j0 > M->n )
163 if ( beta == 0.0 )
return (M);
169 for ( i = i0; i < M->m; i++ )
170 if ( hh->
ve[i] != 0.0 )
173 for ( i = i0; i < M->m; i++ )
174 if ( hh->
ve[i] != 0.0 )
static Object ** v_resize(void *v)
void __mltadd__(Real *dp1, Real *dp2, double s, int len)
VEC * hhtrvec(VEC *hh, double beta, u_int i0, VEC *in, VEC *out)
MAT * hhtrcols(MAT *M, u_int i0, u_int j0, VEC *hh, double beta)
VEC * _v_copy(VEC *in, VEC *out, u_int i0)
VEC * hhvec(VEC *vec, u_int i0, Real *beta, VEC *out, Real *newval)
double __ip__(Real *dp1, Real *dp2, int len)
#define MEM_STAT_REG(var, type)
#define error(err_num, fn_name)
double _in_prod(VEC *x, VEC *y, u_int i0)
MAT * hhtrrows(MAT *M, u_int i0, u_int j0, VEC *hh, double beta)