Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Bignum, Linear Algebra and Digital Signal Processing on iPhone OS (iOS 4)

I think I've found some gems in the iPhone OS (iOS 4).

I found that there're 128-bit, 256-bit, 512-bit and 1024-bit integer data types, provided by the Accelerate Framework. There're also Apple's implementation of Basic Linear Algebra Subprograms (BLAS), Apple's implementation of LAPACK (Linear Algebra PACKage), and Digital Signal Processing (DSP) routines.

I'm so excited because BLAS and LAPACK are the best (and the most famous) libraries as far as I know. (In case if you've never heard their names, just Google them and you'll understand.) They let you solve simultaneous linear equations (i.e. Ax = b in vector / matrix notation), do fast matrix multiplications, and more.

I'm quite sure that the libraries are available on both PowerPC- and Intel-based Mac's. However, when I look up the "What's new in iOS4" documentation in Xcode, it says that the data types are "not supported on any architecture". When I compare the vecLib Reference for Mac OS X and vecLlib Reference for iOS, I also found that functions are missing in the iOS version.

My question is:
Has anyone compiled any program using these libraries (bignum is my primary area of interest) and run them successfully on a real iPhone device? (Answerers who can demonstrate their actual experience on the librarie(s) are more appreciated.)

Here are the links to the Reference Library:
Accelerate Framework (iOS Reference Library)
vecLib Reference (Mac OS X Reference Library)
vecLib Reference (iOS Reference Library)

Here are official FAQs of BLAS and LAPACK:
BLAS FAQ
LAPACK FAQ

like image 202
Siu Ching Pong -Asuka Kenji- Avatar asked Aug 09 '10 03:08

Siu Ching Pong -Asuka Kenji-


2 Answers

Even though I have not yet used Accelerate in a shipping application, I did get a lot out of Apple's WWDC 2010 session 202 - "The Accelerate framework for iPhone OS". If you are interested in this framework, I highly recommend watching that video.

While it is possible to use many of these functions on the iPhone, not all of them have been ported over yet. Only vDSP, BLAS, and LAPACK are available for use in iOS 4.0, although it sounds like others might join them soon.

Although written for the Mac, the "Taking Advantage of the Accelerate Framework" article gives a nice introduction to the framework, in addition to the resources you list above.

like image 105
Brad Larson Avatar answered Sep 19 '22 07:09

Brad Larson


I've done some work in OpenCV based on Yoshimasa Niwa's project here:

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

His current code builds using the Accelerate framework (see the custom patches).

like image 29
Mark McDonald Avatar answered Sep 23 '22 07:09

Mark McDonald