我正在使用Accelerate框架来解决欠/超定线性方程组。我正在使用的例程是dgelsd_,最初来自LAPACK。
dgelsd_( &m, &n, &nrhs, a_t, &lda, b, &ldb, s, &RCOND, &IRANK, work, &workSize, iWork, &info);
这在模拟器中工作正常,在提供矩阵a_t和b时,结果在b中正确返回。但是,当我在设备上尝试此操作时,结果全为零。
我哪里可能出错?我根据需要为例程分配了一定数量的工作内存,但是我对分析器进行了检查,内存似乎不是问题。
有没有人让LAPACK例程在iPhone设备上正常工作?感谢。
编辑:iPhone SDK版本4.2,设备iPhone 4
答案 0 :(得分:3)
使用双精度时看起来像known issue。
解决方案:使用单精度,即Floats。
答案 1 :(得分:0)
我使用dgesvd_(单精度)来解决1200x1200方程式系统。 iPhone 4的执行时间为1.1秒,而使用旧的“手动”方法则为60秒。
答案 2 :(得分:-2)
LOSACK在ios设备上不可用 - 仅限BLAS和vDSP。它适用于模拟器,因为该库在mac上可用。 iOS Accelerate Reference