Dr. Martin Sander Software Development
Vector, Matrix, and Complex Math Libraries
for PC Compilers
Vectorized Programming –
Most programs that process numerical data consist of loops. But loop overhead is unnecessarily slow.
When Speed is Important
Replacing these loops by hand-optimized, Assembler-written vector functions and matrix routines speeds up program execution by up to a factor of 2-3 and also greatly enhances numerical accuracy.
OptiVec™ brings the Power of Vectorized Programming to the PC!
OptiVec is a complete, hand-optimized set of libraries with over 4000 vector and matrix functions, and complex-number math routines.
OptiVec contains the fully vectorized forms of all operators and math functions of C/C++/Pascal/Delphi for all integer and floating-point (including complex) data types, plus many other real and complex math functions and routines
for statistics, analysis, FFT techniques, curve fitting, interpolations, vector and matrix algebra, matrix decomposition, and graphics.
In parts, OptiVec overlaps with the well-known BLAS and LINPACK libraries, but features an easier nomenclature and a generally more efficient implementation.
Learn why vectorized programming pays off on PCs and how the vector functions of OptiVec help you achieve the high performance of vectorized programming in your software
OptiVec™ Consists of 3 Groups of Functions:
The OptiVec libraries are static, no DLLs. This means only those functions which you actually need are linked into your application. Of course, you are free to include OptiVec functions in your DLLs, but there is no need to deal with yet another set of DLLs when you distribute your applications. As an exception to this principle, the CUDA-enabled OptiVec libraries require an additional DLL containing the actual CUDA code.
Once you purchase the Commercial Edition of OptiVec, you can freely distribute applications containing OptiVec functions. No run-time licenses needed for your customers!
An Educational Edition is available at a strongly reduced fee for non-commercial use.
For the detailed Licence conditions, click here.
Currently available products:
- OptiVec for C++ Builder / CMATH for C++ Builder: for the Embarcadero (former Borland and CodeGear) C/C++ compiler series (RAD Studio, Borland Development Suite, BC++ Builder)
- OptiVec for Visual C++ / CMATH for Visual C++: for the Microsoft Visual C++ compiler series (all Visual Studio releases since 2005);
- OptiVec for GCC / CMATH for GCC: for the GNU Compiler Collection (MinGW, always the current version);
- OptiVec for LLVM CLang / CMATH for LLVM CLang: for the CLang compiler of the LLVM project for Windows (always the current version);
- OptiVec for Delphi / CMATH for Delphi: for the Embarcadero (former Borland and CodeGear) Delphi compiler series (RAD Studio, Delphi 7, 2005, 2006, 2007, 2009, 2010, XE series, 10.x Seattle/Berlin/Tokyo)
- OptiVec for Lazarus / FreePascal / CMATH for Lazarus / FreePascal: for the 64-bit Windows target platform of Lazarus.
- A master license is available which combines all these individual products into one bundle.
In order to support the free compilers GCC and CLang, we make selected libraries of OptiVec for these compilers available as Freeware!
Current version: 7.3
Recent new features:
- Support for GCC, CLang, Lazarus / FreePascal
- Enhanced thread-safety for all linfit and nonlinfit functions.
- Enhanced thread-safety for all linear system operations (LUD and SVD based).
- Compatibility with latest compiler versions (Visual Studio 2017, Delphi and C++ Builder: 10.1 Berlin, 10.2 Tokyo).
- P9 libraries for 4th-generation Intel Core i (Haswell+) or AMD Excavator+, utilizing AVX, AVX2, and FMA for highest performance.
- CUDA-enabled libraries for all target compilers.
- Additions to the signal-procession functions: VF_xspectrum (cross-spectrum) and VF_coherence.