Skip to main content

MtxVec icon

MtxVec v6

Multicore math engine for science and engineering

An object-oriented numerical library with complete vector and matrix arithmetic, for Delphi and C++Builder, for .NET and for native C++: for scientific computing, engineering, signal and system modeling, optimization, simulation, financial modeling and data analysis that need deterministic performance and high throughput. Every application built on it takes advantage of CPU-specific code, symmetric multiprocessing and efficient memory and cache management.

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

Displaying large amounts of data
Displaying large amounts of data
Superconductive memory manager
Superconductive memory manager
Linear and cubic interpolation
Linear and cubic interpolation

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.

Customers

Who builds on MtxVec, and what they say about it.

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.