Depende mucho de sus necesidades, si solo está utilizando matemática de coma flotante recta, probablemente encontrará que el compilador usará el punto flotante de software, que será muy lento. Así que el primer paso es asegurarse de usar la unidad de punto flotante de hardware que está disponible en el procesador de iPhone.
El segundo paso es utilizar una biblioteca ya bien establecida, hay varias, Hassan ya le proporcionó un enlace al GNU GSL que es bueno.
El siguiente paso sería aprovechar las capacidades similares a VFP SIMD. El VFP no es realmente SIMD, pero proporciona instrucciones similares a SIMD para las cuales las operaciones individuales se llevan a cabo consecuentemente. La ventaja de seguir usando estas instrucciones es que el texto de su programa será más corto, lo que permite un mejor uso de la memoria caché de instrucciones y menos problemas cuando faltan las predicciones de bifurcación, etc. Sin embargo, no estoy al tanto de ninguna biblioteca de vectores que aproveche el VFP, tendrías que hacer una buena búsqueda y posiblemente escribir la tuya propia si no está disponible.
Finalmente, si aún necesita más velocidad, querrá usar la verdadera unidad SIMD en el procesador de iPhone. Sin embargo, esta unidad no es una unidad de coma flotante, sino una unidad entera. Por lo tanto, suponiendo que quieres números reales, estarás atrapado con un punto fijo, depende de tu aplicación si puedes salirte con la tuya. De nuevo, no estoy al tanto de ninguna biblioteca de vectores que proporcione aritmética de punto fijo usando la unidad SIMD proporcionada por el procesador de iPhone, así que de nuevo necesitaría una búsqueda exhaustiva y posiblemente también se ensucie las manos.
Cualquier biblioteca de matriz popular tiene que ser rápida: los algoritmos son matemáticos básicos. –
encontrarás cuando termines, ahora mismo sigues buscando ;-) – fortran
Oh chicos, lo que dices significa mucho. Gracias. – Eonil