10 static double tpi = 6.283185307179586;
12 static void uortho(
double *
g,
int n);
20 Cpx h, *v, *e, *p, *
r;
25 g = (
double *)calloc(n * n,
sizeof(
double));
26 v = (
Cpx *) calloc(m + n,
sizeof(
Cpx));
30 for (i = 0; i < n; ++i) {
39 for (i = 0; i < n; ++i) {
45 for (i = 0, p = v, q = g; i < n; ++i) {
46 for (j = 0; j < n; ++j)
49 for (i = 0, p = v; i < n; ++i) {
50 for (j = 0, h = e[i]; j < n; ++j, ++p) {
57 for (i = m = 0, p = u; i < n; ++i, m += n) {
58 for (j = 0; j < n; ++j, ++p) {
60 for (k = 0, q = g + m, r = v + j; k < n; ++k, r += n) {
62 p->
im += *q++ * r->im;
70 static void uortho(
double *
g,
int n)
74 double *p, *q, c, s, a;
76 for (i = 0, p =
g; i < n; ++i) {
77 for (j = 0; j < n; ++j) {
84 for (i = 0, m = n - 1; i < m; ++i) {
85 for (j = i + 1; j < n; ++j) {
91 for (k = 0; k < n; ++k) {
void unitary(Cpx *u, int n)