- About ComplexCalc
- Expression Syntax
- Varibles
- Functions
- Plotting Functions
- Writing Your Own Functions
- Changes From The Previous Version

`2 + 2i`

and ```
(37 / 6 ^ 5.4) - floor(3.9)
```

.
- - - Subtraction (this is so because if - was lower than /,
`-1 / -1`

would output negative infinity.) - ^ - Exponentation
- * - Multiplication
- / - Division
- % - Modulo
- + - Addition
- <,> - Less than and greater than
- = - Assignment operator

`@myVarible`

. varibles can be used in expressions, for example @x + 2 is valid as
long as the varible x has been defined.To define a varible or assign it a new value use the = operator. Foe example, to define the varible x with the initial value 6, you would type this: @x = 6. To list the currently defined varibles, use the

`dump`

command. To clear all defined
varibles, use the `clear`

command.2 varibles are always defined: @e and @pi. They contain the values of the numerical constants E and Pi.

`sin(@pi/3)`

.
Just like varibles, functionscan be used in expressions, like this: 2 sin(@theta).Here's a list of functions included with ComplexCalc:

- All trigonometric functions:
**sin, cos, tan, arcsin, arccos, arctan** - All hyperbolic functions:
**sinh, cosh, tanh, arcsinh, arccosh, arctanh** - Logarithms:
**ln**(natural logarithm)**, logn**(any base logarithm - first parameter is the base, second one is the number.) - Various miscallaneous functions:
**floor, ceil, round, sqrt, square, exp**(e^x)**, deg**(switches to degree mode, ie angles will be measured in degrees),**rad**(switches to radian mode, ie angles will be measured in radians)

`plot(`*expression,xmin,xmax*)

.
xmin and xmax are optional, if you don't specify them, xmin will be -1 and xmax will be 1. Also,
you an specify the y minumum and y maximum.The expression must contain a reference to the varible x.

Try these expressions:

- plot(i^@x,-4,4)
- plot(sin(@x),-@pi,@pi)
- plot(exp(i @x),0,10)
- plot(@x,-10,10)
- plot(@x^2,-10,10)

`slava.complexcalc.functions`

package.
The class must be a subclass of `slava.complexcalc.kernel.Function`

and must implement
the method ```
Object invoke(Expression[] params, ExpressionParser parser) defined in that class.
````params`

contains the parameters given to the function by the user. It is always 32
elements long, and parameters that haven't been specified are `null`

. The method
must return a string or a `ComplexNumber`

.

See the source code for `slava.complexcalc.kernel.Function`

and
`slava.complexcalc.kernel.ExpressionParser`

for more info.
### Changes From The Previous Version

I have made a number of changes to ComplexCalc since version 1.0.
- The plot function now accepts ymin and ymax parameters
- The plots look better now
- Fixed a bug in the ComplexNumber class that would calculate 0^i as NAN
- Fixed a GUI bug that would append the text of a pushed button to the end of the text field,
even if the insertion point was somewhere else.