Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SPAR(1)			    General Commands Manual		       SPAR(1)

NAME
       spar - a	modular	console	calculator

SYNOPSIS
       spar [options] [--] expression

DESCRIPTION
       Spar is a console calculator, primarily intended	for problem solving in
       arbitrary precision. It supports	also modules (aka code that can	be
       loaded dynamically) and a number	of other features, such	as: user vari-
       ables, functions, and constants.

   OPTIONS
       -d, --decimals
	   Set	the  decimal  precision	 (number  of  digits printed after the
	   point).

       -i, --integers
	   Set the integer precision (number  of  digits  printed  before  the
	   point).

       -c, --config
	   Use a user-defined modules configuration file.

       -q, --quiet
	   Don't display the welcome message.

       -h, --help
	   Display usage information and exit.

       -v, --version
	   Print version information and exit.

       --  Terminate  option  list: now	all arguments is interpreted as	an ex-
	   pression to evaluate.

NUMBERS
       The most	basic element in spar is the number.  Numbers are double  pre-
       cision  numbers.	All numbers are	represented internally as a standard C
       double variable.	There are no attributes	of numbers, but	the  precision
       can  affect  the	 number	 output. This precision	is both	in the integer
       part and	the decimal part.

       For example: The	number 0.123456789 is represented internally as	a dou-
       ble precision variable, but if we change	the precision, the output will
       change: 0.123456789 = 0.123457

VARIABLES
       Numbers can be stored in	named variables. Variable names	begin  with  a
       letter  followed	 by any	number of letters, digits and underscores. The
       variable	names are case sensitive. Variables may	have  values  assigned
       to  them	 as well as used in expressions	and it contains	a special data
       member that stores the "previous" value".

       To declare a variable you must supply both a name and a value. Any  un-
       declared	variable generate an error.  For example, to declare the vari-
       able i of value 5 enter:
		 i = 5

CONSTANTS
       Constants  are special variables	that is	read-only. This	means that you
       can read	a constant value but you can modify.  There  is	 a  number  of
       "preloaded" variables such as "e", "pi" ecc.

FUNCTIONS
       spar support a number of	often used scientific functions	(directly from
       The  Spar  Library). For	example, to get	the value of the natural loga-
       rithm in	0 enter:
		 log(0)

   Trig	Functions
       These are the familiar `sin', `cos', and	`tan'  functions.   The	 argu-
       ments to	all of these functions are in units of radians;	recall that pi
       radians equals 180 degrees.

   Inverse Trig	Functions
       These  are  the	usual  arc sine, arc cosine and	arc tangent functions,
       which are the inverses of the sine, cosine and  tangent	functions  re-
       spectively.

   Exponents and Logarithms
       These are the 'exp' group, 'log'	group, 'pow' group and 'sqrt' group.

   Hyperbolic Functions
       sinh,  cosh, tanh. The functions	in this	section	are related to the ex-
       ponential functions.

   Inverse Hyperbolic Functions
       asinh, acosh, atanh. The	functions in this section are related  to  the
       Hyperbolicfunctions.

   Infinite Functions
       isnan, finite, isinf.

   Special Functions
       Factorial, sum, and other specific spar functions.

EXPRESSIONS
       The  numbers  are manipulated by	expressions and	statements.  Since the
       math parser was implemented to be interactive, statements  and  expres-
       sions are executed as soon as possible.

       A  simple  expression is	just a constant. spar displays constants using
       the current precision (see OPTIONS). Full expressions  are  similar  to
       many  other  high level languages. Since	there is only one kind of num-
       ber, there are no rules for mixing types.

       In the following	descriptions of	legal expressions, "expr" refers to  a
       complete	expression and "var" refers to a simple	variable.

       - expr The result is the	negation of the	expression.

       expr + expr
	      The result of the	expression is the sum of the two expressions.

       expr - expr
	      The  result  of  the expression is the difference	of the two ex-
	      pressions.

       expr * expr
	      The result of the	expression is the product of the  two  expres-
	      sions.

       expr / expr
	      The  result of the expression is the quotient of the two expres-
	      sions.

       expr % expr
	      The result of the	expression is the "remainder" and it  is  com-
	      puted in the following way.

       expr ^ expr
	      The result of the	expression is the value	of the first raised to
	      the second.

       ( expr )
	      This  alters  the	standard precedence to force the evaluation of
	      the expression.

       var = expr
	      The variable is assigned the value of the	expression.

       var    This prints variable value's: note that "var" could  be  also  a
	      constant.

COMMANDS
       help   Print  a	brief  commands	 notice. If a command name is supplied
	      print a detailed command report.

       warranty
	      Print a longer warranty notice. No arguments.

       comment
	      Add a comment to a variable. At least two	arguments.

       consts Print the	built-in constants table. No arguments.

       funcs  Print the	built-in functions table. No arguments.

       modules
	      Print the	all loaded modules. No arguments.

       old    Swap the current variable	value with the old one.	One argument.

       quit   Program termination.

       run    Run a module. Note that you must supply a	valid module name oth-
	      erwise, the list of the loaded modules is	printed.

       vars   Print all	user variables.

FEATURES
       Spar supports terminal features (termios) to allow the  program	to  be
       more user-friendly and also more	robust.

   READLINE OPTION
       Spar can	be compiled (via configure script) to use the GNU readline in-
       put  editor  library.  This allows the user to do more editing of lines
       before sending them to spar.

       It also allows for a history of previous	lines typed: the  history  can
       be  viewed  by  '' key, whereas the readline auto-completion was	imple-
       mented by the TAB key. For more information, read the user manuals  for
       the  GNU	 readline  and history libraries.  Instead the key '!' run the
       last command and, finally the key ':' can be used to display a specific
       history item. For example: ':1' shows the first history item.

   SIGNALS SUPPORT
       During a	session, the SIGINT signal (usually generated by the control-C
       character from the terminal), SIGSTP signal (usually generated  by  the
       control-Z  character  from  the terminal) and SIGTERM signal will cause
       execution to be interrupted. After all run-time	structures  have  been
       cleaned	up,  a message will be printed to notify the user that spar is
       aborted.	 All variables and modules are removed	during	the  clean  up
       process.

   TERMCAP SUPPORT
       The control key EOF is inhibited. spar restore this setting on exit.

BUGS
       The best	way to submit a	bug report for Spar is to use the file BUG-RE-
       PORT,  that  will  enable  me to	fix the	problem. Please	visit the Spar
       homepages at:

	    http://spar.sourceforge.net/index.html (main site)
	    http://web.tiscalinet.it/Davide18/index.html

       for the latest version, patches and documentation.

FILES
       /usr/local/bin/spar		       Spar
       /usr/local/lib/libspar.so	       Spar Library
       /usr/local/include/spar/*	       Spar Headers
       /usr/local/lib/spar/*		       Spar modules
       /usr/local/share/spar/modules_config    Spar modules config

AUTHOR
       Davide Angelocola davide178@inwind.it

ACKNOWLEDGMENTS
       The author would	like to	thank  Sebastian  Ritterbusch  (Rascal@Ritter-
       busch.de)  for  his extensive help in testing the program and the docu-
       mentation. Many great suggestions were given. Please visit his  website
       http://rascal.sourceforge.net	or    the   sourceforge	  project   at
       http://sourceforge.net/projects/rascal.

SEE ALSO
       bc(1)	An arbitrary precision calculator language
       Spar can	be used	also as	library, a API reference can  be  founded  via
       web  at	http://sourceforge.net/projects/spar. Please help me to	extend
       and correct it.

				  26 Jun 2001			       SPAR(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=spar&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help