@@ -40,11 +40,10 @@ for (T, suff) in ((Float64, "D"), (Float32, ""))
40
40
if (rsize < xsize + ksize - 1 )
41
41
error (" 'result' must have at least length(X) + length(K) - 1 elements" )
42
42
end
43
- xpadded:: Vector{$T} = [zeros ($ T, ksize - 1 ); X; zeros ($ T, ksize)]
44
- fptr = get_fptr ($ (string (" vDSP_conv" , suff)))
45
- ccall (fptr, Cvoid,
46
- (Ptr{$ T}, Int64, Ptr{$ T}, Int64, Ptr{$ T}, Int64, UInt64, UInt64),
47
- xpadded, 1 , pointer (K, ksize), - 1 , result, 1 , rsize, ksize)
43
+ xpadded:: Vector{$T} = [zeros ($ T, ksize- 1 ); X; zeros ($ T, ksize)]
44
+ ccall (($ (string (" vDSP_conv" , suff), libacc)), Cvoid,
45
+ (Ptr{$ T}, Int64, Ptr{$ T}, Int64, Ptr{$ T}, Int64, UInt64, UInt64),
46
+ xpadded, 1 , pointer (K, ksize), - 1 , result, 1 , rsize, ksize)
48
47
return result
49
48
end
50
49
end
@@ -88,11 +87,10 @@ for (T, suff) in ((Float64, "D"), (Float32, ""))
88
87
if (rsize < xsize + ysize - 1 )
89
88
error (" 'result' must have at least length(X) + length(Y) - 1 elements" )
90
89
end
91
- xpadded:: Vector{$T} = [zeros ($ T, ysize - 1 ); X; zeros ($ T, ysize)]
92
- fptr = get_fptr ($ (string (" vDSP_conv" , suff)))
93
- ccall (fptr, Cvoid,
94
- (Ptr{$ T}, Int64, Ptr{$ T}, Int64, Ptr{$ T}, Int64, UInt64, UInt64),
95
- xpadded, 1 , Y, 1 , result, 1 , rsize, ysize)
90
+ xpadded:: Vector{$T} = [zeros ($ T, ysize- 1 ); X; zeros ($ T, ysize)]
91
+ ccall (($ (string (" vDSP_conv" , suff), libacc)), Cvoid,
92
+ (Ptr{$ T}, Int64, Ptr{$ T}, Int64, Ptr{$ T}, Int64, UInt64, UInt64),
93
+ xpadded, 1 , Y, 1 , result, 1 , rsize, ysize)
96
94
return result
97
95
end
98
96
end
@@ -136,7 +134,7 @@ for (T, suff) in ((Float64, "D"), (Float32, ""))
136
134
end
137
135
138
136
# # == Biquadratic/IIR filtering
139
- for (T, suff) in ((Float64, " D" ),)
137
+ for (T, suff) in ((Float64, " D" ), )
140
138
141
139
"""
142
140
Initializes a vDSP_biquad_setup for use with vDSP_biquad. A multi-section filter
@@ -147,15 +145,14 @@ for (T, suff) in ((Float64, "D"),)
147
145
Returns: Biquad{T}
148
146
"""
149
147
@eval begin
150
- function biquadcreate (coefficients:: Vector{$T} , sections:: Int )
151
- if length (coefficients) < 5 * sections
148
+ function biquadcreate (coefficients:: Vector{$T} , sections:: Int )
149
+ if length (coefficients) < 5 * sections
152
150
error (" Incomplete biquad specification provided - coefficients must
153
151
contain 5 elements for each filter section" )
154
152
end
155
- fptr = get_fptr ($ (string (" vDSP_biquad_CreateSetup" , suff)))
156
- setup = ccall (fptr, Ptr{Cvoid},
157
- (Ptr{$ T}, UInt64),
158
- coefficients, sections)
153
+ setup = ccall (($ (string (" vDSP_biquad_CreateSetup" , suff), libacc)), Ptr{Cvoid},
154
+ (Ptr{$ T}, UInt64),
155
+ coefficients, sections)
159
156
return Biquad ($ T, setup, sections)
160
157
end
161
158
end
@@ -170,15 +167,14 @@ for (T, suff) in ((Float64, "D"),)
170
167
"""
171
168
@eval begin
172
169
function biquad (X:: Vector{$T} , delays:: Vector{$T} , numelem:: Int , biquad:: Biquad{$T} )
173
- if length (delays) < (2 * (biquad. sections) + 2 )
170
+ if length (delays) < (2 * (biquad. sections)+ 2 )
174
171
error (" Incomplete delay specification provided - delays must contain 2*M + 2
175
172
values where M is the number of sections in the biquad" )
176
173
end
177
174
result:: Vector{$T} = similar (X)
178
- fptr = get_fptr ($ (string (" vDSP_biquad" , suff)))
179
- ccall (fptr, Cvoid,
180
- (Ptr{Cvoid}, Ptr{$ T}, Ptr{$ T}, Int64, Ptr{$ T}, Int64, UInt64),
181
- biquad. setup, delays, X, 1 , result, 1 , numelem)
175
+ ccall (($ (string (" vDSP_biquad" , suff), libacc)), Cvoid,
176
+ (Ptr{Cvoid}, Ptr{$ T}, Ptr{$ T}, Int64, Ptr{$ T}, Int64, UInt64),
177
+ biquad. setup, delays, X, 1 , result, 1 , numelem)
182
178
return result
183
179
end
184
180
end
@@ -193,10 +189,9 @@ for (T, suff) in ((Float64, "D"),)
193
189
"""
194
190
@eval begin
195
191
function biquaddestroy (biquad:: Biquad{$T} )
196
- fptr = get_fptr ($ (string (" vDSP_biquad_DestroySetup" , suff)))
197
- ccall (fptr, Cvoid,
198
- (Ptr{Cvoid},),
199
- biquad. setup)
192
+ ccall (($ (string (" vDSP_biquad_DestroySetup" , suff), libacc)), Cvoid,
193
+ (Ptr{Cvoid}, ),
194
+ biquad. setup)
200
195
end
201
196
end
202
197
end
@@ -210,7 +205,7 @@ Generates a Blackman window of length 'length'. Default return type
210
205
is Vector{Float64}, but if rtype=Float32, Vector{Float32}
211
206
will be returned.
212
207
"""
213
- function blackman (length:: Int , rtype:: DataType = Float64)
208
+ function blackman (length:: Int , rtype:: DataType = Float64)
214
209
result:: Vector{rtype} = Array {rtype} (undef, length)
215
210
blackman! (result, length, 0 )
216
211
end
@@ -222,7 +217,7 @@ Generates a Hamming window of length 'length'. Default return type
222
217
is Vector{Float64}, but if rtype=Float32, Vector{Float32}
223
218
will be returned.
224
219
"""
225
- function hamming (length:: Int , rtype:: DataType = Float64)
220
+ function hamming (length:: Int , rtype:: DataType = Float64)
226
221
result:: Vector{rtype} = Array {rtype} (undef, length)
227
222
hamming! (result, length, 0 )
228
223
end
@@ -234,15 +229,15 @@ Generates a denormalized Hanning window of length 'length'. Default
234
229
return type is Vector{Float64}, but if rtype=Float32, Vector{Float32}
235
230
will be returned.
236
231
"""
237
- function hanning (length:: Int , rtype:: DataType = Float64)
232
+ function hanning (length:: Int , rtype:: DataType = Float64)
238
233
result:: Vector{rtype} = Array {rtype} (undef, length)
239
234
hanning! (result, length, 0 )
240
235
end
241
236
242
237
"""
243
238
Alias function for `hanning`
244
239
"""
245
- function hann (length:: Int , rtype:: DataType = Float64)
240
+ function hann (length:: Int , rtype:: DataType = Float64)
246
241
hanning (length, rtype)
247
242
end
248
243
@@ -256,11 +251,10 @@ for (T, suff) in ((Float32, ""), (Float64, "D"))
256
251
Returns: Vector{$T }
257
252
"""
258
253
@eval begin
259
- function blackman! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
260
- fptr = get_fptr ($ (string (" vDSP_blkman_window" , suff)))
261
- ccall (fptr, Cvoid,
262
- (Ptr{$ T}, UInt64, Int64),
263
- result, length, flag)
254
+ function blackman! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
255
+ ccall (($ (string (" vDSP_blkman_window" , suff), libacc)), Cvoid,
256
+ (Ptr{$ T}, UInt64, Int64),
257
+ result, length, flag)
264
258
return result
265
259
end
266
260
end
@@ -274,11 +268,10 @@ for (T, suff) in ((Float32, ""), (Float64, "D"))
274
268
Returns: Vector{$T }
275
269
"""
276
270
@eval begin
277
- function hamming! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
278
- fptr = get_fptr ($ (string (" vDSP_hamm_window" , suff)))
279
- ccall (fptr, Cvoid,
280
- (Ptr{$ T}, UInt64, Int64),
281
- result, length, flag)
271
+ function hamming! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
272
+ ccall (($ (string (" vDSP_hamm_window" , suff), libacc)), Cvoid,
273
+ (Ptr{$ T}, UInt64, Int64),
274
+ result, length, flag)
282
275
return result
283
276
end
284
277
end
@@ -296,11 +289,10 @@ for (T, suff) in ((Float32, ""), (Float64, "D"))
296
289
Returns: Vector{$T }
297
290
"""
298
291
@eval begin
299
- function hanning! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
300
- fptr = get_fptr ($ (string (" vDSP_hann_window" , suff)))
301
- ccall (fptr, Cvoid,
302
- (Ptr{$ T}, UInt64, Int64),
303
- result, length, flag)
292
+ function hanning! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
293
+ ccall (($ (string (" vDSP_hann_window" , suff), libacc)), Cvoid,
294
+ (Ptr{$ T}, UInt64, Int64),
295
+ result, length, flag)
304
296
return result
305
297
end
306
298
end
@@ -311,7 +303,7 @@ for (T, suff) in ((Float32, ""), (Float64, "D"))
311
303
Returns: Vector{$T }
312
304
"""
313
305
@eval begin
314
- function hann! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
306
+ function hann! (result:: Vector{$T} , length:: Int , flag:: Int = 0 )
315
307
hanning! (result, length, flag)
316
308
end
317
309
end
@@ -328,18 +320,17 @@ storage of the previous setup object.
328
320
329
321
Returns: DFTSetup
330
322
"""
331
- function plan_dct (length:: Int , dct_type:: Int , previous = C_NULL )
323
+ function plan_dct (length:: Int , dct_type:: Int , previous= C_NULL )
332
324
n = trailing_zeros (length)
333
325
f = length >> n
334
- if dct_type < 2 && dct_type > 4
326
+ if dct_type < 2 && dct_type > 4
335
327
error (" DCT type " , dct_type, " is not supported. Only DCT types 2, 3 and 4 are supported" )
336
- elseif ! (n >= 4 && f in (1 , 3 , 5 , 15 ))
328
+ elseif ! (n >= 4 && f in (1 ,3 , 5 , 15 ))
337
329
error (" Invalid DCT length. Length must be equal to f*(2^n) where f = 1,3,5,15 and n >= 4" )
338
330
end
339
- fptr = get_fptr (" vDSP_DCT_CreateSetup" )
340
- setup:: Ptr{Cvoid} = ccall (fptr, Ptr{Cvoid},
341
- (Ptr{Cvoid}, UInt64, UInt64),
342
- previous, length, dct_type)
331
+ setup:: Ptr{Cvoid} = ccall ((" vDSP_DCT_CreateSetup" , libacc), Ptr{Cvoid},
332
+ (Ptr{Cvoid}, UInt64, UInt64),
333
+ previous, length, dct_type)
343
334
return DFTSetup (Float32, setup, 0 )
344
335
end
345
336
@@ -352,11 +343,9 @@ Returns: Vector{Float32}
352
343
"""
353
344
function dct (X:: Vector{Float32} , setup:: DFTSetup )
354
345
result = similar (X)
355
- fptr = get_fptr (" vDSP_DCT_Execute" )
356
-
357
- ccall (fptr, Cvoid,
358
- (Ptr{Cvoid}, Ptr{Float32}, Ptr{Float32}),
359
- setup. setup, X, result)
346
+ ccall ((" vDSP_DCT_Execute" , libacc), Cvoid,
347
+ (Ptr{Cvoid}, Ptr{Float32}, Ptr{Float32}),
348
+ setup. setup, X, result)
360
349
return result
361
350
end
362
351
@@ -367,7 +356,7 @@ This function does not require a separate call to dct_setup.
367
356
368
357
Returns: Vector{Float32}
369
358
"""
370
- function dct (X:: Vector{Float32} , dct_type:: Int = 2 )
359
+ function dct (X:: Vector{Float32} , dct_type:: Int = 2 )
371
360
setup = plan_dct (length (X), dct_type)
372
361
return dct (X, setup)
373
362
end
377
366
Deinitializes a DFTSetup object created by plan_dct
378
367
"""
379
368
function plan_destroy (setup:: DFTSetup )
380
- fptr = get_fptr (" vDSP_DFT_DestroySetup" )
381
- ccall (fptr, Cvoid,
382
- (Ptr{Cvoid},),
383
- setup. setup)
369
+ ccall ((" vDSP_DFT_DestroySetup" , libacc), Cvoid,
370
+ (Ptr{Cvoid},),
371
+ setup. setup)
384
372
end
385
373
386
374
0 commit comments