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 can speed up program execution by 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:
|Windows:|| || |
|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 2009, 2010, XE series, 10.x series, 11.x)|
|OptiVec for Lazarus / FreePascal||CMATH for Lazarus / FreePascal:||for the 64-bit Windows target platform of Lazarus.|
| || || |
|Linux:|| || |
|OptiVec for Linux GCC / CLang||CMATH for Linux GCC / CLang:||for Linux with either GCC or CLang.|
| || || |
|Master License:|| || |
|OptiVec Master License||CMATH Master License||The master license combines all of the above 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: 8.2
Recent new features:
- Overhauled linear system solvers (LU decomposition and related functions)
- Much faster implementation of most single-precision math functions
- VF_polyOdd, VF_polyEven: evaluate polynomials consisting only of odd or only of even terms
- VF_polyfitOdd, VF_polyfitEven: fit data to odd-only or even-only polynomial representation
- VF_ratio, VF_ratioOddEven, VF_ratioEvenOdd: evaluate ratios (one polynomial divided by another)
- Support for latest MS and Embarcadero compiler versions: RAD Studio 11 Alexandria, Visual Studio 2022
- Support for Linux with GCC or CLang