NT2_TEST_CASE_TPL( trans_scalar, NT2_TYPES ) { typedef std::complex<T> cT; NT2_TEST_EQUAL(nt2::trans(cT(1)), cT(1)); }
NT2_TEST_CASE_TPL( flipdim_scalar, NT2_TYPES ) { T x = nt2::flipdim(T(42), 2); NT2_TEST_EQUAL( x, T(42) ); }
//////////////////////////////////////////////////////////////////////////////// // Test value of digit constant for every base types //////////////////////////////////////////////////////////////////////////////// NT2_TEST_CASE_TPL( digit_value, BOOST_SIMD_TYPES ) { NT2_TEST_EQUAL( boost::simd::Mten<T>() , static_cast<T>( -10) ); NT2_TEST_EQUAL( boost::simd::Mnine<T>() , static_cast<T>( -9) ); NT2_TEST_EQUAL( boost::simd::Meight<T>() , static_cast<T>( -8) ); NT2_TEST_EQUAL( boost::simd::Mseven<T>() , static_cast<T>( -7) ); NT2_TEST_EQUAL( boost::simd::Msix<T>() , static_cast<T>( -6) ); NT2_TEST_EQUAL( boost::simd::Mfive<T>() , static_cast<T>( -5) ); NT2_TEST_EQUAL( boost::simd::Mfour<T>() , static_cast<T>( -4) ); NT2_TEST_EQUAL( boost::simd::Mthree<T>() , static_cast<T>( -3) ); NT2_TEST_EQUAL( boost::simd::Mtwo<T>() , static_cast<T>( -2) ); NT2_TEST_EQUAL( boost::simd::Mone<T>() , static_cast<T>( -1) ); NT2_TEST_EQUAL( boost::simd::Zero<T>() , static_cast<T>( 0) ); NT2_TEST_EQUAL( boost::simd::One<T>() , static_cast<T>( 1) ); NT2_TEST_EQUAL( boost::simd::Two<T>() , static_cast<T>( 2) ); NT2_TEST_EQUAL( boost::simd::Three<T>() , static_cast<T>( 3) ); NT2_TEST_EQUAL( boost::simd::Four<T>() , static_cast<T>( 4) ); NT2_TEST_EQUAL( boost::simd::Five<T>() , static_cast<T>( 5) ); NT2_TEST_EQUAL( boost::simd::Six<T>() , static_cast<T>( 6) ); NT2_TEST_EQUAL( boost::simd::Seven<T>() , static_cast<T>( 7) ); NT2_TEST_EQUAL( boost::simd::Eight<T>() , static_cast<T>( 8) ); NT2_TEST_EQUAL( boost::simd::Nine<T>() , static_cast<T>( 9) ); NT2_TEST_EQUAL( boost::simd::Ten<T>() , static_cast<T>( 10) ); }
//////////////////////////////////////////////////////////////////////////////// // Test integral_constant for every base types //////////////////////////////////////////////////////////////////////////////// NT2_TEST_CASE_TPL( integral_constant, BOOST_SIMD_INTEGRAL_TYPES ) { NT2_TEST_EQUAL( (boost::simd::integral_constant<T,42>()), static_cast<T>(42) ); }
//////////////////////////////////////////////////////////////////////////////// // Test value of infinites for every base integral types //////////////////////////////////////////////////////////////////////////////// NT2_TEST_CASE_TPL( int_inf, BOOST_SIMD_INTEGRAL_TYPES ) { NT2_TEST_EQUAL( boost::simd::Inf<T>() , boost::simd::Valmax<T>() ); NT2_TEST_EQUAL( boost::simd::Minf<T>(), boost::simd::Valmin<T>() ); }
//////////////////////////////////////////////////////////////////////////////// // Test value of real constants for every base real types //////////////////////////////////////////////////////////////////////////////// NT2_TEST_CASE_TPL(real_values, BOOST_SIMD_TYPES) { typedef BOOST_SIMD_DEFAULT_EXTENSION ext_t; typedef boost::simd::native<T,ext_t> vd_t; for(std::size_t i=0; i< boost::simd::meta::cardinal_of<vd_t>::value;++i) { NT2_TEST_EQUAL( (boost::simd::Mhalf<vd_t>())[i], boost::simd::Mhalf<T>() ); NT2_TEST_EQUAL( (boost::simd::Mzero<vd_t>())[i], boost::simd::Mzero<T>() ); NT2_TEST_EQUAL( (boost::simd::Half<vd_t>())[i], boost::simd::Half<T>() ); NT2_TEST_EQUAL( (boost::simd::Third<vd_t>())[i], boost::simd::Third<T>() ); NT2_TEST_EQUAL( (boost::simd::Quarter<vd_t>())[i], boost::simd::Quarter<T>() ); NT2_TEST_EQUAL( (boost::simd::Twotom10<vd_t>())[i], boost::simd::Twotom10<T>() ); NT2_TEST_EQUAL( (boost::simd::Pi<vd_t>())[i], boost::simd::Pi<T>() ); NT2_TEST_EQUAL( (boost::simd::Sqrt_2<vd_t>())[i], boost::simd::Sqrt_2<T>() ); NT2_TEST_EQUAL( (boost::simd::Sqrt_2o_2<vd_t>())[i], boost::simd::Sqrt_2o_2<T>() ); NT2_TEST_EQUAL( (boost::simd::Gold<vd_t>())[i], boost::simd::Gold<T>() ); NT2_TEST_EQUAL( (boost::simd::Cgold<vd_t>())[i], boost::simd::Cgold<T>() ); NT2_TEST_EQUAL( (boost::simd::Twotonmb<vd_t>())[i] , boost::simd::Twotonmb<T>() ); NT2_TEST_EQUAL( (boost::simd::Splitfactor<vd_t>())[i], boost::simd::Splitfactor<T>()); } }
//////////////////////////////////////////////////////////////////////////////// // Test value of infinites for every base real types //////////////////////////////////////////////////////////////////////////////// NT2_TEST_CASE_TPL( real_inf, BOOST_SIMD_REAL ) { NT2_TEST_EQUAL( boost::simd::Inf<T>() , std::numeric_limits<T>::infinity() ); NT2_TEST_EQUAL( boost::simd::Minf<T>(), -std::numeric_limits<T>::infinity() ); }
NT2_TEST_CASE_TPL( diag_of0, NT2_TYPES ) { NT2_TEST_EQUAL( nt2::diag_of(T(1)), T(1)); }
void operator()() const { NT2_TEST_EQUAL( seq_[I], boost::fusion::at_c<I>(seq_)); }
NT2_TEST_CASE_TPL( colvect_scalar, NT2_TYPES ) { NT2_TEST_EQUAL(nt2::rowvect(T(1)), T(1)); }
NT2_TEST_CASE_TPL( ctranspose_scalar, NT2_TYPES ) { NT2_TEST_EQUAL(nt2::ctranspose(T(1)), T(1)); }