use LU decomposition prototype
check for finiteness and add matcher toApproxUpper()
add ud decomposition module