Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void optimized_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
- const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
- const enum CBLAS_DIAG Diag, const int M, const int N,
- const double alpha, const double *A, const int lda,
- double *B, const int ldb)
- {
- int i, j, k;
- register double aux;
- register double *pbij, *pbkj;
- assert(Side == CblasLeft);
- assert(TransA == CblasNoTrans);
- assert(Uplo == CblasUpper);
- assert(Diag == CblasUnit);
- for (k = M - 1; k >= 0; --k) {
- for (i = 0; i < k; ++i) {
- aux = A[i * M + k];
- pbij = B + i * N;
- pbkj = B + k * N;
- for (j = 0; j < N; ++j) {
- *pbij++ -= *pbkj++ * aux;
- }
- }
- }
- for (i = 0; i < M; ++i) {
- pbij = B + i * N;
- for (j = i; j < N; ++j) {
- *pbij++ *= alpha;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement