On success, S3L_lu_solve returns S3L_SUCCESS.
S3L_lu_solve performs generic checking of the validity of the arrays it accepts as arguments. If an array argument contains an invalid or corrupted value, the function terminates and returns an error code indicating which value was invalid. See Appendix A of this manual for a detailed list of these error codes.
The following conditions will cause the function to terminate and return the associated error code:
S3L_ERR_ARG_NULL - Invalid array. b must be preallocated and the same value returned by S3L_lu_factor must be supplied in a.
S3L_ERR_ARG_RANK - Invalid rank. For cases where rank >= 3, rank(b) must equal rank(a). For the two-dimensional case, rank(b) must be either 1 or 2.
S3L_ERR_ARG_DTYPE - Invalid data type; must be real or complex (single- or double-precision).
S3L_ERR_ARG_BLKSIZE - Invalid block size; must be >= 1.
S3L_ERR_MATCH_EXTENTS - Extents of a and b are mismatched along the row or instance axis.
S3L_ERR_MATCH_DTYPE - Unmatched data type between a and b.
S3L_ERR_ARRNOTSQ - Invalid matrix size; each coefficient matrix must be square.
S3L_ERR_ARG_SETUP - Invalid setup_id value. It does not match the value returned by S3L_lu_factor.