      *****************************************************************
      *                                                               *
      *                      OptiVec for C++ Builder                  *
      *           (Borland / Embarcadero C / C++, RAD Studio)         *
      *                                                               *
      *                         Demo Version 8                        *
      *****************************************************************

Contents:
     1. Introduction
     2. System requirements
     3. Installation
     4. Running the examples
     5. Documentation
     6. What's New?
     7. Copyright
     8. Registered Version

1. Introduction
---------------
Use vector functions instead of loops - if it matters to you how fast and
how accurately your data are processed!
The largest portion of almost all programs processing numerical data
consists of loops. Replace these loops by the specialized vector
and matrix functions of OptiVec, and exploit all the advantages of
vectorized programming:

- OptiVec was almost entirely written in Assembly language. The result is a
  highly optimized and numerically accurate code, running, on average, about
  3 times faster than compiled loops.

- fully vectorized forms of all operators and functions of the language
  C/C++ for all integer and floating-point (including complex) data types

- Additionally many other real and complex math functions, statistics,
  analysis, FFT techniques, graphics - in total more than 3000!

- Simple and logical syntax, for example

  "VF_exp( Y, X, size );"      for Y[i] = exp( X[i] ) with "float" arrays,
  "VD_FFT( Y, X, size, 1 );"   for double-precision forward FFT
  "ME_mulM( MZ, MX, MY, htX, lenX, lenY );"
                               for extended-precision matrix multiplication

2. System requirements
----------------------
This version of OptiVec is designed for PC computers, running under
64-bit or 32-bit Windows and equipped at least with an AMD64x2 or
Intel Core2Duo CPU (the 32-bit libraries are back-compatible to 
Pentium / Athlon).

This package includes the libraries to be used with the Embarcadero / 
Borland / CodeGear  series of C/C++ compilers (RAD Studio, Borland C++,
C++ Builder, Developer Studio, Turbo C++), 32-bit and/or 64-bit (the
latter require RAD Studio or C++ Builder XE3 or higher)

If you need versions for other compilers, please visit 
https://www.optivec.com/download 

At present, OptiVec is available for the following target compilers:
Windows:
- C++ Builder  (Embarcadero RAD Studio; formerly Borland C++)
- Microsoft Visual C++
- GCC, the GNU Compiler Collection
- LLVM Clang
- Delphi (Embarcadero RAD Studio)
- Lazarus / FreePascal
Linux:
- GCC or CLang


3. Installation
---------------
a) To install the Demo version of OptiVec, you need to execute 
   INSTALL.EXE,  contained in the ZIP file you downloaded.

b) In case you wish to install OptiVec for several target compilers
   (e.g., C++ Builder and Delphi or C++ Builder and Visual Studio), 
   these versions may be installed one after the other. You are free
   to choose the same directory or different directories, just as you like.

c) Windows has a habit of sometimes warning users after the installation
   of third-party products: "Setup possibly incomplete". If INSTALL.EXE
   did finish and displayed this README.TXT file, you know that the
   installation is complete.

d) After you completed the installation, you must set the search paths for
   include-files and for libraries according to your OptiVec directory choice:
   Say, your OptiVec directory is C:\OPTIVEC. Then, these additional search 
   paths are:
   C:\OPTIVEC\INCLUDE      for the include-files.
   C:\OPTIVEC\LIB          for the libraries.

   Add these paths to the standard settings in the menu
   "Options / Project / Directories"
   (use a semicolon to separate entries in these fields.)

e) You always have to include two OptiVec libraries in your project. 
   One of these libraries is an interface or "base" library and specific for the 
   individual version of the target COMPILER. The other contains the bulk of the 
   high-performance functions and is specific for the target PROCESSOR. 
   Unfortunately, version incompatibilities forced us to build two sets of
   base libraries, one for all C++ Builders up to 11.x, the other for the
   newer C++ Builder / RAD Studio versions starting with 12.x.
   Details are described in HANDBOOK.HTM, chapter 1.4.
        
f) Using OptiVec with the CLang-enhanced C++ compilers, bcc32c and bcc64x:
   The bcc32c and bcc64x compilers are not binary compatible with the 
   "classic" Borland compilers bcc32 and bcc64. This means you need different
   OptiVec libraries to be used with the CLang-enhanced compilers.
   Again, see HANDBOOK.HTM, chapter 1.4 for details.
 
 
4. Running the examples
-----------------------

Check your installation by compiling and running the included demo files.
Be sure to select the project files most appropriate for your compiler 
version, as described below.
If you build your own projects and get compiler errors like "Cannot open 
include file ...", or a linker error "Unresolved external", the library 
and include paths are probably not set correctly or the libraries are not 
properly included in your project.

Depending on your hardware, you have the choice between two versions of
the OptiVec libraries: Either the general-purpose and debug library,
running on all CPUs, even down to 486DX or AMD K6 / Athlon.
Or the multi-core optimized version, requiring at least an AMD 64 x2
or a Core2 Duo processor.
See chapter 1.1.2 of HANDBOOK.HTM for details about the various libraries.

Open
VDEMO.groupproj ("classic" Borland compiler, both 64-bit and 32-bit),
VDEMO_BCC64x.groupproj ("modern" CLang-enhanced compiler BCC64x, 64-bit only),
VDEMO_BCC32C.groupproj (CLang-enhanced compiler BCC32C, 32-bit only, 
                        C++ Builder 10.4 or higher),  or
VDEMO_BCC32Cu10_3.groupproj (CLang-enhanced compiler BCC32C, 32-bit only,
                        C++ Builder up until 10.3)

This project group contains the projects you have to open individually in the
earlier versions of RAD Studio and BC++ Builder, as described in the following.

All versions of RAD Studio and BC++ Builder:
      VDEMO.cbproj    is a project for RAD Studio 13.x, 12.x, 11.x, 10.x,
                      XE series, 2010, 2009
      VDEMO.bdsproj   is for BDS 2006 and 2007

  For the command-line compiler, take VDEMOW.CPP, entering
      BCC32 -W -Iinclude vdemow.cpp lib\vcf4d.lib lib\vcfs.lib
      (or, for multi-core performance, vcf8m.lib instead of vcf4d.lib)
      and run the program by typing:  vdemow

Speed demo (a command-line program demonstrating the difference between
    OptiVec functions and compiled loops):
      VSpeedDemo.cbproj    is a project for RAD Studio  13.x, 12.x, 11.x,
	                       10.x, XE series

Data-fitting demo:
      FITDEMO.cbproj    is a project for RAD Studio  13.x, 12.x, 11.x,
	                    10.x, XE series, 2010, 2009
      FITDEMO.bdsproj   is for BDS 2006 and 2007

      For the command-line compiler, use FITDEMOW.CPP and
      follow the analogous instructions given above for VDEMO.

Complex-number demo:
      CDEMO.cbproj    is a project for RAD Studio 13.x, 12.x, 11.x,
	                  10.x, XE series, 2010, 2009
      CDEMO.bdsproj   is for BDS 2006 and 2007

      For the command-line compiler, use CDEMO.CPP 
      and follow the instructions given in the header of that file.

Mandelbrodt demo:
       (actually, this is not the original Mandelbrodt, but a modified formula
        with several free parameters to play with.)
      MANDEL.cbproj    is a project for RAD Studio 13.x, 12.x, 11.x, 10.x,
	                   XE series, 2010, 2009
      MANDEL.bdsproj is for BDS 2006 and 2007

      For the command-line compiler, use MANDELW.CPP.
      Follow the analogous instructions given above for VDEMO.


5. Documentation
----------------
The full OptiVec documentation is to be found in the files
HANDBOOK.HTM, FUNCREF.HTM, MATRIX.HTM, and CMATH.HTM to be read with
an HTML browser like Edge, Chrome, or Opera.
Some older browser versions may crash when loading large HTML files 
like FUNCREF.HTM. If that happens, we recommend to use a more recent
browser version or the online documentation on https://www.optivec.com.


6. What's New?
--------------
Version 8.4.x:
  - 64-bit only:
    - New "10", "10M", and "10C" libraries in the Registered Version.
      They have the same minimum requirements as the "9", "9M" and "9C"
      libraries, but they check for the availability of AVX512 and
      use it, if possible.
  - Complete overhaul of the double-precision mathematical and statistical
    functions (after the corresponding single-precision function have
    been modernized over the versions 8.2.x). The new implementations
    are much faster.
  - Overhaul of most complex-valued math functions.

  - new functions:
    V?_isconst:  returns 1 (True), if all elements are equal
    V?_subvector_neg: inverts the sign of all elements of a subvector
	inverse hyperbolic functions, both real and complex:
	   VF_asinh, VF_acosh, VF_atanh, VCF_asinh, VCF_acosh, VCF_atanh
	   and their double- and extended-precision analogues

  - in the CMATH part:
    Faster implementation of most cf_ and cd_ functions
    new: cf_asinh, cf_acosh, cf_atanh along with their cd_ and ce_ analogues

For information on previous versions, see VersionHistory.txt.
   
7. Copyright
------------
The copyright owner of this product as a whole and of all its constituent
parts is
         OptiCode
         Dr. Martin Sander Software Development
         Brahmsstr. 6
         D-32756 Detmold
         Germany
         e-mail: optivec@gmx.de

This Demo version of OptiVec is freely distributable in unchanged form.
For the distribution of applications created using OptiVec, you need the
registered version. The detailed licence terms are described in chapter 1.2
of the file HANDBOOK.HTM.


8. Registered Version
---------------------
If you like OptiVec, please consider acquiring the registered version.
The registered version

-  has individually optimized libraries for special high-performance
   techniques and for various degrees of processor backward-compatibility:

      "P10" (up-to-date 64-bit processors; will work down to
            Intel Core i Haswell+, AMD Steamroller+, but not Celeron etc.!):
            highest performance through AVX512 instructions, if available;
            if AVX512 is not avilable, AVX and AVX2 are employed.
      "P9" (will work down to Intel Core i Haswell+, AMD Steamroller+,
            but not Celeron etc.!):
            high performance through AVX and AVX2 instructions 
      "P8"  (Core2xxx+, AMD64x2+):
            uses SSE, SSE2, and SSE3 commands
      "P4", units using the FPU for maximum precision and
            safety of floating-point operations, back-compatible 
            to 486DX/Pentium/Athlon (32-bit only) 
      "Multi-core" (multi-core processors or multi-processor configurations):
            auto-threading libraries, gaining speed by distributing the work-
            load over the available processor cores
      "CUDA" (CUDA-enabled nVidia graphics card):
            libraries to be used on systems with an installed CUDA device,
            yielding highest performance for large vectors and matrices
      "Dimension-consistency debug" (32-bit: only P4;  64-bit: only P8).


-  entitles you to two years of free updates
   (by downloading from our web site)

-  costs:
                                 single-compiler         master licence for all
                                   licence                supported compilers         
      commercial licence         EUR  199.00                 EUR 299.00
      educational licence        EUR   99.00                 EUR 149.00

The above prices include 19% German VAT.
If you are ordering from outside the EU, or if you have a European VAT ID,
you are exempt from German VAT, and it will be deduced from your bill,
but you may have to pay your local VAT and/or import duties according to
local laws.

See https://www.optivec.com/order  for ordering options and volume discounts.     


    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Copyright (C) OptiCode - Dr. Martin Sander Software Dev. 1996-2026
