public static void sorthog_float(float *vec, /* vector to be orthogonalized */ int n, /* length of the columns of orth */ orthlink_float **solist, /* set of vecs to orth. against */ int ngood /* number of vecs in solist */ ) { float alpha; float *dir; int i; for (i = 1; i <= ngood; i++) { dir = (solist[i])->vec; alpha = (float)(-dot_float(vec, 1, n, dir) / dot_float(dir, 1, n, dir)); scadd_float(vec, 1, n, alpha, dir); } }
/* Print out the orthogonalization set, float version */ public static void solistout_float(orthlink_float **solist, /* vector of pntrs to orthlnks */ int ngood, /* number of good vecs on list */ int j /* current number of Lanczos steps */ ) { int i; /* index */ for (i = 1; i <= ngood; i++) { if ((solist[i])->index <= (j / 2)) { Trace.Write("."); } else { Trace.Write("+"); } } Trace.WriteLine($"{ngood:d}"); }