1 #include <../../nrnconf.h> 64 { *
c = 1.0;
s->re =
s->im = 0.0; }
67 inv_norm = 1.0 / tmp.
re;
71 *
c = tmp.
re * inv_norm;
73 s->re = - inv_norm*(x.re*y.re + x.im*y.im);
74 s->im = inv_norm*(x.re*y.im - x.im*y.re);
90 if ( i < 0 || i >= x->dim || k < 0 || k >= x->dim )
96 temp1.
re =
c*out->ve[
i].re
97 - s.
re*out->ve[
k].re + s.
im*out->ve[
k].im;
98 temp1.
im =
c*out->ve[
i].im
99 - s.
re*out->ve[
k].im - s.
im*out->ve[
k].re;
102 temp2.
re =
c*out->ve[
k].re
103 + s.
re*out->ve[
i].re + s.
im*out->ve[
i].im;
104 temp2.
im =
c*out->ve[
k].im
105 + s.
re*out->ve[
i].im - s.
im*out->ve[
i].re;
125 if ( i < 0 || i >= mat->m || k < 0 || k >= mat->m )
132 for ( j=0; j<mat->n; j++ )
135 temp1.
re =
c*out->me[
i][
j].re
136 - s.
re*out->me[
k][
j].re + s.
im*out->me[
k][
j].im;
137 temp1.
im =
c*out->me[
i][
j].im
138 - s.
re*out->me[
k][
j].im - s.
im*out->me[
k][
j].re;
141 temp2.
re =
c*out->me[
k][
j].re
142 + s.
re*out->me[
i][
j].re + s.
im*out->me[
i][
j].im;
143 temp2.
im =
c*out->me[
k][
j].im
144 + s.
re*out->me[
i][
j].im - s.
im*out->me[
i][
j].re;
146 out->me[
i][
j] = temp1;
147 out->me[
k][
j] = temp2;
165 if ( i < 0 || i >= mat->n || k < 0 || k >= mat->n )
171 for ( j=0; j<mat->m; j++ )
173 x = out->me[
j][
i]; y = out->me[
j][
k];
ZMAT * zrot_rows(ZMAT *mat, int i, int k, double c, complex s, ZMAT *out)
ZMAT * zrot_cols(ZMAT *mat, int i, int k, double c, complex s, ZMAT *out)
static philox4x32_key_t k
ZMAT * zm_resize(ZMAT *A, int new_m, int new_n)
ZVEC * rot_zvec(ZVEC *x, int i, int k, double c, complex s, ZVEC *out)
void zgivens(complex x, complex y, Real *c, complex *s)
#define error(err_num, fn_name)