<jhelp>

You can use the operators and functions listed below to define complex functions. The variable name must be z. Upper or lower case is not important. You may only use ( or ) as parenthesis. You should separate numbers from variables by operators, although in many cases you don't have to do that. In other words:

- sin(x)*cos(x) is invalid because the variable name is not z. Use sin(z)*cos(z) instead
- 2*[3+4*(5+z)] is invalid because square brackets are not allowed. Use 2*(3+4*(5+z)) instead
- instead of 2 z use 2*z (but in this case both would work, and even 2z would be fine)
- Pi*z and pi*z are the same (but clearly piz would not work)

### Basic Operators

> `+` (plus), `-` (minus), `*` (times), `/` (divided), `^` (power)

### Basic Constants

> `Pi ( = 3.141592654...)`
> `E = exp(1) ( = 2.718281828...)`
> `I or i ( = sqrt(-1))`

### Functions specific for Complex Numbers

> `conj(z)` | conjugate of a complex number or expression
> `Im(z)` | imaginary part of a complex number
> `Re(z)` | real part of a complex number
> `abs(z)` | absolute value (modulus) of a number
> `arg(z)` | argument (angle) of a complex number

### Trig Functions

> `sin(z)`, `cos(z)`, `tan(z)`

> For sec use `1/cos(z)`, for csc use `1/sin(z)`, and for cot use `1/tan(z)` or `cos(z)/sin(z)`.

### Hyperbolic Functions

> `sinh(z)`, `cosh(z)`, `tanh(z)`

> For sech(z) use `1/cosh(z)`, for csch(z) use `1/sinh(z)`, for coth(z) use `1/tanh(z)`.

### Inverse Trig Functions

> `asin(z)`, `acos(z)`, `atan(z)`

### Inverse Hyperbolic functions

> `asinh(z)` `acosh(z)`, `atanh(z)`

> For asech(z) use `ln((1+(1-z^2)^(1/2))/z)`, for acsch(z) use `ln((1+(1+ x^2)^(1/2))/x)`, for acoth(z) use `(1/2)*ln((z+1)/(z-1))`.

### Exponential, Logarithm, and Square Root Functions

> `exp(z)` | exponential function
> `ln(z)` | natural logarithm (principle part)
> `log(z)` | logarithm with base 10 (principle part)
> `sqrt(z)` | square root of a complex number (principle part)

### Piecewise Defined Functions

> You can define a piecewise continuous function using the command

> > `if(condition, eval_if_true, eval_if_false)`

> For example:

> > `if(abs(z) < 1, z, 1/z)`

> Please note that complex numbers are not ordered, so that the usual comparison operators such as `<` and `>` do not apply (but they do apply to Re(z), Im(z), or abs(z)).

</jhelp>