2 # 1 "/disk0/scratch/working/src/fe/detector/blackfin//"
8 # 1 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 1
9 # 17 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h"
11 # 18 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 3
17 # 1 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex_typedef.h" 1 3
18 # 16 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex_typedef.h" 3
22 # 19 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex_typedef.h" 3
30 # 1 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/fract_typedef.h" 1 3
34 # 4 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/fract_typedef.h" 3
35 # 25 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/fract_typedef.h" 3
36 typedef short fract16;
38 # 27 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex_typedef.h" 2 3
40 typedef struct complex_fract16 {
42 } __attribute__((aligned(4))) complex_fract16;
45 typedef union composite_complex_fract16 {
46 struct complex_fract16 x;
48 } composite_complex_fract16;
55 typedef struct complex_fract32 {
60 typedef union composite_complex_fract32 {
61 struct complex_fract32 x;
63 } composite_complex_fract32;
70 typedef struct complex_float {
75 typedef struct complex_long_double {
78 } complex_long_double;
83 typedef complex_long_double complex_double;
84 # 24 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 2 3
85 # 1 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/fr2x16_typedef.h" 1 3
89 # 4 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/fr2x16_typedef.h" 3
90 # 27 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/fr2x16_typedef.h" 3
91 # 1 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/r2x16_typedef.h" 1 3
95 # 4 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/r2x16_typedef.h" 3
96 # 27 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/r2x16_typedef.h" 3
97 # 1 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/raw_typedef.h" 1 3
101 # 4 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/raw_typedef.h" 3
102 # 25 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/raw_typedef.h" 3
104 typedef short _raw16;
106 typedef int __v2hi __attribute__ ((__mode__ (__V2HI__)));
107 # 28 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/r2x16_typedef.h" 2 3
109 typedef __v2hi raw2x16;
110 # 28 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/fr2x16_typedef.h" 2 3
116 typedef raw2x16 fract2x16;
117 typedef fract2x16 fr2x16;
118 # 25 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 2 3
119 # 35 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 3
120 float cabsf (complex_float _a) asm("__cabsf");
122 long double cabsd (complex_long_double _a) asm("__cabsd");
128 double cabs (complex_double _a) asm("__cabsd");
131 fract16 cabs_fr16 (complex_fract16 _a);
132 complex_fract16 conj_fr16 (complex_fract16 _a);
133 # 56 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 3
134 static __inline complex_fract16
135 cadd_fr16(complex_fract16 _a, complex_fract16 _b) {
137 fract2x16 i = __builtin_bfin_add_fr2x16(__builtin_bfin_compose_2x16(_a.im, _a.re), __builtin_bfin_compose_2x16(_b.im, _b.re));
138 { r.re = __builtin_bfin_extract_lo(i); r.im = __builtin_bfin_extract_hi(i); };
147 static __inline complex_fract16
148 csub_fr16(complex_fract16 _a, complex_fract16 _b) {
150 fract2x16 i = __builtin_bfin_sub_fr2x16(__builtin_bfin_compose_2x16(_a.im, _a.re), __builtin_bfin_compose_2x16(_b.im, _b.re));
151 { r.re = __builtin_bfin_extract_lo(i); r.im = __builtin_bfin_extract_hi(i); };
154 # 98 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 3
155 complex_fract16 cmlt_fr16 (complex_fract16 _a, complex_fract16 _b);
159 static __inline complex_fract16 cmac_fr16(complex_fract16 _sum,
163 fract2x16 i = __builtin_bfin_cmplx_mac(__builtin_bfin_compose_2x16(_sum.im, _sum.re),
164 __builtin_bfin_compose_2x16(_a.im, _a.re), __builtin_bfin_compose_2x16(_b.im, _b.re));
165 { r.re = __builtin_bfin_extract_lo(i); r.im = __builtin_bfin_extract_hi(i); };
169 static __inline complex_fract16 cmsu_fr16(complex_fract16 _sum,
173 fract2x16 i = __builtin_bfin_cmplx_msu(__builtin_bfin_compose_2x16(_sum.im, _sum.re),
174 __builtin_bfin_compose_2x16(_a.im, _a.re), __builtin_bfin_compose_2x16(_b.im, _b.re));
175 { r.re = __builtin_bfin_extract_lo(i); r.im = __builtin_bfin_extract_hi(i); };
179 static __inline fract16 csqu_add_fr16(complex_fract16 _c) {
181 __builtin_bfin_add_fr1x16(__builtin_bfin_mult_fr1x16(_c.re, _c.re),
182 __builtin_bfin_mult_fr1x16(_c.im, _c.im));
185 static __inline fract32 csqu_add_fr32(complex_fract16 _c) {
187 __builtin_bfin_add_fr1x32(__builtin_bfin_mult_fr1x32(_c.re, _c.re),
188 __builtin_bfin_mult_fr1x32(_c.im,_c.im));
191 static __inline fract16 cdst_fr16(complex_fract16 _x,
192 complex_fract16 _y) {
193 return __builtin_bfin_add_fr1x16(
194 __builtin_bfin_mult_fr1x16(__builtin_bfin_sub_fr1x16(_x.re,_y.re),
195 __builtin_bfin_sub_fr1x16(_x.re,_y.re)),
196 __builtin_bfin_mult_fr1x16(__builtin_bfin_sub_fr1x16(_x.im,_y.im),
197 __builtin_bfin_sub_fr1x16(_x.im,_y.im)));
200 static __inline fract32 cdst_fr32(complex_fract16 _x,
201 complex_fract16 _y) {
202 return __builtin_bfin_add_fr1x32(
203 __builtin_bfin_mult_fr1x32(__builtin_bfin_sub_fr1x16(_x.re,_y.re),
204 __builtin_bfin_sub_fr1x16(_x.re,_y.re)),
205 __builtin_bfin_mult_fr1x32(__builtin_bfin_sub_fr1x16(_x.im,_y.im),
206 __builtin_bfin_sub_fr1x16(_x.im,_y.im)));
208 # 166 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 3
209 complex_fract16 cdiv_fr16 (complex_fract16 _a, complex_fract16 _b) asm("__cdiv_fr16");
210 # 176 "/disk0/scratch/working/uClinux-dist/lib/libbfdsp/include/complex.h" 3
211 float argf (complex_float _a) asm("__argf");
213 fract16 arg_fr16 (complex_fract16 _a);
214 complex_fract16 polar_fr16 (fract16 _magnitude,
217 fract16 cartesian_fr16 (complex_fract16 _a, fract16* _phase);
224 extern long long __builtin_bfin_conj_fr32(long long);
225 extern int __builtin_bfin_csqu_fr16(int);
227 static __inline complex_fract32 ccompose_fr32(fract32 _real, fract32 _imag)
235 static __inline fract32 real_fr32(complex_fract32 _a)
240 static __inline fract32 imag_fr32(complex_fract32 _a)
245 static __inline complex_fract32 cadd_fr32(complex_fract32 _a,
249 _x.re = __builtin_bfin_add_fr1x32 (_a.re, _b.re);
250 _x.im = __builtin_bfin_add_fr1x32 (_a.im, _b.im);
254 static __inline complex_fract32 csub_fr32(complex_fract32 _a,
258 _x.re = __builtin_bfin_sub_fr1x32 (_a.re, _b.re);
259 _x.im = __builtin_bfin_sub_fr1x32 (_a.im, _b.im);
263 static __inline complex_fract32 conj_fr32(complex_fract32 _a)
266 _x.im = __builtin_bfin_sub_fr1x32 (0, _a.im);
272 extern complex_fract32 cmul_fr32(complex_fract32, complex_fract32);
275 static __inline complex_fract16 csqu_fr16(complex_fract16 _a)
277 composite_complex_fract16 _x;
278 _x.x.re = _a.re; _x.x.im = _a.im;
279 _x.raw = __builtin_bfin_csqu_fr16(_x.raw);
282 # 4 "../fe_TestDsp.c" 2
291 complex_fract16 answer;
293 answer = cmlt_fr16(c,d);