Links
 

Update    

Site Index:

OptiVec home
VectorLib
MatrixLib
CMATH
Download
Order
Support

Downloads / Updates for Registered Users

Current version: 5.2

Registered users of our products can download the present full versions of OptiVec and CMATH from this page. In addition, here our customers who bought through an electronic distribution channel can get the rarely used libraries which are omitted from the electronically distributed versions. In order to reduce the download times, all packages are split into several parts, consisting of 
a) the documentation, 
b) the include-files (C/C++ versions only), and 
c) C++ libraries or Pascal/Delphi units for each combination of memory model and processor supported. As specified below, some rarely needed libraries are not available here, but will be sent by email upon request.

The library and unit ZIP files are password-protected. Our registered users get the passwords by e-mail. If you are a registered user and did not receive the password, please drop us a note at optivec%at%gmx.de (replace %at% by the @ sign)! Consult the documentation of your unzip program about how to uncompress password-protected files. In most cases, you will be automatically asked for the password through a popup dialogue.

You should install the files from this page over any previous version (trial or full) of OptiVec or CMATH; in other words, you should not deinstall your previous version, but simply overwrite it. If you do not have any previous version installed, you have to manually create the directories mentioned in the description below.

If you install the registered version over the Shareware version, be sure to recompile your project(s). (Remember that applications, containing functions of the Shareware version, cease functioning after 90 days and shall not run at all on your client's computers!)

Directly jump to the library selection tables:

OptiVec for Borland C/C++ CMATH for Borland C/C++
OptiVec for Visual C++ CMATH for Visual C++
OptiVec for Borland Delphi     CMATH for Borland Delphi

New features in v5.2:

  • Debug library, detecting violations of vector / matrix boundaries, which would otherwise lead to hard-to-locate memory faults. We strongly recommend to use the debug libraries in the initial development phases of an application using OptiVec. Only after dimension consistency has been checked by the debug library and you can be sure no memory issues remain, you should switch over to the high-performance libraries. Read more.
  • CMATH for Delphi:
    From Delphi 2006 on, the operators  +  -  *  /  =  :=  <>  are available. As the older Delphi versions did not allow the implementation of these operators, the CMATH versions for Delphi 4 through 2005 continue to offer only the functions add, mul as a replacement for the operators. To ensure portability, these functions remain available also in CMATH for Delphi 2006 or higher.
  • Bug fixes:
    • OptiVec for Delphi: The non-linear fitting functions were improved, mainly with respect to errors in the weighted variants and with respect to stability of the "breakout" operation.
    • OptiVec for Visual C++: Several bugs in VQI_ functions were fixed.

New features in v5.1:

  • Multi-processor library also for Delphi. All arithmetic functions are now also optimized for multi-core.Read here for details and considerations about using OptiVec on multi-processor computers.
  • P8 version, using the SSE3 instruction set of Core2Duo, AMD64x2 (and the latest series of Pentium 4) for faster complex-number multiplications in a variety of functions.
  • You should call V_initMT at the beginning of any multi-thread applications making use of OptiVec functions. Previously, this was necessary only if you used the Multi-Core libraries of OptiVec. Now, V_initMT also performs initializations which avoid previously encountered thread-safety issues inside the memory management functions like V?_vector.
  • Calculation of the center of gravity, both for vectors and for matrices:
    V?_centerOfGravityInd,    V?_centerOfGravityV,
    M?_centerOfGravityInd,   M?_centerOfGravityV.
    The V?_centerOfGravityInd variant takes the element indices as axis, whereas V?_centerOfGravityV takes a specified X axis.
  • The speed of the Fourier Transform routines was improved once more. This latest tweak makes itself felt mostly for smaller vectors (VF_FFT) and for 2D FFT (MF_FFT).
  • Alternative forms of the functions for element rotations. The new forms take the necessary buffer memory as an argument instead of requesting it from the operating system each time they are called:
    V?_rotate_buf,
    M?_Rows_rotate_buf,    M?_Cols_rotate_buf.
  • VecObj: integralV is now a member function of the vector Y, whose integral over X is being evaluated. X is passed as argument. Previously, this function was defined the other way round.
  • Bug fixes in
    VE_polyinterpol,
    VE_ratinterpol,
    MC?_read (which would occasionally fail if the input numbers were written with braces or brackets)
  • C/C++, Multi-Core Libraries only: Bug fixes in:
    V?_powexp,
    V?x_pow2,    V?x_pow10
  • P7 libraries only: bug fixes in
    MD_TmulM (large MY with uneven lenY caused an error),
    MD_SVsolve, affecting also MD_solveBySVD,    MD_safeSolve,    VD_linfit, and VD_nonlinfit: failed with non-aligned vectors (e.g., static arrays)

v5.0:

  • Multi-processor optimized library, scaling with the number of available processor cores for C/C++.
  • v4.4.0 - 4.4.5:
  • The non-linear data-fitting functions are now thread-safe
     
  • Visual C++ version only: compatibility problem with <crtdbg.h> fixed. You can now detect memory leaks by including <crtdbg.h> with the _CRTDBG_MAP_ALLOC option on. If you do so, any calls to the VecObj member function X.free() must be replaced by the synonymous member function X.dealloc();
     
  • Reorganization of the Win32 libraries for C++ compilers:

    A base library is specific for the compiler version and target configuration.
    The main library contains the functions which are independent from the target configuration, but are optimized for different processors.
     
  • Bug fixes in:
    M?_mulMT and M?_TmulM (affected matrix with a single column only),
    VLI_not (Pentium 4 only),
    VFx_exp (Pentium III, 4 only),
    MDp_FFTtoC (Pentium III, 4 only),
    MDsym_eigenvalues (Visual C++ version only).
     
  • Version 4 introduced:
    P7 version (Pentium 4+). This version extends the benefits of the earlier P6 version to double-precision and integer operations. It is, on the avarage, 20-30% faster than the 486DX/Pentium version, but will not run on CPUs lower than Pentium 4. The scalar functions of CMATH do not profit from the enhanced vector possibilities of the SSE2 command set of the Pentium 4 chip; therefore, no separate P7 version is available for CMATH. For CMATH, use the P6 version instead.
  • Mixed floating-point/integer Arithmetic operations like VF_addVI or VD_mulVUS
  • The rounding-to-integer functions now employ "silent" saturation instead of generating an error message in the case of overflow.
  • Bug fix in the P6 version of MF_LUdecompose. This bug affected also MF_inv and the single-precision data fitting functions of the P6 version.

Please choose which product you want to download / update:

OptiVec for Borland C/C++ CMATH for Borland C/C++
OptiVec for Visual C++ CMATH for Visual C++
OptiVec for Borland Delphi     CMATH for Borland Delphi

Update OptiVec for Borland C/C++

  1. Please download and unzip the documentation, OVDOC.ZIP, or the German version, OVDOCD.ZIP, into the OptiVec root directory on your computer. 
  2. Optionally, you may also download the demo programs, DEMOS.ZIP, again into the OptiVec root directory. 
  3. Now please download and unzip OVINCL.ZIP, which goes into OPTIVEC/INCLUDE. 
  4. Download all needed library ZIP files from the table below, store them in OPTIVEC/LIB and unzip them.
  5. Library TypeGeneral PurposeDebugMulti-ProcessorLarge-Vector
    P4: 486DX / Pentium / AthlonVCF4WVCF4DVCF4M ----
    P6: Pentium III+VCF6W ---- VCF6MVCF6L
    P7: Pentium 4+ / Athlon x64VCF7W ---- VCF7MVCF7L
    P8: AMD64xxx, Core2xxxVCF8W ---- VCF8MVCF8L
     
    The P6, P7, P8 versions need RAD Studio, BDS, BCB 5 or higher, or BC++ 5.x. Windows XP or Vista is required, as well.
    The Large-Vector Versions are optimized for single-processor systems for vectors and matrices larger than the size of the second-level cache of your mainboard. In these versions, the cache is bypassed during load and store operations on vector/matrix elements. A heavy penalty results from their mis-use for smaller vectors or matrices which would have fit into the cache.
    The libraries for multi-processor systems run on workstations with discrete processors as well as on multi-core processors like AMD64x2, Core2 Duo and so on.
    The libraries for down-compatibility with 386+387 as well as for all 16-bit models and for 286 fossiles are no longer updated. The old versions are, however, still available upon request. We'll send you by email what you need.
     
  6. Additionally, you need to download and link either of the following base libraries:
    ConfigurationOptiVec base library
    BC runtime library staticVCFS
    BC runtime library as DLLVCFD

     
  7. After uncompressing, you can delete all .ZIP files you downloaded.

Update CMATH for Borland C/C++

  1. Please download and unzip the documentation, CMDOC.ZIP, or the German version, CMDOCD.ZIP into the CMATH root directory on your computer.
  2. Now please download and unzip CMINCL.ZIP, which goes into CMATH/INCLUDE.
  3. Download all needed library ZIP files from the table below, store them in CMATH/LIB and unzip them.
  4. Platform486DX / Pentium / AthlonPentium III (only BC++ 5.x, BCB 5 or higher!)
    Windows 95/98/ME/NT/2000/XP/Vista CMATHF4WCMATHF6W
     
      The libraries for down-compatibility with 386+387 are still available. Upon request, we'll send you by email what you need.
  5. Additionally, you need to download and link either of the following base libraries:
    ConfigurationCMATH base library
    BC runtime library staticCMATHFS
    BC runtime library as DLLCMATHFD
     
     
  6. After uncompressing, you can delete all .ZIP files you downloaded.

Update OptiVec for Microsoft Visual C++

  1. Please download and unzip the documentation, OVDOC.ZIP, or the German version, OVDOCD.ZIP, into the OptiVec root directory on your computer.
  2. Optionally, you may also download the demo programs, DEMOS.ZIP, again into the OptiVec root directory. 
  3. Now please download and unzip OVINCL.ZIP, which goes into OPTIVEC/INCLUDE.
  4. Download all needed library ZIP files from the table below, store them in OPTIVEC/LIB and unzip them.
  5. Library TypeGeneral PurposeDebugMulti-ProcessorLarge-Vector
    P4: 486DX / Pentium / AthlonOVVC4OVVC4DOVVC4M ----
    P6: Pentium III+OVVC6 ---- OVVC6MOVVC6L
    P7: Pentium 4+ / Athlon x64OVVC7 ---- OVVC7MOVVC7L
    P8: AMD64xxx, Core2xxxOVVC8 ---- OVVC8MOVVC8L
     
    The Large-Vector Versions are optimized for single-processor systems for vectors and matrices larger than the size of the second-level cache of your mainboard. In these versions, the cache is bypassed during load and store operations on vector/matrix elements. A heavy penalty results from their mis-use for smaller vectors or matrices which would have fit into the cache.
    The libraries for multi-processor systems run on workstations with discrete processors as well as on multi-core processors like AMD64x2, Intel Core2 Duo and so on.
  6. Additionally, you need to download and link either of the following base libraries:
     
    Visual C++ versionConfigurationOptiVec base library
    Visual C++ 5, 6, 2003 Single-Thread DebugOVVCSD
    Visual C++ 5, 6, 2003Single-Thread ReleaseOVVCSR
    Visual C++ 5, 6, 2003Multi-Thread DebugOVVCMTD
    Visual C++ 5, 6, 2003Multi-Thread ReleaseOVVCMTR  
    Visual C++ 5, 6, 2003Multi-Thread, MFC as DLL, Debug OVVCMDD
    Visual C++ 5, 6, 2003Multi-Thread, MFC as DLL, Release OVVCMDR
    Visual Studio 2005Multi-Thread DebugOVVC8MTD
    Visual Studio 2005Multi-Thread ReleaseOVVC8MTR  
    Visual Studio 2005Multi-Thread, MFC as DLL, DebugOVVC8MDD
    Visual Studio 2005Multi-Thread, MFC as DLL, ReleaseOVVC8MDR
     
  7. After uncompressing them, you can delete all .ZIP files you downloaded. 

Update CMATH for Microsoft Visual C++

  1. Please download and unzip the documentation, CMDOC.ZIP, or the German version, CMDOCD.ZIP, into the CMATH root directory on your computer.
  2. Now please download and unzip CMINCL.ZIP, which goes into CMATH/INCLUDE.
  3. Download all needed library ZIP files from the table below, store them in CMATH/LIB and unzip them.
  4. Platform 486DX/Pentium/AthlonPentium III+
    Windows 95/98/ME/NT/2000/XP/VistaCMVC4CMVC6
     
  5. Additionally, you need to download and link either of the following base libraries:
     
    Visual C++ versionConfigurationCMATH base library
    Visual C++ 5, 6, 2003 Single-Thread DebugCMVCSD
    Visual C++ 5, 6, 2003Single-Thread ReleaseCMVCSR
    Visual C++ 5, 6, 2003Multi-Thread DebugCMVCMTD
    Visual C++ 5, 6, 2003Multi-Thread ReleaseCMVCMTR  
    Visual C++ 5, 6, 2003Multi-Thread, MFC as DLL, Debug CMVCMDD
    Visual C++ 5, 6, 2003Multi-Thread, MFC as DLL, Release CMVCMDR
    Visual Studio 2005Multi-Thread DebugCMVC8MTD
    Visual Studio 2005Multi-Thread ReleaseCMVC8MTR  
    Visual Studio 2005Multi-Thread, MFC as DLL, DebugCMVC8MDD
    Visual Studio 2005Multi-Thread, MFC as DLL, ReleaseCMVC8MDR
     
  6. After uncompressing them, you can delete all .ZIP files you downloaded. 

Update OptiVec for Borland Delphi

  1. Please download and unzip the documentation, OVDOC.ZIP, or the German version, OVDOCD.ZIP, into the OptiVec for Delphi root directory on your computer.
  2. Optionally, you may also download the demo programs, DEMOSD.ZIP, again into the OptiVec root directory. 
  3. Download and unzip the needed library ZIP files from the table below. If you previously used the Shareware version, be sure to overwrite the Shareware units with the registered ones downloaded here!
  4. Delphi version Processor compatibilityGeneral PurposeDebugMulti-ProcessorLarge-Vector
    Delphi 2006
    (BDS2006 or Turbo Delphi 2006)
    and Delphi 2007 (RAD Studio 2007)
    P4: 486DX / Pentium / AthlonOVD10LB4OVD10L4DOVD10L4M ----
     P6: Pentium III+OVD10LB6 ---- OVD10L6MOVD10L6L
     P7: Pentium 4+ / Athlon x64OVD10LB7 ---- OVD10L7MOVD10L7L
     P8: AMD64xxx, Core2xxxOVD10LB8 ---- OVD10L8MOVD10L8L
          
    Delphi 2005P4: 486DX / Pentium / AthlonOVD9LIB4OVD9LB4DOVD9LB4M ----
     P6: Pentium III+OVD9LIB6 ---- OVD9LB6MOVD9LB6L
     P7: Pentium 4+ / Athlon x64OVD9LIB7 ---- OVD9LB7MOVD9LB7L
     P8: AMD64xxx, Core2xxxOVD9LIB8 ---- OVD9LB8MOVD9LB8L
          
    Delphi 7P4: 486DX / Pentium / AthlonOVD7LIB4OVD7LB4DOVD7LB4M ----
     P6: Pentium III+OVD7LIB6 ---- OVD7LB6MOVD7LB6L
     P7: Pentium 4+ / Athlon x64OVD7LIB7 ---- OVD7LB7MOVD7LB7L
     P8: AMD64xxx, Core2xxxOVD7LIB8 ---- OVD7LB8MOVD7LB8L
          
    Delphi 6P4: 486DX / Pentium / AthlonOVD6LIB4OVD6LB4DOVD6LB4M ----
     P6: Pentium III+OVD6LIB6 ---- OVD6LB6MOVD6LB6L
     P7: Pentium 4+ / Athlon x64OVD6LIB7 ---- OVD6LB7MOVD6LB7L
     P8: AMD64xxx, Core2xxxOVD6LIB8 ---- OVD6LB8MOVD6LB8L
          
    Delphi 5P4: 486DX / Pentium / AthlonOVD5LIB4OVD5LB4DOVD5LB4M ----
     P6: Pentium III+OVD5LIB6 ---- OVD5LB6MOVD5LB6L
     P7: Pentium 4+ / Athlon x64OVD5LIB7 ---- OVD5LB7MOVD5LB7L
     P8: AMD64xxx, Core2xxxOVD5LIB8 ---- OVD5LB8MOVD5LB8L
          
    Delphi 4P4: 486DX / Pentium / AthlonOVD4LIB4OVD4LB4DOVD4LB4M ----
     P6: Pentium III+OVD4LIB6 ---- OVD4LB6MOVD4LB6L
     P7: Pentium 4+ / Athlon x64OVD4LIB7 ---- OVD4LB7MOVD4LB7L
     P8: AMD64xxx, Core2xxxOVD4LIB8 ---- OVD4LB8MOVD4LB8L

    The Large-Vector Versions are for vectors and matrices larger than the size of the second-level cache of your mainboard. In these versions, the cache is bypassed during load and store operations on vector/matrix elements. A heavy penalty results from their mis-use for smaller vectors or matrices which would have fit into the cache.
    The units back-compatible to 386+387 are still available upon request: We'll send you by email what you need.
  5. After uncompressing them, you can delete all .ZIP files you downloaded. 

Update CMATH for Borland Delphi

  1. Please download and unzip the documentation, CMDDOC.ZIP, or the German version, CMDOCD.ZIP, into the CMATH for Delphi root directory on your computer.
  2. Download and unzip the needed library ZIP files from the table below. Be sure to overwrite the units in CMATH/LIB4 with the units contained in CMDxLIB4.ZIP, and the units in CMATH/LIB6 with the units in CMDxLIB6.ZIP.
  3. Delphi version 486DX / Pentium Pentium III+
    Delphi 2006 (BDS2006 or Turbo Delphi 2006)
    and Delphi 2007 (BDS2007
    CMD10LB4CMD10LB6
    Delphi 2005CMD9LIB4CMD9LIB6
    Delphi 7CMD7LIB4CMD7LIB6
    Delphi 6CMD6LIB4CMD6LIB6
    Delphi 5CMD5LIB4CMD5LIB6
    Delphi 4CMD4LIB4CMD4LIB6
    The units back-compatible to 386+387 are still available upon request: We'll send you by email what you need.
  4. After uncompressing them, you can delete all .ZIP files you downloaded.
Copyright © 1998-2008 OptiCode - Dr. Martin Sander Software Development
 
Last modified: 5 March 2008