We have seen dozens of signal processing or scientific calculation applications written in Delphi, and probably most of them have utilized the OptiVec. OptiVec offers a wide range of functions for scientific use.
The OptiVec includes the completely vectorized models of all operators and math functions of C/C++/Pascal/Delphi for all integer and floating-point data types.
OptiVec has three main groups of functions:
- VectorLib – Vector Functions
- MatrixLab – Matrix Functions
- CMATH – Complex number math functions
a: array[0..99] of Single; (* classic static array *)
b: fVector;(* VectorLib vector *)
b := VF_vector(100);
VF_equ1( @a, 100 ); (* set first 100 elements of a = 1.0 *)
VF_equC( b, 100, 3.7 ); (* set first 100 elements of b = 3.7 *)
// ------------------------------
ws: VF_NONLINFITWORKSPACE;
fopt: VF_NONLINFITOPTIONS;
V_getNonlinfitOptions( @fopt );
// at this point, modify fopt as desired...
VF_nonlinfit( ParValues, AStatus, nParameters, X, Y, sz, @ModelFunc, @DerivativeFuncs, @ws, @fopt );
Furthermore, OptiVec has recent new features:
- Enhanced thread-safety for all linear system operations
- P9 libraries utilizing AVX, AVX2, and FMA for the highest performance
- CUDA-enabled libraries for all target compilers (currently only Windows)
Be sure to head over and check out the OptiVec in the GetIt portal and download it from the IDE