Please note : This help page is not for the latest version of Enterprise Architect. The latest help can be found here.

Prev Next



typedef struct {
      double r;     real part
      double i;     imaginary part

cmplx *a, *b, *c;

cmul(a, b, c);     c = b * a


    c.r  =  b.r * a.r  -  b.i * a.i
    c.i  =  b.r * a.i  +  b.i * a.r


In DEC arithmetic, the test (1/z) * z = 1 had peak relative error 3.1e-17, rms 1.2e-17.  The test (y/z) * (z/y) = 1 had peak relative error 8.3e-17, rms 2.1e-17.

Tests in the rectangle {-10,+10}:

                      Relative error:
arithmetic   function  # trials      peak         rms
    DEC        cadd       10000       1.4e-17     3.4e-18
    IEEE       cadd      100000       1.1e-16     2.7e-17
    DEC        csub       10000       1.4e-17     4.5e-18
    IEEE       csub      100000       1.1e-16     3.4e-17
    DEC        cmul        3000       2.3e-17     8.7e-18
    IEEE       cmul      100000       2.1e-16     6.9e-17
    DEC        cdiv       18000       4.9e-17     1.3e-17
    IEEE       cdiv      100000       3.7e-16     1.1e-16


var a = {"r":0.5,"i",0.5};
var b = {"r":0.5,"i",0.5};
var c = cephes.cmul(a,b);
Session.Output("c.r=" + c.r + ", c.i=" + c.i);