paddlec 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 */