Function

# vDSP_maxvi(_:_:_:_:_:)

Calculates the maximum value and corresponding index in a single-precision vector.

## Parameters

`__A`

Single-precision real input vector.

`__I`

Stride for `A`.

`__C`

Output scalar.

`__IC`

Output scalar index.

`__N`

The number of elements to process. If `N` is zero (`0`), this function returns `-INFINITY in C`, and the value in `IC` is undefined.

## Discussion

This function calculates the maximum value and its corresponding index of the first `N` elements of `A` and writes the results to `C` and `IC` respectively:

The index is the actual array index, not the pre-stride index. If vector `A` contains more than one instance of the maximum value, `IC` contains the index of the first instance.

The operation is:

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

### Maximum Calculation

`static func maximum<U>(U) -> Double`

Returns the maximum element of a double-precision vector.

`static func maximum<U>(U) -> Float`

Returns the maximum element of a single-precision vector.

`static func maximumMagnitude<U>(U) -> Double`

Returns the maximum magnitude element of a double-precision vector.

`static func maximumMagnitude<U>(U) -> Float`

Returns the maximum magnitude element of a single-precision vector.

`static func indexOfMaximum<U>(U) -> (UInt, Double)`

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

`static func indexOfMaximum<U>(U) -> (UInt, Float)`

Returns the maximum element, and its index, of a signal-precision vector.

`static func indexOfMaximumMagnitude<U>(U) -> (UInt, Double)`

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

`static func indexOfMaximumMagnitude<U>(U) -> (UInt, Float)`

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