36 cx_divide(data1, data2, datatype1, datatype2, length)
39 short datatype1, datatype2;
41 double *dd1 = (
double *) data1;
42 double *dd2 = (
double *) data2;
51 for (i = 0; i < length; i++) {
52 rcheck(dd2[i] != 0,
"divide");
53 d[i] = dd1[i] / dd2[i];
59 for (i = 0; i < length; i++) {
75 #define xx5 realpart(&c1) 76 #define xx6 imagpart(&c1) 88 cx_comma(data1, data2, datatype1, datatype2, length)
91 short datatype1, datatype2;
93 double *dd1 = (
double *) data1;
94 double *dd2 = (
double *) data2;
101 for (i = 0; i < length; i++) {
127 cx_power(data1, data2, datatype1, datatype2, length)
130 short datatype1, datatype2;
132 double *dd1 = (
double *) data1;
133 double *dd2 = (
double *) data2;
142 for (i = 0; i < length; i++) {
143 rcheck((dd1[i] >= 0) || (floor(dd2[i]) == ceil(dd2[i])),
"power");
144 d[i] = pow(dd1[i], dd2[i]);
150 for (i = 0; i < length; i++) {
241 #ifdef HAVE_SHORTMACRO 246 cx_cdiv(r1, i1, r2, i2, r3, i3)
248 double r1, i1, r2, i2, *r3, *i3;
256 fprintf(
cp_err,
"Error: divide by 0\n");
259 *r3 = (r1 + r * i1) / s;
260 *i3 = (i1 - r * r1) / s;
265 fprintf(
cp_err,
"Error: divide by 0\n");
268 *r3 = (r * r1 + i1) / s;
269 *i3 = (r * i1 - r1) / s;
282 cx_eq(data1, data2, datatype1, datatype2, length)
285 short datatype1, datatype2;
287 double *dd1 = (
double *) data1;
288 double *dd2 = (
double *) data2;
297 for (i = 0; i < length; i++)
298 if (dd1[i] == dd2[i])
304 for (i = 0; i < length; i++) {
330 cx_gt(data1, data2, datatype1, datatype2, length)
333 short datatype1, datatype2;
335 double *dd1 = (
double *) data1;
336 double *dd2 = (
double *) data2;
345 for (i = 0; i < length; i++)
352 for (i = 0; i < length; i++) {
378 cx_lt(data1, data2, datatype1, datatype2, length)
381 short datatype1, datatype2;
383 double *dd1 = (
double *) data1;
384 double *dd2 = (
double *) data2;
393 for (i = 0; i < length; i++)
400 for (i = 0; i < length; i++) {
426 cx_ge(data1, data2, datatype1, datatype2, length)
429 short datatype1, datatype2;
431 double *dd1 = (
double *) data1;
432 double *dd2 = (
double *) data2;
441 for (i = 0; i < length; i++)
442 if (dd1[i] >= dd2[i])
448 for (i = 0; i < length; i++) {
474 cx_le(data1, data2, datatype1, datatype2, length)
477 short datatype1, datatype2;
479 double *dd1 = (
double *) data1;
480 double *dd2 = (
double *) data2;
489 for (i = 0; i < length; i++)
490 if (dd1[i] <= dd2[i])
496 for (i = 0; i < length; i++) {
520 cx_ne(data1, data2, datatype1, datatype2, length)
523 short datatype1, datatype2;
525 double *dd1 = (
double *) data1;
526 double *dd2 = (
double *) data2;
535 for (i = 0; i < length; i++)
536 if (dd1[i] != dd2[i])
542 for (i = 0; i < length; i++) {
char * cx_comma(char *data1, char *data2, short datatype1, short datatype2, length)
char * cx_le(char *data1, char *data2, short datatype1, short datatype2, length)
char * cx_gt(char *data1, char *data2, short datatype1, short datatype2, length)
char * cx_divide(char *data1, char *data2, short datatype1, short datatype2, length)
#define cdiv(r1, i1, r2, i2, r3, i3)
char * cx_ge(char *data1, char *data2, short datatype1, short datatype2, length)
char * cx_eq(char *data1, char *data2, short datatype1, short datatype2, length)
static complex * ctimes()
char * cx_lt(char *data1, char *data2, short datatype1, short datatype2, length)
char * cx_ne(char *data1, char *data2, short datatype1, short datatype2, length)
#define rcheck(cond, name)
static complex * j_cexp()
char * cx_power(char *data1, char *data2, short datatype1, short datatype2, length)