Skip to content
  • Liam Healy's avatar
    Default values for LU functions; added test · c04147d7
    Liam Healy authored
    LU-solve and LU-decomposition now have optional arguments.  For
    LU-solve, the choice of whether to solve in-place or in a new vector
    depends on how this last argument is specified.  Because of the
    different call paths, it is possible that x is a vector or nil.  If it
    is a vector, it will change after the foreign call, which means it
    needs to be added to :outputs.  In order to prevent an error from the
    call to (setf cl-invalid) and (setf c-invalid) when x is nil, these
    two functions have been defined for class T to do nothing but return
    the value.  Also, copy-c-to-cl and copy-cl-to-c check whether the
    argument is a mobject, though this change isn't needed.  
    
    There are two additional tests in 'lu that do a solve and then
    remultiply the results with matrix-product-triangular.  In both SBCL
    and CCL, the answer comes out reversed.  When multiplied by
    matrix-product, it is correct.
    c04147d7