Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

Next Page > Hide TOC

vDSP Vector-to-Vector Arithmetic Operations Reference

Framework
Accelerate/vecLib
Declared in
vDSP.h

Overview

Describes the C API for the vecLib functions that perform arithmetic operations combining the elements of two vectors.

Functions by Task

Testing Bitwise Logical Equivalence

Doing Basic Arithmetic on Real Vectors

Doing Basic Arithmetic on Complex Vectors

Finding Maximum and Minimum Elements

Computing Vector Distance

Interpolating Between Two Vectors

Evaluating Vectors as Polynomials

Applying Pythagoras’s Theorem to Vector Elements

Finding a Vector’s Extrema

Swapping Elements Between Vectors

Merging Two Vectors

Computing Vector Spectra

Computing the Coherence Function of Two Vectors

Computing the Transfer Function

Doing Recursive Filtering on a Real Vector

Functions

vDSP_deq22

Difference equation, 2 poles, 2 zeros; single precision.

   void vDSP_deq22 (float * A,
   vDSP_Stride I,
   float * B,
   float * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Single-precision real input vector; must have at least N+2 elements

I

Stride for A

B

5 single-precision inputs, filter coefficients

C

Single-precision real output vector; must have at leastN+2elements

K

Stride for C

N

Number of new output elements to produce

Discussion

Performs two-pole two-zero recursive filtering on real input vector A. Since the computation is recursive, the first two elements in vector C must be initialized prior to calling deq22D. deq22D creates N new values for vector C beginning with its third element and requires N+2 input values from vector A. This function can only be done out of place.


mathematical formula

Availability
Declared In
vDSP.h

vDSP_deq22D

Difference equation, 2 poles, 2 zeros; double precision.

   void vDSP_deq22D (double * A,
   vDSP_Stride I,
   double * B,
   double * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Double-precision real input vector; must have at least N+2 elements

I

Stride for A

B

5 double-precision inputs, filter coefficients

C

Double-precision real output vector; must have at leastN+2elements

K

Stride for C

N

Number of new output elements to produce

Discussion

Performs two-pole two-zero recursive filtering on real input vector A. Since the computation is recursive, the first two elements in vector C must be initialized prior to calling deq22x. deq22x creates N new values for vector C beginning with its third element and requires N+2 input values from vector A. This function can only be done out of place.


mathematical formula

Availability
Declared In
vDSP.h

vDSP_vaam

Vector add, add, and multiply; single precision.

   void vDSP_vaam (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   float * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real input vector

L

Stride for D

E

Single-precision real output vector

M

Stride for E

N

Count ; each vector must have at least N elements

Discussion

This performs the operation


mathematical formula

Multiplies the sum of vectors A and B by the sum of vectors C and D. Results are stored in vector E.

Availability
Declared In
vDSP.h

vDSP_vaamD

Vector add, add, and multiply; double precision.

   void vDSP_vaamD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   double * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real input vector

L

Stride for D

E

Double-precision real output vector

M

Stride for E

N

Count ; each vector must have at least N elements

Discussion

This performs the operation


mathematical formula

Multiplies the sum of vectors A and B by the sum of vectors C and D. Results are stored in vector E.

Availability
Declared In
vDSP.h

vDSP_vadd

Adds vector A to vector B and leaves the result in vector C; single precision.

   void vDSP_vadd (const float input1[],
   vDSP_Stride stride1,
   const float input2[],
   vDSP_Stride stride2,
   float result[],
   vDSP_Stride strideResult,
   vDSP_Length size);

Discussion

This performs the operation


mathematical formula

Availability
Declared In
vDSP.h

vDSP_vaddD

Adds vector A to vector B and leaves the result in vector C; double precision.

   void vDSP_vaddD (const double input1[],
   vDSP_Stride stride1,
   const double input2[],
   vDSP_Stride stride2,
   double result[],
   vDSP_Stride strideResult,
   vDSP_Length size);

Discussion

This performs the operation


mathematical formula

Availability
Declared In
vDSP.h

vDSP_vam

Adds vectors A and B, multiplies the sum by vector C, and leaves the result in vector D; single precision.

   void vDSP_vam (const float input1[],
   vDSP_Stride stride1,
   const float input2[],
   vDSP_Stride stride2,
   const float input3[],
   vDSP_Stride stride3,
   float result[],
   vDSP_Stride strideResult,
   vDSP_Length size);

Discussion

This performs the operation


mathematical formula

Availability
Declared In
vDSP.h

vDSP_vamD

Adds vectors A and B, multiplies the sum by vector C, and leaves the result in vector D; double precision.

   void vDSP_vamD (const double input1[],
   vDSP_Stride stride1,
   const double input2[],
   vDSP_Stride stride2,
   const double input3[],
   vDSP_Stride stride3,
   double result[],
   vDSP_Stride strideResult,
   vDSP_Length size);

Discussion

This performs the operation


mathematical formula

Availability
Declared In
vDSP.h

vDSP_vasbm

Vector add, subtract, and multiply; single precision.

   void vDSP_vasbm (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   float * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real input vector

L

Stride for D

E

Single-precision real output vector

M

Stride for E

N

Count ; each vector must have at least N elements

Discussion

This performs the operation


mathematical formula

Multiplies the sum of vectors A and B by the result of subtracting vector D from vector C. Results are stored in vector E.

Availability
Declared In
vDSP.h

vDSP_vasbmD

Vector add, subtract, and multiply; double precision.

   void vDSP_vasbmD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   double * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real input vector

L

Stride for D

E

Double-precision real output vector

M

Stride for E

N

Count ; each vector must have at least N elements

Discussion

This performs the operation


mathematical formula

Multiplies the sum of vectors A and B by the result of subtracting vector D from vector C. Results are stored in vector E.

Availability
Declared In
vDSP.h

vDSP_vasm

Vector add and scalar multiply; single precision.

   void vDSP_vasm (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   float * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input scalar

D

Single-precision real output vector

L

Stride for D

N

Count ; each vector must have at least N elements

Discussion

This performs the operation


mathematical formula

Multiplies the sum of vectors A and B by scalar C. Results are stored in vector D.

Availability
Declared In
vDSP.h

vDSP_vasmD

Vector add and scalar multiply; double precision.

   void vDSP_vasmD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   double * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input scalar

D

Double-precision real output vector

L

Stride for D

N

Count ; each vector must have at least N elements

Discussion

This performs the operation


mathematical formula

Multiplies the sum of vectors A and B by scalar C. Results are stored in vector D.

Availability
Declared In
vDSP.h

vDSP_vdist

Vector distance; single precision.

   void vDSP_vdist (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real output vector

K

Stride for C

N

Count

Discussion

Performs the operation


mathematical formula

Computes the square root of the sum of the squares of corresponding elements of vectors A and B, and stores the result in the corresponding element of vector C.

Availability
Declared In
vDSP.h

vDSP_vdistD

Vector distance; double precision.

   void vDSP_vdistD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real output vector

K

Stride for C

N

Count

Discussion

Performs the operation


mathematical formula

Computes the square root of the sum of the squares of corresponding elements of vectors A and B, and stores the result in the corresponding element of vector C.

Availability
Declared In
vDSP.h

vDSP_vdiv

Vector divide; single precision.

   void vDSP_vdiv (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real output vector

K

Stride for C

N

Count

Discussion

Performs the operation


mathematical formula

Divides elements of vector A by corresponding elements of vector B, and stores the results in corresponding elements of vector C.

Availability
Declared In
vDSP.h

vDSP_vdivD

Vector divide; double precision.

   void vDSP_vdivD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real output vector

K

Stride for C

N

Count

Discussion

Performs the operation


mathematical formula

Divides elements of vector A by corresponding elements of vector B, and stores the results in corresponding elements of vector C.

Availability
Declared In
vDSP.h

vDSP_vdivi

Vector divide; integer.

   void vDSP_vdivi (int * A,
   vDSP_Stride I,
   int * B,
   vDSP_Stride J,
   int * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Integer input vector

I

Stride for A

B

Integer input vector

J

Stride for B

C

Integer output vector

K

Stride for C

N

Count

Discussion

Performs the operation


mathematical formula

Divides elements of vector A by corresponding elements of vector B, and stores the results in corresponding elements of vector C.

Availability
Declared In
vDSP.h

vDSP_venvlp

Vector envelope; single precision.

   void vDSP_venvlp (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Single-precision real input vector: high envelope

I

Stride for A

B

Single-precision real input vector: low envelope

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real output vector

L

Stride for D

N

Count

Discussion

Performs the operation


mathematical formula

Finds the extrema of vector C. For each element of C, the corresponding element of A provides an upper-threshold value, and the corresponding element of B provides a lower-threshold value. If the value of an element of C falls outside the range defined by these thresholds, it is copied to the corresponding element of vector D. If its value is within the range, the corresponding element of vector D is set to zero.

Availability
Declared In
vDSP.h

vDSP_venvlpD

Vector envelope; double precision.

   void vDSP_venvlpD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Double-precision real input vector: high envelope

I

Stride for A

B

Double-precision real input vector: low envelope

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real output vector

L

Stride for D

N

Count

Discussion

Performs the operation


mathematical formula

Finds the extrema of vector C. For each element of C, the corresponding element of A provides an upper-threshold value, and the corresponding element of B provides a lower-threshold value. If the value of an element of C falls outside the range defined by these thresholds, it is copied to the corresponding element of vector D. If its value is within the range, the corresponding element of vector D is set to zero.

Availability
Declared In
vDSP.h

vDSP_veqvi

Vector equivalence, 32-bit logical.

   void vDSP_veqvi (int * A,
   vDSP_Stride I,
   int * B,
   vDSP_Stride J,
   int * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Integer input vector

I

Stride for A

B

Integer input vector

J

Stride for B

C

Integer output vector

K

Stride for C

N

Count

Discussion

Performs the operation


mathematical formula

Outputs the bitwise logical equivalence, exclusive NOR, of the integers of vectors A and B. For each pair of input values, bits in each position are compared. A bit in the output value is set if both input bits areset, or both are clear; otherwise it is cleared.

Availability
Declared In
vDSP.h

vDSP_vintb

Vector linear interpolation between vectors; single precision.

   void vDSP_vintb (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   float * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input scalar: interpolation constant

D

Single-precision real output vector

L

Stride for D

N

Count

Discussion

Performs the operation


mathematical formula

Creates vector D by interpolating between vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vintbD

Vector linear interpolation between vectors; double precision.

   void vDSP_vintbD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   double * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input scalar: interpolation constant

D

Double-precision real output vector

L

Stride for D

N

Count

Discussion

Performs the operation


mathematical formula

Creates vector D by interpolating between vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vma

Vector multiply and add; single precision.

   void vDSP_vma (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real output vector

L

Stride for D

N

Count

Discussion

This performs the operation


mathematical formula

Multiplies corresponding elements of vectors A and B, add the corresponding elements of vector C, and stores the results in vector D.

Availability
Declared In
vDSP.h

vDSP_vmaD

Vector multiply and add; double precision.

   void vDSP_vmaD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real output vector

L

Stride for D

N

Count

Discussion

This performs the operation


mathematical formula

Multiplies corresponding elements of vectors A and B, add the corresponding elements of vector C, and stores the results in vector D.

Availability
Declared In
vDSP.h

vDSP_vmax

Vector maxima; single precision.

   void vDSP_vmax (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the greater of the corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vmaxD

Vector maxima; double precision.

   void vDSP_vmaxD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the greater of the corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vmaxmg

Vector maximum magnitudes; single precision.

   void vDSP_vmaxmg (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the larger of the magnitudes of corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vmaxmgD

Vector maximum magnitudes; double precision.

   void vDSP_vmaxmgD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the larger of the magnitudes of corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vmin

Vector minima; single precision.

   void vDSP_vmin (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the lesser of the corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vminD

Vector minima; double precision.

   void vDSP_vminD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the lesser of the corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vminmg

Vector minimum magnitudes; single precision.

   void vDSP_vmin (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the smaller of the magnitudes of corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vminmgD

Vector minimum magnitudes; double precision.

   void vDSP_vminD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real output vector

K

Stride for C

N

Count

Discussion

This performs the operation


mathematical formula

Each element of output vector D is the smaller of the magnitudes of corresponding values from input vectors A and B.

Availability
Declared In
vDSP.h

vDSP_vmma

Vector multiply, multiply, and add; single precision.

   void vDSP_vmma (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   float * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real input vector

L

Stride for D

E

Single-precision real output vector

M

Stride for E

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied, corresponding values of C and D are multiplied, and these products are added together and stored in E.

Availability
Declared In
vDSP.h

vDSP_vmmaD

Vector multiply, multiply, and add; double precision.

   void vDSP_vmmaD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   double * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real input vector

L

Stride for D

E

Double-precision real output vector

M

Stride for E

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied, corresponding values of C and D are multiplied, and these products are added together and stored in E.

Availability
Declared In
vDSP.h

vDSP_vmmsb

Vector multiply, multiply, and subtract; single precision.

   void vDSP_vmmsb (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   float * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real input vector

L

Stride for D

E

Single-precision real output vector

M

Stride for E

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied, corresponding values of C and D are multiplied, and the second product is subtracted from the first. The result is stored in E.

Availability
Declared In
vDSP.h

vDSP_vmmsbD

Vector multiply, multiply, and subtract; double precision.

   void vDSP_vmmsbD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   double * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real input vector

L

Stride for D

E

Double-precision real output vector

M

Stride for E

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied, corresponding values of C and D are multiplied, and the second product is subtracted from the first. The result is stored in E.

Availability
Declared In
vDSP.h

vDSP_vmsa

Vector multiply and scalar add; single precision.

   void vDSP_vmsa (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   float * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input scalar

D

Single-precision real output vector

L

Stride for D

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied and the scalar C is added. The result is stored in D.

Availability
Declared In
vDSP.h

vDSP_vmsaD

Vector multiply and scalar add; double precision.

   void vDSP_vmsaD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   double * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input scalar

D

Double-precision real output vector

L

Stride for D

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied and the scalar C is added. The result is stored in D.

Availability
Declared In
vDSP.h

vDSP_vmsb

Vector multiply and subtract, single precision.

   void vDSP_vmsb (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real output vector

L

Stride for D

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied and the corresponding value of C is subtracted. The result is stored in D.

Availability
Declared In
vDSP.h

vDSP_vmsbD

Vector multiply and subtract; double precision.

   void vDSP_vmsbD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real output vector

L

Stride for D

N

Count

Discussion

This performs the operation


mathematical formula

Corresponding elements of A and B are multiplied and the corresponding value of C is subtracted. The result is stored in D.

Availability
Declared In
vDSP.h

vDSP_vmul

Multiplies vector signal1 by vector signal2 and leaves the result in vector result; single precision.

   void vDSP_vmul (const float input1[],
   vDSP_Stride stride1,
   const float input2[],
   vDSP_Stride stride2,
   float result[],
   vDSP_Stride strideResult,
   vDSP_Length size);

Discussion

This performs the operation


mathematical formula

Availability
Declared In
vDSP.h

vDSP_vmulD

Multiplies vector signal1 by vector signal2 and leaves the result in vector result; double precision.

   void vDSP_vmulD (const double input1[],
   vDSP_Stride stride1,
   const double input2[],
   vDSP_Stride stride2,
   double result[],
   vDSP_Stride strideResult,
   vDSP_Length size);

Discussion

This performs the operation


mathematical formula

Availability
Declared In
vDSP.h

vDSP_vpoly

Vector polynomial evaluation; single precision.

   void vDSP_vpoly (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N,
   vDSP_Length P);

Parameters
A

Single-precision real input vector: coefficients

I

Stride for A

B

Single-precision real input vector: variable values

J

Stride for B

C

Single-precision real output vector

K

Stride for C

N

Count

P

Degree of polynomial

Discussion

Performs the operation


mathematical formula

Evaluates polynomials using vector B as independent variables and vector A as coefficients. A polynomial of degree p requires p+1 coefficients, so vector A should contain P+1 values.

Availability
Declared In
vDSP.h

vDSP_vpolyD

Vector polynomial evaluation; double precision.

   void vDSP_vpolyD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   vDSP_Length N,
   vDSP_Length P);

Parameters
A

Double-precision real input vector: coefficients

I

Stride for A

B

Double-precision real input vector: variable values

J

Stride for B

C

Double-precision real output vector

K

Stride for C

N

Count

P

Degree of polynomial

Discussion

Performs the operation


mathematical formula

Evaluates polynomials using vector B as independent variables and vector A as coefficients. A polynomial of degree p requires p+1 coefficients, so vector A should contain P+1 values.

Availability
Declared In
vDSP.h

vDSP_vpythg

Vector pythagoras; single precision.

   void vDSP_vpythg (float * A,
   vDSP_Stride I,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   float * D,
   vDSP_Stride L,
   float * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Single-precision real input vector

I

Stride for A

B

Single-precision real input vector

J

Stride for B

C

Single-precision real input vector

K

Stride for C

D

Single-precision real input vector

L

Stride for D

E

Single-precision real output vector

M

Stride for E

N

Count

Discussion

Performs the operation


mathematical formula

Subtracts vector C from A and squares the differences, subtracts vector D from B and squares the differences, adds the two sets of squared differences, and then writes the square roots of the sums to vector E.

Availability
Declared In
vDSP.h

vDSP_vpythgD

Vector pythagoras; double precision.

   void vDSP_vpythgD (double * A,
   vDSP_Stride I,
   double * B,
   vDSP_Stride J,
   double * C,
   vDSP_Stride K,
   double * D,
   vDSP_Stride L,
   double * E,
   vDSP_Stride M,
   vDSP_Length N);

Parameters
A

Double-precision real input vector

I

Stride for A

B

Double-precision real input vector

J

Stride for B

C

Double-precision real input vector

K

Stride for C

D

Double-precision real input vector

L

Stride for D

E

Double-precision real output vector

M

Stride for E

N

Count

Discussion

Performs the operation


mathematical formula

Subtracts vector C from A and squares the differences, subtracts vector D from B and squares the differences, adds the two sets of squared differences, and then writes the square roots of the sums to vector E.

Availability
Declared In
vDSP.h

vDSP_vqint

Vector quadratic interpolation; single precision.

   void vDSP_vqint (float * A,
   float * B,
   vDSP_Stride J,
   float * C,
   vDSP_Stride K,
   vDSP_Length N,
   vDSP_Length M);

Parameters
A

Single-precision real input vector

B

Single-precision real input vector: integer parts are indices into A and fractional parts are interpolation constants

J

Stride for B

C

Single-precision real output vector

K

Stride for