1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
#include "libtest.h"
#if SIZEOF_FLOAT_COMPLEX
EXTERN float
complex_float_get_real(float complex f)
{
return crealf(f);
}
EXTERN float
complex_float_get_imag(float complex f)
{
return cimagf(f);
}
EXTERN const char *
complex_float_to_string(float complex f)
{
static char buffer[1024];
sprintf(buffer, "%g + %g * i", crealf(f), cimagf(f));
return buffer;
}
EXTERN float
complex_float_ptr_get_real(float complex *f)
{
return crealf(*f);
}
EXTERN float
complex_float_ptr_get_imag(float complex *f)
{
return cimagf(*f);
}
EXTERN void
complex_float_ptr_set(float complex *f, float r, float i)
{
*f = r + i*I;
}
EXTERN float complex
complex_float_ret(float r, float i)
{
return r + i*I;
}
EXTERN float complex *
complex_float_ptr_ret(float r, float i)
{
static float complex f;
f = r + i*I;
return &f;
}
EXTERN float complex
complex_float_array_get(float complex *f, int index)
{
return f[index];
}
EXTERN void
complex_float_array_set(float complex *f, int index, float r, float i)
{
f[index] = r + i*I;
}
EXTERN float complex *
complex_float_array_ret(void)
{
static float complex ret[3];
ret[0] = 0.0 + 0.0*I;
ret[1] = 1.0 + 2.0*I;
ret[2] = 3.0 + 4.0*I;
return ret;
}
#endif
|