      *****************************************************************
      *                                                               *
      *                   C M A T H  for C++ Builder                  *
      *           (Borland / Embarcadero C / C++, RAD Studio)         *
      *                                                               *
      *                            Version 8                          *
      *****************************************************************

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


1. Introduction
---------------
CMATH is a comprehensive library for complex-number arithmetis and
mathematics, both in cartesian and in polar coordinates.
All functions may alternatively be called from classic C with
type-specific function names (like cf_sin, cd_exp, pe_sqrt),
or from C++ with overloaded function names and operators.

Superior speed, accuracy and safety are achieved through the implementation
in Assembly language (as opposed to the C++ code of other complex class
libraries).

Each of the three floating-point accuracies (float, double, and extended)
is given its own, optimized version of each function.


2. System requirements
----------------------
This version of CMATH is designed for PC systems,
equipped with a single- or multi-core CPU.

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, CMATH is available for the following target compilers:
- C++ Builder  (Embarcadero RAD Studio; formerly Borland C++)
- Microsoft Visual C++
- GCC, the GNU Compiler Collection
- LLVM Clang
- Delphi (Embarcadero RAD Studio)
- Lazarus / FreePascal


3. Installation
---------------

a) To install the Demo version of CMATH, you need to execute INSTALL.EXE,
   contained in the ZIP file you downloaded. Only then, programs using the
   CMATH library can run. It is not possible to just copy the .lib and .h
   files, e.g., from another computer.

b) In case you wish to install CMATH for several target compilers
   (e.g., RAD Studio 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 CMATH directory choice:
   Say, your CMATH directory is C:\CMATH. Then, these additional search 
   paths are:
   C:\CMATH\INCLUDE      for the include-files.
   C:\CMATH\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 CMATH 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++ Builder versions up to 11.x, the other for
   the newer C++ Builder / RAD Studio versions starting with 12.x.
   For details, see CMATH.HTM, chapter 1.4.
  
f) Using CMath 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
   CMath libraries to be used with the CLang-enhanced compilers.
   Again, see CMATH.HTM, chapter 1.4 for details.


4. Running the example
----------------------
Check your installation by compiling and running the small demo files.

Complex-number demo:
13.x, 12.x, 11.x, 10.x, XE3 or higher:
    Open
	CDemo.groupproj ("classic" Borland compiler, both 64-bit and 32-bit),
    CDemo_BCC64x.groupproj ("modern" CLang-enhanced compiler BCC64x, 64-bit only),
    CDEMO_BCC32C.groupproj (CLang-enhanced compiler BCC32C, 32-bit only, 
                        C++ Builder 10.4 or higher),  or
    CDEMO_BCC32Cu10_3.groupproj (CLang-enhanced compiler BCC32C, 32-bit only,
                        C++ Builder up until 10.3)

Older versions of Embarcadero / Borland C++:
    CDEMO.cbproj  is a project for RAD Studio 2009, 2010, XE, XE2
    CDEMO.bdsproj is for BDS 2006 and 2007
    CDEMOB6.BPR   is for BC++ Builder 6+.

  For the command-line compiler, take CDEMO.CPP, entering
      BCC32 -W -Iinclude cdemo.cpp lib\cmathf4w.lib lib\cmathfs.lib
      and run the program by typing:  cdemo

Mandelbrodt demo (not the original Mandelbrodt, but a modification 
    with free parameters to play with):
    MANDEL.cbproj  is a project for RAD Studio 2009, 2010, XE, XE2
    MANDEL.bdsproj is for BDS 2006 and 2007
    MANDELB6.BPR   is for BC++ Builder 6+
    MANDELB.BPR    is a BC++ Builder 4+ project.
(actually, this is not the original Mandelbrodt, but a modified formula
with several free parameters to play with.)

    For older Borland C++ versions or the command-line compiler, use
    MANDELW.CPP.
    Follow the analogous instructions given above for CDEMO.

If you get compiler errors like "Cannot open include file ...", or a
linker error "Unresolved external", check the library and include paths and
be sure the libraries in the CMATH\LIB directory are included in your
project.


5. Documentation
----------------
The full CMATH documentation is to be found in the file CMATH.HTM
to be read with a browser like Firefox, IE, Edge, Chrome, Opera, etc.


6. What's New?
--------------
Version 8.4.x:
  - new complex-number inverse hyperbolic functions:
	   cf_asinh, cf_acosh, cf_atanh along with their cd_, ce_ analogues

  - 64-bit:
    - Faster implementation of most transcendental functions
	
Version 8.3:
  - Support for the "modern" Win64x CLang compiler

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
         https://www.optivec.com

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


8. Registered Version
---------------------
If you like CMATH and decide to use it, consider registering.
The registered version of CMATH

-  has individually optimized libraries for each degree of processor
   backward-compatibility:
      Core2xxx, Core i3, i5 etc., AMD x64 , (64-bit version only)
      486DX/Pentium+

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

-  costs:
                                 single-compiler        master licence for all
                                   licence               supported compilers         
      commercial licence         EUR  59.00                 EUR 89.00
      educational licence        EUR  29.00                 EUR 49.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
