【问题标题】:Element-wise maximum value for two arrays with Accelerate使用 Accelerate 的两个数组的元素最大值
【发布时间】:2020-04-09 01:44:55
【问题描述】:

给定两个浮点数组

let A: [Float] = [a1, a2, a3, a4, ...]
let B: [Float] = [b1, b2, b3, b4, ...]

如何使用Accelerate 获得一个数组,给出两个数组的最大值,即如何获得

let R = [max(a1, b1), max(a2, b2), ...]

【问题讨论】:

    标签: swift accelerate-framework accelerate


    【解决方案1】:

    vDSP_vmax 计算两个向量的元素最大值。

    从 macOS 10.15/iOS 13 开始,这也可作为通用 maximum 方法使用。

    例子:

    let a: [Float] = [ 1.0, 2.0, 3.0 ]
    let b: [Float] = [ 3.0, 2.0, 1.0 ]
    
    var result: [Float]
    if #available(OSX 10.15, iOS 13.0, *) {
        result = vDSP.maximum(a, b)
    } else {
        result = [ 0.0, 0.0, 0.0 ]
        vDSP_vmax(a, 1, b, 1, &result, 1, 3)
    }
    print(result) // [3.0, 2.0, 3.0]
    

    【讨论】:

      猜你喜欢
      • 2017-04-19
      • 2014-03-16
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 2017-02-02
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多