Why the Core Edition
- A small distribution, with no DLLs to ship
- Platform-independent builds from one source
- The complete source, with optional range checking in C#, C++ and Delphi
- The full LAPACK translation, passing every LAPACK test with matching accuracy
- A nearly full feature set — only sparse matrices and the higher-quality random generators are absent — that serves DSP Master and Stats Master fully
- Automated tests
Where it runs
Delphi and C++Builder
100% Pascal source. With VCL it builds Windows applications without the DLLs; with FireMonkey it is the edition MtxVec runs as on macOS, iOS and Android. The Pascal code reaches its full speed from Delphi XE6 (Update 1).
C# and .NET
Dew.Math.Core is pure managed code with no native libraries to deploy: Windows, Linux, macOS, iOS and Android (Xamarin, MAUI), Uno, Avalonia, Blazor and WebAssembly, Unity within its IL2CPP/AOT limits, containers, and plugin hosts such as Revit, AutoCAD, Rhino, LabVIEW and MATLAB interop — wherever unmanaged deployment is not allowed. It keeps Dew.Math's programming model — vectors, matrices, subranges, views and capacity, operator overloads, complex numbers and the expression parser — with linear algebra (QR, LU, SVD, eigenvalues), the probability distributions, the special functions, and the optimizers Nelder-Mead, Marquardt with numerical derivatives, BFGS, conjugate gradient and trust region. It uses .NET's own vector support (AVX2, AVX-512), with BLAS accelerated inside .NET, and shares every namespace and class with the accelerated packages, so you swap the package before you deploy. It aims at portability rather than peak speed — the lowest-dependency baseline for shared code — and suits plugins and sandboxes, and long-running simulation engines, model servers and streaming pipelines, where predictable allocation matters. Dew.Lab.Studio.Core bundles it with Dew.Signal.Core and Dew.Stats.Core.
Native C++
The Core Edition as standard-compliant C++11 source — Dew.Math, Dew.Signal and Dew.Stats, the same engine as in Delphi and C# — compiled into your application without external DLLs.
Audio on Android and iOS
TSignalCoreAudioIn and TSignalCoreAudioOut record and play audio on Android (AudioRecord, AudioTrack) and iOS (RemoteIO), so a whole audio application is debugged on Windows and only deployed to the device. DSP Master also gains from the faster FFT and dot products.
Speed without the DLLs
The pure code runs slower than its DLL-based counterpart, but ships without it. According to our tests an iPhone runs CPU code about 10× faster than a high-end Android device, close to a Windows desktop application without special optimizations.
| Device | Vector (ms) | FFT (ms) |
|---|---|---|
| iPad (A9) | 6 acc | 14 acc · 90 no acc |
| iPhone 5s (A7) | 9 acc · 18 no acc, libm | 37 acc · 156 no acc |
| iPhone 12 (A14) | 1.8–2.7 acc | 7.7–14 acc |
| Mac Mini M1 (2020) | 2–3 | 6–7 |
| Huawei P10 Lite | 22 libm | 200 |
| LG V700 | 120 libm | 400 |
| Core i5-3320M | 0.83 acc | 2.9 acc |
| Core i5-4670 | 0.3 acc · 2.5 no acc | 1 acc · 27 no acc |
| Core i7-7820X | 0.21 acc · 1.7 no acc | 0.51 acc · 17 no acc |
Vector: c[i] := sqrt(sqr(a[i]) + sqr(b[i])) over 512 values, 1024 times; FFT: 1024 real samples to complex, 1024 times. One CPU core, single precision; "acc" means with the accelerated libraries, "no acc" the Core Edition's own code. Clocks: iPad A9 1.85 GHz, iPhone 5s A7 1.3 GHz (dual core), iPhone 12 A14 3 GHz, Huawei P10 Lite 2.4 GHz (Cortex-A53, 4 cores), LG V700 1.2 GHz (Qualcomm ARMv7, 4 cores), Core i5-3320M 2.6 GHz (2 cores), Core i5-4670 3.7 GHz (4 cores), Core i7-7820X 4 GHz (8 cores).
Try the Core Edition
The Delphi and C++Builder trials come in Core editions for VCL and FireMonkey; for C#, install Dew.Math.Core from NuGet. Leaving out the DLLs takes a license with source code.