vDSP_meanD 関数を使用して、データ セットの平均を求めています (配列からの連続差分)。
私が使用しているコードは以下のとおりです
func F(dataAllFrames:[Double],std:Double,medida:String)->Double{
let nframes=dataAllFrames.count
var diferencas_consecutivas_media = [Double](count: dataAllFrames.count-1, repeatedValue:0.0)
var mediaDifConseq:Double = 0
for(var i:Int=1; i<dataAllFrames.count; i++){
diferencas_consecutivas_media[i-1]=dataAllFrames[i]-dataAllFrames[i-1]
}
var meanConseqDif = [Double](count: 1, repeatedValue:0.0)
var meanConseqDifPtr = UnsafeMutablePointer<Double>(meanConseqDif)
vDSP_meanvD(diferencas_consecutivas_media,1,meanConseqDifPtr,UInt(nframes))
print( meanConseqDif[0])
}
関数 F はスレッド ブロック内で呼び出されます
let group = dispatch_group_create()
let queue = dispatch_queue_create("myqueue.data.processor", DISPATCH_QUEUE_CONCURRENT)
dispatch_group_async(group, queue) {
F(measureData,std: std, medida: medida)
}
F 関数は、さまざまな変数インスタンスを使用して複数のディスパッチ ブロックで呼び出され、vDSP_meanD から返された値に対して異なる値を取得します。これが発生するコンテキストはありますか? スレッド呼び出しがそれに何らかの影響を与える可能性がありますか? どんな「ライト」でも大歓迎です