Changeset 4abdff3 in tol


Ignore:
Timestamp:
Nov 20, 2008, 5:15:12 PM (18 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
00c2c9f
Parents:
f9ee626
Message:

Reallocation and zero assigantion of returning argument of cblas_dgemm and cblas_dsyrk must be done just when beta==0 and dimensions in order to not hide posible previous errors

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@205 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol/bmath/blinalg/tol_blas.cpp

    rf9ee626 r4abdff3  
    7171  int Ar = A.Rows();
    7272  int Br = B.Rows();
     73  int Cr = C.Rows();
    7374  int Ac = A.Columns();
    7475  int Bc = B.Columns();
     76  int Cc = C.Columns();
    7577  if (TransA==CblasNoTrans) {
    7678    M = Ar;
    … …  
    8183  }
    8284  N = TransB==CblasNoTrans ? Bc : Br;
    83   C.Alloc(M,N);
    84   C.SetAllValuesTo(0);
     85  if((beta==0.0)&&(!Cr|!Cc))
     86  {
     87    C.Alloc(M,N);
     88    C.SetAllValuesTo(0);
     89  }
    8590  const double* A_ = A.Data().Buffer();
    8691  const double* B_ = B.Data().Buffer();
    … …  
    132137{
    133138  int N,K;
     139  int Ar = A.Rows();
     140  int Cr = C.Rows();
     141  int Ac = A.Columns();
     142  int Cc = C.Columns();
    134143  if (Trans==CblasNoTrans) {
    135     N = A.Rows();
    136     K = A.Columns();
     144    N = Ar;
     145    K = Ac;
    137146  } else {
    138     N = A.Columns();
    139     K = A.Rows();
    140   }
    141   C.Alloc(N,N);
    142   C.SetAllValuesTo(0);
     147    N = Ac;
     148    K = Ar;
     149  }
     150  if((beta==0.0)&&(!Cr|!Cc))
     151  {
     152    C.Alloc(N,N);
     153    C.SetAllValuesTo(0);
     154  }
    143155  cblas_dsyrk
    144156  (
    … …  
    146158    N, K,
    147159    alpha,
    148     A.Data().Buffer(), A.Columns(),
     160    A.Data().Buffer(), Ac,
    149161    beta,
    150     C.GetData().GetBuffer(), C.Columns()
     162    C.GetData().GetBuffer(), Cc
    151163  );
    152164//VBR: Comprobar si hay error
Note: See TracChangeset for help on using the changeset viewer.