本文整理汇总了C++中blazemark::real方法的典型用法代码示例。如果您正苦于以下问题:C++ blazemark::real方法的具体用法?C++ blazemark::real怎么用?C++ blazemark::real使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类blazemark
的用法示例。
在下文中一共展示了blazemark::real方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: estimateSteps
/*!\brief Estimating the necessary number of steps for each benchmark.
//
// \param run The parameters for the benchmark run.
// \return void
//
// This function estimates the necessary number of steps for the given benchmark based on the
// performance of the Blaze library.
*/
void estimateSteps( DenseRun& run )
{
using blazemark::real;
using blaze::rowVector;
using blaze::columnMajor;
const size_t N( run.getSize() );
blaze::StaticVector<real,6UL,rowVector> vec( 0.1 );
blaze::StaticMatrix<real,6UL,6UL,columnMajor> mat( 0.1 );
std::vector< blaze::StaticVector<real,6UL,rowVector> > a( N, vec ), b( N );
std::vector< blaze::StaticMatrix<real,6UL,6UL,columnMajor> > A( N, mat );
blaze::timing::WcTimer timer;
double wct( 0.0 );
size_t steps( 1UL );
while( true ) {
timer.start();
for( size_t step=0UL, i=0UL; step<steps; ++step, ++i ) {
if( i == N ) i = 0UL;
b[i] = a[i] * A[i];
}
timer.end();
wct = timer.last();
if( wct >= 0.2 ) break;
steps *= 2UL;
}
for( size_t i=0UL; i<N; ++i )
if( b[i][0] < real(0) )
std::cerr << " Line " << __LINE__ << ": ERROR detected!!!\n";
run.setSteps( blaze::max( 1UL, ( blazemark::runtime * steps ) / timer.last() ) );
}