Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
September 25, 2007 possible error in dmc complex arithmetic | ||||
---|---|---|---|---|
| ||||
1.2 + .5i ^ -.9 + 1.5i = 0.436466 + 0.0166961i dmc (C, not C++) exponentiation with these operands gives the result: 1.2 + .5i ^ -.9 + 1.5i = 0.436466 + 0.000000i bug? JS |
September 27, 2007 Re: possible error in dmc complex arithmetic | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Smith | John Smith wrote:
> 1.2 + .5i ^ -.9 + 1.5i = 0.436466 + 0.0166961i
>
> dmc (C, not C++) exponentiation with these operands gives the result:
>
> 1.2 + .5i ^ -.9 + 1.5i = 0.436466 + 0.000000i
>
> bug?
Can't tell without a complete source code example exhibiting the behavior.
|
October 01, 2007 Re: possible error in dmc complex arithmetic | ||||
---|---|---|---|---|
| ||||
Posted in reply to Walter Bright | #include <stdio.h> #include <complex.h> int main(void) { /* declaration */ //double _Complex z1, z2, z3; double complex z1, z2, z3; /* assignment */ z1 = 1.2 + .5 * I; z2 = -.9 + 1.5 * I; /* arithmetic operators */ z3 = z1 + z2; printf("z1+z2 = %g %gi\n", creal(z3), cimag(z3)); z3 = z1 - z2; printf("z1-z2 = %g %gi\n", creal(z3), cimag(z3)); z3 = z1 * z2; printf("z1*z2 = %g %gi\n", creal(z3), cimag(z3)); z3 = z1 / z2; printf("z1/z2 = %g %gi\n", creal(z3), cimag(z3)); /* functions */ z3 = csqrt(z1); printf("sqrt = %g %gi\n", creal(z3), cimag(z3)); z3 = cpow(z1, z2); printf("z1^z2 = %g %fi\n", creal(z3), cimag(z3)); return 0; } |
October 01, 2007 Re: possible error in dmc complex arithmetic | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Smith | == Quote from John Smith (bystander@shaw.ca)'s article
> #include <stdio.h>
> #include <complex.h>
> int main(void)
> {
> /* declaration */
> //double _Complex z1, z2, z3;
> double complex z1, z2, z3;
> /* assignment */
> z1 = 1.2 + .5 * I;
> z2 = -.9 + 1.5 * I;
> /* arithmetic operators */
> z3 = z1 + z2;
> printf("z1+z2 = %g %gi\n", creal(z3), cimag(z3));
> z3 = z1 - z2;
> printf("z1-z2 = %g %gi\n", creal(z3), cimag(z3));
> z3 = z1 * z2;
> printf("z1*z2 = %g %gi\n", creal(z3), cimag(z3));
> z3 = z1 / z2;
> printf("z1/z2 = %g %gi\n", creal(z3), cimag(z3));
> /* functions */
> z3 = csqrt(z1);
> printf("sqrt = %g %gi\n", creal(z3), cimag(z3));
> z3 = cpow(z1, z2);
> printf("z1^z2 = %g %fi\n", creal(z3), cimag(z3));
> return 0;
> }
See incorrect result for cpow()
JS
|
October 01, 2007 Re: possible error in dmc complex arithmetic | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Smith | Thank-you. |
Copyright © 1999-2021 by the D Language Foundation