Calculates the minimum magnitude in a single-precision vector.


func vDSP_minmgv(_ __A: UnsafePointer<Float>, _ __IA: vDSP_Stride, _ __C: UnsafeMutablePointer<Float>, _ __N: vDSP_Length)



Single-precision real input vector.


Stride for A


Output scalar


The number of elements to process. If N is zero (0), this function returns -INFINITY.


This function calculates the minimum magnitude of the first N elements of A and writes the result to C:

A diagram showing the operation of the vDSP_minmgv function. There are three rows. The top row represents the input, vector A. The second row represents the minimum value operation. The bottom row represents the output, vector C. The diagram has connecting lines from the input vectors to the operation and from the operation to the output vector indicating the relationships between the input and output.

The operation is:

for (n = 0; n < N; ++n)
    if (*C > |A[n*I]|)
        *C = |A[n*I]|;

The following code shows an example of using vDSP_minmgv(_:_:_:_:).

let stride = vDSP_Stride(1)

let a: [Float] = [-1.5, 2.25, 3.6,
                  0.2, -0.1, -4.3]
let n = vDSP_Length(a.count)

var c: Float = .nan


print("min magnitude", c) // Prints "min magnitude 0.1"

See Also

Minimum Calculation

static func minimum<U>(U) -> Double

Returns the minimum element of a double-precision vector.

static func minimum<U>(U) -> Float

Returns the minimum element of a single-precision vector.

static func indexOfMinimum<U>(U) -> (UInt, Double)

Returns the minimum element, and its index, of a double-precision vector.

static func indexOfMinimum<U>(U) -> (UInt, Float)

Returns the minimum element, and its index, of a single-precision vector.

func vDSP_minmgvi(UnsafePointer<Float>, vDSP_Stride, UnsafeMutablePointer<Float>, UnsafeMutablePointer<vDSP_Length>, vDSP_Length)

Calculates the minimum magnitude and corresponding index in a single-precision vector.