Calling (BLAS subroutine) DGEMM from C++

Open discussion regarding features, bugs, issues, vendors, etc.

Calling (BLAS subroutine) DGEMM from C++

Postby graphicsRat » Tue Apr 05, 2011 7:34 pm

I'm trying to call the Matrix-Matrix computation subroutine DGEMM from C++ as follows:

Code: Select all
double* dgemm( int _numRowA , int _numColA , double* _A , int _numRowB , int _numColB , double* _B , int& _numRowC , int& _numColC )
{
   if( _numColA != _numRowB )
   {
      std::cout << "number of columns of Matrix A is NOT equal to num of rows of Matrix B" << std::endl;
      return NULL;
   }

   _numRowC = _numRowA;
   _numColC = _numColB;

   char trans = 'N';
   double alpha = 1.0 , beta = 1.0;
   double *C = new double [ _numRowC * _numColC ];
   int lda = ( _numRowA >= _numColA ) ? _numRowA : _numColA;
   int ldb = ( _numRowB >= _numColB ) ? _numRowB : _numColB;
   int ldc = ( _numRowC >= _numColC ) ? _numRowC : _numColC;
   DGEMM( &trans , &trans , &_numRowA , &_numColB , &_numColA , &alpha , _A , &lda , _B , &ldb , &beta , C , &ldc );

   return C;
}


where _A and _B are the matrices I'd like to multiply. Unfortunately I'm getting gibberish results. What am I doing wrong?

Thanks.
graphicsRat
 
Posts: 84
Joined: Wed Mar 25, 2009 3:08 pm

Re: Calling (BLAS subroutine) DGEMM from C++

Postby graphicsRat » Tue Apr 05, 2011 9:34 pm

Problem solved. beta had to be zero.
graphicsRat
 
Posts: 84
Joined: Wed Mar 25, 2009 3:08 pm


Return to User Discussion

Who is online

Users browsing this forum: Google [Bot] and 3 guests