On success, S3L_gen_svd returns S3L_SUCCESS.
S3L_gen_svd 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_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_r is equal to axis_c.
S3L_ERR_MATCH_DTYPE - The arrays are not the same data type.
S3L_ERR_MATCH_RANK - The arrays are not the same rank.
S3L_ERR_MATCH_EXTENTS - The extents of the arrays are not compatible.
S3L_ERR_ARG_DTYPE - The data types of the array arguments are not float or double.
S3L_ERR_ARG_OP - jobv is not one of V or N.
S3L_ERR_SVD_FAIL - The svd algorithm failed to converge.