Browse Source

add logic

tags/v0.3.8^2
Guillaume Horel 6 years ago
parent
commit
42203dafdc
1 changed files with 57 additions and 22 deletions
  1. +57
    -22
      lapack/trtrs/trtrs_single.c

+ 57
- 22
lapack/trtrs/trtrs_single.c View File

@@ -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; }

Loading…
Cancel
Save