On success, S3L_gen_band_solve returns S3L_SUCCESS.
S3L_gen_band_solve performs generic checking of the arrays it accepts as arguments. If an array argument contains an invalid or corrupted value, the function terminates and an error code indicating which value of the array handle was invalid is returned. See Appendix A of this manual for a detailed list of these error codes.
In addition, the following conditions will cause the function to terminate and return the associated error code:
S3L_ERR_ARG_DTYPE - The type of a is not one of: real, double, complex or double complex.
S3L_ERR_INDX_INVALID - bl or bu value is invalid for either of the following reasons:
It is less than 0 (C/C++) or less than 1 (F77/F90).
It is greater than the extent of a along axis_d.
S3L_ERR_ARG_EXTENTS - The extent of a along axis axis_r is not equal to 2*bl+2*bu+1.
S3L_ERR_ARRTOOSMALL - The extents of a along axis axis_d are such that the block size in a block distribution is less than bu + bl + 1.
S3L_ERR_ARG_AXISNUM - An axis argument is invalid; that is, it is either:
Less than 0 (C/C++) or less than 1 (F77/F90).
Greater than the rank of the referenced array
axis_d is equal to axis_r.
S3L_ERR_MATCH_RANK - The rank of a is not the same as that of b.
S3L_ERR_ARG_SETUP - The factors value does not correspond to a valid setup.
S3L_ERR_MATCH_EXTENTS - The extents of a along axis_d do not equal the extents of b along axis_row or some of the other extents of a and b do not match.