Updating Kokkos lib to 2.03.00

This commit is contained in:
Stan Moore
2017-04-25 13:48:51 -06:00
parent 9f6e126a2f
commit 8910ec6e59
261 changed files with 27816 additions and 17799 deletions

View File

@ -48,7 +48,7 @@
#include <sstream>
#include <iostream>
struct SomeTag{};
struct SomeTag {};
template< class ExecutionSpace >
class TestRangePolicyConstruction {
@ -56,179 +56,194 @@ public:
TestRangePolicyConstruction() {
test_compile_time_parameters();
}
private:
void test_compile_time_parameters() {
{
Kokkos::Impl::expand_variadic();
Kokkos::Impl::expand_variadic(1,2,3);
Kokkos::Impl::expand_variadic( 1, 2, 3 );
}
{
typedef Kokkos::RangePolicy<> policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Static> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Static> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<ExecutionSpace> policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Static> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::RangePolicy< ExecutionSpace > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Static> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::RangePolicy< ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::RangePolicy< ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<Kokkos::IndexType<long>, ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::RangePolicy< Kokkos::IndexType<long>, ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::RangePolicy< ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>,ExecutionSpace,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::RangePolicy< Kokkos::Schedule<Kokkos::Dynamic>, ExecutionSpace, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::RangePolicy<SomeTag,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,ExecutionSpace > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::RangePolicy< SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, ExecutionSpace > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::RangePolicy< Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::RangePolicy< Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<Kokkos::IndexType<long>, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::RangePolicy< Kokkos::IndexType<long>, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::RangePolicy< Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::RangePolicy<Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::RangePolicy< Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::RangePolicy<SomeTag,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::RangePolicy< SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
}
};
@ -240,258 +255,274 @@ public:
test_compile_time_parameters();
test_run_time_parameters();
}
private:
void test_compile_time_parameters() {
{
typedef Kokkos::TeamPolicy<> policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Static> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Static> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<ExecutionSpace> policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Static> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::TeamPolicy< ExecutionSpace > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Static> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::TeamPolicy< ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::TeamPolicy< ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<Kokkos::IndexType<long>, ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::TeamPolicy< Kokkos::IndexType<long>, ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::TeamPolicy< ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>,ExecutionSpace,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::TeamPolicy< Kokkos::Schedule<Kokkos::Dynamic>, ExecutionSpace, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::TeamPolicy<SomeTag,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,ExecutionSpace > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,ExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::TeamPolicy< SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, ExecutionSpace > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, ExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,typename execution_space::size_type >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::TeamPolicy< Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, typename execution_space::size_type >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::TeamPolicy< Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<Kokkos::IndexType<long>, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,void >::value));
{
typedef Kokkos::TeamPolicy< Kokkos::IndexType<long>, Kokkos::Schedule<Kokkos::Dynamic> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, void >::value ) );
}
{
typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::TeamPolicy< Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::TeamPolicy< Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, SomeTag > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
{
typedef Kokkos::TeamPolicy<SomeTag,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE((std::is_same<execution_space ,Kokkos::DefaultExecutionSpace >::value));
ASSERT_TRUE((std::is_same<index_type ,long >::value));
ASSERT_TRUE((std::is_same<schedule_type ,Kokkos::Schedule<Kokkos::Dynamic> >::value));
ASSERT_TRUE((std::is_same<work_tag ,SomeTag >::value));
{
typedef Kokkos::TeamPolicy< SomeTag, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long> > policy_t;
typedef typename policy_t::execution_space execution_space;
typedef typename policy_t::index_type index_type;
typedef typename policy_t::schedule_type schedule_type;
typedef typename policy_t::work_tag work_tag;
ASSERT_TRUE( ( std::is_same< execution_space, Kokkos::DefaultExecutionSpace >::value ) );
ASSERT_TRUE( ( std::is_same< index_type, long >::value ) );
ASSERT_TRUE( ( std::is_same< schedule_type, Kokkos::Schedule<Kokkos::Dynamic> >::value ) );
ASSERT_TRUE( ( std::is_same< work_tag, SomeTag >::value ) );
}
}
template<class policy_t>
template< class policy_t >
void test_run_time_parameters_type() {
int league_size = 131;
int team_size = 4<policy_t::execution_space::concurrency()?4:policy_t::execution_space::concurrency();
int team_size = 4 < policy_t::execution_space::concurrency() ? 4 : policy_t::execution_space::concurrency();
int chunk_size = 4;
int per_team_scratch = 1024;
int per_thread_scratch = 16;
int scratch_size = per_team_scratch + per_thread_scratch*team_size;
policy_t p1(league_size,team_size);
ASSERT_EQ (p1.league_size() , league_size);
ASSERT_EQ (p1.team_size() , team_size);
ASSERT_TRUE(p1.chunk_size() > 0);
ASSERT_EQ (p1.scratch_size(0), 0);
int scratch_size = per_team_scratch + per_thread_scratch * team_size;
policy_t p2 = p1.set_chunk_size(chunk_size);
ASSERT_EQ (p1.league_size() , league_size);
ASSERT_EQ (p1.team_size() , team_size);
ASSERT_TRUE(p1.chunk_size() > 0);
ASSERT_EQ (p1.scratch_size(0), 0);
policy_t p1( league_size, team_size );
ASSERT_EQ ( p1.league_size(), league_size );
ASSERT_EQ ( p1.team_size(), team_size );
ASSERT_TRUE( p1.chunk_size() > 0 );
ASSERT_EQ ( p1.scratch_size( 0 ), 0 );
ASSERT_EQ (p2.league_size() , league_size);
ASSERT_EQ (p2.team_size() , team_size);
ASSERT_EQ (p2.chunk_size() , chunk_size);
ASSERT_EQ (p2.scratch_size(0), 0);
policy_t p2 = p1.set_chunk_size( chunk_size );
ASSERT_EQ ( p1.league_size(), league_size );
ASSERT_EQ ( p1.team_size(), team_size );
ASSERT_TRUE( p1.chunk_size() > 0 );
ASSERT_EQ ( p1.scratch_size( 0 ), 0 );
policy_t p3 = p2.set_scratch_size(0,Kokkos::PerTeam(per_team_scratch));
ASSERT_EQ (p2.league_size() , league_size);
ASSERT_EQ (p2.team_size() , team_size);
ASSERT_EQ (p2.chunk_size() , chunk_size);
ASSERT_EQ (p2.scratch_size(0), 0);
ASSERT_EQ (p3.league_size() , league_size);
ASSERT_EQ (p3.team_size() , team_size);
ASSERT_EQ (p3.chunk_size() , chunk_size);
ASSERT_EQ (p3.scratch_size(0), per_team_scratch);
ASSERT_EQ ( p2.league_size(), league_size );
ASSERT_EQ ( p2.team_size(), team_size );
ASSERT_EQ ( p2.chunk_size(), chunk_size );
ASSERT_EQ ( p2.scratch_size( 0 ), 0 );
policy_t p4 = p2.set_scratch_size(0,Kokkos::PerThread(per_thread_scratch));
ASSERT_EQ (p2.league_size() , league_size);
ASSERT_EQ (p2.team_size() , team_size);
ASSERT_EQ (p2.chunk_size() , chunk_size);
ASSERT_EQ (p2.scratch_size(0), 0);
ASSERT_EQ (p4.league_size() , league_size);
ASSERT_EQ (p4.team_size() , team_size);
ASSERT_EQ (p4.chunk_size() , chunk_size);
ASSERT_EQ (p4.scratch_size(0), per_thread_scratch*team_size);
policy_t p3 = p2.set_scratch_size( 0, Kokkos::PerTeam( per_team_scratch ) );
ASSERT_EQ ( p2.league_size(), league_size );
ASSERT_EQ ( p2.team_size(), team_size );
ASSERT_EQ ( p2.chunk_size(), chunk_size );
ASSERT_EQ ( p2.scratch_size( 0 ), 0 );
ASSERT_EQ ( p3.league_size(), league_size );
ASSERT_EQ ( p3.team_size(), team_size );
ASSERT_EQ ( p3.chunk_size(), chunk_size );
ASSERT_EQ ( p3.scratch_size( 0 ), per_team_scratch );
policy_t p5 = p2.set_scratch_size(0,Kokkos::PerThread(per_thread_scratch),Kokkos::PerTeam(per_team_scratch));
ASSERT_EQ (p2.league_size() , league_size);
ASSERT_EQ (p2.team_size() , team_size);
ASSERT_EQ (p2.chunk_size() , chunk_size);
ASSERT_EQ (p2.scratch_size(0), 0);
ASSERT_EQ (p5.league_size() , league_size);
ASSERT_EQ (p5.team_size() , team_size);
ASSERT_EQ (p5.chunk_size() , chunk_size);
ASSERT_EQ (p5.scratch_size(0), scratch_size);
policy_t p4 = p2.set_scratch_size( 0, Kokkos::PerThread( per_thread_scratch ) );
ASSERT_EQ ( p2.league_size(), league_size );
ASSERT_EQ ( p2.team_size(), team_size );
ASSERT_EQ ( p2.chunk_size(), chunk_size );
ASSERT_EQ ( p2.scratch_size( 0 ), 0 );
ASSERT_EQ ( p4.league_size(), league_size );
ASSERT_EQ ( p4.team_size(), team_size );
ASSERT_EQ ( p4.chunk_size(), chunk_size );
ASSERT_EQ ( p4.scratch_size( 0 ), per_thread_scratch * team_size );
policy_t p6 = p2.set_scratch_size(0,Kokkos::PerTeam(per_team_scratch),Kokkos::PerThread(per_thread_scratch));
ASSERT_EQ (p2.league_size() , league_size);
ASSERT_EQ (p2.team_size() , team_size);
ASSERT_EQ (p2.chunk_size() , chunk_size);
ASSERT_EQ (p2.scratch_size(0), 0);
ASSERT_EQ (p6.league_size() , league_size);
ASSERT_EQ (p6.team_size() , team_size);
ASSERT_EQ (p6.chunk_size() , chunk_size);
ASSERT_EQ (p6.scratch_size(0), scratch_size);
policy_t p5 = p2.set_scratch_size( 0, Kokkos::PerThread( per_thread_scratch ), Kokkos::PerTeam( per_team_scratch ) );
ASSERT_EQ ( p2.league_size(), league_size );
ASSERT_EQ ( p2.team_size(), team_size );
ASSERT_EQ ( p2.chunk_size(), chunk_size );
ASSERT_EQ ( p2.scratch_size( 0 ), 0 );
ASSERT_EQ ( p5.league_size(), league_size );
ASSERT_EQ ( p5.team_size(), team_size );
ASSERT_EQ ( p5.chunk_size(), chunk_size );
ASSERT_EQ ( p5.scratch_size( 0 ), scratch_size );
policy_t p6 = p2.set_scratch_size( 0, Kokkos::PerTeam( per_team_scratch ), Kokkos::PerThread( per_thread_scratch ) );
ASSERT_EQ ( p2.league_size(), league_size );
ASSERT_EQ ( p2.team_size(), team_size );
ASSERT_EQ ( p2.chunk_size(), chunk_size );
ASSERT_EQ ( p2.scratch_size( 0 ), 0 );
ASSERT_EQ ( p6.league_size(), league_size );
ASSERT_EQ ( p6.team_size(), team_size );
ASSERT_EQ ( p6.chunk_size(), chunk_size );
ASSERT_EQ ( p6.scratch_size( 0 ), scratch_size );
policy_t p7 = p3.set_scratch_size( 0, Kokkos::PerTeam( per_team_scratch ), Kokkos::PerThread( per_thread_scratch ) );
ASSERT_EQ ( p3.league_size(), league_size );
ASSERT_EQ ( p3.team_size(), team_size );
ASSERT_EQ ( p3.chunk_size(), chunk_size );
ASSERT_EQ ( p3.scratch_size( 0 ), per_team_scratch );
ASSERT_EQ ( p7.league_size(), league_size );
ASSERT_EQ ( p7.team_size(), team_size );
ASSERT_EQ ( p7.chunk_size(), chunk_size );
ASSERT_EQ ( p7.scratch_size( 0 ), scratch_size );
}
policy_t p7 = p3.set_scratch_size(0,Kokkos::PerTeam(per_team_scratch),Kokkos::PerThread(per_thread_scratch));
ASSERT_EQ (p3.league_size() , league_size);
ASSERT_EQ (p3.team_size() , team_size);
ASSERT_EQ (p3.chunk_size() , chunk_size);
ASSERT_EQ (p3.scratch_size(0), per_team_scratch);
ASSERT_EQ (p7.league_size() , league_size);
ASSERT_EQ (p7.team_size() , team_size);
ASSERT_EQ (p7.chunk_size() , chunk_size);
ASSERT_EQ (p7.scratch_size(0), scratch_size);
}
void test_run_time_parameters() {
test_run_time_parameters_type<Kokkos::TeamPolicy<ExecutionSpace> >();
test_run_time_parameters_type<Kokkos::TeamPolicy<ExecutionSpace,Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long> > >();
test_run_time_parameters_type<Kokkos::TeamPolicy<Kokkos::IndexType<long>, ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic> > >();
test_run_time_parameters_type<Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>,Kokkos::IndexType<long>,ExecutionSpace,SomeTag > >();
test_run_time_parameters_type< Kokkos::TeamPolicy<ExecutionSpace> >();
test_run_time_parameters_type< Kokkos::TeamPolicy<ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long> > >();
test_run_time_parameters_type< Kokkos::TeamPolicy<Kokkos::IndexType<long>, ExecutionSpace, Kokkos::Schedule<Kokkos::Dynamic> > >();
test_run_time_parameters_type< Kokkos::TeamPolicy<Kokkos::Schedule<Kokkos::Dynamic>, Kokkos::IndexType<long>, ExecutionSpace, SomeTag > >();
}
};