Limit matrix sizes for trmm unit test and complexes.

This commit is contained in:
Gael Guennebaud 2015-10-30 15:07:50 +01:00
parent 9285647dfe
commit fdf3030ff8

View File

@ -9,10 +9,18 @@
#include "main.h" #include "main.h"
template<typename T>
int get_random_size()
{
const int factor = NumTraits<T>::ReadCost;
const int max_test_size = EIGEN_TEST_MAX_SIZE>2*factor ? EIGEN_TEST_MAX_SIZE/factor : EIGEN_TEST_MAX_SIZE;
return internal::random<int>(1,max_test_size);
}
template<typename Scalar, int Mode, int TriOrder, int OtherOrder, int ResOrder, int OtherCols> template<typename Scalar, int Mode, int TriOrder, int OtherOrder, int ResOrder, int OtherCols>
void trmm(int rows=internal::random<int>(1,EIGEN_TEST_MAX_SIZE), void trmm(int rows=get_random_size<Scalar>(),
int cols=internal::random<int>(1,EIGEN_TEST_MAX_SIZE), int cols=get_random_size<Scalar>(),
int otherCols = OtherCols==Dynamic?internal::random<int>(1,EIGEN_TEST_MAX_SIZE):OtherCols) int otherCols = OtherCols==Dynamic?get_random_size<Scalar>():OtherCols)
{ {
typedef Matrix<Scalar,Dynamic,Dynamic,TriOrder> TriMatrix; typedef Matrix<Scalar,Dynamic,Dynamic,TriOrder> TriMatrix;
typedef Matrix<Scalar,Dynamic,OtherCols,OtherCols==1?ColMajor:OtherOrder> OnTheRight; typedef Matrix<Scalar,Dynamic,OtherCols,OtherCols==1?ColMajor:OtherOrder> OnTheRight;
@ -61,13 +69,13 @@ void trmm(int rows=internal::random<int>(1,EIGEN_TEST_MAX_SIZE),
} }
template<typename Scalar, int Mode, int TriOrder> template<typename Scalar, int Mode, int TriOrder>
void trmv(int rows=internal::random<int>(1,EIGEN_TEST_MAX_SIZE), int cols=internal::random<int>(1,EIGEN_TEST_MAX_SIZE)) void trmv(int rows=get_random_size<Scalar>(), int cols=get_random_size<Scalar>())
{ {
trmm<Scalar,Mode,TriOrder,ColMajor,ColMajor,1>(rows,cols,1); trmm<Scalar,Mode,TriOrder,ColMajor,ColMajor,1>(rows,cols,1);
} }
template<typename Scalar, int Mode, int TriOrder, int OtherOrder, int ResOrder> template<typename Scalar, int Mode, int TriOrder, int OtherOrder, int ResOrder>
void trmm(int rows=internal::random<int>(1,EIGEN_TEST_MAX_SIZE), int cols=internal::random<int>(1,EIGEN_TEST_MAX_SIZE), int otherCols = internal::random<int>(1,EIGEN_TEST_MAX_SIZE)) void trmm(int rows=get_random_size<Scalar>(), int cols=get_random_size<Scalar>(), int otherCols = get_random_size<Scalar>())
{ {
trmm<Scalar,Mode,TriOrder,OtherOrder,ResOrder,Dynamic>(rows,cols,otherCols); trmm<Scalar,Mode,TriOrder,OtherOrder,ResOrder,Dynamic>(rows,cols,otherCols);
} }