MtxVec Core Edition is the full source version of MtxVec. It allows MtxVec to be compiled completely without reference to external dlls and run with pure pascal or C# code only (100% full source code). When used with Embarcadero FireMonkey you can use common source to compile the applications for Windows, Linux, OSX, iOS and Android. The same as possible for the source of Dew Math in C# and .NET Core.
With a compiler switch, you can change how MtxVec will be included in to your application.
The Core edition is the key new feature added with MtxVec v5. It allows MtxVec to be compiled completely without reference to external dlls and run with pure native code only (100% full source code). All the algorithms relevant to the add-on packages of DSP Master and Stats Master have been implemented in pascal/C#. The numerical accuracy is comparable. Great care was taken when translating Fortran Lapack code to pascal/C# to maintain nearly line by line comparability. The code runs slower (of course) than its Windows dll based counterpart, but greatly simplifies distribution on Windows and to other platforms like Android and OSx/iOS.
Delphi related features added with MtxVec v5.3:
On OSX and iOS the MtxVec now interfaces Apple Accelerate framework. The big advantage here is that no additional libraries need to be included with distribution. The following sub-systems are mapped : BLAS, LAPACK (including complex number support), math functions (sin, cos, tan, exp, ln, ...), and the FFT library. There is some support in the Accelerate framework for vectorized math, but that is not as comprehensive as on the Windows.
The DSP Master of course benefits from the faster FFTs and optimized dot product functions. Additionaly TSignalCoreAudioIn and TSignalCoreAudioOut have been upgraded to support playback and recording on Android and iOS. This simplifies development of audio processing applications immensly, because the entire application can now be debugged on Windows and only deployed to the mobile device. On the iOS the audio pack used is RemoteIO and on Android it is the AudioRecord and AudioTrack classes. These are then optimized for widest possible hardware and OS version compatibility.
The Delphi math unit and default System unit math functions have been bypassed for both Android and iOS with Math387 which now run about 20x faster by making direct using of the libm library.
According to our tests, an Apple mobile application is capable of 10x faster CPU code execution, due to better hardware and provided accelerator framework libraries, than high-end Android devices. The performance of such iOS apps is very close to Delphi Windows desktop applications when running without special optimizations. Bellow you can find some basic benchmarks using one CPU core for orientation.
Computing: for i := 0 to 511 do c[i] := sqrt(sqr(a[i]) + sqr(b[i])), 1024x. single precision
Computing FFT (1024 samples real to complex). 1024x, single precision
Cross-platform FireMonkey support with MtxVec requires at least Embarcadero Rad Studio XE10.