1 #include <../../nrnconf.h>
33 static char rcsid[] =
"update.c,v 1.1 1997/12/04 17:56:01 hines Exp";
58 if ( CHmat->m != CHmat->n || w->
dim != CHmat->m )
61 for (
j=0;
j < w->
dim;
j++ )
66 if ( new_diag <= 0.0 )
73 w->
ve[
i] -=
p*CHmat->me[
i][
j];
74 CHmat->me[
i][
j] += beta*w->
ve[
i];
75 CHmat->me[
j][
i] = CHmat->me[
i][
j];
94 if ( ! R || ! u || !
v )
96 if ( ( Q && ( Q->m != Q->n || R->m != Q->n ) ) ||
97 u->
dim != R->m ||
v->dim != R->n )
101 for (
k=R->m-1;
k>=0;
k-- )
102 if ( u->
ve[
k] != 0.0 )
106 for (
i=
k-1;
i>=0;
i-- )
118 for (
j=0;
j<R->n;
j++ )
119 R->me[0][
j] += temp*
v->ve[
j];
#define error(err_num, fn_name)
void givens(double x, double y, Real *c, Real *s)
VEC * rot_vec(VEC *x, u_int i, u_int k, double c, double s, VEC *out)
MAT * rot_cols(MAT *mat, u_int i, u_int k, double c, double s, MAT *out)
MAT * rot_rows(MAT *mat, u_int i, u_int k, double c, double s, MAT *out)
static philox4x32_key_t k
MAT * LDLupdate(MAT *CHmat, VEC *w, double alpha)
MAT * QRupdate(MAT *Q, MAT *R, VEC *u, VEC *v)