- 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.