From 42203dafdcb8e2ab1bd9d68ede5ed78769e2b7a1 Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Mon, 2 Sep 2019 21:57:28 -0400 Subject: [PATCH] add logic --- lapack/trtrs/trtrs_single.c | 79 ++++++++++++++++++++++++++++++++------------- 1 file changed, 57 insertions(+), 22 deletions(-) diff --git a/lapack/trtrs/trtrs_single.c b/lapack/trtrs/trtrs_single.c index 0dbb038..a690d4a 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; } -- 2.7.4