Skip to main content

Dew Research Products - FAQ

FAQ about Dew Research products

  • What is MtxVec really?

    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.

    Why use MtxVec when Delphi already has math functions?

    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.

    Who uses these libraries?

    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.

    How does it work?

    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.

    Do I need to buy Intel MKL for MtxVec to work?

    No. MtxVec uses some functions from MKL library and an additional license is not required.

    Will MtxVec run on Linux?

    The support for Linux is still an open option and can happen if there will be enough demand.

    What about support for 64 bits?

    Yes

    Are there going to be specialy optimized libraries for the AMD CPU's?

    MtxVec already runs at optimal performance taking advantage of SIMD and SSE2 on AMD's.

    Which compilers does MtxVec support?

    Latest version supports all Delphi/C++ compilers from including CodeGear Rad Studio 2007. Older versions are also available for download they start with Delphi 6.

    Since MtxVec is based on routines only those algorithms available in the library are speeded up?

    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.

  • What is MtxVec for .NET?

    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.

    Why use MtxVec for .NET when Visual Studio already has math functions?

    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.

    Who uses these libraries?

    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.

    How does it work?

    From the users point of view it's as easy as possible. After installing the packages from nuget.org and adding the "using Dew.Math; using Dew.Math.Units;" 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.

    Won't the use of unmanaged code slow down the application?

    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.

    For those which prefer portability, we have a Core Edition, which does not depend on unmanaged code.

    Are MtxVec object still garbage collected?

    Yes.

    What is the advantage of MtxVec against managed code math libraries?

    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.

    Do I need to buy Intel MKL for MtxVec to work?

    No. MtxVec uses some functions from MKL library and an additional license is not required.

    Will MtxVec run on Linux?

    Yes.

    Which .NET framework versions are supported?

    All versions from .NET v2.0, with .NET Core starting with v5.

    Which compilers does MtxVec support?

    The standard .NET languages C#, VB.NET and managed C++.

    Do MtxVec assemblies pass PEVerify test?

    Yes. They use unmanaged code though, because it is not possible to write assembler in .NET.

    Wont MtxVec become obsolete once .NET compilers are improved?

    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.