Modular C
C◼complex◼double◼FMA: symbols inserted from C◼snippet◼fma.
+ Collaboration diagram for C◼complex◼double◼FMA: symbols inserted from C◼snippet◼fma.:
C◼complex◼complex16 C◼complex◼double◼fma (C◼complex◼complex16 x, C◼complex◼complex16 y, C◼complex◼complex16 z)
 
C◼complex◼complex16 C◼complex◼double◼fma—fast (C◼complex◼complex16 x, C◼complex◼complex16 y, C◼complex◼complex16 z)
 
C◼real◼real8 C◼complex◼double◼abs2 (C◼complex◼complex16 z)
 
C◼real◼real8 C◼complex◼double◼real C◼snippet◼fma◼_Ign (C◼complex◼complex16 z)
 
#define C◼complex◼double◼real(Z)   ((_Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay){ .c = (Z) }.p[0])
 
#define C◼complex◼double◼imag(Z)   ((_Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay){ .c = (Z) }.p[1])
 
#define C◼complex◼double◼conj(Z)   ((_Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay){ .p = { [0] = C◼complex◼double◼real(Z), [1] = -C◼complex◼double◼imag(Z), }}.c)
 

Detailed Description

See also
C◼snippet◼fma snippet: identifiers inserted directly to an importer for details
This import uses the following slot(s)
slotreplacement
C◼snippet◼fma◼RC◼real◼real8
C◼snippet◼fma◼CC◼complex◼complex16
C◼snippet◼fma◼rfuncC◼real◼double◼fma
C◼snippet◼fma◼rfastC◼real◼double◼fma—fast

Macro Definition Documentation

§ C◼complex◼double◼conj

#define C◼complex◼double◼conj (   Z)    ((_Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay){ .p = { [0] = C◼complex◼double◼real(Z), [1] = -C◼complex◼double◼imag(Z), }}.c)

Definition at line 632 of file C-complex-double.c.

Referenced by C◼snippet◼fma◼_Ign().

§ C◼complex◼double◼imag

#define C◼complex◼double◼imag (   Z)    ((_Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay){ .c = (Z) }.p[1])

§ C◼complex◼double◼real

#define C◼complex◼double◼real (   Z)    ((_Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay){ .c = (Z) }.p[0])

Function Documentation

§ C◼complex◼double◼abs2()

C◼real◼real8 C◼complex◼double◼abs2 ( C◼complex◼complex16  z)
inline

Definition at line 664 of file C-complex-double.c.

References C◼complex◼double◼imag, and C◼complex◼double◼real.

664  {
665 #line 57 "/home/gustedt/build/cmod/C/C-snippet-fma.X"
668  return r*r + i*i;
669 }
#define C◼complex◼double◼imag(Z)
double C◼real◼real8
Definition: C-real.c:159
#define C◼complex◼double◼real(Z)

§ C◼complex◼double◼fma()

Definition at line 635 of file C-complex-double.c.

References C◼complex◼double◼CMPLX, C◼complex◼double◼imag, C◼complex◼double◼real, and C◼real◼double◼fma().

635  {
636 #line 32 "/home/gustedt/build/cmod/C/C-snippet-fma.X"
641  return C◼complex◼double◼CMPLX(retr, reti);
642 }
#define C◼complex◼double◼CMPLX(x, y)
This copies platform define CMPLX.
#define C◼complex◼double◼imag(Z)
double C◼real◼real8
Definition: C-real.c:159
#define C◼complex◼double◼real(Z)
double C◼real◼double◼fma(double x, double y, double z)
+ Here is the call graph for this function:

§ C◼complex◼double◼fma—fast()

C◼complex◼complex16 C◼complex◼double◼fma—fast ( C◼complex◼complex16  x,
C◼complex◼complex16  y,
C◼complex◼complex16  z 
)
inline

Definition at line 645 of file C-complex-double.c.

References C◼real◼double◼fma—fast().

645  {
646 #line 41 "/home/gustedt/build/cmod/C/C-snippet-fma.X"
647  _Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay X = { .c = x, };
648  _Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay Y = { .c = y, };
649  _Intern◼_EICqGJvv◼C◼complex◼double◼FMA◼overlay Z = { .c = z, };
650  for (unsigned i = 0; i < 2; ++i) {
651 #line 45 "/home/gustedt/build/cmod/C/C-snippet-fma.X"
652  Z.p[i] = C◼real◼double◼fma—fast(X.p[0], Y.p[i], Z.p[i]);
653  }
654  Z.p[0] = -Z.p[0];
655  for (unsigned i = 0; i < 2; ++i) {
656 #line 49 "/home/gustedt/build/cmod/C/C-snippet-fma.X"
657  Z.p[i] = C◼real◼double◼fma—fast(X.p[1], Y.p[1-i], Z.p[i]);
658  }
659  Z.p[0] = -Z.p[0];
660  return Z.c;
661 }
double C◼real◼double◼fma—fast(double x, double y, double z)
+ Here is the call graph for this function:

§ C◼snippet◼fma◼_Ign()

Definition at line 676 of file C-complex-double.c.

References C◼complex◼double◼conj, C◼complex◼double◼imag, and C◼complex◼double◼real.

676  {
677 #line 68 "/home/gustedt/build/cmod/C/C-snippet-fma.X"
678  return C◼complex◼double◼real(z);
679 }
#define C◼complex◼double◼real(Z)