diff --git a/lapack/trtrs/trtrs_single.c b/lapack/trtrs/trtrs_single.c index 0dbb03869..a690d4a25 100644 --- a/lapack/trtrs/trtrs_single.c +++ b/lapack/trtrs/trtrs_single.c @@ -41,28 +41,63 @@ blasint CNAME(blas_arg_t *args, BLASLONG *range_m, BLASLONG *range_n, FLOAT *sa, FLOAT *sb, BLASLONG mypos) { -#ifndef TRANS - LASWP_PLUS(args -> n, 1, args -> m, ZERO, args -> b, args -> ldb, NULL, 0, args -> c, 1); - - if (args -> n == 1){ - TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); - TRSV_NUN (args -> m, args -> a, args -> lda, args -> b, 1, sb); - } else { - TRSM_LNLU (args, range_m, range_n, sa, sb, 0); - TRSM_LNUN (args, range_m, range_n, sa, sb, 0); - } - +#ifndef UPLO +#ifndef DIAG +#ifndef DIAG + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } #else - - if (args -> n == 1){ - TRSV_TUN (args -> m, args -> a, args -> lda, args -> b, 1, sb); - TRSV_TLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); - } else { - TRSM_LTUN (args, range_m, range_n, sa, sb, 0); - TRSM_LTLU (args, range_m, range_n, sa, sb, 0); - } - - LASWP_MINUS(args -> n, 1, args -> m, ZERO, args -> b, args -> ldb, NULL, 0, args -> c, -1); + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } +#endif +#else +#ifndef DIAG + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } +#else + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } +#endif +#else +#ifndef DIAG +#ifndef DIAG + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } +#else + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } +#endif +#else +#ifndef DIAG + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } +#else + if (args -> n == 1){ + TRSV_NLU (args -> m, args -> a, args -> lda, args -> b, 1, sb); + } else { + TRSM_LNLU (args, range_m, range_n, sa, sb, 0); + } +#endif #endif - return 0; }