complex.c (grpn-1.5.1) | : | complex.c (grpn-1.5.2) | ||
---|---|---|---|---|
skipping to change at line 343 | skipping to change at line 343 | |||
mulEqReal(r1, r2); | mulEqReal(r1, r2); | |||
freeReal(r2); | freeReal(r2); | |||
return r1; | return r1; | |||
} | } | |||
Real * thetaCmplx(Cmplx *a){ | Real * thetaCmplx(Cmplx *a){ | |||
int sign_re; | int sign_re; | |||
Real *r1, *r2; | Real *r1; | |||
Real *theta; | Real *theta; | |||
r2 = atanEqReal(divReal(a->im, a->re)); | r1 = atanEqReal(divReal(a->im, a->re)); | |||
sign_re = cmpReal(a->re, realZero); | sign_re = cmpReal(a->re, realZero); | |||
if(0 == sign_re){ | if(0 == sign_re){ | |||
/* -90 deg */ | /* -90 deg */ | |||
if(-1 == cmpReal(a->im, realZero)) | if(-1 == cmpReal(a->im, realZero)) | |||
theta = setRealDouble(newReal(), -M_PI/2.0); | theta = setRealDouble(newReal(), -M_PI/2.0); | |||
else /* 90 deg */ | else /* 90 deg */ | |||
theta = setRealDouble(newReal(), M_PI/2.0); | theta = setRealDouble(newReal(), M_PI/2.0); | |||
freeReal(r2); | freeReal(r1); | |||
} | } | |||
/* quadrant 2 and 3 */ | /* quadrant 2 and 3 */ | |||
else if(-1 == sign_re){ | else if(-1 == sign_re){ | |||
/* quad 3 */ | /* quad 3 */ | |||
if(-1 == cmpReal(a->im, realZero)) | if(-1 == cmpReal(a->im, realZero)) | |||
theta = subEqReal(r2, realPi); | theta = subEqReal(r1, realPi); | |||
else /* quad 2 */ | else /* quad 2 */ | |||
theta = addEqReal(r2, realPi); | theta = addEqReal(r1, realPi); | |||
} | } | |||
/* quadrant 1 and 4 */ | /* quadrant 1 and 4 */ | |||
else{ | else{ | |||
theta = r2; | theta = r1; | |||
} | } | |||
return theta; | return theta; | |||
} | } | |||
Cmplx * rectCmplx(Cmplx *a){ | Cmplx * rectCmplx(Cmplx *a){ | |||
Real *r1, *r2; | Real *r1, *r2; | |||
Cmplx *p = newCmplx(); | Cmplx *p = newCmplx(); | |||
r1 = cosReal(a->im); | r1 = cosReal(a->im); | |||
skipping to change at line 460 | skipping to change at line 460 | |||
freeReal(r2); | freeReal(r2); | |||
return a; | return a; | |||
} | } | |||
/***************** TRIG *************************/ | /***************** TRIG *************************/ | |||
Cmplx * sinCmplx(Cmplx *a){ | Cmplx * sinCmplx(Cmplx *a){ | |||
Real *r1; | Real *r1; | |||
Cmplx *p; | Cmplx *p; | |||
Cmplx *c1, *c2, *c3, *c4, *c5; | Cmplx *c1, *c2, *c4, *c5; | |||
c1 = mulCmplx(cmplxI, a); | c1 = mulCmplx(cmplxI, a); | |||
c2 = expCmplx(c1); | c2 = expCmplx(c1); | |||
negEqCmplx(c1); | negEqCmplx(c1); | |||
c4 = expCmplx(c1); | c4 = expCmplx(c1); | |||
c5 = subCmplx(c2, c4); | c5 = subCmplx(c2, c4); | |||
freeCmplx(c1); | freeCmplx(c1); | |||
freeCmplx(c2); | freeCmplx(c2); | |||
skipping to change at line 628 | skipping to change at line 628 | |||
freeReal(r7); | freeReal(r7); | |||
freeReal(rsq); | freeReal(rsq); | |||
return p; | return p; | |||
} | } | |||
/*************** MULTIPLY **********************/ | /*************** MULTIPLY **********************/ | |||
/* multiply 2 Cmplx numbers */ | /* multiply 2 Cmplx numbers */ | |||
Cmplx * mulCmplx(Cmplx *a, Cmplx *b){ | Cmplx * mulCmplx(Cmplx *a, Cmplx *b){ | |||
Real *r1, *r2, *r3, *r4, *r5, *r6; | Real *r1, *r2, *r3, *r4; | |||
Cmplx *p = newCmplx(); | Cmplx *p = newCmplx(); | |||
r1 = mulReal(a->re, b->re); | r1 = mulReal(a->re, b->re); | |||
r2 = mulReal(a->im, b->im); | r2 = mulReal(a->im, b->im); | |||
r3 = mulReal(a->re, b->im); | r3 = mulReal(a->re, b->im); | |||
r4 = mulReal(a->im, b->re); | r4 = mulReal(a->im, b->re); | |||
p->re = subEqReal(r1, r2); | p->re = subEqReal(r1, r2); | |||
p->im = addEqReal(r3, r4); | p->im = addEqReal(r3, r4); | |||
End of changes. 8 change blocks. | ||||
8 lines changed or deleted | 8 lines changed or added |