Mentions légales du service

Skip to content
Snippets Groups Projects
Commit c3713d36 authored by hhakim's avatar hhakim
Browse files

Add a unit test for MatButterfly::adjoint.

parent ea7a1c35
No related branches found
No related tags found
No related merge requests found
...@@ -263,6 +263,33 @@ void testGemm(const MatButterfly<FPP, Cpu>& butterflyMat, const MatSparse<FPP, ...@@ -263,6 +263,33 @@ void testGemm(const MatButterfly<FPP, Cpu>& butterflyMat, const MatSparse<FPP,
std::cout << "MatButterfly::testGemm OK" << std::endl; std::cout << "MatButterfly::testGemm OK" << std::endl;
} }
void testCloneTranspConj(MatButterfly<FPP, Cpu>& butterflyMat, const MatSparse<FPP, Cpu>& spButterflyMat)
{
// it is equivalent to test MatButterfly::adjoint
auto size = butterflyMat.getNbRow();
auto clone = butterflyMat.Clone();
clone->transpose();
clone->conjugate();
MatSparse<FPP, Cpu> spMat = spButterflyMat;
spMat.transpose();
spMat.conjugate();
auto X = MatDense<FPP, Cpu>::randMat(size, size);
MatDense<FPP, Cpu> refY_(*X);
MatDense<FPP, Cpu> testY_(*X);
spMat.multiply(refY_, 'N');
clone->multiply(testY_, 'N');
assert(verifyMatEq(refY_, testY_, 1e-6));
std::cout << "MatButterfly clone+transpose+conjugate OK" << std::endl;
delete X;
delete clone;
}
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
int log2size = 4; int log2size = 4;
...@@ -335,5 +362,6 @@ int main(int argc, char** argv) ...@@ -335,5 +362,6 @@ int main(int argc, char** argv)
testNZinds(butterflyMat, spButterflyMat); testNZinds(butterflyMat, spButterflyMat);
testNorm1(butterflyMat, spButterflyMat); testNorm1(butterflyMat, spButterflyMat);
testGemm(butterflyMat, spButterflyMat); testGemm(butterflyMat, spButterflyMat);
testCloneTranspConj(butterflyMat, spButterflyMat);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment