在Swift中使用加速框架

3

来自苹果文档

根据文档所述

    func vvlog10f(_ _: UnsafeMutablePointer<Float>,
                _ _: UnsafePointer<Float>,
                _ _: UnsafePointer<Int32>)
 /* y */ /* x */ /* n */

那么我做错了什么?

这是我的代码:

import Accelerate

var input:[Float] = [0.124,0.5,0.0056]
var output:[Float] = []
var i:Int32 = Int32(input.count)
vvlog10f(&output,&input,&i)

println("output is \(output)")

输出为 []。
2个回答

7

来自苹果的Swift博客的示例:

   import Accelerate

   let a: [Float] = [1, 2, 3, 4]
   let b: [Float] = [0.5, 0.25, 0.125, 0.0625]
   var result: [Float] = [0, 0, 0, 0]

   vDSP_vadd(a, 1, b, 1, &result, 1, 4)

看起来你只需要可变指针的 & 符号。

既然这是一个向量库,它将对这两个向量进行操作并输出结果向量。 - Jack
我在寻找类似于Matlab中的“zeros”或“ones”命令,有吗? - μολὼν.λαβέ
1
请查看以下链接:https://dev59.com/j2Ag5IYBdhLWcg3wE3nQ - Jack

1
这是最终在这个例子中起作用的代码。
import Accelerate

var input:[Float] = [0.124,0.5,0.0006]
var output:[Float] = [Float](count: input.count, repeatedValue: 0.0)
var temp:Int32 = Int32(input.count)
var i:[Int32] = [temp]
vvlog10f(&output,input,i)

println("output is \(output)")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接