objective-c,signal-processing,fft,accelerate-framework

This loop is wrong: for(int i = 0;i<fftLength * 2;i++){ fft[i] = fftData.realp[i]; fft[i+1] = fftData.imagp[i]; } Assuming you want interleaved real/complex output data then it should be: for(int i = 0; i < fftLength; i++) { fft[i * 2] = fftData.realp[i]; fft[i * 2 + 1] = fftData.imagp[i]; }...

One of the files included in oscillator.h had this: #include "math.h" Changing it to #include <cmath> did the trick. Accelerate uses the math library in this way (cmath) as well. ...

swift,matrix,lapack,eigenvector,accelerate-framework

The problem’s with your lwork variable. This is supposed to be the size of the workspace you supply, with -1 meaning you’re performing a “workspace query”: LWORK (input) INTEGER The dimension of the array WORK. LWORK >= max(1,3*N), and if JOBVL = 'V' or JOBVR = 'V', LWORK >= 4*N....

ios,swift,scenekit,accelerate-framework

You don't want to use tiny vectors like this with Accelerate framework, with the possible exception of vMathLib. You will lose your performance in overhead to check to see if the arrays and aligned and whether the problem is large enough to multithread. Much of the SIMD level stuff you...

ios,objective-c,accelerate-framework,ezaudio

I'll explain how one would compute a dB value for a signal using code and then show how that relates to the vDSP example. First, compute the RMS sum of a chunk of data double sumSquared = 0; for (int i = 0 ; i < numSamples ; i++) {...

PK Mital has a bunch of nice small audio processing examples on his Github.

ios8,accelerate-framework,metal

The CPU on A7 supports 64-bit integers and double-precision float. The GPU does not. Metal shaders run on the GPU, not the CPU. As an aside, the benchmark in that blog post is extremely questionable. It's using Accelerate in spectacularly inefficient fashion. While it's certainly possible for well written Metal...

ios,osx,signal-processing,accelerate-framework

There are at least 3 different FFT scaling options that produce "mathematical" results, and there is no single standard scaling. Energy preserving (see Parseval's theorem) FFT libraries need to be scaled by on the order of 1/N for input magnitude results, since a longer signal of the same magnitude will...

ios,xcode,accelerate-framework

If you move the Accelerate import statement inside the implementation file it works. I forked the project to make the change and have submitted a pull request. https://github.com/nrbrook/fxblurview...

c++,ios,affinetransform,accelerate-framework,vimage

I doubt you were able to get any of the answers posted here to work; there are just not enough specifics in them to help someone who had a question like this to begin with. Here's your working answer: - (CVPixelBufferRef)copyRenderedPixelBuffer:(CVPixelBufferRef)pixelBuffer { CVPixelBufferLockBaseAddress( pixelBuffer, 0 ); unsigned char *base =...

NOTE: Your question and my original answer had some typos. To perform a tanh, you meant vvtanh, not vvatanh (or vatanh as I originally wrote). vv means "vector" (technically from the vForce library. vvatanh is the vector base inverse hyperbolic tangent.) First, the point that should be obvious: If vvtanh...

audio,accelerate-framework,vdsp

You're vector call is performing 2 multiplies per sample at audio sample rates. If your sample rate was 192kHz then you're only talking about 384000 multiplies per second - not really enough to register on a modern CPU. Moreover, you're moving existing multiplies to another place. If you had a...

ios,swift,accelerate-framework

Example from Apple's Swift Blog: import Accelerate let a: [Float] = [1, 2, 3, 4] let b: [Float] = [0.5, 0.25, 0.125, 0.0625] var result: [Float] = [0, 0, 0, 0] vDSP_vadd(a, 1, b, 1, &result, 1, 4) So it seems you only need the & for the mutable pointer....

ios,xcode,accelerate-framework

it looks like an issue of swift accelerate.framework it works when I using the method on Objective-C class, then call it by bridging-header...

objective-c,matrix,accelerate-framework

We can use vDSP_mmov(1) or vDSP_mmovD(2). Below sample to append 1 row at end. //sanple to add 1 row float dst[4][4] = { 1,2,3,4, 5,6,7,8, 9,10,11,12 } ; //last row empty float src[1][4] = { 13,14,15,16 }; //to fill last row int numColumnsToCopy = 4; int numRowsToCopy = 1; int...

ios,swift,accelerate-framework

I got it to work with a few tweaks. Notice the first param doesn't have an ampersand (CConstPointer). However the second one does (I use the same pointer for src & dst). I also replaced the casting (necessary) of values. You need to use CFloats for ceiling values. Here is...

The full answer to this question is a bit complicated, because the "Accelerate framework" is made up of lots of smaller libraries. Broadly speaking, for "simple" vDSP functions (those that do work linear in their input buffers), like vDSP_vadd, yes it is safe to use the functions "in-place" (i.e. where...