WHAT IS IT? UnixCalc is a command line calculator which can evaluate algebraic equations and uses non-volatile history lists to store unlimited equations, calculated results, and arbitrarily-named variables. There are several numerical display modes which include floating point, scientific, and engineering notation. The scientific mode supports imaginary numbers for most functions. Standard functions (+,-,*,/,Sqrt,^) are accurate to more than 50 digits. Based numbers (2 to 16) are also supported along with all the standard logical operators (see table below). Some additional features are: o imaginary numbers and functions o unlimited named variables (up to 16 characters long) o automatic history logging of both equations and results o full scientific, transcendental, power, and logarithmic operations o programmer functions like and, or, shift, rotate, etc., on 172-bits! o choice of radian, degree, or gradian angle measurements o from 8 to 52 digits o numbers from -1E9999 to 1E9999 o exact decimal number representation o convenience functions like square and cube roots, reciprocal, etc. o persistant variables, equations, and state RELATED TOOLS If you prefer a GUI-based calculator with the same features as UnixCalc, ExCalc is available for the Amiga on the Aminet & Fish Disks. BeCalc for the BeBox will also soon be available. Both calculators are shareware products. CHANGES UnixCalc now requires OO2C and its new libraries so it will no longer compiler with O2C. DO NOT upgrade if you don't want to rebuild using OO2C, although why you wouldn't want to use OO2C, which builds faster executables, I don't want to know. The source code was also cleaned up a bit to work directly with the new OO2C library and remove stub modules. A new Help command is available which lists all the available functions and a brief description of each one. TO BUILD & INVOKE OO2C and GCC are required to build the executable image for UNIXCALC. OO2C can be obtained from http://cognac.informatik.uni-kl.de/persons/oberon/ooc/ooc_home.html. GCC is generally available from most internet sites. Once the above two packages are installed, just type "oo2c -Mv UnixCalc" to build the calculator. The executable can be placed in any suitable directory. UnixCalc creates several configuration files in the user's home directory to store variables and a history list of equations and previous results. NOTE: This release changes the format of the .CalculatorState.bin file so you may have to delete this file to get the variable lists working properly. To start a session, type "UnixCalc" and enter an expression to be evaluated at the prompt. For example, "UnixCalcD> " is the prompt which normally appears when the calculator is using base 10 numbers and using degree measurements for angles. An empty line will terminate UnixCalc. EQUATION SYNTAX Equations are entered using infix notation like "23.4 + 56". Brackets can be used to explicitly order the expression evaluation order although standard mathematical ordering is supported (e.g., 23+6*5 gives 53 NOT 145). Most functions like Sin, Cos, etc. use a single argument which follows the function. Brackets are not strictly required (i.e., Sin 45 will evaluate correctly) but are recommended to avoid ambiguities with equations like Sin 45+23 which first evaluates Sin 45 and then adds 23 to this number. An exception to the single argument rule for functions are the Min/Max functions which take two arguments separated by a semicolon. All functions can be nested to an arbitrary depth (limited by the stack size on the host computer). Maximum expression length is 250 characters although expressions can be strung together by storing intermediate results in variables and using the variable in subsequent calculations. For example: Sqrt(56^2 + 23^2) ST Root1 saves the answer in a named variable called Root1. All variables and function names are case sensitive, so Root1 is different from ROOT1. Typing the name of a variable by itself returns the contents of that variable. Attempting to access a variable which has not been defined returns an error. A maximum of 20 variables are allowed in this version of UnixCalc of which the first 16 are predefined for you as M0 to M15. If you attempt to define more than this number of variables, you will get an error message. Delete one or more variables with the "DEL " command. All defined variables can be displayed with the "List" command. Numbers can use separator characters like ",", "'", and "_" (e.g., "3,143.43" and "0FFF_1234_0000"). For European countries it is also possible to swap the '.' and ',' characters -- although this is not explicitly supported in this version of the calculator. Contact me at the address below if you would like to know how to make this change to the calculator. Displayed numbers are always without separator characters although, once again, number displays with separators are supported by modifying some internal settings. The table below lists the supported keywords by the equation parser (any octal codes if shown as readable characters on your system can also be used to invoke the corresponding function): + Addition - Subtraction *,× Multiplication /,÷ Division ² Squared ³ Cubed -¹,¯¹ Reciprocal () Brackets ^, ** Power % × 0.01 &, And Logical And |, Or Logical Inclusive Or Xor Logical Exclusive Or ~,Not Logical Complement Mod Modulo Div Integer Division Sqrt Square Root Cbrt Cube Root Root Any Root Abs Absolute value Rand Random number between 0 and 1 e Natural Log Base e^ Power of e i,¡ Imaginary number ø Complex angle Im Imaginary part of a number Re Real part of a number »¡ Polar to rectangle conversion r Complex magnitude Conj Complex conjugate Conv Convert n units to destination units nCr Factorial combinations nPr Factorial permutations Frac Fractional part of a number Int Integer part of a number Sign Sign of a number (-1 or 1) Plot Plot the expression as f(M0) (not supported -- yet) Min(;) Minimum of x and y Max(;) Maximum of x and y Ln Natural Logarithm Log Base 10 Logarithm Sin, ASin, Sin¯¹ Sine, Arcsine Cos, ACos, Cos¯¹ Cosine, Arccosine Tan, ATan, Tan¯¹ Tangent, Arctangent Sinh, ASinh, Sinh¯¹ Hyperbolic Sine, Arcsine Cosh, ACosh, Cosh¯¹ Hyperbolic Cosine, Arccosine Tanh, ATanh, Tanh¯¹ Hyperbolic Tangent, Arctangent SBit Set Bit CBit Clear Bit TBit Toggle Bit Shr Shift Right Shl Shift Left Asr Arithmetic Shift Right Ror Rotate Right Rol Rotate Left Variable contents ST Store to variable DEL Deletes the variable List Lists all defined variables Help, help Displays this list Pi Constant Pi SCI Toggle Scientific/Floating Point BAS n Change to Base n DIG n Use n Digits DP n Use n Decimal Places DRG Toggle Degree/Radian/Grad LEGAL STUFF UnixCalc -- a command line calculator Copyright (C) 1996, 1997 Michael Griebling UnixCalc is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. UnixCalc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with UnixCalc; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. CONTACT Michael Griebling c/o Computer Inspirations 150 Clark Blvd., Suite One Brampton, Ontario Canada, L6T 4Y8 Tel/FAX: (905) 840-4648 e-mail: grieblm@inforamp.net http://www.inforamp.net/~grieblm