38 template<
int Mode,
typename Lhs,
typename Rhs,
typename Res>
44 template<
int M,
int N,
int K,
typename Scalar,
int Mode>
52 double n = 2.*double(
M)*double(
N)*double(
K);
59 BENCH(t,1,rep,prod<CoeffBasedProductMode>(a,b,c));
60 }
while(t.
best()<0.1);
63 BENCH(t,5,rep,prod<Mode>(a,b,c));
66 std::cout <<
int(1
e-6*n*rep/t.
best()) <<
"\t";
71 template<
int M,
int N,
int K,
typename Scalar,
int Mode>
struct loop_on_n;
73 template<
int M,
int N,
int K>
78 std::cout <<
"K=" <<
K <<
"\t";
89 template<
int M,
int N>
93 template<
int M,
int N,
int K>
98 std::cout <<
M <<
"f\t";
102 std::cout << M <<
"f\t";
110 template<
int N,
int K>
113 template<
int M,
int N,
int K,
typename Scalar,
int Mode>
124 template<
int M,
int K,
typename Scalar,
int Mode>
Matrix< RealScalar, Dynamic, Dynamic > M
Namespace containing all symbols from the Eigen library.
static Cal3_S2 K(500, 500, 0.1, 640/2, 480/2)
#define EIGEN_DONT_INLINE
double best(int TIMER=CPU_TIMER) const
Array< double, 1, 3 > e(1./3., 0.5, 2.)
void print_mode(int mode)
static const DiscreteKey mode(modeKey, 2)
#define BENCH(TIMER, TRIES, REP, CODE)
The matrix class, also used for vectors and row-vectors.
EIGEN_DONT_INLINE void bench_prod()
const Product< Lhs, Rhs > prod(const Lhs &lhs, const Rhs &rhs)