Features
Linear algebra on LAPACK
Dense BLAS and LAPACK — SVD, QR, LQ, LU, eigenvalue problems, least squares and rank-revealing decompositions — on real and complex matrices, with Toeplitz and banded solvers. Sparse matrices come with the High Performance Edition: the Pardiso and UMFPACK direct solvers, and CG, BiCG and GMRES iterative solvers with preconditioners.
Optimization and fitting
Non-linear curve fitting with Levenberg-Marquardt and trust-region methods; Nelder-Mead, BFGS, conjugate gradient, simplex, dual simplex and Gomory cutting plane; root solving and systems of non-linear equations.
Probability and special functions
Random number generators and over 30 families of probability distributions with PDF, CDF and sampling, for statistics and Monte Carlo work; Airy, Bessel and gamma-related functions, elliptic integrals and Legendre polynomials; polynomials, interpolation, splines, rational approximations and Chebyshev transforms; numerical integration and differentiation.
Code that reads like math
Operator overloading for vectors and matrices, and a math parser that evaluates whole formulas over vectors and matrices: scripts in a Matlab/Scilab-like syntax, compiled once and run without loops over real and complex numbers, integers, booleans and strings — 3 to 5× faster than scripting languages, roughly 3× faster than Python for vector and matrix math.
Complex numbers, FFT and precision
Vectorized complex arithmetic throughout, and the FFT in one and two dimensions for every combination of real and complex data; the floating-point precision — single or double — chosen at run time for each vector and matrix, where single precision halves the memory and doubles the speed; brute-force exact k-NN that scales linearly with the core count, 1000 to 2000× faster than a naïve implementation on large problems.
Vectorized for every CPU
The library dispatches at run time to the instruction set the CPU has, up to AVX-512. Block processing keeps the data in the CPU cache; over 160 compound-expression overloads do several vectorized operations in one pass while the CPU waits for memory; and OpenCL offloads to the GPU where supported — Cougar Open CL, over 2000 kernels.
Memory and threads
Vectors and matrices have a capacity, and subranges view their memory without copying, so math calls nearly never allocate; the super conductive memory manager serves each thread from its own pool through a lock-free allocator. Linear algebra, FFT and digital filtering are multithreaded internally, and a fair critical section admits waiting threads in the order they arrived, so none starves on a many-core CPU.
Tools
A Debugger Visualizer for vectors and matrices shows them as a grid or a chart while you debug. The public API interfaces on GitHub are written for AI assistants, for Delphi, C# and C++.
Editions
Every platform comes in both editions. A compiler switch or a package swap moves your code between them.
High Performance Edition
Calls native libraries tuned for the latest CPUs.
- Delphi and C++Builder: DLLs for Windows 32- and 64-bit and Linux 64-bit
- .NET: Dew.Math for Windows and Dew.Math.Linux, with native BLAS, LAPACK and AVX2/AVX-512 kernels
- Native C++: Dew.Math for Windows and Dew.Math.Linux
Core Edition
Full source, compiled without external DLLs.
- Delphi and C++Builder: 100% Pascal source, for every FireMonkey platform
- .NET: Dew.Math.Core, pure managed code with .NET's own vector support
- Native C++: Dew.Math.Core, C++11 source for GCC, Intel ICX, Visual C++ and C++Builder
Screenshots
Learn more
Knowledge Base
How MtxVec works under the hood: speed, block processing, expressions, scripting, threading, OpenCL and debugging.
Function list
Every class and function: TVec, TMtx, TSparseMtx, the Math387 general-purpose routines and the probabilities.
Frequently asked questions
Answers for Delphi and C++Builder, and for .NET.
AI support
MtxVec prior knowledge for AI chats produces the fastest variant of your code with very few errors, and shortens moving existing code to MtxVec patterns.
Case studies
Problems solved with MtxVec: ultrasonic reference blocks, load-cell calibration, PCA in financial analysis, goal seeking, non-linear regression and the thermal expansion of copper.
Choose your platform
Delphi and C++Builder
For VCL and FireMonkey applications, in both editions. C++Builder references the same standard units. Its page holds the speed-ups against Delphi code, the FireMonkey platforms and the compilers.
.NET
MtxVec rewritten in C# and published on NuGet as Dew.Math. Its three editions share one API: develop with any of them and swap the package before you deploy. Its page holds the packages, Linux deployment, the charts and the frameworks.
Native C++
Standard-compliant C++11 — Dew.Math, Dew.Signal and Dew.Stats — in both editions. The Core Edition compiles into your application without external DLLs, builds with GCC, Intel ICX, Microsoft Visual C++ or C++Builder, and with GCC runs on every platform GCC supports.
Release history
What changed in every version, newest first: new functions, speed-ups, bug fixes and platform support for MtxVec, Dew Math and the Dew Lab Studio family.
Try MtxVec free
Trials for Delphi and C++Builder and for .NET. A license covers all MtxVec versions, with or without source code.