gpt4 book ai didi

swift - 如何使用 OpaquePointer 调用 DSP 函数?

转载 作者:行者123 更新时间:2023-11-28 06:29:41 25 4
gpt4 key购买 nike

来自向量标量线性代数函数(来自 vectorOps.h) https://developer.apple.com/reference/accelerate/1546030-visamax

func vIsamax(_ count: Int32, _ x: OpaquePointer) -> Int32)

计数向量 x 中的元素数;必须是 4 的倍数。

x 浮点值向量数组。

我尝试过来自 https://swift.org/migration-guide/se-0107-migrate.htmlUnsafeRawPointerwithUnsafePointerMemoryLayout 等目前还没有成功

无法使用 ... CFData 调用类型 'OpaquePointer' 的初始值设定项,

不能调用“”... yada, yada, yada

如何使用 OpaquePointer 调用 DSP 函数?

最佳答案

vIsamaxvFloat aka float4 元素的向量作为参数。(每个 float4 包含 4 个 float 。)C声明是

int32_t vIsamax(int32_t count, const vFloat *x);

哪些应该映射到 Swift 作为

public func vIsamax(_ count: Int32, _ x: UnsafePointer<vFloat>) -> Int32

代替

public func vIsamax(_ count: Int32, _ x: OpaquePointer) -> Int32

但是你可以简单地传递一个vFloat/float4数组,如下所示小例子:

import Swift
import Accelerate
import simd

let values = [ float4(-1.0, -2.0, -3.0, -4.0), float4(4.0, 3.0, 2.0, 1.0) ]
let idx = vIsamax(Int32(4 * values.count), values)
print(idx) // 3

关于swift - 如何使用 OpaquePointer 调用 DSP 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40707460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com