Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#include <Kokkos_Core.hpp>
#include <type_traits>
//#include <View/Kokkos_ViewDataAnalysis.hpp>

namespace Test{

TEST(ViewDataType,ViewDataType_linefrom251){
static_assert(std::is_same_v<Kokkos::Impl::ViewDataType<double,Kokkos::Impl::ViewDimension<>>::type, double>, "ViewDataType<double,Kokkos::Impl::ViewDimension<>>::type should be double");
static_assert(std::is_same_v<Kokkos::Impl::ViewDataType<double,Kokkos::Impl::ViewDimension<0>>::type, double*>, "ViewDataType<double,Kokkos::Impl::ViewDimension<0>>::type should be double*");
static_assert(std::is_same_v<Kokkos::Impl::ViewDataType<double,Kokkos::Impl::ViewDimension<0,0>>::type, double**>, "ViewDataType<double,Kokkos::Impl::ViewDimension<0,0>>::type should be double**");
static_assert(std::is_same_v<Kokkos::Impl::ViewDataType<double,Kokkos::Impl::ViewDimension<0,0,5>>::type, double**[5]>, "ViewDataType<double,Kokkos::Impl::ViewDimension<0,0,5>>::type should be double**[5]");
}
TEST(ViewArrayAnalysis,ViewArrayAnalysis_line_289){
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double>::value_type, double>, "ViewArrayAnalysis<double>::value_type should be double");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double>::const_value_type, const double>, "ViewArrayAnalysis<double>::const_value_type should be const double");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<const double>::non_const_value_type, double>, "ViewArrayAnalysis<const double>::non_const_value_type should be double");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double>::static_dimension, Kokkos::Impl::ViewDimension<>>, "ViewArrayAnalysis<double>::static_dimension should be Kokkos::Impl::ViewDimension<>");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double>::dynamic_dimension, Kokkos::Impl::ViewDimension<>>, "ViewArrayAnalysis<double>::dynamic_dimension should be Kokkos::Impl::ViewDimension<>");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double>::dimension, Kokkos::Impl::ViewDimension<>>, "ViewArrayAnalysis<double>::dimension should be Kokkos::Impl::ViewDimension<>");
//static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double[5]>::nested,Kokkos::Impl::ViewArrayAnalysis<double>>, "ViewArrayAnalysis<double[5]>::nested should be Kokkos::Impl::ViewArrayAnalysis<double>"); this is private can't invoke.
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double[5]>::value_type, double>, "ViewArrayAnalysis<double[5]>::value_type should be double");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double[5]>::const_value_type, const double>, "ViewArrayAnalysis<double[5]>::const_value_type should be const double");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double[5]>::non_const_value_type, double>, "ViewArrayAnalysis<double[5]>::non_const_value_type should be double");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double[5]>::static_dimension, Kokkos::Impl::ViewDimension<5>>, "ViewArrayAnalysis<double[5]>::static_dimension should be Kokkos::Impl::ViewDimension<5>");
//static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double[5]>::dynamic_dimension, Kokkos::Impl::ViewDimension<>>, "ViewArrayAnalysis<double[5]>::dynamic_dimension should be Kokkos::Impl::ViewDimension<>");
static_assert(Kokkos::Impl::ViewArrayAnalysis<double[5]>::static_dimension::ArgN0 == 5, "ViewArrayAnalysis<double[5]>::static_dimension::ArgN0 should be 5");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double[5][4][6]>::value_type,double>, "ViewArrayAnalysis<double[5][4][6]>::value_type should bematch");
auto constexpr argn0 = Kokkos::Impl::ViewArrayAnalysis<double[5][4][6]>::static_dimension::ArgN0;
auto constexpr argn1 = Kokkos::Impl::ViewArrayAnalysis<double[5][4][6]>::static_dimension::ArgN1;
auto constexpr argn2 = Kokkos::Impl::ViewArrayAnalysis<double[5][4][6]>::static_dimension::ArgN2;
auto constexpr rank = Kokkos::Impl::ViewArrayAnalysis<double[5][4][6]>::static_dimension::rank;
auto constexpr rank_dyn = Kokkos::Impl::ViewArrayAnalysis<double[5][4][6]>::static_dimension::rank_dynamic;
std::cout<<"ArgN0 " <<argn0<<"\n";
std::cout<<"ArgN1 " <<argn1<<"\n";
std::cout<<"ArgN2 " <<argn2<<"\n";
std::cout<<"rank "<<rank<<"\n";
std::cout<<"rank_dun "<<rank_dyn<<"\n";
using vaa = Kokkos::Impl::ViewArrayAnalysis<double[]>;
auto constexpr dargn0 = vaa::dynamic_dimension::ArgN0;
std::cout<<"Dynamic argn0 "<<dargn0<<"\n";
std::cout<<"Dynamic rank = "<<vaa::dynamic_dimension::rank_dynamic<<"\n";
using mvaa = Kokkos::Impl::ViewArrayAnalysis<double[]>;
auto constexpr mdargn0 = mvaa::dynamic_dimension::ArgN0;
auto constexpr mdargn1 = mvaa::dynamic_dimension::ArgN1;
auto constexpr mdargn2 = mvaa::dynamic_dimension::ArgN2;
auto constexpr mdrank = mvaa::dynamic_dimension::rank;
auto constexpr mdrankdyn = mvaa::dynamic_dimension::rank_dynamic;
std::cout<<"mdArgN0 " <<mdargn0<<"\n";
std::cout<<"mdArgN1 " <<mdargn1<<"\n";
std::cout<<"mdArgN2 " <<mdargn2<<"\n";
std::cout<<"mdrank "<<mdrank<<"\n";
std::cout<<"drank_dyn "<<mdrankdyn<<"\n";
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double***>::dynamic_dimension,Kokkos::Impl::ViewDimension<0,0,0>>, "ViewArrayAnalysis<double***>::dynamic_dimension should be Kokkos::Impl::ViewDimension<0,0,0>");
static_assert(std::is_same_v<Kokkos::Impl::ViewArrayAnalysis<double***>::dynamic_dimension,Kokkos::Impl::ViewArrayAnalysis<double***>::dimension>, "ViewArrayAnalysis<double***>::dynamic_dimension should be Kokkos::Impl::ViewArrayAnalysis<double***>::dimension");

}
}
Empty file added kokkos_tree/mdspan/README.md
Empty file.
43 changes: 43 additions & 0 deletions kokkos_tree/mdspan/kokkos_extent_inv.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#include <Kokkos_Core.hpp>


using ext = MDSPAN_IMPL_STANDARD_NAMESPACE::extents<int, 2, 3, 4>;
namespace Test {

TEST(extent_inv, extent_line_376){
static_assert(std::is_same_v<typename ext::index_type,int>,"index_type is not int");
static_assert(std::is_same_v<typename ext::rank_type,size_t>,"rank_type is not size_t");
auto constexpr rank = ext::rank();
static_assert(rank == 3,"rank is not 3");
auto constexpr drank = ext::rank_dynamic();
static_assert(drank == 0,"dynamic rank is not 0");
using dext = MDSPAN_IMPL_STANDARD_NAMESPACE::extents<int, 2, MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent, 4>;
auto constexpr drank2 = dext::rank_dynamic();
static_assert(drank2 == 1,"dynamic rank is not 1");
using msa = MDSPAN_IMPL_STANDARD_NAMESPACE::detail::maybe_static_array<int, size_t, MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent,2,3,4,MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent,5>;
static_assert(std::is_same_v<msa::value_type,int>,"value_type is not int");
static_assert(std::is_same_v<msa::static_value_type,size_t>,"static_value_type is not size_t");
static_assert(msa::tag_value == MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent,"tag_value is not dynamic_extent");
msa m1(23);
std::array<size_t,1> d_rank = {4};
msa m2(d_rank);
auto m1_static = m1.static_value(0);
EXPECT_EQ(m1_static,2);
auto m2_dynamic = m2.value(3);
std::cout<<"m2_dynamic: "<<m2_dynamic<<std::endl;
std::cout<<"m1 size : "<<m1.size()<<std::endl;
}
TEST(extent_inv, extent_line_main376){
using extent = MDSPAN_IMPL_STANDARD_NAMESPACE::extents<int, 2, 3, 4, MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent>;
static_assert(extent::rank() == 4,"rank is not 4");
static_assert(extent::rank_dynamic() == 1,"dynamic rank is not 1");
//static_assert(extent::extent(0) == 2,"extent(0) is not 2");
///static_assert(extent::extent(3) == 0,"extent(3) is not 3"); as non static;
extent ex;
EXPECT_EQ(ex.extent(0),2);
EXPECT_EQ(ex.extent(1),3);
EXPECT_EQ(ex.extent(2),4);
EXPECT_EQ(ex.extent(3),0);
static_assert(extent::static_extent(0) == 2,"extent(0) is not 2");
}
}
2 changes: 2 additions & 0 deletions kokkos_tree/test_dyn_rank.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
#include "kokkos_core/kokkos_pair_investigation.hpp"
#include "mdspan/kokkos_raw_mdspan.hpp"
#include "kokkos_core/test_drank.hpp"
#include "kokkos_core/View_data_analysis_kokkos_investigation.hpp"
#include "mdspan/kokkos_extent_inv.hpp"
#include <Kokkos_Core.hpp>
#include <gtest/gtest.h>
int main(int argc, char **argv) {
Expand Down
Loading