iPhone OS (iOS 4) 上的 Bignum、线性代数和数字信号处理

Posted

技术标签:

【中文标题】iPhone OS (iOS 4) 上的 Bignum、线性代数和数字信号处理【英文标题】:Bignum, Linear Algebra and Digital Signal Processing on iPhone OS (iOS 4) 【发布时间】:2010-08-09 03:50:09 【问题描述】:

我认为我在 iPhone OS (ios 4) 中找到了一些亮点。 我发现Accelerate Framework 提供了 128 位、256 位、512 位和 1024 位整数数据类型。还有 Apple 实施的基本线性代数子程序 (BLAS)、Apple 实施的 LAPACK(线性代数包)和数字信号处理 (DSP) 例程。 我很兴奋,因为据我所知,BLAS 和 LAPACK 是最好的(也是最著名的)库。 (如果您从未听说过他们的名字,只需谷歌他们就会明白。)他们让您解决联立线性方程(即 Ax = b in向量/矩阵表示法),进行快速矩阵乘法等。 我很确定这些库在基于 PowerPC 和 Intel 的 Mac 上都可用。但是,当我在 Xcode 中查找“iOS4 中的新增功能”文档时,它说数据类型“不受任何架构支持”。当我比较vecLib Reference for Mac OS X和vecLlib Reference for iOS时,我也发现iOS版本缺少功能。我的问题是: 有没有人使用这些库编译任何程序(bignum 是我的主要兴趣领域)并在真正的 iPhone 设备上成功运行它们? (能够证明他们在图书馆中的实际经验的回答者将更加感激。)这里是参考图书馆的链接:Accelerate Framework (iOS Reference Library)vecLib Reference (Mac OS X Reference Library)vecLib Reference (iOS Reference Library)以下是 BLAS 和 LAPACK 的官方常见问题解答:BLAS FAQLAPACK FAQ

【问题讨论】:

这不是答案(因此是评论),但我围绕 OpenSSL 的 bignum 内容编写了一个 Objective-C 包装器。我还没有尝试为 iPhone 编译它,但欢迎你 fork 并贡献:github.com/davedelong/CHMath 嗨,戴夫。感谢您的投票! // 我没有在 iPhone 上编译 BLAS 和 LAPACK 库,但似乎 APPLE 已经实现了相同的 API,这就是我如此兴奋的原因。请参阅我在上面发布的“参考库”链接。 // 我经常使用 OpenSSL,我猜他们也应该有相当不错的大整数库!但由于我不熟悉 lib / API,我不确定它们是否足够容易使用。在使用图书馆之前,我害怕大量的保姆工作。 //你的 GitHub 项目我已经看过了,有时间会详细介绍~ 这个问题提出了类似的问题(虽然形式不那么详细):***.com/questions/3398753/… 【参考方案1】:

尽管我还没有在运输应用程序中使用过 Accelerate,但我确实从 Apple 的 WWDC 2010 session 202 - “iPhone OS 的 Accelerate 框架”中得到了很多。如果您对此框架感兴趣,我强烈建议您观看该视频。

虽然可以在 iPhone 上使用其中的许多功能,但并非所有这些功能都已被移植。 iOS 4.0 中只有 vDSP、BLAS 和 LAPACK 可用,不过听起来其他人可能很快就会加入。

尽管是为 Mac 编写的,"Taking Advantage of the Accelerate Framework" 文章除了上面列出的资源外,还对框架进行了很好的介绍。

【讨论】:

感谢您的信息!这正是我困惑的原因!似乎 Apple 为 Accelerate Framework 做了大量广告,但它似乎也在某种程度上“正在建设中”。我在 iPhone 模拟器上进行了一些测试,它们似乎还可以!但是,像往常一样,在模拟器上没问题(这是基于英特尔的!)并不意味着在实际设备上没问题。由于我还没有走完CSR -> App ID流程(还没来得及理解流程,不理解也不愿意走),所以在这里问了这个问题。感谢您的链接!有时间我会去看他们的。 只是为了更新,在iOS5.0 Accelerate中捡到了vForce和vImage。【参考方案2】:

我在这里基于Yoshimasa Niwa的项目在OpenCV中做了一些工作:

http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en

他当前的代码使用 Accelerate 框架构建(请参阅自定义补丁)。

【讨论】:

以上是关于iPhone OS (iOS 4) 上的 Bignum、线性代数和数字信号处理的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone OS 3.1x / 3.2 / 4.0 中管理图像(维度)?

如何将 iPhone 用作 OS X、iOS 或 tvOS 的游戏控制器 [关闭]

iPhone 4 上的 Google Cast iOS API?

iPhone SDK 4 仅适用于 Mac OS X Snow Leopard?

iphone OS 4.0-显示更高分辨率图像的问题

iPhone 4 和模拟器上的 Facebook 登录失败