// Copyright (C) 2015 Davis E. King ([email protected]) | |
// License: Boost Software License See LICENSE.txt for the full license. | |
namespace dlib | |
{ | |
namespace cuda | |
{ | |
// ----------------------------------------------------------------------------------- | |
void gemm ( | |
float beta, | |
tensor& dest, | |
float alpha, | |
const tensor& lhs, | |
bool trans_lhs, | |
const tensor& rhs, | |
bool trans_rhs | |
); | |
/*! | |
requires | |
- The dimensions of lhs and rhs must be compatible for matrix | |
multiplication. In particular: | |
- Let L == trans_lhs ? trans(mat(lhs)) : mat(lhs) | |
- Let R == trans_rhs ? trans(mat(rhs)) : mat(rhs) | |
- Let D == mat(dest) | |
- D.nr() == L.nr() && D.nc() == R.nc() | |
(i.e. dest must be preallocated and have the correct output dimensions) | |
- L.nc() == R.nr() | |
ensures | |
- performs: dest = alpha*L*R + beta*mat(dest) | |
!*/ | |
// ------------------------------------------------------------------------------------ | |
} | |
} | |