• Liam Healy's avatar
    Optional argument defaults as GSL objects · 164cc82c
    Liam Healy authored
    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.
eigensystems.lisp 5.86 KB