Optional arguments may be specified easily as functions creating GSL
objects, keying off the element type of the required arguments. For
example, the arglist
((matrix matrix) i
&optional (vector :make-marray vector (dim0 matrix)))
means that if vector is not specified, it will make a vector whose
element type is the same as matrix, and whose length is the number of
rows of matrix. This is used to proved default arguments for a number
of functions, including the workspace argument for eigenspaces. Some
arguments that were required before are now optional and therefore
placed after the required arguments. Renamed to matrix-transpose from
matrix-transpose-copy, and the the in-place transpose renamed to
matrix-transpose* from matrix-transpose. Tests on 64 bit:
SBCL: TOTAL: 1223 assertions passed, 5 failed, 0 execution errors.
CCL: TOTAL: 1228 assertions passed, 0 failed, 0 execution errors.