## Examples

The Jacobian elliptic functions *sn*, *cn*, and *dn* are special functions (Chapter 7):

```
(jacobian-elliptic-functions 0.2d0 0.81d0)
0.19762082367187703d0
0.9802785369736752d0
0.9840560289645665d0
```

which returns as multiple values the three function values. The functions are defined only if the second argument *m* is not greater than 1, so an error is signalled if this parameter is out of range:

```
(jacobian-elliptic-functions 0.61802d0 1.5d0)
Input domain error |m| > 1.0 in elljac.c at line 46
[Condition of type INPUT-DOMAIN]
```

This is an ordinary Lisp error which may be handled with standard definitions available in Lisp. To take the complex conjugate scalar product of two complex vectors of length 3:

```
(cdot #2m(#c(-34.5d0 8.24d0) #c(3.29d0 -8.93d0) #c(34.12d0 -6.15d0))
#2m(#c(49.27d0 -13.49d0) #c(32.5d0 42.73d0) #c(-17.24d0 43.31d0)))
#C(-2940.2118d0 1861.9380999999998d0)
```

There are over 1500 examples available from within GSLL with the function `examples`

. There is also a suite of over 4000 tests; many of the examples also serve as tests, and most others are ported from GSL's tests.