home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / math / calcb_11 / doc / clac.man < prev    next >
Text File  |  1994-12-13  |  6KB  |  237 lines

  1. NAME
  2.  
  3.     Clac - a simple command line arithmetic calculator
  4.  
  5.  
  6. SYNOPSIS
  7.  
  8.     clac [-options] [@filename | expression]
  9.  
  10.  
  11. DESCRIPTION
  12.  
  13.     Clac calculates expressions following precedence (order of
  14.     operations). Functions, variables and mode identifiers are
  15.     case-insensitive for the user's convenience.
  16.  
  17.     Clac has three modes of operation:
  18.         - An expression is parsed from arguments.
  19.         - Without a filename or expression Clac enters
  20.           interactive mode. Expressions are evaluated as
  21.           they are entered.
  22.         - Expressions are read from a file.
  23.  
  24.     If file named 'cli.ini' exists in the current directory, it's
  25.     executed before anything else is done.
  26.  
  27.     The parser catches common mistakes like unmatched parenthesis or
  28.     divide by zero and gives an (hopefully helpful) error message.
  29.     Unrecognized characters produce also an error message.
  30.  
  31.     You can exit from interactive mode by giving Clac an empty line.
  32.  
  33.  
  34. OPTIONS
  35.  
  36.     command line options recognized by Clac.
  37.  
  38.         -d    Output result in decimals. Default.
  39.  
  40.         -b    Output result in binary.
  41.         -o    Output result in octal decimals.
  42.         -h    Output result in hex decimals.
  43.         -r    Trigonometric arguments as radians. Default.
  44.         -g    Trigonometric arguments as degrees.
  45.         -c    Complex numbers are output as real and imaginary
  46.             components 'a + bi'. Default.
  47.         -v    Complex numbers are output as vectors '(x, y)'.
  48.         -p    Complex numbers are output in polar co-ordinates
  49.             '(magnitude, direction)'. Trigonometric mode
  50.             defines whether the direction is in degreees or
  51.             radians.
  52.         -q    Quiet mode. Output only results.
  53.  
  54.  
  55. SYNTAX: CHARACTERS AND OPERATORS
  56.  
  57.     Clac recognizes the following characters and operators:
  58.  
  59.         <Enter>    Evaluate expression or exit if none entered.
  60.         |, &    Bitwise OR and AND operators.
  61.         >, <    Operators for shifting bits right and left.
  62.         +, -    Addition and subtraction operators.
  63.         %    Modulo operator.
  64.         *, /    Multiply and divide operators.
  65.         ^    Exponentiation operator.
  66.         +, -    Signs. Signed numbers should be in parenthesis.
  67.         ( and )    Parenthesis.
  68.         .    Decimal point.
  69.         =    Assignment operator. Eg. 'test = 3.5'.
  70.         :    Mode (look at options) change character. Eg. ':b'.
  71.         Zi    Value Z is an imaginary number (1 + 2i).
  72.         Z!    value Z is a factor (3! = 1*2*3).
  73.         'Z    Value Z is in binary format.
  74.         #Z    Value Z is in octal format.
  75.         $Z, 0xZ    Value Z is in hexadecimal format.
  76.         "Z    Value Z is in ascii format. Notice: Value is
  77.             ended with a ' '.
  78.         E    Variable containing value of Napier's constant.
  79.         PI    Variable containing value of pi.
  80.         ?     Gives a brief overview of the operators and
  81.             functions that Clac supports at the moment and
  82.             lists all the defined variables and their
  83.             values.
  84.  
  85.  
  86.     Decimal numbers can have exponent notation (ie. a number
  87.     immediatly followed by 'e' and a number). Eg. 1e2 = 1 * 10^2
  88.     and 5e-1 = 5 * 10^(-1) = 0.5. Exponent has to be an integer.
  89.  
  90.     You can change the values of all variables including e and pi
  91.     (if you're one of those people that insist on pi being 3).
  92.  
  93.     Variable names may contain only letters and numbers. Variable
  94.     names have to start with a letter.
  95.  
  96.  
  97. SYNTAX: UNUSED CHARACTERS
  98.  
  99.     Characters, that are NOT used by Clac's expression evaluation:
  100.     ':', '@', '[', ']', '\', '_', '`', '{', '}' and '~'.
  101.  
  102.  
  103. SYNTAX: FUNCTIONS WITH SINGLE ARGUMENT
  104.  
  105.     ln(x)    Natural logarithm of x.
  106.     lg(x)    Logarithm of x in base 10.
  107.     deg(x)    Convert x radians to degrees.
  108.     rad(x)    Convert x degrees to radians.
  109.     sin(x)    Sine of x.
  110.     cos(x)    Cosine of x.
  111.     tan(x)    Tangent of x.
  112.     asin(x)    Arcus sine of x.
  113.     acos(x)    Arcus cosine of x.
  114.     atan(x)    Arcus tangent of x.
  115.     sinh(x)    Hyperbolic sine of x.
  116.     cosh(x)    Hyperbolic cosine of x.
  117.     tanh(x)    Hyperbolic tangent of x.
  118.     sqrt(x)    Square root of x.
  119.     rnd(x)    Random number between 0 and x.
  120.     abs(x)    Absolute of x.
  121.     int(x)    Integer part of x.
  122.     frac(x)    Fraction part of x.
  123.     real(x)    Real part of x.
  124.     imag(x)    Imaginary part of x.
  125.  
  126.  
  127. SYNTAX: FUNCTIONS WITH MULTIPLE ARGUMENTS
  128.  
  129.     rtop(a, b)    Rectangular co-ordinate a (if complex)
  130.             or co-ordinate pair (a, b) (if two reals)
  131.             is converted to polar one.
  132.     ptor(a, b)    Polar co-ordinate a (if complex vector)
  133.             or co-ordinate pair (a, b) (if two reals)
  134.             is converted to rectangular one.
  135.     over(n, k)    The number of k component group combinations
  136.             in n components.
  137.     root(n, x)    Nth root of x.
  138.     time(h, m, s)    Change time into seconds.
  139.     min(a, b, c)    Smallest number of a, b, c.
  140.     max(a, b, c)    Largest number of a, b, c.
  141.     avg(a, b, c)    Average of numbers a, b, c.
  142.     std(a, b, c)    Standard deviation of numbers a, b, c.
  143.  
  144.     Number of arguments is unlimited in the min(), max(), avg() and
  145.     std() functions.
  146.  
  147.  
  148. EXAMPLES
  149.  
  150.     From a command line:
  151.         clac '42 + $FF.8 - (("ET * 12) + 5) / 3.7 + (-1)'
  152.  
  153.     Interactively:
  154.         clac -g -b
  155.  
  156.         Expression: foo = sin(90)
  157.         %1
  158.         Expression: foo + 12
  159.         %1101
  160.  
  161.         Expression: a = 1 + 2i
  162.         1.0 + 2.0i
  163.         Expression: b = 2 + 1i
  164.         2.0 + 1.0i
  165.         Expression: a / b
  166.         0.8 + 0.6i
  167.  
  168.  
  169. PROGRAM STRUCTURE
  170.  
  171.     Clac is composed of two nearly separate 'modules':
  172.  
  173.     - 'clac.c', which evaluates expressions.
  174.  
  175.     - 'cli.c', which gets expressions from the user, command line
  176.       arguments or from a file. It also takes care of the variable
  177.       assignments and the help function.
  178.  
  179.     Communication between these to parts is done with a exp_packet
  180.     structure which is better documented on the 'clac.h' file.
  181.  
  182.     For more info see 'clac.dvi' and 'cli.dvi' files.
  183.  
  184.  
  185. LIMITATIONS
  186.  
  187.     255 character limit for expressions (do you need more?).
  188.  
  189.     Values are internally calculated using double precision numbers.
  190.  
  191.     No overflow check.
  192.  
  193.  
  194. ADVANTAGES
  195.  
  196.     Uses little memory because evaluating is done in the sync with
  197.     the parsering.
  198.  
  199.     IMO easy to use and add new functions (to 'function.h' and
  200.     function.c).
  201.  
  202.  
  203. BUGS
  204.  
  205.     Sure. Before I sent this I had fixed all errors that I had
  206.     found. Please report any bugs that you'll happen to found
  207.     (especially the 'logical' ones).
  208.  
  209.  
  210. THANKS TO
  211.  
  212.     - Jarkko Kniivil"a, who advised me on C syntax.
  213.     - Gernot Saltzer for bugreports and suggestions.
  214.     - J"urgen Lock, who patiently answered to my mail.
  215.     - Helpful people on #atari (irc), whom I have
  216.       chatted with: Dirch, Gryf, Infy, Aviva...
  217.  
  218.  
  219. COPYRIGHT
  220.  
  221.     Eero Tamminen / puujalka (irc), t150315@cc.tut.fi.
  222.  
  223.     Freeware. This code may be used freely in other freeware
  224.     programs on condition that my effort has been mentioned
  225.     on the program documentation. I would also like to get
  226.     a copy of the program which incorporates my code...
  227.  
  228.  
  229. CHECK ALSO
  230.  
  231.     Sketches of Spain (Miles Davis).
  232.  
  233.  
  234.  
  235. v 1.10            Release: 10th November 1994        CLAC(1)
  236.  
  237.