#3/4 switch realpart() and imagpart() args from ngcomplex* to ngcomplex
This commit is contained in:
parent
94e3abd847
commit
a056ea3065
31
ChangeLog
31
ChangeLog
|
|
@ -1,3 +1,34 @@
|
|||
2012-02-07 Robert Larice
|
||||
* src/ngsconvert.c ,
|
||||
* src/tclspice.c ,
|
||||
* src/ciderlib/support/database.c ,
|
||||
* src/frontend/breakp.c ,
|
||||
* src/frontend/com_compose.c ,
|
||||
* src/frontend/cpitf.c ,
|
||||
* src/frontend/diff.c ,
|
||||
* src/frontend/evaluate.c ,
|
||||
* src/frontend/options.c ,
|
||||
* src/frontend/points.c ,
|
||||
* src/frontend/postcoms.c ,
|
||||
* src/frontend/rawfile.c ,
|
||||
* src/frontend/vectors.c ,
|
||||
* src/frontend/plotting/agraf.c ,
|
||||
* src/frontend/plotting/gnuplot.c ,
|
||||
* src/frontend/plotting/graf.c ,
|
||||
* src/frontend/plotting/plotcurv.c ,
|
||||
* src/frontend/plotting/plotit.c ,
|
||||
* src/frontend/plotting/xgraph.c ,
|
||||
* src/include/ngspice/complex.h ,
|
||||
* src/maths/cmaths/cmath1.c ,
|
||||
* src/maths/cmaths/cmath2.c ,
|
||||
* src/maths/cmaths/cmath3.c ,
|
||||
* src/maths/cmaths/cmath4.c ,
|
||||
* src/maths/cmaths/test_cx_cph.c ,
|
||||
* src/maths/cmaths/test_cx_j.c ,
|
||||
* src/maths/cmaths/test_cx_mag.c ,
|
||||
* src/maths/cmaths/test_cx_ph.c :
|
||||
#3/4 switch realpart() and imagpart() args from ngcomplex* to ngcomplex
|
||||
|
||||
2012-02-07 Robert Larice
|
||||
* src/frontend/diff.c ,
|
||||
* src/include/ngspice/complex.h ,
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ DBgetData(struct plot *plot, char *name, int lengthWanted)
|
|||
bcopy(v->v_realdata, data, sizeof (double) * (size_t) v->v_length);
|
||||
} else {
|
||||
for (i=0; i < v->v_length; i++) {
|
||||
data[i] = realpart(&v->v_compdata[i]);
|
||||
data[i] = realpart(v->v_compdata[i]);
|
||||
}
|
||||
}
|
||||
return(data);
|
||||
|
|
|
|||
|
|
@ -432,7 +432,7 @@ satisfied(struct dbcomm *d, struct plot *plot)
|
|||
if (isreal(v1))
|
||||
d1 = v1->v_realdata[v1->v_length - 1];
|
||||
else
|
||||
d1 = realpart(&(v1->v_compdata[v1->v_length - 1]));
|
||||
d1 = realpart((v1->v_compdata[v1->v_length - 1]));
|
||||
} else
|
||||
d1 = d->db_value1;
|
||||
|
||||
|
|
@ -445,7 +445,7 @@ satisfied(struct dbcomm *d, struct plot *plot)
|
|||
if (isreal(v2))
|
||||
d2 = v2->v_realdata[v2->v_length - 1];
|
||||
else
|
||||
d2 = realpart(&(v2->v_compdata[v2->v_length - 1]));
|
||||
d2 = realpart((v2->v_compdata[v2->v_length - 1]));
|
||||
} else
|
||||
d2 = d->db_value2;
|
||||
|
||||
|
|
|
|||
|
|
@ -38,8 +38,8 @@ dimxpand(struct dvec *v, int *newdims, double *data)
|
|||
if (realflag) {
|
||||
data[n] = v->v_realdata[o];
|
||||
} else {
|
||||
realpart(&cdata[n]) = realpart(&v->v_compdata[o]);
|
||||
imagpart(&cdata[n]) = imagpart(&v->v_compdata[o]);
|
||||
realpart(cdata[n]) = realpart(v->v_compdata[o]);
|
||||
imagpart(cdata[n]) = imagpart(v->v_compdata[o]);
|
||||
}
|
||||
/* Now find the nextstrchr element... */
|
||||
for (i = v->v_numdims - 1; i >= 0; i--) {
|
||||
|
|
@ -192,14 +192,14 @@ com_compose(wordlist *wl)
|
|||
if (realflag && isreal(v))
|
||||
data[i] = v->v_realdata[0];
|
||||
else if (isreal(v)) {
|
||||
realpart(&cdata[i]) =
|
||||
realpart(&v->v_compdata[0]);
|
||||
imagpart(&cdata[i]) = 0.0;
|
||||
realpart(cdata[i]) =
|
||||
realpart(v->v_compdata[0]);
|
||||
imagpart(cdata[i]) = 0.0;
|
||||
} else {
|
||||
realpart(&cdata[i]) =
|
||||
realpart(&v->v_compdata[0]);
|
||||
imagpart(&cdata[i]) =
|
||||
imagpart(&v->v_compdata[0]);
|
||||
realpart(cdata[i]) =
|
||||
realpart(v->v_compdata[0]);
|
||||
imagpart(cdata[i]) =
|
||||
imagpart(v->v_compdata[0]);
|
||||
}
|
||||
i++;
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -305,8 +305,8 @@ cp_istrue(wordlist *wl)
|
|||
}
|
||||
} else {
|
||||
for (i = 0; i < v->v_length; i++)
|
||||
if ((realpart(&v->v_compdata[i]) != 0.0) ||
|
||||
(imagpart(&v->v_compdata[i]) != 0.0)) {
|
||||
if ((realpart(v->v_compdata[i]) != 0.0) ||
|
||||
(imagpart(v->v_compdata[i]) != 0.0)) {
|
||||
free_pnode(pn);
|
||||
return (TRUE);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -240,8 +240,8 @@ com_diff(wordlist *wl)
|
|||
} else {
|
||||
c1 = v1->v_compdata[i];
|
||||
c2 = v2->v_compdata[i];
|
||||
realpart(&c3) = realpart(&c1) - realpart(&c2);
|
||||
imagpart(&c3) = imagpart(&c1) - imagpart(&c2);
|
||||
realpart(c3) = realpart(c1) - realpart(c2);
|
||||
imagpart(c3) = imagpart(c1) - imagpart(c2);
|
||||
/* Stupid evil PC compilers */
|
||||
cm1 = cmag(c1);
|
||||
cm2 = cmag(c2);
|
||||
|
|
@ -249,10 +249,10 @@ com_diff(wordlist *wl)
|
|||
if (cmax * reltol +
|
||||
tol < cmag(c3)) {
|
||||
|
||||
printnum(numbuf, realpart(&c1));
|
||||
printnum(numbuf2, imagpart(&c1));
|
||||
printnum(numbuf3, realpart(&c2));
|
||||
printnum(numbuf4, imagpart(&c2));
|
||||
printnum(numbuf, realpart(c1));
|
||||
printnum(numbuf2, imagpart(c1));
|
||||
printnum(numbuf3, realpart(c2));
|
||||
printnum(numbuf4, imagpart(c2));
|
||||
|
||||
fprintf(cp_out,
|
||||
"%s.%s[%d] = %-10s, %-10s %s.%s[%d] = %-10s, %s\n",
|
||||
|
|
|
|||
|
|
@ -122,8 +122,8 @@ ft_ternary(struct pnode *node)
|
|||
|
||||
c = isreal(cond)
|
||||
? (cond->v_realdata[0] != 0.0)
|
||||
: ((realpart(cond->v_compdata) != 0.0) ||
|
||||
(imagpart(cond->v_compdata) != 0.0) );
|
||||
: ((realpart(cond->v_compdata[0]) != 0.0) ||
|
||||
(imagpart(cond->v_compdata[0]) != 0.0) );
|
||||
|
||||
arg = c
|
||||
? node->pn_right->pn_left
|
||||
|
|
@ -261,8 +261,8 @@ doop(char what,
|
|||
for ( ; i < length; i++)
|
||||
d1[i] = ld;
|
||||
} else {
|
||||
realpart(&lc) = 0.0;
|
||||
imagpart(&lc) = 0.0;
|
||||
realpart(lc) = 0.0;
|
||||
imagpart(lc) = 0.0;
|
||||
c1 = TMALLOC(ngcomplex_t, length);
|
||||
for (i = 0; i < v1->v_length; i++)
|
||||
c1[i] = v1->v_compdata[i];
|
||||
|
|
@ -288,8 +288,8 @@ doop(char what,
|
|||
for ( ; i < length; i++)
|
||||
d2[i] = ld;
|
||||
} else {
|
||||
realpart(&lc) = 0.0;
|
||||
imagpart(&lc) = 0.0;
|
||||
realpart(lc) = 0.0;
|
||||
imagpart(lc) = 0.0;
|
||||
c2 = TMALLOC(ngcomplex_t, length);
|
||||
for (i = 0; i < v2->v_length; i++)
|
||||
c2[i] = v2->v_compdata[i];
|
||||
|
|
@ -586,8 +586,8 @@ op_range(struct pnode *arg1, struct pnode *arg2)
|
|||
if (isreal(ind)) {
|
||||
up = low = *ind->v_realdata;
|
||||
} else {
|
||||
up = imagpart(ind->v_compdata);
|
||||
low = realpart(ind->v_compdata);
|
||||
up = imagpart(ind->v_compdata[0]);
|
||||
low = realpart(ind->v_compdata[0]);
|
||||
}
|
||||
if (up < low) {
|
||||
td = up;
|
||||
|
|
@ -597,7 +597,7 @@ op_range(struct pnode *arg1, struct pnode *arg2)
|
|||
}
|
||||
for (i = len = 0; i < scale->v_length; i++) {
|
||||
td = isreal(scale) ? scale->v_realdata[i] :
|
||||
realpart(&scale->v_compdata[i]);
|
||||
realpart(scale->v_compdata[i]);
|
||||
if ((td <= up) && (td >= low))
|
||||
len++;
|
||||
}
|
||||
|
|
@ -632,15 +632,15 @@ op_range(struct pnode *arg1, struct pnode *arg2)
|
|||
for (i = (rev ? v->v_length - 1 : 0); i != (rev ? -1 : v->v_length);
|
||||
rev ? i-- : i++) {
|
||||
td = isreal(scale) ? scale->v_realdata[i] :
|
||||
realpart(&scale->v_compdata[i]);
|
||||
realpart(scale->v_compdata[i]);
|
||||
if ((td <= up) && (td >= low)) {
|
||||
if (isreal(res)) {
|
||||
res->v_realdata[j] = v->v_realdata[i];
|
||||
} else {
|
||||
realpart(&res->v_compdata[j]) =
|
||||
realpart(&v->v_compdata[i]);
|
||||
imagpart(&res->v_compdata[j]) =
|
||||
imagpart(&v->v_compdata[i]);
|
||||
realpart(res->v_compdata[j]) =
|
||||
realpart(v->v_compdata[i]);
|
||||
imagpart(res->v_compdata[j]) =
|
||||
imagpart(v->v_compdata[i]);
|
||||
}
|
||||
j++;
|
||||
}
|
||||
|
|
@ -718,8 +718,8 @@ op_ind(struct pnode *arg1, struct pnode *arg2)
|
|||
down = up = (int)floor(ind->v_realdata[0] + 0.5);
|
||||
} else {
|
||||
newdim = v->v_numdims;
|
||||
down = (int)floor(realpart(&ind->v_compdata[0]) + 0.5);
|
||||
up = (int)floor(imagpart(&ind->v_compdata[0]) + 0.5);
|
||||
down = (int)floor(realpart(ind->v_compdata[0]) + 0.5);
|
||||
up = (int)floor(imagpart(ind->v_compdata[0]) + 0.5);
|
||||
}
|
||||
if (up < down) {
|
||||
i = up;
|
||||
|
|
@ -788,10 +788,10 @@ op_ind(struct pnode *arg1, struct pnode *arg2)
|
|||
res->v_realdata[k * blocksize + i] =
|
||||
v->v_realdata[(down + j) * blocksize + i];
|
||||
else {
|
||||
realpart(&res->v_compdata[k * blocksize + i]) =
|
||||
realpart(&v->v_compdata[(down + j) * blocksize + i]);
|
||||
imagpart(&res->v_compdata[k * blocksize + i]) =
|
||||
imagpart(&v->v_compdata[(down + j) * blocksize + i]);
|
||||
realpart(res->v_compdata[k * blocksize + i]) =
|
||||
realpart(v->v_compdata[(down + j) * blocksize + i]);
|
||||
imagpart(res->v_compdata[k * blocksize + i]) =
|
||||
imagpart(v->v_compdata[(down + j) * blocksize + i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ cp_enqvar(char *word)
|
|||
vv->va_real = d->v_realdata[0];
|
||||
} else {
|
||||
vv->va_real =
|
||||
realpart(&d->v_compdata[0]);
|
||||
realpart(d->v_compdata[0]);
|
||||
}
|
||||
} else {
|
||||
vv = alloc(struct variable);
|
||||
|
|
@ -71,7 +71,7 @@ cp_enqvar(char *word)
|
|||
tv->va_real = d->v_realdata[i];
|
||||
} else {
|
||||
tv->va_real =
|
||||
realpart(&d->v_compdata[i]);
|
||||
realpart(d->v_compdata[i]);
|
||||
}
|
||||
tv->va_next = vv->va_vlist;
|
||||
vv->va_vlist = tv;
|
||||
|
|
|
|||
|
|
@ -198,7 +198,7 @@ ft_agraf(double *xlims, double *ylims, struct dvec *xscale, struct plot *plot, s
|
|||
for (i = 0; i < maxx; i++) {
|
||||
if (nointerp)
|
||||
x = isreal(xscale) ? xscale->v_realdata[i] :
|
||||
realpart(&xscale->v_compdata[i]);
|
||||
realpart(xscale->v_compdata[i]);
|
||||
else if (xlog && xrange[0] > 0.0 && xrange[1] > 0.0)
|
||||
x = xrange[0] * pow( 10.0, mylog10(xrange[1]/xrange[0])
|
||||
* i / (maxx - 1));
|
||||
|
|
@ -206,21 +206,21 @@ ft_agraf(double *xlims, double *ylims, struct dvec *xscale, struct plot *plot, s
|
|||
x = xrange[0] + (xrange[1] - xrange[0]) * i /
|
||||
(maxx - 1);
|
||||
while ((isreal(xscale) ? (xscale->v_realdata[upper] < x) :
|
||||
(realpart(&xscale->v_compdata[upper]) < x)) &&
|
||||
(realpart(xscale->v_compdata[upper]) < x)) &&
|
||||
(upper < xscale->v_length - 1))
|
||||
upper++;
|
||||
while ((isreal(xscale) ? (xscale->v_realdata[lower] < x) :
|
||||
(realpart(&xscale->v_compdata[lower]) < x)) &&
|
||||
(realpart(xscale->v_compdata[lower]) < x)) &&
|
||||
(lower < xscale->v_length - 1))
|
||||
lower++;
|
||||
if ((isreal(xscale) ? (xscale->v_realdata[lower] > x) :
|
||||
(realpart(&xscale->v_compdata[lower]) > x)) &&
|
||||
(realpart(xscale->v_compdata[lower]) > x)) &&
|
||||
(lower > 0))
|
||||
lower--;
|
||||
x1 = (isreal(xscale) ? xscale->v_realdata[lower] :
|
||||
realpart(&xscale->v_compdata[lower]));
|
||||
realpart(xscale->v_compdata[lower]));
|
||||
x2 = (isreal(xscale) ? xscale->v_realdata[upper] :
|
||||
realpart(&xscale->v_compdata[upper]));
|
||||
realpart(xscale->v_compdata[upper]));
|
||||
if (x1 > x2) {
|
||||
fprintf(cp_err, "Error: X scale (%s) not monotonic\n",
|
||||
xscale->v_name);
|
||||
|
|
@ -228,9 +228,9 @@ ft_agraf(double *xlims, double *ylims, struct dvec *xscale, struct plot *plot, s
|
|||
}
|
||||
for (v = vecs; v; v = v->v_link2) {
|
||||
yy1 = (isreal(v) ? v->v_realdata[lower] :
|
||||
realpart(&v->v_compdata[lower]));
|
||||
realpart(v->v_compdata[lower]));
|
||||
y2 = (isreal(v) ? v->v_realdata[upper] :
|
||||
realpart(&v->v_compdata[upper]));
|
||||
realpart(v->v_compdata[upper]));
|
||||
if (x1 == x2)
|
||||
y = yy1;
|
||||
else
|
||||
|
|
@ -290,7 +290,7 @@ ft_agraf(double *xlims, double *ylims, struct dvec *xscale, struct plot *plot, s
|
|||
for (i = 0; i < maxx; i++) {
|
||||
if (nointerp)
|
||||
x = isreal(xscale) ? xscale->v_realdata[i] :
|
||||
realpart(&xscale->v_compdata[i]);
|
||||
realpart(xscale->v_compdata[i]);
|
||||
else if (xlog && xrange[0] > 0.0 && xrange[1] > 0.0)
|
||||
x = xrange[0] * pow( 10.0, mylog10(xrange[1]/xrange[0])
|
||||
* i / (maxx - 1));
|
||||
|
|
|
|||
|
|
@ -195,10 +195,10 @@ ft_gnuplot(double *xlims, double *ylims, char *filename, char *title, char *xlab
|
|||
scale = v->v_scale;
|
||||
|
||||
xval = isreal(scale) ?
|
||||
scale->v_realdata[i] : realpart(&scale->v_compdata[i]);
|
||||
scale->v_realdata[i] : realpart(scale->v_compdata[i]);
|
||||
|
||||
yval = isreal(v) ?
|
||||
v->v_realdata[i] : realpart(&v->v_compdata[i]);
|
||||
v->v_realdata[i] : realpart(v->v_compdata[i]);
|
||||
|
||||
fprintf( file_data, "% e % e ", xval, yval );
|
||||
}
|
||||
|
|
@ -273,12 +273,12 @@ ft_writesimple(double *xlims, double *ylims, char *filename, char *title, char *
|
|||
scale = v->v_scale;
|
||||
|
||||
xval = isreal(scale) ?
|
||||
scale->v_realdata[i] : realpart(&scale->v_compdata[i]);
|
||||
scale->v_realdata[i] : realpart(scale->v_compdata[i]);
|
||||
|
||||
if (isreal(v))
|
||||
fprintf( file_data, "% e % e ", xval, v->v_realdata[i] );
|
||||
else
|
||||
fprintf( file_data, "% e % e % e ", xval, realpart(&v->v_compdata[i]), imagpart(&v->v_compdata[i]) );
|
||||
fprintf( file_data, "% e % e % e ", xval, realpart(v->v_compdata[i]), imagpart(v->v_compdata[i]) );
|
||||
}
|
||||
fprintf( file_data, "\n");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -688,7 +688,7 @@ iplot(struct plot *pl, int id)
|
|||
Input(&reqst, 0);
|
||||
/* First see if we have to make the screen bigger */
|
||||
dy = (isreal(xs) ? xs->v_realdata[len - 1] :
|
||||
realpart(&xs->v_compdata[len - 1]));
|
||||
realpart(xs->v_compdata[len - 1]));
|
||||
if (ft_grdb)
|
||||
fprintf(cp_err, "x = %G\n", dy);
|
||||
if (!if_tranparams(ft_curckt, &start, &stop, &step) ||
|
||||
|
|
@ -744,7 +744,7 @@ iplot(struct plot *pl, int id)
|
|||
if (!(v->v_flags & VF_PLOT))
|
||||
continue;
|
||||
dy = (isreal(v) ? v->v_realdata[len - 1] :
|
||||
realpart(&v->v_compdata[len - 1]));
|
||||
realpart(v->v_compdata[len - 1]));
|
||||
if (ft_grdb)
|
||||
fprintf(cp_err, "y = %G\n", dy);
|
||||
/* checking for y lo */
|
||||
|
|
@ -798,13 +798,13 @@ iplot(struct plot *pl, int id)
|
|||
if (v->v_flags & VF_PLOT) {
|
||||
gr_point(v,
|
||||
(isreal(xs) ? xs->v_realdata[len - 1] :
|
||||
realpart(&xs->v_compdata[len - 1])),
|
||||
realpart(xs->v_compdata[len - 1])),
|
||||
(isreal(v) ? v->v_realdata[len - 1] :
|
||||
realpart(&v->v_compdata[len - 1])),
|
||||
realpart(v->v_compdata[len - 1])),
|
||||
(isreal(xs) ? xs->v_realdata[len - 2] :
|
||||
realpart(&xs->v_compdata[len - 2])),
|
||||
realpart(xs->v_compdata[len - 2])),
|
||||
(isreal(v) ? v->v_realdata[len - 2] :
|
||||
realpart(&v->v_compdata[len - 2])),
|
||||
realpart(v->v_compdata[len - 2])),
|
||||
len - 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,11 +71,11 @@ ft_graf(struct dvec *v, struct dvec *xs, bool nostart)
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
increasing = (realpart (&xs->v_compdata[0]) <
|
||||
realpart( &xs->v_compdata[1]));
|
||||
increasing = (realpart (xs->v_compdata[0]) <
|
||||
realpart(xs->v_compdata[1]));
|
||||
for (i = 0; i < xs->v_length - 1; i++)
|
||||
if (increasing != (realpart( &xs->v_compdata[i]) <
|
||||
realpart( &xs->v_compdata[i + 1]))) {
|
||||
if (increasing != (realpart(xs->v_compdata[i]) <
|
||||
realpart(xs->v_compdata[i + 1]))) {
|
||||
fprintf(cp_err,
|
||||
"Warning: scale not monotonic, gridsize not relevant.\n");
|
||||
gridsize = 0;
|
||||
|
|
@ -113,10 +113,10 @@ ft_graf(struct dvec *v, struct dvec *xs, bool nostart)
|
|||
0.0, /* v->v_realdata[j], */
|
||||
(j==i ? 1 : i));
|
||||
} else {
|
||||
gr_point(v, realpart(&v->v_compdata[i]),
|
||||
imagpart(&v->v_compdata[i]),
|
||||
realpart(&v->v_compdata[j]),
|
||||
imagpart(&v->v_compdata[j]), (j==i ? 1 : i));
|
||||
gr_point(v, realpart(v->v_compdata[i]),
|
||||
imagpart(v->v_compdata[i]),
|
||||
realpart(v->v_compdata[j]),
|
||||
imagpart(v->v_compdata[j]), (j==i ? 1 : i));
|
||||
}
|
||||
}
|
||||
gr_end(v);
|
||||
|
|
@ -132,9 +132,9 @@ ft_graf(struct dvec *v, struct dvec *xs, bool nostart)
|
|||
dir = 0;
|
||||
for (i = 0, j = v->v_length; i < j; i++) {
|
||||
dx = isreal(xs) ? xs->v_realdata[i] :
|
||||
realpart(&xs->v_compdata[i]);
|
||||
realpart(xs->v_compdata[i]);
|
||||
dy = isreal(v) ? v->v_realdata[i] :
|
||||
realpart(&v->v_compdata[i]);
|
||||
realpart(v->v_compdata[i]);
|
||||
if ((i == 0 || (dir > 0 ? lx > dx : dir < 0 ? lx < dx : 0))
|
||||
&& xs->v_plot && xs->v_plot->pl_scale == xs)
|
||||
{
|
||||
|
|
@ -165,14 +165,14 @@ ft_graf(struct dvec *v, struct dvec *xs, bool nostart)
|
|||
else {
|
||||
ydata = TMALLOC(double, v->v_length);
|
||||
for (i = 0; i < v->v_length; i++)
|
||||
ydata[i] = realpart(&v->v_compdata[i]);
|
||||
ydata[i] = realpart(v->v_compdata[i]);
|
||||
}
|
||||
if (isreal(xs))
|
||||
xdata = xs->v_realdata;
|
||||
else {
|
||||
xdata = TMALLOC(double, xs->v_length);
|
||||
for (i = 0; i < xs->v_length; i++)
|
||||
xdata[i] = realpart(&xs->v_compdata[i]);
|
||||
xdata[i] = realpart(xs->v_compdata[i]);
|
||||
}
|
||||
|
||||
mm = ft_minmax(xs, TRUE);
|
||||
|
|
@ -220,12 +220,12 @@ ft_graf(struct dvec *v, struct dvec *xs, bool nostart)
|
|||
bcopy(v->v_realdata, ydata, (size_t)(degree + 1) * sizeof(double));
|
||||
else
|
||||
for (i = 0; i <= degree; i++)
|
||||
ydata[i] = realpart(&v->v_compdata[i]);
|
||||
ydata[i] = realpart(v->v_compdata[i]);
|
||||
if (isreal(xs))
|
||||
bcopy(xs->v_realdata, xdata, (size_t)(degree + 1) * sizeof(double));
|
||||
else
|
||||
for (i = 0; i <= degree; i++)
|
||||
xdata[i] = realpart(&xs->v_compdata[i]);
|
||||
xdata[i] = realpart(xs->v_compdata[i]);
|
||||
|
||||
rot = FALSE;
|
||||
while (!ft_polyfit(xdata, ydata, result, degree, scratch)) {
|
||||
|
|
@ -266,11 +266,11 @@ ft_graf(struct dvec *v, struct dvec *xs, bool nostart)
|
|||
if (isreal(v))
|
||||
ydata[i] = v->v_realdata[l];
|
||||
else
|
||||
ydata[i] = realpart(&v->v_compdata[l]);
|
||||
ydata[i] = realpart(v->v_compdata[l]);
|
||||
if (isreal(xs))
|
||||
xdata[i] = xs->v_realdata[l];
|
||||
else
|
||||
xdata[i] = realpart(&xs->v_compdata[l]);
|
||||
xdata[i] = realpart(xs->v_compdata[l]);
|
||||
|
||||
rot = FALSE;
|
||||
while (!ft_polyfit(xdata, ydata, result, degree, scratch)) {
|
||||
|
|
|
|||
|
|
@ -124,14 +124,14 @@ xtend(struct dvec *v, int length)
|
|||
oc = v->v_compdata;
|
||||
v->v_compdata = TMALLOC(ngcomplex_t, length);
|
||||
for (i = 0; i < v->v_length; i++) {
|
||||
realpart(&v->v_compdata[i]) = realpart(&oc[i]);
|
||||
imagpart(&v->v_compdata[i]) = imagpart(&oc[i]);
|
||||
realpart(v->v_compdata[i]) = realpart(oc[i]);
|
||||
imagpart(v->v_compdata[i]) = imagpart(oc[i]);
|
||||
}
|
||||
realpart(&c) = realpart(&oc[--i]);
|
||||
imagpart(&c) = imagpart(&oc[i]);
|
||||
realpart(c) = realpart(oc[--i]);
|
||||
imagpart(c) = imagpart(oc[i]);
|
||||
while (i < length) {
|
||||
realpart(&v->v_compdata[i]) = realpart(&c);
|
||||
imagpart(&v->v_compdata[i++]) = imagpart(&c);
|
||||
realpart(v->v_compdata[i]) = realpart(c);
|
||||
imagpart(v->v_compdata[i++]) = imagpart(c);
|
||||
tfree(oc);
|
||||
}
|
||||
}
|
||||
|
|
@ -763,8 +763,8 @@ plotit(wordlist *wl, char *hcopy, char *devname)
|
|||
for (j = 0; j < d->v_length; j++) {
|
||||
/* (re - 1, im) / (re + 1, im) */
|
||||
|
||||
re = realpart(d->v_compdata + j);
|
||||
im = imagpart(d->v_compdata + j);
|
||||
re = realpart(d->v_compdata[j]);
|
||||
im = imagpart(d->v_compdata[j]);
|
||||
|
||||
rex = re + 1;
|
||||
imx = im;
|
||||
|
|
@ -776,11 +776,11 @@ plotit(wordlist *wl, char *hcopy, char *devname)
|
|||
* i = im / rex - re / rex * imx / rex;
|
||||
*
|
||||
*
|
||||
* realpart(d->v_compdata + j) = r / x;
|
||||
* imagpart(d->v_compdata + j) = i / x;
|
||||
* realpart(d->v_compdata[j]) = r / x;
|
||||
* imagpart(d->v_compdata[j]) = i / x;
|
||||
*/
|
||||
realpart(d->v_compdata + j) = (rex*re+imx*imx) / (rex*rex+imx*imx);
|
||||
imagpart(d->v_compdata + j) = (2*imx) / (rex*rex+imx*imx);
|
||||
realpart(d->v_compdata[j]) = (rex*re+imx*imx) / (rex*rex+imx*imx);
|
||||
imagpart(d->v_compdata[j]) = (2*imx) / (rex*rex+imx*imx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,9 +150,9 @@ ft_xgraph(double *xlims, double *ylims, char *filename, char *title, char *xlabe
|
|||
}
|
||||
for ( i = 0; i < scale->v_length; i++ ) {
|
||||
xval = isreal(scale) ?
|
||||
scale->v_realdata[i] : realpart(&scale->v_compdata[i]);
|
||||
scale->v_realdata[i] : realpart(scale->v_compdata[i]);
|
||||
yval = isreal(v) ?
|
||||
v->v_realdata[i] : realpart(&v->v_compdata[i]);
|
||||
v->v_realdata[i] : realpart(v->v_compdata[i]);
|
||||
fprintf( file, "% e % e\n", xval, yval );
|
||||
}
|
||||
fprintf( file, "\n" );
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ ft_minmax(struct dvec *v, bool real)
|
|||
if (isreal(v))
|
||||
d = v->v_realdata[i];
|
||||
else if (real)
|
||||
d = realpart(&v->v_compdata[i]);
|
||||
d = realpart(v->v_compdata[i]);
|
||||
else
|
||||
d = imagpart(&v->v_compdata[i]);
|
||||
d = imagpart(v->v_compdata[i]);
|
||||
if (d < res[0])
|
||||
res[0] = d;
|
||||
if (d > res[1])
|
||||
|
|
@ -85,7 +85,7 @@ ft_SMITHminmax(struct dvec *v, bool yval)
|
|||
if (isreal(v))
|
||||
SMITH_tfm( v->v_realdata[i], 0.0, &d, &d2 );
|
||||
else
|
||||
SMITH_tfm( realpart(&v->v_compdata[i]), imagpart(&v->v_compdata[i]),
|
||||
SMITH_tfm( realpart(v->v_compdata[i]), imagpart(v->v_compdata[i]),
|
||||
&d, &d2 );
|
||||
/* Are we are looking for min/max X or Y ralue
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -171,8 +171,8 @@ com_print(wordlist *wl)
|
|||
printnum(numbuf, *v->v_realdata);
|
||||
out_printf("%s = %s\n", buf, numbuf);
|
||||
} else {
|
||||
printnum(numbuf, realpart(v->v_compdata));
|
||||
printnum(numbuf2, imagpart(v->v_compdata));
|
||||
printnum(numbuf, realpart(v->v_compdata[0]));
|
||||
printnum(numbuf2, imagpart(v->v_compdata[0]));
|
||||
out_printf("%s = %s,%s\n", buf,
|
||||
numbuf,
|
||||
numbuf2);
|
||||
|
|
@ -195,8 +195,8 @@ com_print(wordlist *wl)
|
|||
out_send("\t");
|
||||
} else {
|
||||
/*DG*/
|
||||
printnum(numbuf, realpart(&v->v_compdata[i]));
|
||||
printnum(numbuf2, imagpart(&v->v_compdata[i]));
|
||||
printnum(numbuf, realpart(v->v_compdata[i]));
|
||||
printnum(numbuf2, imagpart(v->v_compdata[i]));
|
||||
(void) sprintf(buf, "%s,%s",
|
||||
numbuf,
|
||||
numbuf2);
|
||||
|
|
@ -288,7 +288,7 @@ nextpage:
|
|||
*/
|
||||
if(eq(v->v_name, "frequency"))
|
||||
{
|
||||
if(imagpart(&v->v_compdata[0])==0.0)
|
||||
if(imagpart(v->v_compdata[0])==0.0)
|
||||
{
|
||||
(void) sprintf(buf2, "%-16.15s", v->v_name);
|
||||
}
|
||||
|
|
@ -337,16 +337,16 @@ loop:
|
|||
/* In case of a single frequency and have a real part avoids print imaginary part equals 0. */
|
||||
if(eq(v->v_name, "frequency"))
|
||||
{
|
||||
if(imagpart(&v->v_compdata[j])==0.0)
|
||||
if(imagpart(v->v_compdata[j])==0.0)
|
||||
{
|
||||
printnum(numbuf, realpart(&v->v_compdata[j]));
|
||||
printnum(numbuf, realpart(v->v_compdata[j]));
|
||||
(void) sprintf(out_pbuf, "%s\t",numbuf);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printnum(numbuf, realpart(&v->v_compdata[j]));
|
||||
printnum(numbuf2, imagpart(&v->v_compdata[j]));
|
||||
printnum(numbuf, realpart(v->v_compdata[j]));
|
||||
printnum(numbuf2, imagpart(v->v_compdata[j]));
|
||||
(void) sprintf(out_pbuf, "%s,\t%s\t",numbuf,numbuf2);
|
||||
}
|
||||
out_send(out_pbuf);
|
||||
|
|
@ -750,16 +750,16 @@ com_cross(wordlist *wl)
|
|||
for (n = vecs, i = 0; n; n = n->v_link2, i++)
|
||||
if (n->v_length > ind) {
|
||||
if (comp) {
|
||||
realpart(&v->v_compdata[i]) =
|
||||
realpart(&n->v_compdata[ind]);
|
||||
imagpart(&v->v_compdata[i]) =
|
||||
imagpart(&n->v_compdata[ind]);
|
||||
realpart(v->v_compdata[i]) =
|
||||
realpart(n->v_compdata[ind]);
|
||||
imagpart(v->v_compdata[i]) =
|
||||
imagpart(n->v_compdata[ind]);
|
||||
} else
|
||||
v->v_realdata[i] = n->v_realdata[ind];
|
||||
} else {
|
||||
if (comp) {
|
||||
realpart(&v->v_compdata[i]) = 0.0;
|
||||
imagpart(&v->v_compdata[i]) = 0.0;
|
||||
realpart(v->v_compdata[i]) = 0.0;
|
||||
imagpart(v->v_compdata[i]) = 0.0;
|
||||
} else
|
||||
v->v_realdata[i] = 0.0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -200,7 +200,7 @@ raw_write(char *name, struct plot *pl, bool app, bool binary)
|
|||
if (i < v->v_length) {
|
||||
if (realflag) {
|
||||
dd = (isreal(v) ? v->v_realdata[i] :
|
||||
realpart(&v->v_compdata[i]));
|
||||
realpart(v->v_compdata[i]));
|
||||
(void) fwrite(&dd, sizeof
|
||||
(double), 1, fp);
|
||||
} else if (isreal(v)) {
|
||||
|
|
@ -211,10 +211,10 @@ raw_write(char *name, struct plot *pl, bool app, bool binary)
|
|||
(void) fwrite(&dd, sizeof
|
||||
(double), 1, fp);
|
||||
} else {
|
||||
dd = realpart(&v->v_compdata[i]);
|
||||
dd = realpart(v->v_compdata[i]);
|
||||
(void) fwrite(&dd, sizeof
|
||||
(double), 1, fp);
|
||||
dd = imagpart(&v->v_compdata[i]);
|
||||
dd = imagpart(v->v_compdata[i]);
|
||||
(void) fwrite(&dd, sizeof
|
||||
(double), 1, fp);
|
||||
}
|
||||
|
|
@ -241,15 +241,15 @@ raw_write(char *name, struct plot *pl, bool app, bool binary)
|
|||
if (realflag)
|
||||
fprintf(fp, "\t%.*e\n", prec,
|
||||
isreal(v) ? v->v_realdata[i] :
|
||||
realpart(&v->v_compdata[i]));
|
||||
realpart(v->v_compdata[i]));
|
||||
else if (isreal(v))
|
||||
fprintf(fp, "\t%.*e,0.0\n", prec,
|
||||
v->v_realdata[i]);
|
||||
else
|
||||
fprintf(fp, "\t%.*e,%.*e\n", prec,
|
||||
realpart(&v->v_compdata[i]),
|
||||
realpart(v->v_compdata[i]),
|
||||
prec,
|
||||
imagpart(&v->v_compdata[i]));
|
||||
imagpart(v->v_compdata[i]));
|
||||
} else if (raw_padding) {
|
||||
if (realflag) {
|
||||
fprintf(fp, "\t%.*e\n", prec, 0.0);
|
||||
|
|
@ -626,8 +626,8 @@ raw_read(char *name) {
|
|||
getout
|
||||
} else {
|
||||
if (fscanf(fp, " %lf, %lf",
|
||||
&realpart(&v->v_compdata[i]),
|
||||
&imagpart(&v->v_compdata[i])) != 2)
|
||||
&realpart(v->v_compdata[i]),
|
||||
&imagpart(v->v_compdata[i])) != 2)
|
||||
getout
|
||||
}
|
||||
} else if (raw_padded) {
|
||||
|
|
@ -828,12 +828,12 @@ spar_write(char *name, struct plot *pl, double Rbaseval)
|
|||
if (i < v->v_length) {
|
||||
if (cieq(v->v_name, "frequency"))
|
||||
fprintf(fp, "% .*e ", prec,
|
||||
realpart(&v->v_compdata[i]));
|
||||
realpart(v->v_compdata[i]));
|
||||
else
|
||||
fprintf(fp, "% .*e % .*e ", prec,
|
||||
realpart(&v->v_compdata[i]),
|
||||
realpart(v->v_compdata[i]),
|
||||
prec,
|
||||
imagpart(&v->v_compdata[i]));
|
||||
imagpart(v->v_compdata[i]));
|
||||
}
|
||||
}
|
||||
(void) putc('\n', fp);
|
||||
|
|
|
|||
|
|
@ -996,10 +996,10 @@ vec_transpose(struct dvec *v)
|
|||
joffset = 0;
|
||||
for ( j=0; j < dim0; j++ ) {
|
||||
for ( i=0; i < dim1; i++ ) {
|
||||
realpart(&newcomp[ koffset + joffset + i ]) =
|
||||
realpart(&oldcomp[ koffset + i*dim0 + j ]);
|
||||
imagpart(&newcomp[ koffset + joffset + i ]) =
|
||||
imagpart(&oldcomp[ koffset + i*dim0 + j ]);
|
||||
realpart(newcomp[ koffset + joffset + i ]) =
|
||||
realpart(oldcomp[ koffset + i*dim0 + j ]);
|
||||
imagpart(newcomp[ koffset + joffset + i ]) =
|
||||
imagpart(oldcomp[ koffset + i*dim0 + j ]);
|
||||
}
|
||||
joffset += dim1; /* joffset = j*dim0 */
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ struct ngcomplex {
|
|||
|
||||
typedef struct ngcomplex ngcomplex_t;
|
||||
|
||||
#define realpart(cval) (cval)->cx_real
|
||||
#define imagpart(cval) (cval)->cx_imag
|
||||
#define realpart(cval) (&(cval))->cx_real
|
||||
#define imagpart(cval) (&(cval))->cx_imag
|
||||
|
||||
#ifdef CIDER
|
||||
/* From Cider numcomplex.h
|
||||
|
|
@ -70,8 +70,8 @@ typedef struct {
|
|||
|
||||
/* Some defines used mainly in cmath.c. */
|
||||
#define FTEcabs(d) (((d) < 0.0) ? - (d) : (d))
|
||||
#define cph(c) (atan2(imagpart(&(c)), (realpart(&(c)))))
|
||||
#define cmag(c) (sqrt(imagpart(&(c)) * imagpart(&(c)) + realpart(&(c)) * realpart(&(c))))
|
||||
#define cph(c) (atan2(imagpart(c), (realpart(c))))
|
||||
#define cmag(c) (sqrt(imagpart(c) * imagpart(c) + realpart(c) * realpart(c)))
|
||||
#define radtodeg(c) (cx_degrees ? ((c) / 3.14159265358979323846 * 180) : (c))
|
||||
#define degtorad(c) (cx_degrees ? ((c) * 3.14159265358979323846 / 180) : (c))
|
||||
#define rcheck(cond, name) if (!(cond)) { \
|
||||
|
|
|
|||
|
|
@ -107,12 +107,12 @@ cx_j(void *data, short int type, int length, int *newlength, short int *newtype)
|
|||
*newtype = VF_COMPLEX;
|
||||
if (type == VF_COMPLEX)
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = - imagpart(&cc[i]);
|
||||
imagpart(&c[i]) = realpart(&cc[i]);
|
||||
realpart(c[i]) = - imagpart(cc[i]);
|
||||
imagpart(c[i]) = realpart(cc[i]);
|
||||
}
|
||||
else
|
||||
for (i = 0; i < length; i++) {
|
||||
imagpart(&c[i]) = dd[i];
|
||||
imagpart(c[i]) = dd[i];
|
||||
/* Real part is already 0. */
|
||||
}
|
||||
return ((void *) c);
|
||||
|
|
@ -130,7 +130,7 @@ cx_real(void *data, short int type, int length, int *newlength, short int *newty
|
|||
*newtype = VF_REAL;
|
||||
if (type == VF_COMPLEX)
|
||||
for (i = 0; i < length; i++)
|
||||
d[i] = realpart(&cc[i]);
|
||||
d[i] = realpart(cc[i]);
|
||||
else
|
||||
for (i = 0; i < length; i++)
|
||||
d[i] = dd[i];
|
||||
|
|
@ -149,7 +149,7 @@ cx_imag(void *data, short int type, int length, int *newlength, short int *newty
|
|||
*newtype = VF_REAL;
|
||||
if (type == VF_COMPLEX)
|
||||
for (i = 0; i < length; i++)
|
||||
d[i] = imagpart(&cc[i]);
|
||||
d[i] = imagpart(cc[i]);
|
||||
else
|
||||
for (i = 0; i < length; i++)
|
||||
d[i] = dd[i];
|
||||
|
|
@ -170,7 +170,7 @@ cx_pos(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
*newtype = VF_REAL;
|
||||
if (type == VF_COMPLEX)
|
||||
for (i = 0; i < length; i++)
|
||||
d[i] = ((realpart(&cc[i]) > 0.0) ? 1.0 : 0.0);
|
||||
d[i] = ((realpart(cc[i]) > 0.0) ? 1.0 : 0.0);
|
||||
else
|
||||
for (i = 0; i < length; i++)
|
||||
d[i] = ((dd[i] > 0.0) ? 1.0 : 0.0);
|
||||
|
|
@ -232,12 +232,12 @@ cx_log(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
*/
|
||||
rcheck(td >= 0, "log");
|
||||
if (td == 0.0) {
|
||||
realpart(&c[i]) = - log10(HUGE);
|
||||
imagpart(&c[i]) = 0.0;
|
||||
realpart(c[i]) = - log10(HUGE);
|
||||
imagpart(c[i]) = 0.0;
|
||||
} else {
|
||||
realpart(&c[i]) = log10(td);
|
||||
imagpart(&c[i]) = atan2(imagpart(&cc[i]),
|
||||
realpart(&cc[i]));
|
||||
realpart(c[i]) = log10(td);
|
||||
imagpart(c[i]) = atan2(imagpart(cc[i]),
|
||||
realpart(cc[i]));
|
||||
}
|
||||
}
|
||||
return ((void *) c);
|
||||
|
|
@ -276,12 +276,12 @@ cx_ln(void *data, short int type, int length, int *newlength, short int *newtype
|
|||
td = cmag(cc[i]);
|
||||
rcheck(td >= 0, "ln");
|
||||
if (td == 0.0) {
|
||||
realpart(&c[i]) = - log(HUGE);
|
||||
imagpart(&c[i]) = 0.0;
|
||||
realpart(c[i]) = - log(HUGE);
|
||||
imagpart(c[i]) = 0.0;
|
||||
} else {
|
||||
realpart(&c[i]) = log(td);
|
||||
imagpart(&c[i]) = atan2(imagpart(&cc[i]),
|
||||
realpart(&cc[i]));
|
||||
realpart(c[i]) = log(td);
|
||||
imagpart(c[i]) = atan2(imagpart(cc[i]),
|
||||
realpart(cc[i]));
|
||||
}
|
||||
}
|
||||
return ((void *) c);
|
||||
|
|
@ -317,9 +317,9 @@ cx_exp(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
for (i = 0; i < length; i++) {
|
||||
double td;
|
||||
|
||||
td = exp(realpart(&cc[i]));
|
||||
realpart(&c[i]) = td * cos(imagpart(&cc[i]));
|
||||
imagpart(&c[i]) = td * sin(imagpart(&cc[i]));
|
||||
td = exp(realpart(cc[i]));
|
||||
realpart(c[i]) = td * cos(imagpart(cc[i]));
|
||||
imagpart(c[i]) = td * sin(imagpart(cc[i]));
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -358,49 +358,49 @@ cx_sqrt(void *data, short int type, int length, int *newlength, short int *newty
|
|||
*newlength = length;
|
||||
if (type == VF_COMPLEX) {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (realpart(&cc[i]) == 0.0) {
|
||||
if (imagpart(&cc[i]) == 0.0) {
|
||||
realpart(&c[i]) = 0.0;
|
||||
imagpart(&c[i]) = 0.0;
|
||||
} else if (imagpart(&cc[i]) > 0.0) {
|
||||
realpart(&c[i]) = sqrt (0.5 *
|
||||
imagpart(&cc[i]));
|
||||
imagpart(&c[i]) = realpart(&c[i]);
|
||||
if (realpart(cc[i]) == 0.0) {
|
||||
if (imagpart(cc[i]) == 0.0) {
|
||||
realpart(c[i]) = 0.0;
|
||||
imagpart(c[i]) = 0.0;
|
||||
} else if (imagpart(cc[i]) > 0.0) {
|
||||
realpart(c[i]) = sqrt (0.5 *
|
||||
imagpart(cc[i]));
|
||||
imagpart(c[i]) = realpart(c[i]);
|
||||
} else {
|
||||
imagpart(&c[i]) = sqrt( -0.5 *
|
||||
imagpart(&cc[i]));
|
||||
realpart(&c[i]) = - imagpart(&c[i]);
|
||||
imagpart(c[i]) = sqrt( -0.5 *
|
||||
imagpart(cc[i]));
|
||||
realpart(c[i]) = - imagpart(c[i]);
|
||||
}
|
||||
} else if (realpart(&cc[i]) > 0.0) {
|
||||
if (imagpart(&cc[i]) == 0.0) {
|
||||
realpart(&c[i]) =
|
||||
sqrt(realpart(&cc[i]));
|
||||
imagpart(&c[i]) = 0.0;
|
||||
} else if (imagpart(&cc[i]) < 0.0) {
|
||||
realpart(&c[i]) = -sqrt(0.5 *
|
||||
(cmag(cc[i]) + realpart(&cc[i])));
|
||||
} else if (realpart(cc[i]) > 0.0) {
|
||||
if (imagpart(cc[i]) == 0.0) {
|
||||
realpart(c[i]) =
|
||||
sqrt(realpart(cc[i]));
|
||||
imagpart(c[i]) = 0.0;
|
||||
} else if (imagpart(cc[i]) < 0.0) {
|
||||
realpart(c[i]) = -sqrt(0.5 *
|
||||
(cmag(cc[i]) + realpart(cc[i])));
|
||||
} else {
|
||||
realpart(&c[i]) = sqrt(0.5 *
|
||||
(cmag(cc[i]) + realpart(&cc[i])));
|
||||
realpart(c[i]) = sqrt(0.5 *
|
||||
(cmag(cc[i]) + realpart(cc[i])));
|
||||
}
|
||||
imagpart(&c[i]) = imagpart(&cc[i]) / (2.0 *
|
||||
realpart(&c[i]));
|
||||
} else { /* realpart(&cc[i]) < 0.0) */
|
||||
if (imagpart(&cc[i]) == 0.0) {
|
||||
realpart(&c[i]) = 0.0;
|
||||
imagpart(&c[i]) =
|
||||
sqrt(- realpart(&cc[i]));
|
||||
imagpart(c[i]) = imagpart(cc[i]) / (2.0 *
|
||||
realpart(c[i]));
|
||||
} else { /* realpart(cc[i]) < 0.0) */
|
||||
if (imagpart(cc[i]) == 0.0) {
|
||||
realpart(c[i]) = 0.0;
|
||||
imagpart(c[i]) =
|
||||
sqrt(- realpart(cc[i]));
|
||||
} else {
|
||||
if (imagpart(&cc[i]) < 0.0)
|
||||
imagpart(&c[i]) = - sqrt(0.5 *
|
||||
if (imagpart(cc[i]) < 0.0)
|
||||
imagpart(c[i]) = - sqrt(0.5 *
|
||||
(cmag(cc[i]) -
|
||||
realpart(&cc[i])));
|
||||
realpart(cc[i])));
|
||||
else
|
||||
imagpart(&c[i]) = sqrt(0.5 *
|
||||
imagpart(c[i]) = sqrt(0.5 *
|
||||
(cmag(cc[i]) -
|
||||
realpart(&cc[i])));
|
||||
realpart(&c[i]) = imagpart(&cc[i]) /
|
||||
(2.0 * imagpart(&c[i]));
|
||||
realpart(cc[i])));
|
||||
realpart(c[i]) = imagpart(cc[i]) /
|
||||
(2.0 * imagpart(c[i]));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -408,9 +408,9 @@ cx_sqrt(void *data, short int type, int length, int *newlength, short int *newty
|
|||
} else if (cres) {
|
||||
for (i = 0; i < length; i++)
|
||||
if (dd[i] < 0.0)
|
||||
imagpart(&c[i]) = sqrt(- dd[i]);
|
||||
imagpart(c[i]) = sqrt(- dd[i]);
|
||||
else
|
||||
realpart(&c[i]) = sqrt(dd[i]);
|
||||
realpart(c[i]) = sqrt(dd[i]);
|
||||
return ((void *) c);
|
||||
} else {
|
||||
for (i = 0; i < length; i++)
|
||||
|
|
@ -431,10 +431,10 @@ cx_sin(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = sin(degtorad(realpart(&cc[i]))) *
|
||||
cosh(degtorad(imagpart(&cc[i])));
|
||||
imagpart(&c[i]) = cos(degtorad(realpart(&cc[i]))) *
|
||||
sinh(degtorad(imagpart(&cc[i])));
|
||||
realpart(c[i]) = sin(degtorad(realpart(cc[i]))) *
|
||||
cosh(degtorad(imagpart(cc[i])));
|
||||
imagpart(c[i]) = cos(degtorad(realpart(cc[i]))) *
|
||||
sinh(degtorad(imagpart(cc[i])));
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -464,10 +464,10 @@ cx_sinh(void *data, short int type, int length, int *newlength, short int *newty
|
|||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
/* sinh(x+iy) = sinh(x)*cos(y) + i * cosh(x)*sin(y) */
|
||||
u = degtorad(realpart(&cc[i]));
|
||||
v = degtorad(imagpart(&cc[i]));
|
||||
realpart(&c[i]) = sinh(u)*cos(v);
|
||||
imagpart(&c[i]) = cosh(u)*sin(v);
|
||||
u = degtorad(realpart(cc[i]));
|
||||
v = degtorad(imagpart(cc[i]));
|
||||
realpart(c[i]) = sinh(u)*cos(v);
|
||||
imagpart(c[i]) = cosh(u)*sin(v);
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -496,10 +496,10 @@ cx_cos(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = cos(degtorad(realpart(&cc[i]))) *
|
||||
cosh(degtorad(imagpart(&cc[i])));
|
||||
imagpart(&c[i]) = - sin(degtorad(realpart(&cc[i]))) *
|
||||
sinh(degtorad(imagpart(&cc[i])));
|
||||
realpart(c[i]) = cos(degtorad(realpart(cc[i]))) *
|
||||
cosh(degtorad(imagpart(cc[i])));
|
||||
imagpart(c[i]) = - sin(degtorad(realpart(cc[i]))) *
|
||||
sinh(degtorad(imagpart(cc[i])));
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -531,10 +531,10 @@ cx_cosh(void *data, short int type, int length, int *newlength, short int *newty
|
|||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
/* cosh(x+iy) = cosh(x)*cos(y) + i * sinh(x)*sin(y) */
|
||||
u = degtorad(realpart(&cc[i]));
|
||||
v = degtorad(imagpart(&cc[i]));
|
||||
realpart(&c[i]) = cosh(u)*cos(v);
|
||||
imagpart(&c[i]) = sinh(u)*sin(v);
|
||||
u = degtorad(realpart(cc[i]));
|
||||
v = degtorad(imagpart(cc[i]));
|
||||
realpart(c[i]) = cosh(u)*cos(v);
|
||||
imagpart(c[i]) = sinh(u)*sin(v);
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -588,12 +588,12 @@ c_tan(ngcomplex_t *cc, int length)
|
|||
for (i = 0; i < length; i++) {
|
||||
double u, v;
|
||||
|
||||
rcheck(cos(degtorad(realpart(&cc[i]))) *
|
||||
cosh(degtorad(imagpart(&cc[i]))), "tan");
|
||||
rcheck(sin(degtorad(realpart(&cc[i]))) *
|
||||
sinh(degtorad(imagpart(&cc[i]))), "tan");
|
||||
u = degtorad(realpart(&cc[i]));
|
||||
v = degtorad(imagpart(&cc[i]));
|
||||
rcheck(cos(degtorad(realpart(cc[i]))) *
|
||||
cosh(degtorad(imagpart(cc[i]))), "tan");
|
||||
rcheck(sin(degtorad(realpart(cc[i]))) *
|
||||
sinh(degtorad(imagpart(cc[i]))), "tan");
|
||||
u = degtorad(realpart(cc[i]));
|
||||
v = degtorad(imagpart(cc[i]));
|
||||
/* The Lattice C compiler won't take multi-line macros, and
|
||||
* CMS won't take >80 column lines....
|
||||
*/
|
||||
|
|
@ -601,7 +601,7 @@ c_tan(ngcomplex_t *cc, int length)
|
|||
#define xx2 cos(u) * sinh(v)
|
||||
#define xx3 cos(u) * cosh(v)
|
||||
#define xx4 -sin(u) * sinh(v)
|
||||
cdiv(xx1, xx2, xx3, xx4, realpart(&c[i]), imagpart(&c[i]));
|
||||
cdiv(xx1, xx2, xx3, xx4, realpart(c[i]), imagpart(c[i]));
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
|
@ -619,8 +619,8 @@ c_tanh(ngcomplex_t *cc, int length)
|
|||
|
||||
for (i = 0; i < length; i++) {
|
||||
/* multiply by i */
|
||||
t[0].cx_real = -1. * imagpart(&cc[i]);
|
||||
t[0].cx_imag = realpart(&cc[i]);
|
||||
t[0].cx_real = -1. * imagpart(cc[i]);
|
||||
t[0].cx_imag = realpart(cc[i]);
|
||||
/* get complex tangent */
|
||||
s = c_tan(t, 1);
|
||||
/* if check in c_tan fails */
|
||||
|
|
@ -629,8 +629,8 @@ c_tanh(ngcomplex_t *cc, int length)
|
|||
return (NULL);
|
||||
}
|
||||
/* multiply by -i */
|
||||
realpart(&c[i]) = imagpart(&s[0]);
|
||||
imagpart(&c[i]) = -1. * realpart(&s[0]);
|
||||
realpart(c[i]) = imagpart(s[0]);
|
||||
imagpart(c[i]) = -1. * realpart(s[0]);
|
||||
}
|
||||
tfree(s);
|
||||
tfree(t);
|
||||
|
|
@ -676,7 +676,7 @@ cx_atan(void *data, short int type, int length, int *newlength, short int *newty
|
|||
int i;
|
||||
|
||||
for (i = 0; i < length; i++)
|
||||
d[i] = radtodeg(atan(realpart(&cc[i])));
|
||||
d[i] = radtodeg(atan(realpart(cc[i])));
|
||||
} else {
|
||||
double *dd = (double *) data;
|
||||
int i;
|
||||
|
|
|
|||
|
|
@ -82,8 +82,8 @@ cx_norm(void *data, short int type, int length, int *newlength, short int *newty
|
|||
*newtype = VF_COMPLEX;
|
||||
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = realpart(&cc[i]) / largest;
|
||||
imagpart(&c[i]) = imagpart(&cc[i]) / largest;
|
||||
realpart(c[i]) = realpart(cc[i]) / largest;
|
||||
imagpart(c[i]) = imagpart(cc[i]) / largest;
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -112,8 +112,8 @@ cx_uminus(void *data, short int type, int length, int *newlength, short int *new
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = - realpart(&cc[i]);
|
||||
imagpart(&c[i]) = - imagpart(&cc[i]);
|
||||
realpart(c[i]) = - realpart(cc[i]);
|
||||
imagpart(c[i]) = - imagpart(cc[i]);
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -150,10 +150,10 @@ cx_rnd(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
int j, k;
|
||||
j = (int)floor(realpart(&cc[i]));
|
||||
k = (int)floor(imagpart(&cc[i]));
|
||||
realpart(&c[i]) = j ? rand() % j : 0;
|
||||
imagpart(&c[i]) = k ? rand() % k : 0;
|
||||
j = (int)floor(realpart(cc[i]));
|
||||
k = (int)floor(imagpart(cc[i]));
|
||||
realpart(c[i]) = j ? rand() % j : 0;
|
||||
imagpart(c[i]) = k ? rand() % k : 0;
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -189,8 +189,8 @@ cx_sunif(void *data, short int type, int length, int *newlength, short int *newt
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = drand();
|
||||
imagpart(&c[i]) = drand();
|
||||
realpart(c[i]) = drand();
|
||||
imagpart(c[i]) = drand();
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -226,8 +226,8 @@ cx_poisson(void *data, short int type, int length, int *newlength, short int *ne
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = poisson (realpart(&cc[i]));
|
||||
imagpart(&c[i]) = poisson (imagpart(&cc[i]));
|
||||
realpart(c[i]) = poisson (realpart(cc[i]));
|
||||
imagpart(c[i]) = poisson (imagpart(cc[i]));
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -264,8 +264,8 @@ cx_exponential(void *data, short int type, int length, int *newlength, short int
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = exprand(realpart(&cc[i]));
|
||||
imagpart(&c[i]) = exprand(imagpart(&cc[i]));
|
||||
realpart(c[i]) = exprand(realpart(cc[i]));
|
||||
imagpart(c[i]) = exprand(imagpart(cc[i]));
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -299,8 +299,8 @@ cx_sgauss(void *data, short int type, int length, int *newlength, short int *new
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = gauss0();
|
||||
imagpart(&c[i]) = gauss0();
|
||||
realpart(c[i]) = gauss0();
|
||||
imagpart(c[i]) = gauss0();
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -352,11 +352,11 @@ void
|
|||
*newlength = length;
|
||||
|
||||
for (i = 0; i < length; i++) {
|
||||
sum_real += realpart(&cc[i]);
|
||||
realpart(&c[i]) = sum_real / (double)(i+1);
|
||||
sum_real += realpart(cc[i]);
|
||||
realpart(c[i]) = sum_real / (double)(i+1);
|
||||
|
||||
sum_imag += imagpart(&cc[i]);
|
||||
imagpart(&c[i]) = sum_imag / (double)(i+1);
|
||||
sum_imag += imagpart(cc[i]);
|
||||
imagpart(c[i]) = sum_imag / (double)(i+1);
|
||||
}
|
||||
|
||||
return ((void *) c);
|
||||
|
|
@ -391,11 +391,11 @@ cx_mean(void *data, short int type, int length, int *newlength, short int *newty
|
|||
c = alloc_c(1);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(c) += realpart(cc + i);
|
||||
imagpart(c) += imagpart(cc + i);
|
||||
realpart(*c) += realpart(cc[i]);
|
||||
imagpart(*c) += imagpart(cc[i]);
|
||||
}
|
||||
realpart(c) /= length;
|
||||
imagpart(c) /= length;
|
||||
realpart(*c) /= length;
|
||||
imagpart(*c) /= length;
|
||||
return ((void *) c);
|
||||
}
|
||||
}
|
||||
|
|
@ -500,21 +500,21 @@ cx_plus(void *data1, void *data2, short int datatype1, short int datatype2, int
|
|||
c = alloc_c(length);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
realpart(&c[i]) = realpart(&c1) + realpart(&c2);
|
||||
imagpart(&c[i]) = imagpart(&c1) + imagpart(&c2);
|
||||
realpart(c[i]) = realpart(c1) + realpart(c2);
|
||||
imagpart(c[i]) = imagpart(c1) + imagpart(c2);
|
||||
}
|
||||
return ((void *) c);
|
||||
}
|
||||
|
|
@ -540,21 +540,21 @@ cx_minus(void *data1, void *data2, short int datatype1, short int datatype2, int
|
|||
c = alloc_c(length);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
realpart(&c[i]) = realpart(&c1) - realpart(&c2);
|
||||
imagpart(&c[i]) = imagpart(&c1) - imagpart(&c2);
|
||||
realpart(c[i]) = realpart(c1) - realpart(c2);
|
||||
imagpart(c[i]) = imagpart(c1) - imagpart(c2);
|
||||
}
|
||||
return ((void *) c);
|
||||
}
|
||||
|
|
@ -580,23 +580,23 @@ cx_times(void *data1, void *data2, short int datatype1, short int datatype2, int
|
|||
c = alloc_c(length);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
realpart(&c[i]) = realpart(&c1) * realpart(&c2)
|
||||
- imagpart(&c1) * imagpart(&c2);
|
||||
imagpart(&c[i]) = imagpart(&c1) * realpart(&c2)
|
||||
+ realpart(&c1) * imagpart(&c2);
|
||||
realpart(c[i]) = realpart(c1) * realpart(c2)
|
||||
- imagpart(c1) * imagpart(c2);
|
||||
imagpart(c[i]) = imagpart(c1) * realpart(c2)
|
||||
+ realpart(c1) * imagpart(c2);
|
||||
}
|
||||
return ((void *) c);
|
||||
}
|
||||
|
|
@ -628,31 +628,31 @@ cx_mod(void *data1, void *data2, short int datatype1, short int datatype2, int l
|
|||
c = alloc_c(length);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
r1 = (int)floor(FTEcabs(realpart(&c1)));
|
||||
r1 = (int)floor(FTEcabs(realpart(c1)));
|
||||
rcheck(r1 > 0, "mod");
|
||||
r2 = (int)floor(FTEcabs(realpart(&c2)));
|
||||
r2 = (int)floor(FTEcabs(realpart(c2)));
|
||||
rcheck(r2 > 0, "mod");
|
||||
i1 = (int)floor(FTEcabs(imagpart(&c1)));
|
||||
i1 = (int)floor(FTEcabs(imagpart(c1)));
|
||||
rcheck(i1 > 0, "mod");
|
||||
i2 = (int)floor(FTEcabs(imagpart(&c2)));
|
||||
i2 = (int)floor(FTEcabs(imagpart(c2)));
|
||||
rcheck(i2 > 0, "mod");
|
||||
r3 = r1 % r2;
|
||||
i3 = i1 % i2;
|
||||
realpart(&c[i]) = (double) r3;
|
||||
imagpart(&c[i]) = (double) i3;
|
||||
realpart(c[i]) = (double) r3;
|
||||
imagpart(c[i]) = (double) i3;
|
||||
}
|
||||
return ((void *) c);
|
||||
}
|
||||
|
|
@ -689,14 +689,14 @@ cx_max(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
|
||||
c = alloc_c(1);
|
||||
*newtype = VF_COMPLEX;
|
||||
largest_real=realpart(cc);
|
||||
largest_complex=imagpart(cc);
|
||||
largest_real=realpart(*cc);
|
||||
largest_complex=imagpart(*cc);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (realpart(cc + i)>largest_real) largest_real=realpart(cc + i);
|
||||
if (imagpart(cc + i)>largest_complex) largest_complex=imagpart(cc + i);
|
||||
if (realpart(cc[i])>largest_real) largest_real=realpart(cc[i]);
|
||||
if (imagpart(cc[i])>largest_complex) largest_complex=imagpart(cc[i]);
|
||||
}
|
||||
realpart(c) = largest_real;
|
||||
imagpart(c) = largest_complex;
|
||||
realpart(*c) = largest_real;
|
||||
imagpart(*c) = largest_complex;
|
||||
return ((void *) c);
|
||||
}
|
||||
}
|
||||
|
|
@ -730,14 +730,14 @@ cx_min(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
|
||||
c = alloc_c(1);
|
||||
*newtype = VF_COMPLEX;
|
||||
smallest_real=realpart(cc);
|
||||
smallest_complex=imagpart(cc);
|
||||
smallest_real=realpart(*cc);
|
||||
smallest_complex=imagpart(*cc);
|
||||
for (i = 1; i < length; i++) {
|
||||
if (realpart(cc + i)<smallest_real) smallest_real=realpart(cc + i);
|
||||
if (imagpart(cc + i)<smallest_complex) smallest_complex=imagpart(cc + i);
|
||||
if (realpart(cc[i])<smallest_real) smallest_real=realpart(cc[i]);
|
||||
if (imagpart(cc[i])<smallest_complex) smallest_complex=imagpart(cc[i]);
|
||||
}
|
||||
realpart(c) = smallest_real;
|
||||
imagpart(c) = smallest_complex;
|
||||
realpart(*c) = smallest_real;
|
||||
imagpart(*c) = smallest_complex;
|
||||
return ((void *) c);
|
||||
}
|
||||
}
|
||||
|
|
@ -772,15 +772,15 @@ cx_d(void *data, short int type, int length, int *newlength, short int *newtype)
|
|||
|
||||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
realpart(c)=realpart(cc+1)-realpart(cc);
|
||||
imagpart(c)=imagpart(cc+1)-imagpart(cc);
|
||||
realpart(c+length-1)=realpart(cc+length-1)-realpart(cc+length-2);
|
||||
imagpart(c+length-1)=imagpart(cc+length-1)-imagpart(cc+length-2);
|
||||
realpart(*c)=realpart(cc[1])-realpart(cc[0]);
|
||||
imagpart(*c)=imagpart(cc[1])-imagpart(cc[0]);
|
||||
realpart(c[length-1])=realpart(cc[length-1])-realpart(cc[length-2]);
|
||||
imagpart(c[length-1])=imagpart(cc[length-1])-imagpart(cc[length-2]);
|
||||
|
||||
|
||||
for (i = 1; i < (length-1); i++) {
|
||||
realpart(c+i)=realpart(cc+i+1)-realpart(cc+i-1);
|
||||
imagpart(c+i)=imagpart(cc+i+1)-imagpart(cc+i-1);
|
||||
realpart(c[i])=realpart(cc[i+1])-realpart(cc[i-1]);
|
||||
imagpart(c[i])=imagpart(cc[i+1])-imagpart(cc[i-1]);
|
||||
|
||||
}
|
||||
return ((void *) c);
|
||||
|
|
@ -799,8 +799,8 @@ cx_floor(void *data, short int type, int length, int *newlength, short int *newt
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = floor(realpart(&cc[i]));
|
||||
imagpart(&c[i]) = floor(imagpart(&cc[i]));
|
||||
realpart(c[i]) = floor(realpart(cc[i]));
|
||||
imagpart(c[i]) = floor(imagpart(cc[i]));
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
@ -828,8 +828,8 @@ cx_ceil(void *data, short int type, int length, int *newlength, short int *newty
|
|||
c = alloc_c(length);
|
||||
*newtype = VF_COMPLEX;
|
||||
for (i = 0; i < length; i++) {
|
||||
realpart(&c[i]) = ceil(realpart(&cc[i]));
|
||||
imagpart(&c[i]) = ceil(imagpart(&cc[i]));
|
||||
realpart(c[i]) = ceil(realpart(cc[i]));
|
||||
imagpart(c[i]) = ceil(imagpart(cc[i]));
|
||||
}
|
||||
return ((void *) c);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -49,23 +49,23 @@ cx_divide(void *data1, void *data2, short int datatype1, short int datatype2, in
|
|||
c = alloc_c(length);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
rcheck((realpart(&c2) != 0) || (imagpart(&c2) != 0), "divide");
|
||||
#define xx5 realpart(&c1)
|
||||
#define xx6 imagpart(&c1)
|
||||
cdiv(xx5, xx6, realpart(&c2), imagpart(&c2), realpart(&c[i]), imagpart(&c[i]));
|
||||
rcheck((realpart(c2) != 0) || (imagpart(c2) != 0), "divide");
|
||||
#define xx5 realpart(c1)
|
||||
#define xx6 imagpart(c1)
|
||||
cdiv(xx5, xx6, realpart(c2), imagpart(c2), realpart(c[i]), imagpart(c[i]));
|
||||
}
|
||||
return ((void *) c);
|
||||
}
|
||||
|
|
@ -89,22 +89,22 @@ cx_comma(void *data1, void *data2, short int datatype1, short int datatype2, int
|
|||
c = alloc_c(length);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
|
||||
realpart(&c[i]) = realpart(&c1) + imagpart(&c2);
|
||||
imagpart(&c[i]) = imagpart(&c1) + realpart(&c2);
|
||||
realpart(c[i]) = realpart(c1) + imagpart(c2);
|
||||
imagpart(c[i]) = imagpart(c1) + realpart(c2);
|
||||
}
|
||||
return ((void *) c);
|
||||
}
|
||||
|
|
@ -131,33 +131,33 @@ cx_power(void *data1, void *data2, short int datatype1, short int datatype2, int
|
|||
c = alloc_c(length);
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
|
||||
if ((realpart(&c1) == 0.0) && (imagpart(&c1) == 0.0)) {
|
||||
realpart(&c[i]) = 0.0;
|
||||
imagpart(&c[i]) = 0.0;
|
||||
} else { /* if ((imagpart(&c1) != 0.0) &&
|
||||
(imagpart(&c2) != 0.0)) */
|
||||
if ((realpart(c1) == 0.0) && (imagpart(c1) == 0.0)) {
|
||||
realpart(c[i]) = 0.0;
|
||||
imagpart(c[i]) = 0.0;
|
||||
} else { /* if ((imagpart(c1) != 0.0) &&
|
||||
(imagpart(c2) != 0.0)) */
|
||||
t = cexp_sp3(ctimes(&c2, cln(&c1)));
|
||||
realpart(&c[i]) = realpart(t);
|
||||
imagpart(&c[i]) = imagpart(t);
|
||||
realpart(c[i]) = realpart(*t);
|
||||
imagpart(c[i]) = imagpart(*t);
|
||||
/*
|
||||
} else {
|
||||
realpart(&c[i]) = pow(realpart(&c1),
|
||||
realpart(&c2));
|
||||
imagpart(&c[i]) = 0.0;
|
||||
realpart(c[i]) = pow(realpart(c1),
|
||||
realpart(c2));
|
||||
imagpart(c[i]) = 0.0;
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
|
@ -173,12 +173,12 @@ cexp_sp3(ngcomplex_t *c)
|
|||
static ngcomplex_t r;
|
||||
double d;
|
||||
|
||||
d = exp(realpart(c));
|
||||
realpart(&r) = d * cos(imagpart(c));
|
||||
if (imagpart(c) != 0.0)
|
||||
imagpart(&r) = d * sin(imagpart(c));
|
||||
d = exp(realpart(*c));
|
||||
realpart(r) = d * cos(imagpart(*c));
|
||||
if (imagpart(*c) != 0.0)
|
||||
imagpart(r) = d * sin(imagpart(*c));
|
||||
else
|
||||
imagpart(&r) = 0.0;
|
||||
imagpart(r) = 0.0;
|
||||
return (&r);
|
||||
}
|
||||
|
||||
|
|
@ -188,11 +188,11 @@ cln(ngcomplex_t *c)
|
|||
static ngcomplex_t r;
|
||||
|
||||
rcheck(cmag(*c) != 0, "ln");
|
||||
realpart(&r) = log(cmag(*c));
|
||||
if (imagpart(c) != 0.0)
|
||||
imagpart(&r) = atan2(imagpart(c), realpart(c));
|
||||
realpart(r) = log(cmag(*c));
|
||||
if (imagpart(*c) != 0.0)
|
||||
imagpart(r) = atan2(imagpart(*c), realpart(*c));
|
||||
else
|
||||
imagpart(&r) = 0.0;
|
||||
imagpart(r) = 0.0;
|
||||
return (&r);
|
||||
}
|
||||
|
||||
|
|
@ -201,10 +201,10 @@ ctimes(ngcomplex_t *c1, ngcomplex_t *c2)
|
|||
{
|
||||
static ngcomplex_t r;
|
||||
|
||||
realpart(&r) = realpart(c1) * realpart(c2) -
|
||||
imagpart(c1) * imagpart(c2);
|
||||
imagpart(&r) = imagpart(c1) * realpart(c2) +
|
||||
realpart(c1) * imagpart(c2);
|
||||
realpart(r) = realpart(*c1) * realpart(*c2) -
|
||||
imagpart(*c1) * imagpart(*c2);
|
||||
imagpart(r) = imagpart(*c1) * realpart(*c2) +
|
||||
realpart(*c1) * imagpart(*c2);
|
||||
return (&r);
|
||||
}
|
||||
|
||||
|
|
@ -236,21 +236,21 @@ cx_eq(void *data1, void *data2, short int datatype1, short int datatype2, int le
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) == realpart(&c2)) &&
|
||||
(imagpart(&c1) == imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) == realpart(c2)) &&
|
||||
(imagpart(c1) == imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
@ -277,21 +277,21 @@ cx_gt(void *data1, void *data2, short int datatype1, short int datatype2, int le
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) > realpart(&c2)) &&
|
||||
(imagpart(&c1) > imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) > realpart(c2)) &&
|
||||
(imagpart(c1) > imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
@ -318,21 +318,21 @@ cx_lt(void *data1, void *data2, short int datatype1, short int datatype2, int le
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) < realpart(&c2)) &&
|
||||
(imagpart(&c1) < imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) < realpart(c2)) &&
|
||||
(imagpart(c1) < imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
@ -359,21 +359,21 @@ cx_ge(void *data1, void *data2, short int datatype1, short int datatype2, int le
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) >= realpart(&c2)) &&
|
||||
(imagpart(&c1) >= imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) >= realpart(c2)) &&
|
||||
(imagpart(c1) >= imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
@ -400,21 +400,21 @@ cx_le(void *data1, void *data2, short int datatype1, short int datatype2, int le
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) <= realpart(&c2)) &&
|
||||
(imagpart(&c1) <= imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) <= realpart(c2)) &&
|
||||
(imagpart(c1) <= imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
@ -441,21 +441,21 @@ cx_ne(void *data1, void *data2, short int datatype1, short int datatype2, int le
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) != realpart(&c2)) &&
|
||||
(imagpart(&c1) != imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) != realpart(c2)) &&
|
||||
(imagpart(c1) != imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
|
|||
|
|
@ -50,21 +50,21 @@ cx_and(void *data1, void *data2, short int datatype1, short int datatype2, int l
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) && realpart(&c2)) &&
|
||||
(imagpart(&c1) && imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) && realpart(c2)) &&
|
||||
(imagpart(c1) && imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
@ -88,21 +88,21 @@ cx_or(void *data1, void *data2, short int datatype1, short int datatype2, int le
|
|||
} else {
|
||||
for (i = 0; i < length; i++) {
|
||||
if (datatype1 == VF_REAL) {
|
||||
realpart(&c1) = dd1[i];
|
||||
imagpart(&c1) = 0.0;
|
||||
realpart(c1) = dd1[i];
|
||||
imagpart(c1) = 0.0;
|
||||
} else {
|
||||
realpart(&c1) = realpart(&cc1[i]);
|
||||
imagpart(&c1) = imagpart(&cc1[i]);
|
||||
realpart(c1) = realpart(cc1[i]);
|
||||
imagpart(c1) = imagpart(cc1[i]);
|
||||
}
|
||||
if (datatype2 == VF_REAL) {
|
||||
realpart(&c2) = dd2[i];
|
||||
imagpart(&c2) = 0.0;
|
||||
realpart(c2) = dd2[i];
|
||||
imagpart(c2) = 0.0;
|
||||
} else {
|
||||
realpart(&c2) = realpart(&cc2[i]);
|
||||
imagpart(&c2) = imagpart(&cc2[i]);
|
||||
realpart(c2) = realpart(cc2[i]);
|
||||
imagpart(c2) = imagpart(cc2[i]);
|
||||
}
|
||||
d[i] = ((realpart(&c1) || realpart(&c2)) &&
|
||||
(imagpart(&c1) || imagpart(&c2)));
|
||||
d[i] = ((realpart(c1) || realpart(c2)) &&
|
||||
(imagpart(c1) || imagpart(c2)));
|
||||
}
|
||||
}
|
||||
return ((void *) d);
|
||||
|
|
@ -122,8 +122,8 @@ cx_not(void *data, short int type, int length, int *newlength, short int *newtyp
|
|||
if (type == VF_COMPLEX) {
|
||||
for (i = 0; i < length; i++) {
|
||||
/* gcc doens't like !double */
|
||||
d[i] = realpart(&cc[i]) ? 0 : 1;
|
||||
d[i] = imagpart(&cc[i]) ? 0 : 1;
|
||||
d[i] = realpart(cc[i]) ? 0 : 1;
|
||||
d[i] = imagpart(cc[i]) ? 0 : 1;
|
||||
}
|
||||
} else {
|
||||
for (i = 0; i < length; i++)
|
||||
|
|
@ -265,7 +265,7 @@ cx_deriv(void *data, short int type, int length, int *newlength, short int *newt
|
|||
if (pl->pl_scale->v_type == VF_COMPLEX)
|
||||
/* Not ideal */
|
||||
for (i = 0; i < length; i++)
|
||||
scale[i] = realpart(&pl->pl_scale->v_compdata[i]);
|
||||
scale[i] = realpart(pl->pl_scale->v_compdata[i]);
|
||||
else
|
||||
for (i = 0; i < length; i++)
|
||||
scale[i] = pl->pl_scale->v_realdata[i];
|
||||
|
|
@ -360,7 +360,7 @@ cx_deriv(void *data, short int type, int length, int *newlength, short int *newt
|
|||
/* Modified to deal with complex frequency vector */
|
||||
if (pl->pl_scale->v_type == VF_COMPLEX)
|
||||
for (i = 0; i < length; i++)
|
||||
scale[i] = realpart(&pl->pl_scale->v_compdata[i]);
|
||||
scale[i] = realpart(pl->pl_scale->v_compdata[i]);
|
||||
else
|
||||
for (i = 0; i < length; i++)
|
||||
scale[i] = pl->pl_scale->v_realdata[i];
|
||||
|
|
@ -389,7 +389,7 @@ cx_deriv(void *data, short int type, int length, int *newlength, short int *newt
|
|||
*/
|
||||
|
||||
if (pl->pl_scale->v_type == VF_COMPLEX)
|
||||
x = realpart(&pl->pl_scale->v_compdata[j+base]); /* For complex scale vector */
|
||||
x = realpart(pl->pl_scale->v_compdata[j+base]); /* For complex scale vector */
|
||||
else
|
||||
x = pl->pl_scale->v_realdata[j + base]; /* For real scale vector */
|
||||
|
||||
|
|
@ -403,7 +403,7 @@ cx_deriv(void *data, short int type, int length, int *newlength, short int *newt
|
|||
/* Again the same error */
|
||||
/* x = pl->pl_scale->v_realdata[j + base]; */
|
||||
if (pl->pl_scale->v_type == VF_COMPLEX)
|
||||
x = realpart(&pl->pl_scale->v_compdata[j+base]); /* For complex scale vector */
|
||||
x = realpart(pl->pl_scale->v_compdata[j+base]); /* For complex scale vector */
|
||||
else
|
||||
x = pl->pl_scale->v_realdata[j + base]; /* For real scale vector */
|
||||
|
||||
|
|
|
|||
|
|
@ -34,15 +34,15 @@ main(void)
|
|||
t1 = VF_COMPLEX;
|
||||
c = alloc_c(n1);
|
||||
|
||||
realpart(&c[0]) = 0.0; imagpart(&c[0]) = +1.0; /* i^1 */
|
||||
realpart(&c[1]) = -1.0; imagpart(&c[1]) = 0.0; /* i^2 */
|
||||
realpart(&c[2]) = 0.0; imagpart(&c[2]) = -1.0; /* i^3 */
|
||||
realpart(&c[3]) = +1.0; imagpart(&c[3]) = 0.0; /* i^4 */
|
||||
realpart(&c[4]) = 0.0; imagpart(&c[4]) = +1.0; /* i^5 */
|
||||
realpart(&c[5]) = +1.0; imagpart(&c[5]) = 0.0; /* i^4 */
|
||||
realpart(&c[6]) = 0.0; imagpart(&c[6]) = -1.0; /* i^3 */
|
||||
realpart(&c[7]) = -1.0; imagpart(&c[7]) = 0.0; /* i^2 */
|
||||
realpart(&c[8]) = 0.0; imagpart(&c[8]) = +1.0; /* i^1 */
|
||||
realpart(c[0]) = 0.0; imagpart(c[0]) = +1.0; /* i^1 */
|
||||
realpart(c[1]) = -1.0; imagpart(c[1]) = 0.0; /* i^2 */
|
||||
realpart(c[2]) = 0.0; imagpart(c[2]) = -1.0; /* i^3 */
|
||||
realpart(c[3]) = +1.0; imagpart(c[3]) = 0.0; /* i^4 */
|
||||
realpart(c[4]) = 0.0; imagpart(c[4]) = +1.0; /* i^5 */
|
||||
realpart(c[5]) = +1.0; imagpart(c[5]) = 0.0; /* i^4 */
|
||||
realpart(c[6]) = 0.0; imagpart(c[6]) = -1.0; /* i^3 */
|
||||
realpart(c[7]) = -1.0; imagpart(c[7]) = 0.0; /* i^2 */
|
||||
realpart(c[8]) = 0.0; imagpart(c[8]) = +1.0; /* i^1 */
|
||||
|
||||
d = (double *) cx_cph((void *) c, t1, n1, &n2, &t2);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@ main(void)
|
|||
n1 = 1;
|
||||
t1 = VF_COMPLEX;
|
||||
c = alloc_c(n1);
|
||||
realpart(&c[0]) = .0;
|
||||
imagpart(&c[0]) = 1.0;
|
||||
realpart(c[0]) = .0;
|
||||
imagpart(c[0]) = 1.0;
|
||||
d = (ngcomplex_t *) cx_j((void *) c, t1, n1, &n2, &t2);
|
||||
if (realpart(&d[0]) == -1 && imagpart(&d[0]) == 0)
|
||||
if (realpart(d[0]) == -1 && imagpart(d[0]) == 0)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ main(void)
|
|||
n1 = 1;
|
||||
t1 = VF_COMPLEX;
|
||||
c = alloc_c(n1);
|
||||
realpart(&c[0]) = .0;
|
||||
imagpart(&c[0]) = 1.0;
|
||||
realpart(c[0]) = .0;
|
||||
imagpart(c[0]) = 1.0;
|
||||
d = (double *) cx_mag((void *) c, t1, n1, &n2, &t2);
|
||||
if (d[0] == 1)
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -28,8 +28,8 @@ main(void)
|
|||
n1 = 1;
|
||||
t1 = VF_COMPLEX;
|
||||
c = alloc_c(n1);
|
||||
realpart(&c[0]) = .0;
|
||||
imagpart(&c[0]) = 1.0;
|
||||
realpart(c[0]) = .0;
|
||||
imagpart(c[0]) = 1.0;
|
||||
d = (double *) cx_ph((void *) c, t1, n1, &n2, &t2);
|
||||
if (M_PI/2 - eps < d[0] && d[0] < M_PI/2 + eps)
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -192,8 +192,8 @@ oldread(char *name)
|
|||
} else {
|
||||
tfread(&f1, sizeof (float), 1, fp);
|
||||
tfread(&f2, sizeof (float), 1, fp);
|
||||
realpart(&v->v_compdata[i]) = f1;
|
||||
imagpart(&v->v_compdata[i]) = f2;
|
||||
realpart(v->v_compdata[i]) = f1;
|
||||
imagpart(v->v_compdata[i]) = f2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -296,11 +296,11 @@ oldwrite(char *name, bool app, struct plot *pl)
|
|||
tfwrite(&zero, sizeof (float), 1, fp);
|
||||
} else if ((tp == VF_COMPLEX) && iscomplex(v)) {
|
||||
if (i < v->v_length) {
|
||||
f1 = (float) realpart(&v->v_compdata[i]);
|
||||
f2 = (float) imagpart(&v->v_compdata[i]);
|
||||
f1 = (float) realpart(v->v_compdata[i]);
|
||||
f2 = (float) imagpart(v->v_compdata[i]);
|
||||
} else {
|
||||
f1 = (float) realpart(&v->v_compdata[v-> v_length - 1]);
|
||||
f2 = (float) imagpart(&v->v_compdata[v-> v_length - 1]);
|
||||
f1 = (float) realpart(v->v_compdata[v-> v_length - 1]);
|
||||
f2 = (float) imagpart(v->v_compdata[v-> v_length - 1]);
|
||||
}
|
||||
tfwrite(&f1, sizeof (float), 1, fp);
|
||||
tfwrite(&f2, sizeof (float), 1, fp);
|
||||
|
|
|
|||
|
|
@ -1546,7 +1546,7 @@ static void dvecToBlt(Blt_Vector *Data, struct dvec *x) {
|
|||
data = TMALLOC(double, x->v_length);
|
||||
|
||||
for(i=0;i<x->v_length;i++) {
|
||||
data[i] = realpart(&x->v_compdata[i]);
|
||||
data[i] = realpart(x->v_compdata[i]);
|
||||
}
|
||||
|
||||
Blt_ResetVector (Data, data, x->v_length, x->v_length, TCL_VOLATILE);
|
||||
|
|
|
|||
Loading…
Reference in New Issue