Function

vDSP_vcmprs(_:_:_:_:_:_:_:)

Compresses a single-precision vector using the specified gating vector.

Declaration

func vDSP_vcmprs(_ __A: UnsafePointer<Float>, _ __IA: vDSP_Stride, _ __B: UnsafePointer<Float>, _ __IB: vDSP_Stride, _ __C: UnsafeMutablePointer<Float>, _ __IC: vDSP_Stride, _ __N: vDSP_Length)

Parameters

__A

Single-precision real input vector

__IA

Stride for A

__B

Single-precision real gating vector

__IB

Stride for B

__C

Single-precision real output vector

__IC

Stride for C

__N

The number of elements to process.

Discussion

Performs the following operation:

vDSP_Length p = 0;
for (n = 0; n < N; ++n){
    if (B[n*IB] != 0)
        C[p++ * IC] = A[n*IA];
}

Compresses vector A based on the nonzero values of gating vector B. For nonzero elements of B, corresponding elements of A are sequentially copied to output vector C.

See Also