Contents

ramp(withInitialValue:multiplyingBy:increment:)

Returns a double-precision vector that contains monotonically incrementing or decrementing values, and multiplies that vector by a source vector.

Declaration

static func ramp<U>(withInitialValue initialValue: inout Double, multiplyingBy vector: U, increment: Double) -> [Double] where U : AccelerateBuffer, U.Element == Double

Parameters

  • initialValue:

    On input, the initial value of the ramp. On output, the next value in the ramp.

  • vector:

    The input vector that the function multiplies by the ramp.

  • increment:

    The increment, or decrement if negative, between each generated element.

Discussion

Use this function to generate and return a vector populated with ramped values with each element multiplied by the corresponding element in a second vector.

The following code generates a ramped vector with values in the range 0 ... 7. The function multiplies elements at even indices by 10 and multiplies elements at odd indices by 100.

    var initialValue: Double = 0
    let increment: Double = 1
    
    let ramp = vDSP.ramp(withInitialValue: &initialValue,
                         multiplyingBy: [10, 100, 10, 100, 10, 100, 10, 100],
                         increment: increment)
    
    // Prints "[0.0, 100.0, 20.0, 300.0, 40.0, 500.0, 60.0, 700.0]".
    print(ramp)
    
    // Prints "8".
    print(initialValue)

See Also

Type Methods