What's new in OptiVec for C++ Builder 8.2.4

Jan 28, 2024
  • Recent new features:
  • Overhauled linear system solvers (LU decomposition and related functions)
  • Much faster implementation of most single-precision math functions
  • VF_polyOdd, VF_polyEven: evaluate polynomials consisting only of odd or only of even terms
  • VF_polyfitOdd, VF_polyfitEven: fit data to odd-only or even-only polynomial representation
  • VF_ratio, VF_ratioOddEven, VF_ratioEvenOdd: evaluate ratios (one polynomial divided by another)
  • Support for latest MS and Embarcadero compiler versions: RAD Studio 11 Alexandria, Visual Studio 2022
  • Support for Linux with GCC or CLang

New in OptiVec for C++ Builder 8.2.3 (Jan 20, 2024)

  • Overhauled linear system solvers (LU decomposition and related functions)
  • Much faster implementation of most single-precision math functions
  • VF_polyOdd, VF_polyEven: evaluate polynomials consisting only of odd or only of even terms
  • VF_polyfitOdd, VF_polyfitEven: fit data to odd-only or even-only polynomial representation
  • VF_ratio, VF_ratioOddEven, VF_ratioEvenOdd: evaluate ratios (one polynomial divided by another)
  • Support for latest MS and Embarcadero compiler versions: RAD Studio 11 Alexandria, Visual Studio 2022
  • Support for Linux with GCC or CLang

New in OptiVec for C++ Builder 8.2.2 (Jan 8, 2024)

  • Overhauled linear system solvers (LU decomposition and related functions)
  • Much faster implementation of most single-precision math functions
  • VF_polyOdd, VF_polyEven: evaluate polynomials consisting only of odd or only of even terms
  • VF_polyfitOdd, VF_polyfitEven: fit data to odd-only or even-only polynomial representation
  • VF_ratio, VF_ratioOddEven, VF_ratioEvenOdd: evaluate ratios (one polynomial divided by another)
  • Support for latest MS and Embarcadero compiler versions: RAD Studio 11 Alexandria, Visual Studio 2022
  • Support for Linux with GCC or CLang

New in OptiVec for C++ Builder 8.2 (Jul 14, 2023)

  • Overhauled linear system solvers (LU decomposition and related functions)
  • Much faster implementation of most single-precision math functions
  • VF_polyOdd, VF_polyEven: evaluate polynomials consisting only of odd or only of even terms
  • VF_polyfitOdd, VF_polyfitEven: fit data to odd-only or even-only polynomial representation
  • VF_ratio, VF_ratioOddEven, VF_ratioEvenOdd: evaluate ratios (one polynomial divided by another)
  • Support for latest MS and Embarcadero compiler versions: RAD Studio 11 Alexandria, Visual Studio 2022
  • Support for Linux with GCC or CLang

New in OptiVec for C++ Builder 8.1.3 (Jul 18, 2022)

  • Recent new features:
  • Support for latest MS and Embarcadero compiler versions: RAD Studio 11 Alexandria, Visual Studio 2022
  • Support for Linux with GCC or CLang
  • Enhanced thread-safety for all linfit and nonlinfit functions.
  • Enhanced thread-safety for all linear system operations (LUD and SVD based).
  • P9 libraries utilizing AVX, AVX2, and FMA for highest performance on processors from 4th-generation Intel Core i (Haswell+) or AMD Excavator+ on.
  • CUDA-enabled libraries for all target compilers (currently only Windows).

New in OptiVec for C++ Builder 8.1.2 (Sep 12, 2021)

  • Compatibility with latest compiler version RAD Studio 10.4 Sydney

New in OptiVec for C++ Builder 8.0.0 (May 27, 2020)

  • Compatibility with newest Embarcadero compiler version RAD Studio 10.4
  • Overhaul of cudaOptivec libraries, both in terms of performance increases and bug fixes

New in OptiVec for C++ Builder 7.3.3 (Jul 2, 2019)

  • New:
  • all FFT and FFT-based functions now have an additional version which explicitly takes a pointer to user-supplied buffer memory, thereby improving efficiency for multiple calls to any of those functions.
  • The wrongly designed MF_spectrum was replaced by a new version.
  • MF_xspectrum, MF_xspectrumAbs: spatial cross spectrum
  • MF_coherence: spatial coherence function
  • VCF_revconj: complex conjugate in reserved element ordering
  • Bug fixes in the following functions:
  • V?_ODtoFwDark, V?_ODtoDwDark, V?_ODtoEwDark
  • VFx_divrC
  • VF_erf, VFx_erf, VF_erfc, VFx_erfc
  • MCF_LUdet

New in OptiVec for C++ Builder 7.3 (Aug 24, 2018)

  • New: Master License available, covering all supported target compilers (bundle, comprising all inividual "OptiVec for xxx" products)
  • New:
  • VF_hexprint (print in hexadecimal format to stdout),
  • VF_fhexprint (print in hexadecimal format into a text file),
  • VF_chexprint ((print in hexadecimal format to the console)
  • New: V_setFPErrorHandling:
  • This function allows to determine which types of math errors lead to a notification (popup window or console message, depending on setting in V_setErrorEventFile), and which types of math errors lead to the program being aborted. This function acts only in the debug libraries, as the production libraries always treat math errors silently and never actively abort program execution. The introduction of this function became necessary by the deprecation of the _matherr mechanism in all modern compilers. Should you still define _matherr in order to influence the behaviour of OptiVec functions, you will need to switch over to V_setFPErrorHandling.
  • Several unconformities of header files with the latest C and C++ standards were fixed; as far as we are aware, this does not lead to the necessity of changing existing user code.

New in OptiVec for C++ Builder 7.2.0 (May 9, 2018)

  • MT version can now handle up to 128 processor cores
  • New: V_limitThreadsPerFunc allows to limit the number of threads
  • any given OptiVec function can reserve for itself (recommended
  • for computers with > 8 or 16 processor cores)
  • Improved speed (up to 10x for large vectors) of all V?_sort and
  • V?_sortind functions (64-bit only).
  • New: VCF_Reequ0 sets the real part of all vector elements to zero,
  • leaving the imaginary parts untouched.
  • VCF_Imequ0 sets the imaginary parts to zero
  • similarly for matrix rows / columns / diagonal:
  • MCF_Row_Reequ0, MCF_Row_Imequ0,
  • MCF_Col_Reequ0, MCF_Col_Imequ0,
  • MCF_Dia_Reequ0, MCF_Dia_Imequ0

New in OptiVec for C++ Builder 7.1.8 (Mar 1, 2018)

  • All functions which involve setting thresholds for editing or neglecting values have got a new way to set these thresholds. Previously, this threshold could only be set by changing the pre-set default value, which is obviously not thread-safe.
  • Now the preferred way is to call:
  • V?_convolvewEdit, M?_convolvewEdit
  • V?_deconvolvewEdit, M?_deconvolvewEdit
  • M?_LUdecomposewEdit
  • M?_solvewEdit
  • M?_invwEdit
  • M?_SVsolvewEdit
  • M?_solveBySVDwEdit
  • M?_safeSolvewEdit
  • V?_linfitwEdit, V?_linfitwWwEdit, M?_linfitwEdit, M?_linfitwWwEdit,
  • V?_multiLinfitwEdit, V?_multiLinfitwWwEdit,
  • M?_multiLinfitwEdit, M?_multiLinfitwWwEdit.
  • All these functions take the threshold as an extra argument.
  • All functions based on LU decomposition:
  • M?_LUdecompose, M?_LUdecomposewEdit
  • M?_inv, M?_invwEdit
  • M?_solve, M?_solvewEdit now give more detailed information in their return value:
  • 0: regular result
  • 1: singular matrix; calculation failed
  • 2: (nearly) singular matrix; calculation succeeded through pivot editing
  • New: M?_Row_equmV, M?_Col_equmV, M?_Dia_equmV: copy the negative of a vector into a cow / column / the diagonal of a matrix
  • New: MC?_Row_equVconj, MC?_Col_equVconj, MC?_Dia_equVconj: copy the complex conjugate of a vector into a cow / column / the diagonal of a matrix
  • Improved speed for all V?_maxind, V?_minind, V?_absmaxind, and V?_absminind routines in the MT libraries.
  • Improved speed for M?_FFTtoC (64-bit only)
  • Improved stability for all nonlinfit functions

New in OptiVec for C++ Builder 7.1.7 (Mar 1, 2018)

  • Support for Lazarus / FreePascal
  • Compatibility with latest compiler versions (Visual Studio 2017, Delphi and C++ Builder: 10.1 Berlin, 10.2 Tokyo).
  • P9 libraries for 4th-generation Intel Core i (Haswell+) or AMD Excavator+, utilizing AVX, AVX2, and FMA for highest performance.
  • CUDA-enabled libraries for all target compilers.
  • Additions to the signal-procession functions: VF_xspectrum (cross-spectrum) and VF_coherence.

New in OptiVec for C++ Builder 7.1.6 (Jan 11, 2018)

  • Support for Lazarus / FreePascal
  • Compatibility with latest compiler versions (Visual Studio 2017, Delphi and C++ Builder: 10.1 Berlin, 10.2 Tokyo).
  • P9 libraries for 4th-generation Intel Core i (Haswell+) or AMD Excavator+, utilizing AVX, AVX2, and FMA for highest performance.
  • CUDA-enabled libraries for all target compilers.
  • Additions to the signal-procession functions: VF_xspectrum (cross-spectrum) and VF_coherence.

New in OptiVec for C++ Builder 7.1.2 (Feb 15, 2017)

  • Support for Lazarus / FreePascalö
  • Compatibility with latest compiler versions (Visual Studio 2015 2017, Delphi and C++ Builder: 10 Seattle and 10.1 Berlin).
  • P9 libraries for 4th-generation Intel Core i (Haswell+) or AMD Excavator+, utilizing AVX, AVX2, and FMA for highest performance.
  • CUDA-enabled libraries for all target compilers.

New in OptiVec for C++ Builder 7.03 (Jun 30, 2016)

  • Compatibility with latest compiler versions (Visual Studio 2015, Delphi and C++ Builder: 10 Seattle and 10.1 Berlin).
  • P9 libraries for 4th-generation Intel Core i (Haswell+) or AMD Excavator+, utilizing AVX, AVX2, and FMA for highest performance.
  • CUDA-enabled libraries for all target compilers.

New in OptiVec for C++ Builder 6.5 (Jan 24, 2013)

  • New features:
  • Delphi XE 3 libraries.
  • 64-bit libraries for all target compilers (Visual Studio: VS2005 or higher; C++ Builder / RAD Studio: XE3 or higher; Delphi: XE2 or higher).

New in OptiVec for C++ Builder 6.4.0 (Sep 10, 2012)

  • Delphi XE 2 libraries.
  • 64-bit libraries for Visual C++ and Delphi XE2.

New in OptiVec for C++ Builder 6.3.5 (Apr 23, 2012)

  • Delphi XE 2 libraries.
  • 64-bit libraries for Visual C++ and Delphi XE2.

New in OptiVec for C++ Builder 6.3.0 (Jan 20, 2012)

  • New features:
  • Delphi XE 2 libraries.
  • 64-bit libraries for Visual C++ and Delphi XE2.

New in OptiVec for C++ Builder 6.0.4 (May 20, 2011)

  • New features:
  • Delphi XE libraries.
  • 64-bit libraries for Visual C++.

New in OptiVec for C++ Builder 6.0.2 (May 3, 2011)

  • Delphi XE libraries.
  • 64-bit libraries for Visual C++.

New in OptiVec for C++ Builder 5.3.2 (Jan 18, 2010)

  • Integer Matrix functionality.
  • Debug library, detecting violations of vector / matrix boundaries, allowing to track and avoid resulting memory faults, whose cause previously was very difficult to locate. Read more here.
  • Multi-processor optimized library, scaling with the number of available processor cores. Read here for details and considerations about using OptiVec on multi-processor computers.
  • Compatibility with latest compiler versions