MtxVec started as an object-oriented numerical library covering linear algebra for matrices and vectors in 1999. Ever since then it has been improving it's speed and functionality. Today MtxVec stands for unprecedented high performance as a math library with a wide range of mathematical functionality. It enables Delphi and .NET developers with truly rapid scientific application development.
There are two main reasons. Speed and functionality. If your application needs to deliver real time mathematical results, you need speed. If your application needs to implement special, less known mathematical algorithms, not covered in standard math libraries, you need functionality. In either case MtxVec is a good choice.
Users include scientists from research labs at Universities, corporate development teams for process control applications and other commercial application designers. In general it's those who know and need math and recognize its potential for their cause.
From the users point of view it's as easy as possible. After including the library and reading the Quickstart introduction, you're ready to begin and let the real hard work happen in the background - in assembly level optimized classes.
No. MtxVec uses some functions from MKL library and an additional license is not required.
The support for Linux is still an open option and can happen if there will be enough demand.
Yes
MtxVec already runs at optimal performance taking advantage of SIMD and SSE2 on AMD's.
If all the functions used to write another function run at 90% efficiency, then the new function will also run at 90% efficiency. This means that you can build very fast algorithms by carefully using MtxVec primitives.
MtxVec is a real High Performance object-oriented numerical library covering linear algebra, optimization, statistics, expression evaluators and many other frequently used math functions. MtxVec can deliver very high single and double precision floating point performance. It takes advantage of SSE2/SSE3/SSE4 vectorized instruction sets of Intels latest CPU's, supports multi-core CPU's and symmetric multiprocessing for many of its functions. All the performance sensitive processing of the MtxVec is performed in the unmanaged code. All the unmanaged code interfaces have been very carefully designed and the library is able to deliver nearly the same performance .NET in compare to its C++ version. The final result is the top notch performance of unmanaged code available within a managed environment in a way safe for the programmer. MtxVec features extensive test database, explicit range checking and and is very suitable for applications requiring a lot of memory for keeping large matrices and vectors in memory. When required it uses the unmanaged memory and all the load of data structures for which the default .NET garbage collector was not optimized for, is routed directly to the operating system.
There are two main reasons. Speed and functionality. If your application needs to deliver real time mathematical results, you need speed. If your application needs to implement special, less known mathematical algorithms, not covered in standard math libraries, you need functionality. In either case MtxVec is a good choice.
Users include scientists from research labs at Universities, corporate development teams for process control applications and other commercial application designers. We use these libraries ourselfs on each project we work on. This helps improve and further develope the library. The fact that we use the product that we make, ensures that the concept and user interface really does suit the actual programmer.
From the users point of view it's as easy as possible. After adding the assembly to the toolbox and adding the "using Dew.Math;" command to the C# source file, the library is ready to be used. We have included a large number of examples in the help files and also as executables.
The interface to unmanaged code is made in a very effective way. For applications working with vectors and matrices, the performance of the memory management and consequently the performance of the .NET application as a whole will improve substantially.
Yes. GC is fully supported for fast application development, but where a need arises, MtxVec can bypass the GC to deliver higher performance and lower usage of memory.
There are several advantages. Well tested code which did not have to be translated in to a new language possibly introducing new bugs is one. Another advantage is performance, this includes both the direct execution performance and reduced memory usage when solving the same kind of problems. The performance differences is really by "orders of magnitude". The main aim of MtxVec so to leave .NET developers the productivity, without paying with the performance.
No. MtxVec uses some functions from MKL library and an additional license is not required.
The support for Linux is still an open option and can happen if there will be enough demand.
Yes.
All versions from .NET v2.0.
Large parts of MtxVec are written in C#. This includes all the UI classes. Future versions will use even more C# code.
Yes. They use unmanaged code though, because it is not possible to write assembler in .NET.
Even the best x86 native compilers today still use specialy optimized libraries. And there are two things that make MtxVec special: high quality code of a vast array of different numerical algorithms and speed. While in theory everything is possible, the reality of today shows astounding performance gains (10-30x) for numerical applications which use MtxVec against custom code. The only way to expirience those gains, is to try the library.
© DewResearch 1997 - 2020 All Rights Reserved.