2011-06-03 155 views
1

我正在使用Accelerate框架來解決線性方程式的欠定/超定系統。我使用的程序是dgelsd_,最初來自LAPACK。LAPACK例程適用於iPhone模擬器,但不適用於設備

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

你試圖運行在什麼設備/操作系統上? – 2011-06-03 20:13:03

回答

3

使用雙精度時看起來像是known issue

解決方案:使用單精度,即浮點數。

-2

LAPACK是不適用於iOS設備 - 僅BLAS和VDSP。它在模擬器上工作,因爲該庫在Mac上可用。 iOS Accelerate Reference

+1

我不同意。藉助IOS 4.0,Apple將LAPACK功能引入iPhone加速。 [Changelog here](http://developer.apple.com/library/ios/#releasenotes/General/iPhone40APIDiffs/)。 – Warr1ck 2011-06-04 01:26:06

0

我使用sgesv_(single-precison)來解決一個1200x1200方程系統。 iPhone 4的執行時間爲1.1秒,而使用舊的「手動」方法時的執行時間爲60秒。

相關問題