Engineers and scientists now have access to the Scientific Algorithm Library (SAL) for vector math acceleration created by Mercury Computer Systems for radar applications. The original SAL ran on PowerPC computers, but the open-source software, OpenSAL, lets anyone use the vector-math code, available under an Open Source License GNU GPLv3. The library provides more than 400 math functions accessed through an application-programming interface (API), and the OpenSAL package includes C code reference designs and documentation. You can download either a Linux (.tar) or a Windows (.zip) file at: http://sourceforge.net/projects/opensal/files/.
I recommend you download the file and use information in the help folder: OpenSALWebhelp to learn about the matrix-math, Fourier-transforms, data-conversion, and other functions the package offers. Unfortunately, the Mercury Computer Systems and OpenSAL Web sites don’t include a list of the individual library functions.
Dr. Ian Dunn, chief technology officer at Mercury Computer Systems, said, “We believe that the proliferation of OpenSAL and other open source initiatives such as Open Component Portability Infrastructure (OpenCPI), an open middleware solution that simplifies programming of heterogeneous processing environments such as FPGAs and DSPs, will allow the community to expand its capabilities to benefit the HPEC [High Performance Embedded Computing] and academic communities. We envision a large community using OpenSAL and working together to augment it over time.”
I bet many of the math functions would apply to motion-control, machine-vision, and vector analysis. For more information and to sign up for OpenSAL news by email, visit: www.opensal.net.
This software library reminded me of the book, “Numerical Recipes in C: The Art of Scientific Computing,” published in the late 1980’s. That book and its example code provided a lot of good information and programming “lessons,” and even some unusual routines, one of which (as best I can recall) plotted the position of the moon, given a date and time. –Jon Titus