About / What is ctCalc
---------------------------

  Thanks for using ctCalc.
  ctCalc is an engine / function to calculate strings as far as possible.
  The first version was designed for QuickBasic (4.5).
  It had been modified several times, now its optimized for Visual Basic (6).
  ctCalc GUI is a programm that uses this engine to let the user perform different calculations

  As long there are bugs or requests, ctCalc is under development.
  The latest official version can be found at http://www.ctuser.net.
  For suggestions, questions, requests or bug reports, send eMail to info@ctuser.net.
  
  So I optimized code (sharing, groups, ...), size grew with each new feature.
  ctCalc has now approximate 520kb / compressed 150 kb.
  The source code & resources take about 410 kb (8500 lines / 130 kb pure code).

  This document will give you additional information of ctCalc features.
  It will not contain any information about general mathematic operations.

Features
--------

Engine features:
 - Automatic () adding
 - hex support
 - variables ("var(<expression/number>)")
 - calculation conditions ("vld(<expression>"); aborts calculation returning "()" if <expression> is 0
 - P and % support
 - "help <expression>" support: returns specific help for <expression>
 - < <= = => > <> support (returns 0 if false, 1 if true)
 - and or xor eqv not support
 - log sqr int cnt abs frc rnd sgn sin cos tan atn vld support
 - Hierarchy (no hierarchy within relational operations)
 

GUI features:
 - Graph mode
 - Scripting support for custom calculations with display

Hierarchy:
----------

  Pre/Postfixes:         & E ! %
    (Percent / "E" not falid if hex value)
  Arithmetic operations: )( ^ - * / # +
  Relational operations: < <= = => > <>
    (no hierarchy within relational operations)
  Logical operations: not and or xor eqv

Examples:
---------

Here are some examples how to use ctCalc in common:
3+5
3+5/2*sin(p)
3+5/2*sin(p)+&e3f+3e3+3e-1%

Here are some examples how to use ctCalc in the graphs mode
3+x
3+5/2*sin(x*p)
3+5/2*sin(x*p)+&e3f vld(x>=0)

Please note that vld does not affect the result of the expression; if the vld-expression is zero, the
calculation is aborted, and () is returned, whether the result of the term itself is valid or not.
This is usefull if you want the graph only be shown for a small interval
(e.g. "vld(x=1 or x=2 or x=3 or x>5)" ...)

And or xor eqv not:
 0 and 0   ->   0          0 or 0   ->   0          0 xor 0   ->   0          0 eqv 0   ->   1
 0 and 1   ->   0          0 or 1   ->   1          0 xor 1   ->   1          0 eqv 1   ->   0
 1 and 0   ->   0          1 or 0   ->   1          1 xor 0   ->   1          1 eqv 0   ->   0
 1 and 1   ->   1          1 or 1   ->   1          1 xor 1   ->   0          1 eqv 1   ->   1

 not 0   ->   1
 not 1   ->   0

"and or xor eqv not" are interpreted as possible without caring for 

e.g.: (1>0) or (1<0) 

System Requirements
-------------------
  (according to Microsoft)
   - Pentium 90MHz / high
   - VGA 640x480 or higher
   - 24MB RAM for Windows 95 / 32MB for Windows NT.
   - Microsoft Windows NT 3.51 / 95 or later (Windows 95
     users may need DCOM update (or at least one file of)

Copying / License / ...
-----------------------

  QuickPlayer is freeware. You may use and copy for
  free. If you copy QuickPlayer, you must copy both
  "QPlayer.exe" and "QPlayer.txt". If you want to copy
  "FMod.dll", see Firelight technologie's homepage
  (http://www.fmod.org).
  If you want to copy "mswinsck.ocx" or "msvbvm60.dll",
  see Microsoft's homepage (http://www.microsoft.com)

  You may not sell or lend, modify (if you want to
  translate it, please contact me: info@ctuser.net),
  decompile or disassemble.
  Any commercial usage is prohibited!

GUI Version history:
--------------------

New: New feature
Bug: Essential bugfix (Programm hangs, ...)
Fix: Other bugfix (Display, ...)
Chg: Changes (Optimation, ...)
Del: Removed 'feature' (Automation, ...)

3.00 beta 3:
 - New: This readme file
 - Fix: Lots of bugfixes ....
   ...

Engine Version history:
-----------------------

New: New feature
Bug: Essential bugfix (Programm hangs, ...)
Fix: Other bugfix (Display, ...)
Chg: Changes (Optimation, ...)
Del: Removed 'feature' (Automation, ...)

4.00 beta 01:
 - New: This readme file
 - New: "vld" support (complete expression returns "()" if vld value is 0)
 - New: hex support: "&e3f" returns 3647
 - New: Automatic sets missing ()
 - New: "()" returns 'nothing' ("")
 - Del: Removed |. Will maybe used for other calculations; use <> instead!
 - Fix: Hierarchy for "not and or xor eqv"
 - Fix: Arithmetic operations <-> Relational operations hierarchy
        (no hierarchy within relational operations)
 - Fix: "-x^y" / "(-x)^y" fix:
        "-x^y" is now calculated as "-(x^y)", "-x^-y" as "-(x^(-y))"
        "(-x)^y" is now calculated as it should be, "(-x)^-y as (-x)^(-y)"
        Expressions like sin/cos/log/... work, to:
        "sin(x)^y" if calculated as (sin(x))^y
 - New: Faculty: fac(x) or x!
   ...

Behaviours, Bugs, Errors, Problems
----------------------------------

What you should do:
Of course I'm testing my software and find most errors myself.
Additionally, a good friend of mine tests any version (alpha, pre-beta, beta, ...).
If you find an error anyway (that's why it's a beta), here's what you should check first:
 
FIRST of all, please check if you have the latest versions of ctCalc (http://www.ctuser.net).
Try to find out what you did that caused the error (bug) and the easiest way to reproduce this
error (or a very short and easy expression that is not calculated exactly) and eMail your report
(info@ctuser.net).

Credits
-------

  Jan Vorel (thats me):
   - Programming
   - Layout (design)
   - Testing
   - Readme file
   - Homepage (Text, screenshots, ...)
   - Lots of features
   
  Christian Falk:
   - Beta tester

  Ali Chaudry:
   - Missed some mathematic functions
   - Mathematic help
   - Some testing
   - lots of discussions resulting in better
     performance / compatiblity,
   - Showed me UPX

  Thomas Vorel:
   - Mathematic help

  ------------------ General Credits: ------------------

  ULEAD System:
   - Photo Impact (best image editing programm)

  PlanetSourceCode:
   - Visual Basic Source Codes to see how to use API

  Markus F.X.J. Oberhumer & Laszlo Molnar:
   - UPX

  Grennady Feldman
   - Win32Pad (Notepad replacement)

  Toshi:
   - ExeScope: Additional resource operations / checking

  Lothar Rossipaul:
   - Wörterbuch (For some translations)

  Microsoft:
   - Windows 95/98
   - Visual Basic
   - MSDN
