paddlec 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,473 @@
1
+ /* Copyright (C) 2019 Théotime Bollengier <theotime.bollengier@gmail.com>
2
+ *
3
+ * This file is part of PaddleC
4
+ *
5
+ * PaddleC is free software: you can redistribute it and/or modify
6
+ * it under the terms of the GNU General Public License as published by
7
+ * the Free Software Foundation, either version 3 of the License, or
8
+ * (at your option) any later version.
9
+ *
10
+ * PaddleC is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ * GNU General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU General Public License
16
+ * along with PaddleC. If not, see <https://www.gnu.org/licenses/>.
17
+ */
18
+
19
+ #ifndef LIBPADDLEC_H
20
+ #define LIBPADDLEC_H
21
+
22
+ const char* pdlc_accelerator();
23
+
24
+ typedef struct {
25
+ float real;
26
+ float imag;
27
+ } pdlc_complex_t;
28
+
29
+
30
+ typedef struct {
31
+ size_t capacity;
32
+ size_t length;
33
+ float *data;
34
+ } pdlc_buffer_t;
35
+
36
+
37
+ typedef struct {
38
+ size_t capacity;
39
+ size_t length;
40
+ pdlc_complex_t *data;
41
+ } pdlc_complex_buffer_t;
42
+
43
+
44
+ pdlc_buffer_t* pdlc_buffer_new(size_t length);
45
+ pdlc_buffer_t* pdlc_buffer_copy(const pdlc_buffer_t *orig);
46
+ void pdlc_buffer_resize(pdlc_buffer_t *buf, size_t new_length, int copy_old_and_zero_excess);
47
+ void pdlc_buffer_set(pdlc_buffer_t *buf, float val);
48
+ void pdlc_buffer_free(pdlc_buffer_t *buf);
49
+ pdlc_buffer_t* pdlc_buffer_reverse(const pdlc_buffer_t *fbuf, pdlc_buffer_t *res);
50
+ pdlc_buffer_t* pdlc_buffer_reverse_inplace(pdlc_buffer_t *fbuf);
51
+
52
+ pdlc_complex_buffer_t* pdlc_complex_buffer_new(size_t length);
53
+ pdlc_complex_buffer_t* pdlc_complex_buffer_copy(const pdlc_complex_buffer_t *orig);
54
+ void pdlc_complex_buffer_resize(pdlc_complex_buffer_t *buf, size_t new_length, int copy_old_and_zero_excess);
55
+ void pdlc_complex_buffer_set(pdlc_complex_buffer_t *buf, pdlc_complex_t val);
56
+ void pdlc_complex_buffer_free(pdlc_complex_buffer_t *buf);
57
+ pdlc_complex_buffer_t* pdlc_complex_buffer_reverse(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *res);
58
+ pdlc_complex_buffer_t* pdlc_complex_buffer_reverse_inplace(pdlc_complex_buffer_t *cbuf);
59
+
60
+
61
+ typedef struct {
62
+ float **coefs;
63
+ float *stater;
64
+ float *statei;
65
+ unsigned int nb_coefs;
66
+ unsigned int state_len;
67
+ unsigned int coef_len;
68
+ unsigned int index;
69
+ unsigned int index_mask;
70
+ int counter;
71
+ int max_counter;
72
+ } pdlc_fir_filter_t;
73
+
74
+
75
+ pdlc_fir_filter_t* pdlc_fir_filter_new(int order);
76
+ void pdlc_fir_filter_initialize(pdlc_fir_filter_t* fir, int order);
77
+ void pdlc_fir_filter_free(pdlc_fir_filter_t* fir);
78
+ size_t pdlc_fir_filter_size(pdlc_fir_filter_t* fir);
79
+ void pdlc_fir_filter_reset(pdlc_fir_filter_t* fir);
80
+ int pdlc_fir_filter_get_coef_at(const pdlc_fir_filter_t* fir, int index, float *value);
81
+ int pdlc_fir_filter_set_coef_at(pdlc_fir_filter_t* fir, int index, float value);
82
+ float pdlc_fir_filter_filter_float(pdlc_fir_filter_t* fir, float sample, float *delayed);
83
+ pdlc_complex_t pdlc_fir_filter_filter_complex(pdlc_fir_filter_t* fir, pdlc_complex_t sample, pdlc_complex_t *delayed);
84
+ pdlc_buffer_t* pdlc_fir_filter_filter_float_buffer(pdlc_fir_filter_t* fir, const pdlc_buffer_t *ifbuf, pdlc_buffer_t *ofbuf, pdlc_buffer_t *delayed);
85
+ pdlc_complex_buffer_t* pdlc_fir_filter_filter_complex_buffer(pdlc_fir_filter_t* fir, const pdlc_complex_buffer_t *icbuf, pdlc_complex_buffer_t *ocbuf, pdlc_complex_buffer_t *delayed);
86
+ pdlc_complex_buffer_t* pdlc_fir_filter_transform(pdlc_fir_filter_t* fir, const pdlc_buffer_t *ifbuf, pdlc_complex_buffer_t *ocbuf);
87
+
88
+ int pdlc_fir_filter_get_factor(const pdlc_fir_filter_t* fir);
89
+ void pdlc_fir_filter_interpolator_initialize(pdlc_fir_filter_t* fir, int order, int factor);
90
+ pdlc_buffer_t* pdlc_fir_filter_interpolate_float_buffer(pdlc_fir_filter_t* fir, const pdlc_buffer_t *ifbuf, pdlc_buffer_t *ofbuf);
91
+ pdlc_complex_buffer_t* pdlc_fir_filter_interpolate_complex_buffer(pdlc_fir_filter_t* fir, const pdlc_complex_buffer_t *icbuf, pdlc_complex_buffer_t *ocbuf);
92
+ void pdlc_fir_filter_decimator_initialize(pdlc_fir_filter_t* fir, int order, int factor);
93
+ pdlc_buffer_t* pdlc_fir_filter_decimate_float_buffer(pdlc_fir_filter_t* fir, const pdlc_buffer_t *ifbuf, pdlc_buffer_t *ofbuf);
94
+ pdlc_complex_buffer_t* pdlc_fir_filter_decimate_complex_buffer(pdlc_fir_filter_t* fir, const pdlc_complex_buffer_t *icbuf, pdlc_complex_buffer_t *ocbuf);
95
+
96
+
97
+ typedef struct {
98
+ unsigned int delay;
99
+ unsigned int index_mask;
100
+ unsigned int index;
101
+ pdlc_complex_t *data;
102
+ } pdlc_delay_t;
103
+
104
+
105
+ pdlc_delay_t* pdlc_delay_new(int delay);
106
+ void pdlc_delay_initialize(pdlc_delay_t* del, int delay);
107
+ void pdlc_delay_free(pdlc_delay_t* del);
108
+ size_t pdlc_delay_size(const pdlc_delay_t* del);
109
+ void pdlc_delay_reset(pdlc_delay_t* del);
110
+ float pdlc_delay_delay_float(pdlc_delay_t* del, float value);
111
+ pdlc_complex_t pdlc_delay_delay_complex(pdlc_delay_t* del, pdlc_complex_t value);
112
+ pdlc_buffer_t* pdlc_delay_delay_float_buffer(pdlc_delay_t* del, const pdlc_buffer_t *ifbuf, pdlc_buffer_t *ofbuf);
113
+ pdlc_complex_buffer_t* pdlc_delay_delay_complex_buffer(pdlc_delay_t* del, const pdlc_complex_buffer_t *icbuf, pdlc_complex_buffer_t *ocbuf);
114
+
115
+
116
+ /* Comparison */
117
+ pdlc_buffer_t* pdlc_fb_fb_cmpless(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
118
+ pdlc_buffer_t* pdlc_fb_fb_cmpless_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
119
+ pdlc_buffer_t* pdlc_fb_fs_cmpless(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
120
+ pdlc_buffer_t* pdlc_fb_fs_cmpless_inplace(pdlc_buffer_t *lhs, float rhs);
121
+ pdlc_buffer_t* pdlc_fb_fb_cmplessequ(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
122
+ pdlc_buffer_t* pdlc_fb_fb_cmplessequ_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
123
+ pdlc_buffer_t* pdlc_fb_fs_cmplessequ(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
124
+ pdlc_buffer_t* pdlc_fb_fs_cmplessequ_inplace(pdlc_buffer_t *lhs, float rhs);
125
+ pdlc_buffer_t* pdlc_fb_fb_cmpgrt(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
126
+ pdlc_buffer_t* pdlc_fb_fb_cmpgrt_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
127
+ pdlc_buffer_t* pdlc_fb_fs_cmpgrt(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
128
+ pdlc_buffer_t* pdlc_fb_fs_cmpgrt_inplace(pdlc_buffer_t *lhs, float rhs);
129
+ pdlc_buffer_t* pdlc_fb_fb_cmpgrtequ(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
130
+ pdlc_buffer_t* pdlc_fb_fb_cmpgrtequ_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
131
+ pdlc_buffer_t* pdlc_fb_fs_cmpgrtequ(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
132
+ pdlc_buffer_t* pdlc_fb_fs_cmpgrtequ_inplace(pdlc_buffer_t *lhs, float rhs);
133
+ pdlc_buffer_t* pdlc_fb_fb_equ(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
134
+ pdlc_buffer_t* pdlc_fb_fb_equ_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
135
+ pdlc_buffer_t* pdlc_fb_fs_equ(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
136
+ pdlc_buffer_t* pdlc_fb_fs_equ_inplace(pdlc_buffer_t *lhs, float rhs);
137
+ pdlc_buffer_t* pdlc_cb_cb_equ(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_buffer_t *res);
138
+ pdlc_buffer_t* pdlc_cb_cs_equ(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_buffer_t *res);
139
+ pdlc_buffer_t* pdlc_fb_cb_equ(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_buffer_t *res);
140
+ pdlc_buffer_t* pdlc_fb_cb_equ_inplace(pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
141
+ pdlc_buffer_t* pdlc_fb_cs_equ(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_buffer_t *res);
142
+ pdlc_buffer_t* pdlc_fb_cs_equ_inplace(pdlc_buffer_t *lhs, pdlc_complex_t rhs);
143
+ pdlc_buffer_t* pdlc_cb_fb_equ(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
144
+ pdlc_buffer_t* pdlc_cb_fs_equ(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
145
+ pdlc_buffer_t* pdlc_fb_fb_different(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
146
+ pdlc_buffer_t* pdlc_fb_fb_different_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
147
+ pdlc_buffer_t* pdlc_fb_fs_different(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
148
+ pdlc_buffer_t* pdlc_fb_fs_different_inplace(pdlc_buffer_t *lhs, float rhs);
149
+ pdlc_buffer_t* pdlc_cb_cb_different(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_buffer_t *res);
150
+ pdlc_buffer_t* pdlc_cb_cs_different(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_buffer_t *res);
151
+ pdlc_buffer_t* pdlc_fb_cb_different(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_buffer_t *res);
152
+ pdlc_buffer_t* pdlc_fb_cb_different_inplace(pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
153
+ pdlc_buffer_t* pdlc_fb_cs_different(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_buffer_t *res);
154
+ pdlc_buffer_t* pdlc_fb_cs_different_inplace(pdlc_buffer_t *lhs, pdlc_complex_t rhs);
155
+ pdlc_buffer_t* pdlc_cb_fb_different(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
156
+ pdlc_buffer_t* pdlc_cb_fs_different(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
157
+
158
+ /* Rounding */
159
+ pdlc_buffer_t* pdlc_buffer_ceil(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
160
+ pdlc_buffer_t* pdlc_buffer_ceil_inplace(pdlc_buffer_t *fbuf);
161
+ pdlc_complex_buffer_t* pdlc_complex_buffer_ceil(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *ocbuf);
162
+ pdlc_complex_buffer_t* pdlc_complex_buffer_ceil_inplace(pdlc_complex_buffer_t *cbuf);
163
+ pdlc_buffer_t* pdlc_buffer_floor(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
164
+ pdlc_buffer_t* pdlc_buffer_floor_inplace(pdlc_buffer_t *fbuf);
165
+ pdlc_complex_buffer_t* pdlc_complex_buffer_floor(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *ocbuf);
166
+ pdlc_complex_buffer_t* pdlc_complex_buffer_floor_inplace(pdlc_complex_buffer_t *cbuf);
167
+ pdlc_buffer_t* pdlc_buffer_truncate(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
168
+ pdlc_buffer_t* pdlc_buffer_truncate_inplace(pdlc_buffer_t *fbuf);
169
+ pdlc_complex_buffer_t* pdlc_complex_buffer_truncate(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *ocbuf);
170
+ pdlc_complex_buffer_t* pdlc_complex_buffer_truncate_inplace(pdlc_complex_buffer_t *cbuf);
171
+ pdlc_buffer_t* pdlc_buffer_round(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
172
+ pdlc_buffer_t* pdlc_buffer_round_inplace(pdlc_buffer_t *fbuf);
173
+ pdlc_complex_buffer_t* pdlc_complex_buffer_round(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *ocbuf);
174
+ pdlc_complex_buffer_t* pdlc_complex_buffer_round_inplace(pdlc_complex_buffer_t *cbuf);
175
+ pdlc_buffer_t* pdlc_buffer_ceil_digits(const pdlc_buffer_t *fbuf, int digits, pdlc_buffer_t *ofbuf);
176
+ pdlc_buffer_t* pdlc_buffer_ceil_digits_inplace(pdlc_buffer_t *fbuf, int digits);
177
+ pdlc_complex_buffer_t* pdlc_complex_buffer_ceil_digits(const pdlc_complex_buffer_t *cbuf, int digits, pdlc_complex_buffer_t *ocbuf);
178
+ pdlc_complex_buffer_t* pdlc_complex_buffer_ceil_digits_inplace(pdlc_complex_buffer_t *cbuf, int digits);
179
+ pdlc_buffer_t* pdlc_buffer_floor_digits(const pdlc_buffer_t *fbuf, int digits, pdlc_buffer_t *ofbuf);
180
+ pdlc_buffer_t* pdlc_buffer_floor_digits_inplace(pdlc_buffer_t *fbuf, int digits);
181
+ pdlc_complex_buffer_t* pdlc_complex_buffer_floor_digits(const pdlc_complex_buffer_t *cbuf, int digits, pdlc_complex_buffer_t *ocbuf);
182
+ pdlc_complex_buffer_t* pdlc_complex_buffer_floor_digits_inplace(pdlc_complex_buffer_t *cbuf, int digits);
183
+ pdlc_buffer_t* pdlc_buffer_truncate_digits(const pdlc_buffer_t *fbuf, int digits, pdlc_buffer_t *ofbuf);
184
+ pdlc_buffer_t* pdlc_buffer_truncate_digits_inplace(pdlc_buffer_t *fbuf, int digits);
185
+ pdlc_complex_buffer_t* pdlc_complex_buffer_truncate_digits(const pdlc_complex_buffer_t *cbuf, int digits, pdlc_complex_buffer_t *ocbuf);
186
+ pdlc_complex_buffer_t* pdlc_complex_buffer_truncate_digits_inplace(pdlc_complex_buffer_t *cbuf, int digits);
187
+ pdlc_buffer_t* pdlc_buffer_round_digits(const pdlc_buffer_t *fbuf, int digits, pdlc_buffer_t *ofbuf);
188
+ pdlc_buffer_t* pdlc_buffer_round_digits_inplace(pdlc_buffer_t *fbuf, int digits);
189
+ pdlc_complex_buffer_t* pdlc_complex_buffer_round_digits(const pdlc_complex_buffer_t *cbuf, int digits, pdlc_complex_buffer_t *ocbuf);
190
+ pdlc_complex_buffer_t* pdlc_complex_buffer_round_digits_inplace(pdlc_complex_buffer_t *cbuf, int digits);
191
+
192
+ /* Complex */
193
+ pdlc_buffer_t* pdlc_buffer_abs(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
194
+ pdlc_buffer_t* pdlc_buffer_abs_inplace(pdlc_buffer_t *fbuf);
195
+ pdlc_buffer_t* pdlc_complex_buffer_abs(const pdlc_complex_buffer_t *cbuf, pdlc_buffer_t *ofbuf);
196
+ pdlc_buffer_t* pdlc_buffer_abs2(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
197
+ pdlc_buffer_t* pdlc_buffer_abs2_inplace(pdlc_buffer_t *fbuf);
198
+ pdlc_buffer_t* pdlc_complex_buffer_abs2(const pdlc_complex_buffer_t *cbuf, pdlc_buffer_t *ofbuf);
199
+ pdlc_buffer_t* pdlc_buffer_arg(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
200
+ pdlc_buffer_t* pdlc_buffer_arg_inplace(pdlc_buffer_t *fbuf);
201
+ pdlc_buffer_t* pdlc_complex_buffer_arg(const pdlc_complex_buffer_t *cbuf, pdlc_buffer_t *ofbuf);
202
+ pdlc_buffer_t* pdlc_buffer_conjugate(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
203
+ pdlc_buffer_t* pdlc_buffer_conjugate_inplace(pdlc_buffer_t *fbuf);
204
+ pdlc_complex_buffer_t* pdlc_complex_buffer_conjugate(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *ocbuf);
205
+ pdlc_complex_buffer_t* pdlc_complex_buffer_conjugate_inplace(pdlc_complex_buffer_t *cbuf);
206
+ pdlc_buffer_t* pdlc_buffer_imag(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
207
+ pdlc_buffer_t* pdlc_buffer_imag_inplace(pdlc_buffer_t *fbuf);
208
+ pdlc_buffer_t* pdlc_complex_buffer_imag(const pdlc_complex_buffer_t *cbuf, pdlc_buffer_t *ofbuf);
209
+ pdlc_buffer_t* pdlc_buffer_real(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
210
+ pdlc_buffer_t* pdlc_buffer_real_inplace(pdlc_buffer_t *fbuf);
211
+ pdlc_buffer_t* pdlc_complex_buffer_real(const pdlc_complex_buffer_t *cbuf, pdlc_buffer_t *ofbuf);
212
+ pdlc_complex_buffer_t* pdlc_buffer_swapIQ(const pdlc_buffer_t *fbuf, pdlc_complex_buffer_t *ocbuf);
213
+ pdlc_complex_buffer_t* pdlc_complex_buffer_swapIQ(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *ocbuf);
214
+ pdlc_complex_buffer_t* pdlc_complex_buffer_swapIQ_inplace(pdlc_complex_buffer_t *cbuf);
215
+
216
+ /* Arithmetic */
217
+ pdlc_buffer_t* pdlc_buffer_unaryminus(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
218
+ pdlc_buffer_t* pdlc_buffer_unaryminus_inplace(pdlc_buffer_t *fbuf);
219
+ pdlc_complex_buffer_t* pdlc_complex_buffer_unaryminus(const pdlc_complex_buffer_t *cbuf, pdlc_complex_buffer_t *ocbuf);
220
+ pdlc_complex_buffer_t* pdlc_complex_buffer_unaryminus_inplace(pdlc_complex_buffer_t *cbuf);
221
+ pdlc_buffer_t* pdlc_fb_fb_sub(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
222
+ pdlc_buffer_t* pdlc_fb_fb_sub_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
223
+ pdlc_buffer_t* pdlc_fb_fs_sub(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
224
+ pdlc_buffer_t* pdlc_fb_fs_sub_inplace(pdlc_buffer_t *lhs, float rhs);
225
+ pdlc_complex_buffer_t* pdlc_cb_cb_sub(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
226
+ pdlc_complex_buffer_t* pdlc_cb_cb_sub_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
227
+ pdlc_complex_buffer_t* pdlc_cb_cs_sub(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
228
+ pdlc_complex_buffer_t* pdlc_cb_cs_sub_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
229
+ pdlc_complex_buffer_t* pdlc_fb_cb_sub(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
230
+ pdlc_complex_buffer_t* pdlc_fb_cs_sub(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
231
+ pdlc_complex_buffer_t* pdlc_cb_fb_sub(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
232
+ pdlc_complex_buffer_t* pdlc_cb_fb_sub_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
233
+ pdlc_complex_buffer_t* pdlc_cb_fs_sub(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
234
+ pdlc_complex_buffer_t* pdlc_cb_fs_sub_inplace(pdlc_complex_buffer_t *lhs, float rhs);
235
+ pdlc_buffer_t* pdlc_fb_fb_esub(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
236
+ pdlc_buffer_t* pdlc_fb_fb_esub_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
237
+ pdlc_buffer_t* pdlc_fb_fs_esub(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
238
+ pdlc_buffer_t* pdlc_fb_fs_esub_inplace(pdlc_buffer_t *lhs, float rhs);
239
+ pdlc_complex_buffer_t* pdlc_cb_cb_esub(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
240
+ pdlc_complex_buffer_t* pdlc_cb_cb_esub_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
241
+ pdlc_complex_buffer_t* pdlc_cb_cs_esub(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
242
+ pdlc_complex_buffer_t* pdlc_cb_cs_esub_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
243
+ pdlc_complex_buffer_t* pdlc_fb_cb_esub(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
244
+ pdlc_complex_buffer_t* pdlc_fb_cs_esub(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
245
+ pdlc_complex_buffer_t* pdlc_cb_fb_esub(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
246
+ pdlc_complex_buffer_t* pdlc_cb_fb_esub_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
247
+ pdlc_complex_buffer_t* pdlc_cb_fs_esub(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
248
+ pdlc_complex_buffer_t* pdlc_cb_fs_esub_inplace(pdlc_complex_buffer_t *lhs, float rhs);
249
+ pdlc_buffer_t* pdlc_fb_fb_add(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
250
+ pdlc_buffer_t* pdlc_fb_fb_add_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
251
+ pdlc_buffer_t* pdlc_fb_fs_add(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
252
+ pdlc_buffer_t* pdlc_fb_fs_add_inplace(pdlc_buffer_t *lhs, float rhs);
253
+ pdlc_complex_buffer_t* pdlc_cb_cb_add(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
254
+ pdlc_complex_buffer_t* pdlc_cb_cb_add_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
255
+ pdlc_complex_buffer_t* pdlc_cb_cs_add(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
256
+ pdlc_complex_buffer_t* pdlc_cb_cs_add_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
257
+ pdlc_complex_buffer_t* pdlc_fb_cb_add(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
258
+ pdlc_complex_buffer_t* pdlc_fb_cs_add(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
259
+ pdlc_complex_buffer_t* pdlc_cb_fb_add(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
260
+ pdlc_complex_buffer_t* pdlc_cb_fb_add_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
261
+ pdlc_complex_buffer_t* pdlc_cb_fs_add(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
262
+ pdlc_complex_buffer_t* pdlc_cb_fs_add_inplace(pdlc_complex_buffer_t *lhs, float rhs);
263
+ pdlc_buffer_t* pdlc_fb_fb_eadd(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
264
+ pdlc_buffer_t* pdlc_fb_fb_eadd_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
265
+ pdlc_buffer_t* pdlc_fb_fs_eadd(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
266
+ pdlc_buffer_t* pdlc_fb_fs_eadd_inplace(pdlc_buffer_t *lhs, float rhs);
267
+ pdlc_complex_buffer_t* pdlc_cb_cb_eadd(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
268
+ pdlc_complex_buffer_t* pdlc_cb_cb_eadd_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
269
+ pdlc_complex_buffer_t* pdlc_cb_cs_eadd(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
270
+ pdlc_complex_buffer_t* pdlc_cb_cs_eadd_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
271
+ pdlc_complex_buffer_t* pdlc_fb_cb_eadd(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
272
+ pdlc_complex_buffer_t* pdlc_fb_cs_eadd(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
273
+ pdlc_complex_buffer_t* pdlc_cb_fb_eadd(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
274
+ pdlc_complex_buffer_t* pdlc_cb_fb_eadd_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
275
+ pdlc_complex_buffer_t* pdlc_cb_fs_eadd(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
276
+ pdlc_complex_buffer_t* pdlc_cb_fs_eadd_inplace(pdlc_complex_buffer_t *lhs, float rhs);
277
+ pdlc_buffer_t* pdlc_fb_fb_mult(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
278
+ pdlc_buffer_t* pdlc_fb_fb_mult_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
279
+ pdlc_buffer_t* pdlc_fb_fs_mult(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
280
+ pdlc_buffer_t* pdlc_fb_fs_mult_inplace(pdlc_buffer_t *lhs, float rhs);
281
+ pdlc_complex_buffer_t* pdlc_cb_cb_mult(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
282
+ pdlc_complex_buffer_t* pdlc_cb_cb_mult_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
283
+ pdlc_complex_buffer_t* pdlc_cb_cs_mult(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
284
+ pdlc_complex_buffer_t* pdlc_cb_cs_mult_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
285
+ pdlc_complex_buffer_t* pdlc_fb_cb_mult(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
286
+ pdlc_complex_buffer_t* pdlc_fb_cs_mult(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
287
+ pdlc_complex_buffer_t* pdlc_cb_fb_mult(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
288
+ pdlc_complex_buffer_t* pdlc_cb_fb_mult_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
289
+ pdlc_complex_buffer_t* pdlc_cb_fs_mult(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
290
+ pdlc_complex_buffer_t* pdlc_cb_fs_mult_inplace(pdlc_complex_buffer_t *lhs, float rhs);
291
+ pdlc_buffer_t* pdlc_fb_fb_emult(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
292
+ pdlc_buffer_t* pdlc_fb_fb_emult_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
293
+ pdlc_buffer_t* pdlc_fb_fs_emult(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
294
+ pdlc_buffer_t* pdlc_fb_fs_emult_inplace(pdlc_buffer_t *lhs, float rhs);
295
+ pdlc_complex_buffer_t* pdlc_cb_cb_emult(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
296
+ pdlc_complex_buffer_t* pdlc_cb_cb_emult_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
297
+ pdlc_complex_buffer_t* pdlc_cb_cs_emult(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
298
+ pdlc_complex_buffer_t* pdlc_cb_cs_emult_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
299
+ pdlc_complex_buffer_t* pdlc_fb_cb_emult(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
300
+ pdlc_complex_buffer_t* pdlc_fb_cs_emult(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
301
+ pdlc_complex_buffer_t* pdlc_cb_fb_emult(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
302
+ pdlc_complex_buffer_t* pdlc_cb_fb_emult_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
303
+ pdlc_complex_buffer_t* pdlc_cb_fs_emult(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
304
+ pdlc_complex_buffer_t* pdlc_cb_fs_emult_inplace(pdlc_complex_buffer_t *lhs, float rhs);
305
+ pdlc_buffer_t* pdlc_fb_fb_div(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
306
+ pdlc_buffer_t* pdlc_fb_fb_div_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
307
+ pdlc_buffer_t* pdlc_fb_fs_div(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
308
+ pdlc_buffer_t* pdlc_fb_fs_div_inplace(pdlc_buffer_t *lhs, float rhs);
309
+ pdlc_complex_buffer_t* pdlc_cb_cb_div(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
310
+ pdlc_complex_buffer_t* pdlc_cb_cb_div_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
311
+ pdlc_complex_buffer_t* pdlc_cb_cs_div(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
312
+ pdlc_complex_buffer_t* pdlc_cb_cs_div_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
313
+ pdlc_complex_buffer_t* pdlc_fb_cb_div(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
314
+ pdlc_complex_buffer_t* pdlc_fb_cs_div(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
315
+ pdlc_complex_buffer_t* pdlc_cb_fb_div(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
316
+ pdlc_complex_buffer_t* pdlc_cb_fb_div_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
317
+ pdlc_complex_buffer_t* pdlc_cb_fs_div(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
318
+ pdlc_complex_buffer_t* pdlc_cb_fs_div_inplace(pdlc_complex_buffer_t *lhs, float rhs);
319
+ pdlc_buffer_t* pdlc_fb_fb_ediv(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
320
+ pdlc_buffer_t* pdlc_fb_fb_ediv_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
321
+ pdlc_buffer_t* pdlc_fb_fs_ediv(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
322
+ pdlc_buffer_t* pdlc_fb_fs_ediv_inplace(pdlc_buffer_t *lhs, float rhs);
323
+ pdlc_complex_buffer_t* pdlc_cb_cb_ediv(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
324
+ pdlc_complex_buffer_t* pdlc_cb_cb_ediv_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
325
+ pdlc_complex_buffer_t* pdlc_cb_cs_ediv(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
326
+ pdlc_complex_buffer_t* pdlc_cb_cs_ediv_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
327
+ pdlc_complex_buffer_t* pdlc_fb_cb_ediv(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
328
+ pdlc_complex_buffer_t* pdlc_fb_cs_ediv(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
329
+ pdlc_complex_buffer_t* pdlc_cb_fb_ediv(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
330
+ pdlc_complex_buffer_t* pdlc_cb_fb_ediv_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
331
+ pdlc_complex_buffer_t* pdlc_cb_fs_ediv(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
332
+ pdlc_complex_buffer_t* pdlc_cb_fs_ediv_inplace(pdlc_complex_buffer_t *lhs, float rhs);
333
+ pdlc_buffer_t* pdlc_fb_fb_pow(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
334
+ pdlc_buffer_t* pdlc_fb_fb_pow_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
335
+ pdlc_buffer_t* pdlc_fb_fs_pow(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
336
+ pdlc_buffer_t* pdlc_fb_fs_pow_inplace(pdlc_buffer_t *lhs, float rhs);
337
+ pdlc_complex_buffer_t* pdlc_cb_fb_pow(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
338
+ pdlc_complex_buffer_t* pdlc_cb_fb_pow_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
339
+ pdlc_complex_buffer_t* pdlc_cb_fs_pow(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
340
+ pdlc_complex_buffer_t* pdlc_cb_fs_pow_inplace(pdlc_complex_buffer_t *lhs, float rhs);
341
+ pdlc_buffer_t* pdlc_fb_fb_modulo(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
342
+ pdlc_buffer_t* pdlc_fb_fb_modulo_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
343
+ pdlc_buffer_t* pdlc_fb_fs_modulo(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
344
+ pdlc_buffer_t* pdlc_fb_fs_modulo_inplace(pdlc_buffer_t *lhs, float rhs);
345
+ pdlc_buffer_t* pdlc_fb_fb_emod(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
346
+ pdlc_buffer_t* pdlc_fb_fb_emod_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
347
+ pdlc_buffer_t* pdlc_fb_fs_emod(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
348
+ pdlc_buffer_t* pdlc_fb_fs_emod_inplace(pdlc_buffer_t *lhs, float rhs);
349
+ pdlc_complex_buffer_t* pdlc_cb_cb_emod(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
350
+ pdlc_complex_buffer_t* pdlc_cb_cb_emod_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
351
+ pdlc_complex_buffer_t* pdlc_cb_cs_emod(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
352
+ pdlc_complex_buffer_t* pdlc_cb_cs_emod_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
353
+ pdlc_complex_buffer_t* pdlc_fb_cb_emod(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
354
+ pdlc_complex_buffer_t* pdlc_fb_cs_emod(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
355
+ pdlc_complex_buffer_t* pdlc_cb_fb_emod(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
356
+ pdlc_complex_buffer_t* pdlc_cb_fb_emod_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
357
+ pdlc_complex_buffer_t* pdlc_cb_fs_emod(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
358
+ pdlc_complex_buffer_t* pdlc_cb_fs_emod_inplace(pdlc_complex_buffer_t *lhs, float rhs);
359
+ pdlc_buffer_t* pdlc_fb_fb_epow(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
360
+ pdlc_buffer_t* pdlc_fb_fb_epow_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
361
+ pdlc_buffer_t* pdlc_fb_fs_epow(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
362
+ pdlc_buffer_t* pdlc_fb_fs_epow_inplace(pdlc_buffer_t *lhs, float rhs);
363
+ pdlc_complex_buffer_t* pdlc_cb_cb_epow(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
364
+ pdlc_complex_buffer_t* pdlc_cb_cb_epow_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
365
+ pdlc_complex_buffer_t* pdlc_cb_cs_epow(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
366
+ pdlc_complex_buffer_t* pdlc_cb_cs_epow_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
367
+ pdlc_complex_buffer_t* pdlc_fb_cb_epow(const pdlc_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
368
+ pdlc_complex_buffer_t* pdlc_fb_cs_epow(const pdlc_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
369
+ pdlc_complex_buffer_t* pdlc_cb_fb_epow(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
370
+ pdlc_complex_buffer_t* pdlc_cb_fb_epow_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
371
+ pdlc_complex_buffer_t* pdlc_cb_fs_epow(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
372
+ pdlc_complex_buffer_t* pdlc_cb_fs_epow_inplace(pdlc_complex_buffer_t *lhs, float rhs);
373
+
374
+ /* Math */
375
+ pdlc_buffer_t* pdlc_buffer_acos(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
376
+ pdlc_buffer_t* pdlc_buffer_acos_inplace(pdlc_buffer_t *fbuf);
377
+ pdlc_buffer_t* pdlc_buffer_acosh(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
378
+ pdlc_buffer_t* pdlc_buffer_acosh_inplace(pdlc_buffer_t *fbuf);
379
+ pdlc_buffer_t* pdlc_buffer_asin(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
380
+ pdlc_buffer_t* pdlc_buffer_asin_inplace(pdlc_buffer_t *fbuf);
381
+ pdlc_buffer_t* pdlc_buffer_asinh(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
382
+ pdlc_buffer_t* pdlc_buffer_asinh_inplace(pdlc_buffer_t *fbuf);
383
+ pdlc_buffer_t* pdlc_buffer_atan(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
384
+ pdlc_buffer_t* pdlc_buffer_atan_inplace(pdlc_buffer_t *fbuf);
385
+ pdlc_buffer_t* pdlc_buffer_atanh(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
386
+ pdlc_buffer_t* pdlc_buffer_atanh_inplace(pdlc_buffer_t *fbuf);
387
+ pdlc_buffer_t* pdlc_buffer_cbrt(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
388
+ pdlc_buffer_t* pdlc_buffer_cbrt_inplace(pdlc_buffer_t *fbuf);
389
+ pdlc_buffer_t* pdlc_buffer_cos(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
390
+ pdlc_buffer_t* pdlc_buffer_cos_inplace(pdlc_buffer_t *fbuf);
391
+ pdlc_buffer_t* pdlc_buffer_cosh(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
392
+ pdlc_buffer_t* pdlc_buffer_cosh_inplace(pdlc_buffer_t *fbuf);
393
+ pdlc_buffer_t* pdlc_buffer_erf(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
394
+ pdlc_buffer_t* pdlc_buffer_erf_inplace(pdlc_buffer_t *fbuf);
395
+ pdlc_buffer_t* pdlc_buffer_erfc(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
396
+ pdlc_buffer_t* pdlc_buffer_erfc_inplace(pdlc_buffer_t *fbuf);
397
+ pdlc_buffer_t* pdlc_buffer_exp(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
398
+ pdlc_buffer_t* pdlc_buffer_exp_inplace(pdlc_buffer_t *fbuf);
399
+ pdlc_buffer_t* pdlc_buffer_log(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
400
+ pdlc_buffer_t* pdlc_buffer_log_inplace(pdlc_buffer_t *fbuf);
401
+ pdlc_buffer_t* pdlc_buffer_log10(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
402
+ pdlc_buffer_t* pdlc_buffer_log10_inplace(pdlc_buffer_t *fbuf);
403
+ pdlc_buffer_t* pdlc_buffer_log2(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
404
+ pdlc_buffer_t* pdlc_buffer_log2_inplace(pdlc_buffer_t *fbuf);
405
+ pdlc_buffer_t* pdlc_buffer_sin(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
406
+ pdlc_buffer_t* pdlc_buffer_sin_inplace(pdlc_buffer_t *fbuf);
407
+ pdlc_buffer_t* pdlc_buffer_sinh(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
408
+ pdlc_buffer_t* pdlc_buffer_sinh_inplace(pdlc_buffer_t *fbuf);
409
+ pdlc_buffer_t* pdlc_buffer_sqrt(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
410
+ pdlc_buffer_t* pdlc_buffer_sqrt_inplace(pdlc_buffer_t *fbuf);
411
+ pdlc_buffer_t* pdlc_buffer_tan(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
412
+ pdlc_buffer_t* pdlc_buffer_tan_inplace(pdlc_buffer_t *fbuf);
413
+ pdlc_buffer_t* pdlc_buffer_tanh(const pdlc_buffer_t *fbuf, pdlc_buffer_t *ofbuf);
414
+ pdlc_buffer_t* pdlc_buffer_tanh_inplace(pdlc_buffer_t *fbuf);
415
+
416
+ /* Min Max */
417
+ pdlc_buffer_t* pdlc_buffer_clipp(const pdlc_buffer_t *fbuf, float mi, float ma, pdlc_buffer_t *res);
418
+ pdlc_buffer_t* pdlc_buffer_clipp_inplace(pdlc_buffer_t *fbuf, float mi, float ma);
419
+ pdlc_complex_buffer_t* pdlc_complex_buffer_clipp(const pdlc_complex_buffer_t *cbuf, float mi, float ma, pdlc_complex_buffer_t *res);
420
+ pdlc_complex_buffer_t* pdlc_complex_buffer_clipp_inplace(pdlc_complex_buffer_t *cbuf, float mi, float ma);
421
+ float pdlc_buffer_max_of_self(const pdlc_buffer_t *fbuf);
422
+ float pdlc_buffer_min_of_self(const pdlc_buffer_t *fbuf);
423
+ void pdlc_buffer_minmax_of_self(const pdlc_buffer_t *fbuf, float *mi, float *ma);
424
+ pdlc_complex_t pdlc_complex_buffer_max_of_self(const pdlc_complex_buffer_t *cbuf);
425
+ pdlc_complex_t pdlc_complex_buffer_min_of_self(const pdlc_complex_buffer_t *cbuf);
426
+ void pdlc_complex_buffer_minmax_of_self(const pdlc_complex_buffer_t *cbuf, pdlc_complex_t *mi, pdlc_complex_t *ma);
427
+ pdlc_buffer_t* pdlc_fb_fb_min(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
428
+ pdlc_buffer_t* pdlc_fb_fb_min_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
429
+ pdlc_buffer_t* pdlc_fb_fs_min(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
430
+ pdlc_buffer_t* pdlc_fb_fs_min_inplace(pdlc_buffer_t *lhs, float rhs);
431
+ pdlc_complex_buffer_t* pdlc_cb_cb_min(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
432
+ pdlc_complex_buffer_t* pdlc_cb_cb_min_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
433
+ pdlc_complex_buffer_t* pdlc_cb_cs_min(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
434
+ pdlc_complex_buffer_t* pdlc_cb_cs_min_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
435
+ pdlc_complex_buffer_t* pdlc_cb_fb_min(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
436
+ pdlc_complex_buffer_t* pdlc_cb_fb_min_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
437
+ pdlc_complex_buffer_t* pdlc_cb_fs_min(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
438
+ pdlc_complex_buffer_t* pdlc_cb_fs_min_inplace(pdlc_complex_buffer_t *lhs, float rhs);
439
+ pdlc_buffer_t* pdlc_fb_fb_max(const pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_buffer_t *res);
440
+ pdlc_buffer_t* pdlc_fb_fb_max_inplace(pdlc_buffer_t *lhs, const pdlc_buffer_t *rhs);
441
+ pdlc_buffer_t* pdlc_fb_fs_max(const pdlc_buffer_t *lhs, float rhs, pdlc_buffer_t *res);
442
+ pdlc_buffer_t* pdlc_fb_fs_max_inplace(pdlc_buffer_t *lhs, float rhs);
443
+ pdlc_complex_buffer_t* pdlc_cb_cb_max(const pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs, pdlc_complex_buffer_t *res);
444
+ pdlc_complex_buffer_t* pdlc_cb_cb_max_inplace(pdlc_complex_buffer_t *lhs, const pdlc_complex_buffer_t *rhs);
445
+ pdlc_complex_buffer_t* pdlc_cb_cs_max(const pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs, pdlc_complex_buffer_t *res);
446
+ pdlc_complex_buffer_t* pdlc_cb_cs_max_inplace(pdlc_complex_buffer_t *lhs, pdlc_complex_t rhs);
447
+ pdlc_complex_buffer_t* pdlc_cb_fb_max(const pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs, pdlc_complex_buffer_t *res);
448
+ pdlc_complex_buffer_t* pdlc_cb_fb_max_inplace(pdlc_complex_buffer_t *lhs, const pdlc_buffer_t *rhs);
449
+ pdlc_complex_buffer_t* pdlc_cb_fs_max(const pdlc_complex_buffer_t *lhs, float rhs, pdlc_complex_buffer_t *res);
450
+ pdlc_complex_buffer_t* pdlc_cb_fs_max_inplace(pdlc_complex_buffer_t *lhs, float rhs);
451
+
452
+ float pdlc_buffer_sum(const pdlc_buffer_t *fbuf);
453
+ pdlc_complex_t pdlc_complex_buffer_sum(const pdlc_complex_buffer_t *cbuf);
454
+ float pdlc_buffer_mean(const pdlc_buffer_t *fbuf);
455
+ pdlc_complex_t pdlc_complex_buffer_mean(const pdlc_complex_buffer_t *cbuf);
456
+ float pdlc_buffer_variance(const pdlc_buffer_t *fbuf);
457
+ float pdlc_buffer_standard_deviation(const pdlc_buffer_t *fbuf);
458
+ float pdlc_buffer_prod(const pdlc_buffer_t *fbuf);
459
+ pdlc_complex_t pdlc_complex_buffer_prod(const pdlc_complex_buffer_t *cbuf);
460
+ pdlc_complex_t pdlc_complex_buffer_eprod(const pdlc_complex_buffer_t *cbuf);
461
+ float pdlc_buffer_fb_fs_sad(const pdlc_buffer_t *fbuf, float other);
462
+ float pdlc_buffer_fb_fb_sad(const pdlc_buffer_t *fbuf, const pdlc_buffer_t *other);
463
+ pdlc_complex_t pdlc_complex_buffer_cb_cs_sad(const pdlc_complex_buffer_t *cbuf, pdlc_complex_t other);
464
+ pdlc_complex_t pdlc_complex_buffer_cb_cb_sad(const pdlc_complex_buffer_t *cbuf, const pdlc_complex_buffer_t *other);
465
+ float pdlc_buffer_fb_fs_ssd(const pdlc_buffer_t *fbuf, float other);
466
+ float pdlc_buffer_fb_fb_ssd(const pdlc_buffer_t *fbuf, const pdlc_buffer_t *other);
467
+ pdlc_complex_t pdlc_complex_buffer_cb_cs_essd(const pdlc_complex_buffer_t *cbuf, pdlc_complex_t other);
468
+ pdlc_complex_t pdlc_complex_buffer_cb_cb_essd(const pdlc_complex_buffer_t *cbuf, const pdlc_complex_buffer_t *other);
469
+ pdlc_complex_t pdlc_complex_buffer_cb_cs_ssd(const pdlc_complex_buffer_t *cbuf, pdlc_complex_t other);
470
+ pdlc_complex_t pdlc_complex_buffer_cb_cb_ssd(const pdlc_complex_buffer_t *cbuf, const pdlc_complex_buffer_t *other);
471
+
472
+
473
+ #endif /* LIBPADDLEC_H */