据我所知,UnsafePointer将指针对象表示为不可变,UnsafeMutablePointer将指针对象表示为可变。但vDSP函数vDSP_zrvmul的签名如下:

func vDSP_zrvmul(_ __A: UnsafePointer<DSPSplitComplex>,
               _ __IA: vDSP_Stride,
               _ __B: UnsafePointer<Float>,
               _ __IB: vDSP_Stride,
               _ __C: UnsafePointer<DSPSplitComplex>,
               _ __IC: vDSP_Stride,
               _ __N: vDSP_Length)

__C应该是输出向量,但它不可变……我缺少什么?谢谢你的阅读。

最佳答案

__A__C是指向
DSPSplitComplex

public struct DSPSplitComplex {
    public var realp: UnsafeMutablePointer<Float>
    public var imagp: UnsafeMutablePointer<Float>
}

它包含指向浮点值数组的可变指针。
vDSP_zrvmul将输出写入__C.realp指向的数组
__C.imagp,但__C本身并没有突变。

关于swift - 在UnsafePointer <DSPSplitComplex>处写入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48328260/

10-11 21:50