Skip to content

Commit 18b31fc

Browse files
committed
modified
1 parent 7e92770 commit 18b31fc

File tree

8 files changed

+32
-16
lines changed

8 files changed

+32
-16
lines changed

ctmd/concatenate.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ concatenate(std::tuple<InsTypes...> &&Ins) noexcept {
116116
// generate out
117117
using T = decltype([]<size_t... Is>(std::index_sequence<Is...>) {
118118
return std::common_type_t<
119-
value_type_t<std::tuple_element_t<Is, ins_t>>...>{};
119+
core::value_type_t<std::tuple_element_t<Is, ins_t>>...>{};
120120
}(std::make_index_sequence<num_ins>{}));
121121
auto out = ctmd::empty<T>(out_extents);
122122

ctmd/core/broadcast.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ inline constexpr void batch(Func &&func, std::index_sequence<offsets...>,
415415
if constexpr (possibly_same_bexts) {
416416
const auto same_bexts =
417417
[&]<size_t... Is>(std::index_sequence<Is...>) {
418-
return ctmd::same(slice_with_offset<ofst[Is], br[Is]>(
418+
return core::same(slice_with_offset<ofst[Is], br[Is]>(
419419
std::get<Is>(ins_tuple).extents())...);
420420
}(std::make_index_sequence<sizeof...(ins_t)>{});
421421

@@ -435,8 +435,8 @@ inline constexpr void batch(Func &&func, std::index_sequence<offsets...>,
435435
const auto bexts = slice_with_offset<ofst[0], br[0]>(
436436
std::get<0>(ins_tuple).extents());
437437

438-
constexpr size_t static_bsize = ctmd::static_size(bexts);
439-
const size_t bsize = ctmd::size(bexts);
438+
constexpr size_t static_bsize = core::static_size(bexts);
439+
const size_t bsize = core::size(bexts);
440440

441441
[&]<size_t... Is>(std::index_sequence<Is...>) {
442442
detail::batch_impl<1>(

ctmd/core/convert.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,5 +64,15 @@ reshape(InType &&In, const extents_t &new_extents = extents_t{}) noexcept {
6464
new_extents};
6565
}
6666

67+
template <typename T>
68+
using to_mdspan_t = decltype(to_mdspan(std::declval<T>()));
69+
70+
template <typename T>
71+
using to_mdcontainer_t =
72+
std::conditional_t<to_mdspan_t<T>::rank() == 0,
73+
typename to_mdspan_t<T>::value_type,
74+
mdarray<typename to_mdspan_t<T>::value_type,
75+
typename to_mdspan_t<T>::extents_type>>;
76+
6777
} // namespace core
6878
} // namespace ctmd

ctmd/core/type.hpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ concept mdspan_c = requires {
6565
typename T::accessor_type;
6666
};
6767

68+
namespace core {
69+
6870
template <extents_c exts_t>
6971
[[nodiscard]] inline constexpr size_t
7072
static_size(const exts_t &exts = exts_t{}) noexcept {
@@ -136,11 +138,13 @@ template <extents_c in1_t, extents_c in2_t, extents_c... ins_t>
136138
}
137139
}
138140

141+
} // namespace core
142+
139143
template <typename T, extents_c extent_t>
140144
using mdarray = std::conditional_t<
141145
extent_t::rank_dynamic() == 0,
142146
std::experimental::mdarray<T, extent_t, layout_right,
143-
std::array<T, static_size<extent_t>()>>,
147+
std::array<T, core::static_size<extent_t>()>>,
144148
std::experimental::mdarray<T, extent_t, layout_right, std::vector<T>>>;
145149

146150
template <size_t start, size_t end>
@@ -150,11 +154,12 @@ using slice = std::experimental::strided_slice<
150154
std::integral_constant<size_t, 1>>;
151155

152156
enum class MPMode : uint8_t {
153-
NONE,
154-
SIMD, // NOTE: Testing
155-
CPUMP,
157+
NONE, // No parallelization
158+
SIMD, // SIMD parallelization
159+
CPUMP, // CPU multi-processing with OpenMP
156160
};
157161

162+
namespace core {
158163
namespace detail {
159164

160165
template <typename T, typename = void> struct value_type_t_impl {
@@ -171,4 +176,5 @@ struct value_type_t_impl<T, std::void_t<typename T::value_type>> {
171176
template <typename T>
172177
using value_type_t = typename detail::value_type_t_impl<T>::type;
173178

179+
} // namespace core
174180
} // namespace ctmd

ctmd/random/rand.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ inline constexpr void rand(InType &&In,
7575

7676
if constexpr (in_t::rank_dynamic() == 0) {
7777
if (std::is_constant_evaluated()) {
78-
using T = value_type_t<in_t>;
78+
using T = core::value_type_t<in_t>;
7979

8080
if constexpr (in_t::rank() == 0) {
8181
constexpr auto data =

tests/empty/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ TEST(stack, 1) {
1010
constexpr auto x = md::empty<T>(md::extents<size_t, 1, 2, 3>{});
1111

1212
constexpr auto is_same_extents =
13-
md::same(x.extents(), md::extents<size_t, 1, 2, 3>{});
13+
md::core::same(x.extents(), md::extents<size_t, 1, 2, 3>{});
1414

1515
ASSERT_TRUE(is_same_extents);
1616
}
@@ -21,7 +21,7 @@ TEST(heap, 2) {
2121
const auto x = md::empty<T>(md::dims<3>{1, 2, 3});
2222

2323
const auto is_same_extents =
24-
md::same(x.extents(), md::extents<size_t, 1, 2, 3>{});
24+
md::core::same(x.extents(), md::extents<size_t, 1, 2, 3>{});
2525

2626
ASSERT_TRUE(is_same_extents);
2727
}

tests/empty_like/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ TEST(stack, 1) {
1111
constexpr auto y = md::empty_like(x);
1212

1313
constexpr auto is_same_extents =
14-
md::same(y.extents(), md::extents<size_t, 1, 2, 3>{});
14+
md::core::same(y.extents(), md::extents<size_t, 1, 2, 3>{});
1515

1616
ASSERT_TRUE(is_same_extents);
1717
}
@@ -23,7 +23,7 @@ TEST(heap, 2) {
2323
const auto y = md::empty_like(x);
2424

2525
const auto is_same_extents =
26-
md::same(y.extents(), md::extents<size_t, 1, 2, 3>{});
26+
md::core::same(y.extents(), md::extents<size_t, 1, 2, 3>{});
2727

2828
ASSERT_TRUE(is_same_extents);
2929
}

tests/linspace/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,19 @@ TEST(stack, 2) {
4242
md::linspace<-1>(start, stop, md::extents<uint8_t, num>{}, true);
4343

4444
static_assert(
45-
md::same(out1.extents(), md::extents<size_t, num, ext1, ext2>{}));
45+
md::core::same(out1.extents(), md::extents<size_t, num, ext1, ext2>{}));
4646
static_assert(out1(0, 0, 0) == start(0, 0));
4747
static_assert(out1(num - 1, ext1 - 1, ext2 - 1) ==
4848
stop(ext1 - 1, ext2 - 1));
4949

5050
static_assert(
51-
md::same(out2.extents(), md::extents<size_t, ext1, num, ext2>{}));
51+
md::core::same(out2.extents(), md::extents<size_t, ext1, num, ext2>{}));
5252
static_assert(out2(0, 0, 0) == start(0, 0));
5353
static_assert(out2(ext1 - 1, num - 1, ext2 - 1) ==
5454
stop(ext1 - 1, ext2 - 1));
5555

5656
static_assert(
57-
md::same(out3.extents(), md::extents<size_t, ext1, ext2, num>{}));
57+
md::core::same(out3.extents(), md::extents<size_t, ext1, ext2, num>{}));
5858
static_assert(out3(0, 0, 0) == start(0, 0));
5959
static_assert(out3(ext1 - 1, ext2 - 1, num - 1) ==
6060
stop(ext1 - 1, ext2 - 1));

0 commit comments

Comments
 (0)