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.