Browse Source

simplify complex assignments

pre-master-46
rlar 10 years ago
parent
commit
9d32a0a5a9
  1. 6
      src/frontend/com_compose.c
  2. 11
      src/frontend/evaluate.c
  3. 3
      src/frontend/postcoms.c
  4. 6
      src/frontend/vectors.c
  5. 24
      src/maths/cmaths/cmath2.c
  6. 57
      src/maths/cmaths/cmath3.c
  7. 12
      src/maths/cmaths/cmath4.c

6
src/frontend/com_compose.c

@ -39,8 +39,7 @@ dimxpand(struct dvec *v, int *newdims, double *data)
if (realflag) { if (realflag) {
data[n] = v->v_realdata[o]; data[n] = v->v_realdata[o];
} else { } else {
realpart(cdata[n]) = realpart(v->v_compdata[o]);
imagpart(cdata[n]) = imagpart(v->v_compdata[o]);
cdata[n] = v->v_compdata[o];
} }
/* Now find the nextstrchr element... */ /* Now find the nextstrchr element... */
@ -203,8 +202,7 @@ com_compose(wordlist *wl)
realpart(cdata[i]) = realpart(v->v_compdata[0]); realpart(cdata[i]) = realpart(v->v_compdata[0]);
imagpart(cdata[i]) = 0.0; imagpart(cdata[i]) = 0.0;
} else { } else {
realpart(cdata[i]) = realpart(v->v_compdata[0]);
imagpart(cdata[i]) = imagpart(v->v_compdata[0]);
cdata[i] = v->v_compdata[0];
} }
i++; i++;
continue; continue;

11
src/frontend/evaluate.c

@ -640,10 +640,7 @@ op_range(struct pnode *arg1, struct pnode *arg2)
if (isreal(res)) { if (isreal(res)) {
res->v_realdata[j] = v->v_realdata[i]; res->v_realdata[j] = v->v_realdata[i];
} else { } else {
realpart(res->v_compdata[j]) =
realpart(v->v_compdata[i]);
imagpart(res->v_compdata[j]) =
imagpart(v->v_compdata[i]);
res->v_compdata[j] = v->v_compdata[i];
} }
j++; j++;
} }
@ -789,10 +786,8 @@ op_ind(struct pnode *arg1, struct pnode *arg2)
res->v_realdata[k * blocksize + i] = res->v_realdata[k * blocksize + i] =
v->v_realdata[(down + j) * blocksize + i]; v->v_realdata[(down + j) * blocksize + i];
} else { } 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]);
res->v_compdata[k * blocksize + i] =
v->v_compdata[(down + j) * blocksize + i];
} }
} }

3
src/frontend/postcoms.c

@ -777,8 +777,7 @@ com_cross(wordlist *wl)
for (n = vecs, i = 0; n; n = n->v_link2, i++) for (n = vecs, i = 0; n; n = n->v_link2, i++)
if (n->v_length > ind) { if (n->v_length > ind) {
if (comp) { if (comp) {
realpart(v->v_compdata[i]) = realpart(n->v_compdata[ind]);
imagpart(v->v_compdata[i]) = imagpart(n->v_compdata[ind]);
v->v_compdata[i] = n->v_compdata[ind];
} else { } else {
v->v_realdata[i] = n->v_realdata[ind]; v->v_realdata[i] = n->v_realdata[ind];
} }

6
src/frontend/vectors.c

@ -1062,10 +1062,8 @@ vec_transpose(struct dvec *v)
joffset = 0; joffset = 0;
for (j = 0; j < dim0; j++) { for (j = 0; j < dim0; j++) {
for (i = 0; i < dim1; i++) { 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 ]);
newcomp[ koffset + joffset + i ] =
oldcomp[ koffset + i*dim0 + j ];
} }
joffset += dim1; /* joffset = j*dim0 */ joffset += dim1; /* joffset = j*dim0 */
} }

24
src/maths/cmaths/cmath2.c

@ -497,15 +497,13 @@ cx_plus(void *data1, void *data2, short int datatype1, short int datatype2, int
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
realpart(c[i]) = realpart(c1) + realpart(c2); realpart(c[i]) = realpart(c1) + realpart(c2);
imagpart(c[i]) = imagpart(c1) + imagpart(c2); imagpart(c[i]) = imagpart(c1) + imagpart(c2);
@ -537,15 +535,13 @@ cx_minus(void *data1, void *data2, short int datatype1, short int datatype2, int
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
realpart(c[i]) = realpart(c1) - realpart(c2); realpart(c[i]) = realpart(c1) - realpart(c2);
imagpart(c[i]) = imagpart(c1) - imagpart(c2); imagpart(c[i]) = imagpart(c1) - imagpart(c2);
@ -577,15 +573,13 @@ cx_times(void *data1, void *data2, short int datatype1, short int datatype2, int
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
realpart(c[i]) = realpart(c1) * realpart(c2) realpart(c[i]) = realpart(c1) * realpart(c2)
- imagpart(c1) * imagpart(c2); - imagpart(c1) * imagpart(c2);
@ -625,15 +619,13 @@ cx_mod(void *data1, void *data2, short int datatype1, short int datatype2, int l
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
r1 = (int)floor(FTEcabs(realpart(c1))); r1 = (int)floor(FTEcabs(realpart(c1)));
rcheck(r1 > 0, "mod"); rcheck(r1 > 0, "mod");

57
src/maths/cmaths/cmath3.c

@ -52,15 +52,13 @@ cx_divide(void *data1, void *data2, short int datatype1, short int datatype2, in
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
rcheck((realpart(c2) != 0) || (imagpart(c2) != 0), "divide"); rcheck((realpart(c2) != 0) || (imagpart(c2) != 0), "divide");
#define xx5 realpart(c1) #define xx5 realpart(c1)
@ -92,15 +90,13 @@ cx_comma(void *data1, void *data2, short int datatype1, short int datatype2, int
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
realpart(c[i]) = realpart(c1) + imagpart(c2); realpart(c[i]) = realpart(c1) + imagpart(c2);
@ -134,15 +130,13 @@ cx_power(void *data1, void *data2, short int datatype1, short int datatype2, int
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
if ((realpart(c1) == 0.0) && (imagpart(c1) == 0.0)) { if ((realpart(c1) == 0.0) && (imagpart(c1) == 0.0)) {
@ -151,8 +145,7 @@ cx_power(void *data1, void *data2, short int datatype1, short int datatype2, int
} else { /* if ((imagpart(c1) != 0.0) && } else { /* if ((imagpart(c1) != 0.0) &&
(imagpart(c2) != 0.0)) */ (imagpart(c2) != 0.0)) */
t = cexp_sp3(ctimes(&c2, cln(&c1))); t = cexp_sp3(ctimes(&c2, cln(&c1)));
realpart(c[i]) = realpart(*t);
imagpart(c[i]) = imagpart(*t);
c[i] = *t;
/* /*
} else { } else {
realpart(c[i]) = pow(realpart(c1), realpart(c[i]) = pow(realpart(c1),
@ -239,15 +232,13 @@ cx_eq(void *data1, void *data2, short int datatype1, short int datatype2, int le
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) == realpart(c2)) && d[i] = ((realpart(c1) == realpart(c2)) &&
(imagpart(c1) == imagpart(c2))); (imagpart(c1) == imagpart(c2)));
@ -280,15 +271,13 @@ cx_gt(void *data1, void *data2, short int datatype1, short int datatype2, int le
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) > realpart(c2)) && d[i] = ((realpart(c1) > realpart(c2)) &&
(imagpart(c1) > imagpart(c2))); (imagpart(c1) > imagpart(c2)));
@ -321,15 +310,13 @@ cx_lt(void *data1, void *data2, short int datatype1, short int datatype2, int le
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) < realpart(c2)) && d[i] = ((realpart(c1) < realpart(c2)) &&
(imagpart(c1) < imagpart(c2))); (imagpart(c1) < imagpart(c2)));
@ -362,15 +349,13 @@ cx_ge(void *data1, void *data2, short int datatype1, short int datatype2, int le
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) >= realpart(c2)) && d[i] = ((realpart(c1) >= realpart(c2)) &&
(imagpart(c1) >= imagpart(c2))); (imagpart(c1) >= imagpart(c2)));
@ -403,15 +388,13 @@ cx_le(void *data1, void *data2, short int datatype1, short int datatype2, int le
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) <= realpart(c2)) && d[i] = ((realpart(c1) <= realpart(c2)) &&
(imagpart(c1) <= imagpart(c2))); (imagpart(c1) <= imagpart(c2)));
@ -444,15 +427,13 @@ cx_ne(void *data1, void *data2, short int datatype1, short int datatype2, int le
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) != realpart(c2)) && d[i] = ((realpart(c1) != realpart(c2)) &&
(imagpart(c1) != imagpart(c2))); (imagpart(c1) != imagpart(c2)));

12
src/maths/cmaths/cmath4.c

@ -60,15 +60,13 @@ cx_and(void *data1, void *data2, short int datatype1, short int datatype2, int l
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) && realpart(c2)) && d[i] = ((realpart(c1) && realpart(c2)) &&
(imagpart(c1) && imagpart(c2))); (imagpart(c1) && imagpart(c2)));
@ -99,15 +97,13 @@ cx_or(void *data1, void *data2, short int datatype1, short int datatype2, int le
realpart(c1) = dd1[i]; realpart(c1) = dd1[i];
imagpart(c1) = 0.0; imagpart(c1) = 0.0;
} else { } else {
realpart(c1) = realpart(cc1[i]);
imagpart(c1) = imagpart(cc1[i]);
c1 = cc1[i];
} }
if (datatype2 == VF_REAL) { if (datatype2 == VF_REAL) {
realpart(c2) = dd2[i]; realpart(c2) = dd2[i];
imagpart(c2) = 0.0; imagpart(c2) = 0.0;
} else { } else {
realpart(c2) = realpart(cc2[i]);
imagpart(c2) = imagpart(cc2[i]);
c2 = cc2[i];
} }
d[i] = ((realpart(c1) || realpart(c2)) && d[i] = ((realpart(c1) || realpart(c2)) &&
(imagpart(c1) || imagpart(c2))); (imagpart(c1) || imagpart(c2)));

Loading…
Cancel
Save