OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.dg/] [torture/] [builtin-math-6.c] - Blame information for rev 698

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 689 jeremybenn
/* Copyright (C) 2009  Free Software Foundation.
2
 
3
   Verify that folding of built-in complex math functions with
4
   constant arguments is correctly performed by the compiler.
5
 
6
   Origin: Kaveh R. Ghazi,  January 28, 2009.  */
7
 
8
/* { dg-do link } */
9
 
10
/* All references to link_error should go away at compile-time.  The
11
   first number is the line number and the second is the value number
12
   among several tests.  These appear in the tree dump file and aid in
13
   debugging.  */
14
extern void link_error(int, int);
15
 
16
#define CONJ(X) __builtin_conjf(X)
17
 
18
/* Return TRUE if the signs of floating point values X and Y are not
19
   equal.  This is important when comparing signed zeros.  */
20
#define CKSGN_F(X,Y) \
21
  (__builtin_copysignf(1,(X)) != __builtin_copysignf(1,(Y)))
22
#define CKSGN(X,Y) \
23
  (__builtin_copysign(1,(X)) != __builtin_copysign(1,(Y)))
24
#define CKSGN_L(X,Y) \
25
  (__builtin_copysignl(1,(X)) != __builtin_copysignl(1,(Y)))
26
 
27
/* Return TRUE if signs of the real parts, and the signs of the
28
   imaginary parts, of X and Y are not equal.  */
29
#define COMPLEX_CKSGN_F(X,Y) \
30
  (CKSGN_F(__real__ (X), __real__ (Y)) || CKSGN_F (__imag__ (X), __imag__ (Y)))
31
#define COMPLEX_CKSGN(X,Y) \
32
  (CKSGN(__real__ (X), __real__ (Y)) || CKSGN (__imag__ (X), __imag__ (Y)))
33
#define COMPLEX_CKSGN_L(X,Y) \
34
  (CKSGN_L(__real__ (X), __real__ (Y)) || CKSGN_L (__imag__ (X), __imag__ (Y)))
35
 
36
/* For complex numbers, test that FUNC(ARG) == (RES).  */
37
#define TESTIT_COMPLEX(VAL_NUM, FUNC, ARG, RES) do { \
38
  if (__builtin_##FUNC##f(ARG) != (RES) \
39
    || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \
40
      link_error(__LINE__, VAL_NUM); \
41
  if (__builtin_##FUNC(ARG) != (RES) \
42
    || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
43
      link_error(__LINE__, VAL_NUM); \
44
  if (__builtin_##FUNC##l(ARG) != (RES) \
45
    || COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG), (RES))) \
46
      link_error(__LINE__, VAL_NUM); \
47
  } while (0)
48
 
49
/* For complex numbers, call the TESTIT_COMPLEX macro for all
50
   combinations of neg and conj.  */
51
#define TESTIT_COMPLEX_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \
52
  TESTIT_COMPLEX(1, FUNC, (_Complex float)(ARG), RES1); \
53
  TESTIT_COMPLEX(2, FUNC, -CONJ(ARG), RES2); \
54
  TESTIT_COMPLEX(3, FUNC, CONJ(ARG), RES3); \
55
  TESTIT_COMPLEX(4, FUNC, -(_Complex float)(ARG), RES4); \
56
} while (0)
57
 
58
/* For complex numbers, call the TESTIT_COMPLEX_R macro for all
59
   combinations of neg and conj.  */
60
#define TESTIT_COMPLEX_R_ALLNEG(FUNC, ARG, RES1, RES2, RES3, RES4) do { \
61
  TESTIT_COMPLEX_R(1, FUNC, (_Complex float)(ARG), RES1); \
62
  TESTIT_COMPLEX_R(2, FUNC, -CONJ(ARG), RES2); \
63
  TESTIT_COMPLEX_R(3, FUNC, CONJ(ARG), RES3); \
64
  TESTIT_COMPLEX_R(4, FUNC, -(_Complex float)(ARG), RES4); \
65
} while (0)
66
 
67
/* For complex numbers, test that FUNC(ARG0, ARG1) == (RES).  */
68
#define TESTIT_COMPLEX2(VAL_NUM, FUNC, ARG0, ARG1, RES) do { \
69
  if (__builtin_##FUNC##f(ARG0, ARG1) != (RES) \
70
    || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG0, ARG1), (RES))) \
71
      link_error(__LINE__, VAL_NUM); \
72
  if (__builtin_##FUNC(ARG0, ARG1) != (RES) \
73
    || COMPLEX_CKSGN(__builtin_##FUNC(ARG0, ARG1), (RES))) \
74
      link_error(__LINE__, VAL_NUM); \
75
  if (__builtin_##FUNC##l(ARG0, ARG1) != (RES) \
76
    || COMPLEX_CKSGN_L(__builtin_##FUNC##l(ARG0, ARG1), (RES))) \
77
      link_error(__LINE__, VAL_NUM); \
78
  } while (0)
79
 
80
/* For complex numbers, call the TESTIT_COMPLEX2 macro for all
81
   combinations of neg and conj.  */
82
#define TESTIT_COMPLEX2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\
83
 RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \
84
  TESTIT_COMPLEX2(1, FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
85
  TESTIT_COMPLEX2(2, FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
86
  TESTIT_COMPLEX2(3, FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
87
  TESTIT_COMPLEX2(4, FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
88
  TESTIT_COMPLEX2(5, FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
89
  TESTIT_COMPLEX2(6, FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
90
  TESTIT_COMPLEX2(7, FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
91
  TESTIT_COMPLEX2(8, FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
92
  TESTIT_COMPLEX2(9, FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
93
  TESTIT_COMPLEX2(10, FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
94
  TESTIT_COMPLEX2(11, FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
95
  TESTIT_COMPLEX2(12, FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
96
  TESTIT_COMPLEX2(13, FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
97
  TESTIT_COMPLEX2(14, FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
98
  TESTIT_COMPLEX2(15, FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
99
  TESTIT_COMPLEX2(16, FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
100
} while (0)
101
 
102
/* Return TRUE if X differs from EXPECTED by more than 1%.  If
103
   EXPECTED is zero, then any difference may return TRUE.  We don't
104
   worry about signed zeros.  */
105
#define DIFF1PCT_F(X,EXPECTED) \
106
  (__builtin_fabsf((X)-(EXPECTED)) * 100 > __builtin_fabsf(EXPECTED))
107
#define DIFF1PCT(X,EXPECTED) \
108
  (__builtin_fabs((X)-(EXPECTED)) * 100 > __builtin_fabs(EXPECTED))
109
#define DIFF1PCT_L(X,EXPECTED) \
110
  (__builtin_fabsl((X)-(EXPECTED)) * 100 > __builtin_fabsl(EXPECTED))
111
 
112
/* Return TRUE if complex value X differs from EXPECTED by more than
113
   1% in either the real or imaginary parts.  */
114
#define COMPLEX_DIFF1PCT_F(X,EXPECTED) \
115
  (DIFF1PCT_F(__real__ (X), __real__ (EXPECTED)) \
116
   || DIFF1PCT_F(__imag__ (X), __imag__ (EXPECTED)))
117
#define COMPLEX_DIFF1PCT(X,EXPECTED) \
118
  (DIFF1PCT(__real__ (X), __real__ (EXPECTED)) \
119
   || DIFF1PCT(__imag__ (X), __imag__ (EXPECTED)))
120
#define COMPLEX_DIFF1PCT_L(X,EXPECTED) \
121
  (DIFF1PCT_L(__real__ (X), __real__ (EXPECTED)) \
122
   || DIFF1PCT_L(__imag__ (X), __imag__ (EXPECTED)))
123
 
124
/* Range test, for complex numbers check that FUNC(ARG) is within 1%
125
   of RES.  This is NOT a test for accuracy to the last-bit, we're
126
   merely checking that we get relatively sane results.  I.e. the GCC
127
   builtin is hooked up to the correct MPC function call.  We first
128
   check the magnitude and then the sign.  */
129
#define TESTIT_COMPLEX_R(VAL_NUM, FUNC, ARG, RES) do { \
130
  if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG), (RES)) \
131
      || COMPLEX_CKSGN_F(__builtin_##FUNC##f(ARG), (RES))) \
132
    link_error(__LINE__, VAL_NUM); \
133
  if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \
134
      || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
135
    link_error(__LINE__, VAL_NUM); \
136
  if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG), (RES)) \
137
      || COMPLEX_CKSGN(__builtin_##FUNC(ARG), (RES))) \
138
    link_error(__LINE__, VAL_NUM); \
139
  } while (0)
140
 
141
/* Range test, for complex numbers check that FUNC(ARG0, ARG1) is
142
   within 1% of RES.  This is NOT a test for accuracy to the last-bit,
143
   we're merely checking that we get relatively sane results.
144
   I.e. the GCC builtin is hooked up to the correct MPC function call.
145
   We first check the magnitude and then the sign.  */
146
#define TESTIT_COMPLEX_R2(VAL_NUM, FUNC, ARG0, ARG1, RES) do { \
147
  if (COMPLEX_DIFF1PCT_F (__builtin_##FUNC##f(ARG0, ARG1), (RES)) \
148
      || COMPLEX_CKSGN_F (__builtin_##FUNC##f(ARG0, ARG1), (RES))) \
149
    link_error(__LINE__, VAL_NUM); \
150
  if (COMPLEX_DIFF1PCT (__builtin_##FUNC(ARG0, ARG1), (RES)) \
151
      || COMPLEX_CKSGN (__builtin_##FUNC(ARG0, ARG1), (RES))) \
152
    link_error(__LINE__, VAL_NUM); \
153
  if (COMPLEX_DIFF1PCT_L (__builtin_##FUNC##l(ARG0, ARG1), (RES)) \
154
      || COMPLEX_CKSGN_L (__builtin_##FUNC##l(ARG0, ARG1), (RES))) \
155
    link_error(__LINE__, VAL_NUM); \
156
  } while (0)
157
 
158
/* For complex numbers, call the TESTIT_COMPLEX_R2 macro for all
159
   combinations of neg and conj.  */
160
#define TESTIT_COMPLEX_R2_ALLNEG(FUNC, ARG0, ARG1, RES1, RES2, RES3, RES4, RES5,\
161
 RES6, RES7, RES8, RES9, RES10, RES11, RES12, RES13, RES14, RES15, RES16) do{ \
162
  TESTIT_COMPLEX_R2(1, FUNC, (_Complex float)(ARG0),(_Complex float)(ARG1), RES1);\
163
  TESTIT_COMPLEX_R2(2, FUNC, (_Complex float)(ARG0),CONJ(ARG1), RES2); \
164
  TESTIT_COMPLEX_R2(3, FUNC, (_Complex float)(ARG0),-(_Complex float)(ARG1), RES3); \
165
  TESTIT_COMPLEX_R2(4, FUNC, (_Complex float)(ARG0),-CONJ(ARG1), RES4); \
166
  TESTIT_COMPLEX_R2(5, FUNC, -(_Complex float)(ARG0),(_Complex float)(ARG1), RES5); \
167
  TESTIT_COMPLEX_R2(6, FUNC, -(_Complex float)(ARG0),CONJ(ARG1), RES6); \
168
  TESTIT_COMPLEX_R2(7, FUNC, -(_Complex float)(ARG0),-(_Complex float)(ARG1), RES7); \
169
  TESTIT_COMPLEX_R2(8, FUNC, -(_Complex float)(ARG0),-CONJ(ARG1), RES8); \
170
  TESTIT_COMPLEX_R2(9, FUNC, CONJ(ARG0),(_Complex float)(ARG1), RES9); \
171
  TESTIT_COMPLEX_R2(10, FUNC, CONJ(ARG0),CONJ(ARG1), RES10); \
172
  TESTIT_COMPLEX_R2(11, FUNC, CONJ(ARG0),-(_Complex float)(ARG1), RES11); \
173
  TESTIT_COMPLEX_R2(12, FUNC, CONJ(ARG0),-CONJ(ARG1), RES12); \
174
  TESTIT_COMPLEX_R2(13, FUNC, -CONJ(ARG0),(_Complex float)(ARG1), RES13); \
175
  TESTIT_COMPLEX_R2(14, FUNC, -CONJ(ARG0),CONJ(ARG1), RES14); \
176
  TESTIT_COMPLEX_R2(15, FUNC, -CONJ(ARG0),-(_Complex float)(ARG1), RES15); \
177
  TESTIT_COMPLEX_R2(16, FUNC, -CONJ(ARG0),-CONJ(ARG1), RES16); \
178
} while (0)
179
 
180
int main (void)
181
{
182
  TESTIT_COMPLEX (1, cacos, 1, CONJ(0));
183
  TESTIT_COMPLEX_R (1, cacos, -1, CONJ(3.141593F));
184
  TESTIT_COMPLEX (1, cacos, CONJ(1), 0);
185
  TESTIT_COMPLEX_R (1, cacos, CONJ(-1), 3.141593F);
186
  TESTIT_COMPLEX_R_ALLNEG (cacos, 3.45678F + 2.34567FI,
187
                           0.60971F - 2.11780FI, 2.531875F - 2.117800FI,
188
                           0.60971F + 2.11780FI, 2.531875F + 2.117800FI);
189
 
190
  TESTIT_COMPLEX_ALLNEG (casin, 0,
191
                         0, -CONJ(0), CONJ(0), CONJ(-0.F));
192
  TESTIT_COMPLEX_R_ALLNEG (casin, 3.45678F + 2.34567FI,
193
                           0.96107F + 2.11780FI, -0.96107F + 2.11780FI,
194
                           0.96107F - 2.11780FI, -0.96107F - 2.11780FI);
195
 
196
  TESTIT_COMPLEX_ALLNEG (catan, 0,
197
                         0, -CONJ(0), CONJ(0), CONJ(-0.F));
198
  TESTIT_COMPLEX_R_ALLNEG (catan, 3.45678F + 2.34567FI,
199
                           1.37188F + 0.12997FI, -1.37188F + 0.12997FI,
200
                           1.37188F - 0.12997FI, -1.37188F - 0.12997FI);
201
 
202
  TESTIT_COMPLEX (1, cacosh, 1, 0);
203
  TESTIT_COMPLEX_R (1, cacosh, -1, 3.141593FI);
204
  TESTIT_COMPLEX (1, cacosh, CONJ(1), CONJ(0));
205
  TESTIT_COMPLEX_R (1, cacosh, CONJ(-1), CONJ(3.141593FI));
206
  TESTIT_COMPLEX_R_ALLNEG (cacosh, 3.45678F + 2.34567FI,
207
                           2.11780F + 0.60971FI, 2.11780F + 2.531875FI,
208
                           2.11780F - 0.60971FI, 2.11780F - 2.531875FI);
209
 
210
  TESTIT_COMPLEX_ALLNEG (casinh, 0,
211
                         0, -CONJ(0), CONJ(0), CONJ(-0.F));
212
  TESTIT_COMPLEX_R_ALLNEG (casinh, 3.45678F + 2.34567FI,
213
                           2.12836F + 0.58310FI, -2.12836F + 0.58310FI,
214
                           2.12836F - 0.58310FI, -2.12836F - 0.58310FI);
215
 
216
  TESTIT_COMPLEX_ALLNEG (catanh, 0,
217
                         0, -CONJ(0), CONJ(0), CONJ(-0.F));
218
  TESTIT_COMPLEX_R_ALLNEG (catanh, 3.45678F + 2.34567FI,
219
                           0.19693F + 1.43190FI, -0.19693F + 1.43190FI,
220
                           0.19693F - 1.43190FI, -0.19693F - 1.43190FI);
221
 
222
  TESTIT_COMPLEX_ALLNEG (csin, 0,
223
                         0, -0.F, CONJ(0), CONJ(-0.F));
224
  TESTIT_COMPLEX_R_ALLNEG (csin, 3.45678F + 2.34567FI,
225
                           -1.633059F - 4.917448FI, 1.633059F - 4.917448FI,
226
                           -1.633059F + 4.917448FI, 1.633059F + 4.917448FI);
227
 
228
  TESTIT_COMPLEX_ALLNEG (ccos, 0,
229
                         CONJ(1), 1, 1, CONJ(1));
230
  TESTIT_COMPLEX_R_ALLNEG (ccos, 3.45678F + 2.34567FI,
231
                           -5.008512F + 1.603367FI, -5.008512F - 1.603367FI,
232
                           -5.008512F - 1.603367FI, -5.008512F + 1.603367FI);
233
 
234
  TESTIT_COMPLEX_ALLNEG (ctan, 0,
235
                         0, -0.F, CONJ(0), CONJ(-0.F));
236
  TESTIT_COMPLEX_R_ALLNEG (ctan, 3.45678F + 2.34567FI,
237
                           0.010657F + 0.985230FI, -0.010657F + 0.985230FI,
238
                           0.010657F - 0.985230FI, -0.010657F - 0.985230FI);
239
 
240
  TESTIT_COMPLEX_ALLNEG (csinh, 0,
241
                         0, -0.F, CONJ(0), CONJ(-0.F));
242
  TESTIT_COMPLEX_R_ALLNEG (csinh, 3.45678F + 2.34567FI,
243
                           -11.083178F + 11.341487FI, 11.083178F +11.341487FI,
244
                           -11.083178F - 11.341487FI, 11.083178F -11.341487FI);
245
 
246
  TESTIT_COMPLEX_ALLNEG (ccosh, 0,
247
                         1, CONJ(1), CONJ(1), 1);
248
  TESTIT_COMPLEX_R_ALLNEG (ccosh, 3.45678F + 2.34567FI,
249
                           -11.105238F + 11.318958FI,-11.105238F -11.318958FI,
250
                           -11.105238F - 11.318958FI,-11.105238F +11.318958FI);
251
 
252
  TESTIT_COMPLEX_ALLNEG (ctanh, 0,
253
                         0, -0.F, CONJ(0), CONJ(-0.F));
254
  TESTIT_COMPLEX_R_ALLNEG (ctanh, 3.45678F + 2.34567FI,
255
                           1.000040F - 0.001988FI, -1.000040F - 0.001988FI,
256
                           1.000040F + 0.001988FI, -1.000040F + 0.001988FI);
257
 
258
  TESTIT_COMPLEX (1, clog, 1, 0);
259
  TESTIT_COMPLEX_R (1, clog, -1, 3.141593FI);
260
  TESTIT_COMPLEX (1, clog, CONJ(1), CONJ(0));
261
  TESTIT_COMPLEX_R (1, clog, CONJ(-1), CONJ(3.141593FI));
262
  TESTIT_COMPLEX_R_ALLNEG (clog, 3.45678F + 2.34567FI,
263
                           1.429713F + 0.596199FI, 1.429713F + 2.545394FI,
264
                           1.429713F - 0.596199FI, 1.429713F - 2.545394FI);
265
 
266
  TESTIT_COMPLEX_ALLNEG (csqrt, 0,
267
                         0, 0, CONJ(0), CONJ(0));
268
  TESTIT_COMPLEX_R_ALLNEG (csqrt, 3.45678F + 2.34567FI,
269
                           1.953750F + 0.600299FI, 0.600299F + 1.953750FI,
270
                           1.953750F - 0.600299FI, 0.600299F - 1.953750FI);
271
 
272
  TESTIT_COMPLEX2_ALLNEG (cpow, 1, 0,
273
                          1, 1, CONJ(1), CONJ(1), CONJ(1), CONJ(1), 1, 1,
274
                          CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1));
275
  TESTIT_COMPLEX2_ALLNEG (cpow, 1.FI, 0,
276
                          1, 1, CONJ(1), CONJ(1), CONJ(1), CONJ(1), 1, 1,
277
                          CONJ(1), CONJ(1), 1, 1, 1, 1, CONJ(1), CONJ(1));
278
  TESTIT_COMPLEX_R2_ALLNEG (cpow, 2, 3,
279
                            8, 8, CONJ(1/8.F), CONJ(1/8.F), CONJ(-8), CONJ(-8), -1/8.F, -1/8.F,
280
                            CONJ(8), CONJ(8), 1/8.F, 1/8.F, -8, -8, CONJ(-1/8.F), CONJ(-1/8.F));
281
  TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 4,
282
                            81, 81, CONJ(1/81.F), CONJ(1/81.F), CONJ(81), CONJ(81), 1/81.F, 1/81.F,
283
                            CONJ(81), CONJ(81), 1/81.F, 1/81.F, 81, 81, CONJ(1/81.F), CONJ(1/81.F));
284
  TESTIT_COMPLEX_R2_ALLNEG (cpow, 3, 5,
285
                            243, 243, CONJ(1/243.F), CONJ(1/243.F), CONJ(-243), CONJ(-243), -1/243.F, -1/243.F,
286
                            CONJ(243), CONJ(243), 1/243.F, 1/243.F, -243, -243, CONJ(-1/243.F), CONJ(-1/243.F));
287
  TESTIT_COMPLEX_R2_ALLNEG (cpow, 4, 2,
288
                            16, 16, CONJ(1/16.F), CONJ(1/16.F), CONJ(16), CONJ(16), 1/16.F, 1/16.F,
289
                            CONJ(16), CONJ(16), 1/16.F, 1/16.F, 16, 16, CONJ(1/16.F), CONJ(1/16.F));
290
  TESTIT_COMPLEX_R2_ALLNEG (cpow, 1.5, 3,
291
                            3.375F, 3.375F, CONJ(1/3.375F), CONJ(1/3.375F), CONJ(-3.375F), CONJ(-3.375F), -1/3.375F, -1/3.375F,
292
                            CONJ(3.375F), CONJ(3.375F), 1/3.375F, 1/3.375F, -3.375F, -3.375F, CONJ(-1/3.375F), CONJ(-1/3.375F));
293
 
294
  TESTIT_COMPLEX2 (1, cpow, 16, 0.25F, 2);
295
 
296
  TESTIT_COMPLEX_R2 (1, cpow, 3.45678F + 2.34567FI, 1.23456 + 4.56789FI, 0.212485F + 0.319304FI);
297
  TESTIT_COMPLEX_R2 (1, cpow, 3.45678F - 2.34567FI, 1.23456 + 4.56789FI, 78.576402F + -41.756208FI);
298
  TESTIT_COMPLEX_R2 (1, cpow, -1.23456F + 2.34567FI, 2.34567 - 1.23456FI, -110.629847F + -57.021655FI);
299
  TESTIT_COMPLEX_R2 (1, cpow, -1.23456F - 2.34567FI, 2.34567 - 1.23456FI, 0.752336F + 0.199095FI);
300
 
301
  return 0;
302
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.