Multicore math engine for science and engineering
MtxVec is an object oriented numerical library for Delphi and C++ Builder developers with complete matrix/vector arithmetic. It features a large set of vectorized mathemathical functions which cover complex numbers, sparse matrices, math parser, probabilities, optimization unit, SVD, QR, LQ, and LU solvers, special functions, and more. All applications based on this library take advantage of CPU-specific code optimization and symmetric multiprocessing. Efficient memory and CPU cache management further enhance its performance.
- Use pure pascal (100% full source code) or high performance external dlls (for maximum speed on Windows OS). With FireMonkey use common source to compile your applications for Windows, Mac OS, iOS / iPhone and Android. The full source version is called MtxVec Core Edition.
- Supports a large set of compilers: Delphi 6 and 7, Delphi 2005, Delphi 2006, 2007 W32 and .NET, Delphi and C++Builder 2006, 2007, 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8, Seattle (v10) and Berlin (v10.1). FireMonkey support requires at least XE8.
- Operator overloading support for vectors and matrices from including Delphi 2006 and C++Builder 2006.
- Super conductive memory management allows linear scaling of numerical algorithms with number of cores when multithreading.
- Support for native 64bit execution for (Delphi).NET
- 64bit compiler support for Embarcadero Delphi XE2 and later. 64bit compiler support Embarcadero C++Builder XE4 and later.
- Includes Debugger Visualizer, a debugger plug-in for faster debugging of numerical algorithms. Support for 4GB address space for 32bit applications under 64bit OS and 3GB address space for 32bit OS. For more info how to enable this support for your project see here.
Most users observe typical performance improvements of 2x to 3x for vector functions, but speed increases up to 10x are often obtained. The matrix multiplication, for example, is up to 20x faster. Many times we can speed-up customers algorithms by 100-200x by rewriting with MtxVec.