Skip to content

Commit 5141ff0

Browse files
authored
Rename project_num_t to map_to_sized_type_t (#1330)
1 parent 5431ec2 commit 5141ff0

6 files changed

Lines changed: 36 additions & 36 deletions

File tree

include/xsimd/arch/xsimd_neon.hpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ namespace xsimd
256256
XSIMD_INLINE batch<R, A> bitwise_cast(batch<T, A> const& arg, batch<R, A> const&, requires_arch<neon>) noexcept
257257
{
258258
using src_register_type = typename batch<T, A>::register_type;
259-
return wrap::x_vreinterpretq<project_num_t<R>, project_num_t<T>>(src_register_type(arg));
259+
return wrap::x_vreinterpretq<map_to_sized_type_t<R>, map_to_sized_type_t<T>>(src_register_type(arg));
260260
}
261261

262262
/*************
@@ -846,7 +846,7 @@ namespace xsimd
846846
XSIMD_INLINE batch<T, A> add(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
847847
{
848848
using register_type = typename batch<T, A>::register_type;
849-
return wrap::x_vaddq<project_num_t<T>>(register_type(lhs), register_type(rhs));
849+
return wrap::x_vaddq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
850850
}
851851

852852
/*******
@@ -870,7 +870,7 @@ namespace xsimd
870870
XSIMD_INLINE batch<T, A> avg(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
871871
{
872872
using register_type = typename batch<T, A>::register_type;
873-
return wrap::x_vhaddq<project_num_t<T>>(register_type(lhs), register_type(rhs));
873+
return wrap::x_vhaddq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
874874
}
875875

876876
/********
@@ -894,7 +894,7 @@ namespace xsimd
894894
XSIMD_INLINE batch<T, A> avgr(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
895895
{
896896
using register_type = typename batch<T, A>::register_type;
897-
return wrap::x_vrhaddq<project_num_t<T>>(register_type(lhs), register_type(rhs));
897+
return wrap::x_vrhaddq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
898898
}
899899

900900
/********
@@ -930,7 +930,7 @@ namespace xsimd
930930
XSIMD_INLINE batch<T, A> sadd(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
931931
{
932932
using register_type = typename batch<T, A>::register_type;
933-
return wrap::x_vqaddq<project_num_t<T>>(register_type(lhs), register_type(rhs));
933+
return wrap::x_vqaddq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
934934
}
935935

936936
/*******
@@ -966,7 +966,7 @@ namespace xsimd
966966
XSIMD_INLINE batch<T, A> sub(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
967967
{
968968
using register_type = typename batch<T, A>::register_type;
969-
return wrap::x_vsubq<project_num_t<T>>(register_type(lhs), register_type(rhs));
969+
return wrap::x_vsubq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
970970
}
971971

972972
/********
@@ -1002,7 +1002,7 @@ namespace xsimd
10021002
XSIMD_INLINE batch<T, A> ssub(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
10031003
{
10041004
using register_type = typename batch<T, A>::register_type;
1005-
return wrap::x_vqsubq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1005+
return wrap::x_vqsubq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
10061006
}
10071007

10081008
/*******
@@ -1034,7 +1034,7 @@ namespace xsimd
10341034
XSIMD_INLINE batch<T, A> mul(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
10351035
{
10361036
using register_type = typename batch<T, A>::register_type;
1037-
return wrap::x_vmulq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1037+
return wrap::x_vmulq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
10381038
}
10391039

10401040
/*******
@@ -1101,7 +1101,7 @@ namespace xsimd
11011101
XSIMD_INLINE batch_bool<T, A> eq(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
11021102
{
11031103
using register_type = typename batch<T, A>::register_type;
1104-
return wrap::x_vceqq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1104+
return wrap::x_vceqq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
11051105
}
11061106

11071107
template <class A, class T, detail::exclude_int64_neon_t<T> = 0>
@@ -1196,7 +1196,7 @@ namespace xsimd
11961196
XSIMD_INLINE batch_bool<T, A> lt(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
11971197
{
11981198
using register_type = typename batch<T, A>::register_type;
1199-
return wrap::x_vcltq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1199+
return wrap::x_vcltq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
12001200
}
12011201

12021202
template <class A, class T, detail::enable_sized_signed_t<T, 8> = 0>
@@ -1243,7 +1243,7 @@ namespace xsimd
12431243
XSIMD_INLINE batch_bool<T, A> le(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
12441244
{
12451245
using register_type = typename batch<T, A>::register_type;
1246-
return wrap::x_vcleq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1246+
return wrap::x_vcleq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
12471247
}
12481248

12491249
template <class A, class T, detail::enable_sized_integral_t<T, 8> = 0>
@@ -1281,7 +1281,7 @@ namespace xsimd
12811281
XSIMD_INLINE batch_bool<T, A> gt(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
12821282
{
12831283
using register_type = typename batch<T, A>::register_type;
1284-
return wrap::x_vcgtq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1284+
return wrap::x_vcgtq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
12851285
}
12861286

12871287
template <class A, class T, detail::enable_sized_signed_t<T, 8> = 0>
@@ -1328,7 +1328,7 @@ namespace xsimd
13281328
XSIMD_INLINE batch_bool<T, A> ge(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
13291329
{
13301330
using register_type = typename batch<T, A>::register_type;
1331-
return wrap::x_vcgeq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1331+
return wrap::x_vcgeq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
13321332
}
13331333

13341334
template <class A, class T, detail::enable_sized_integral_t<T, 8> = 0>
@@ -1385,7 +1385,7 @@ namespace xsimd
13851385
XSIMD_INLINE batch<T, A> bitwise_and(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
13861386
{
13871387
using register_type = typename batch<T, A>::register_type;
1388-
return wrap::x_vandq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1388+
return wrap::x_vandq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
13891389
}
13901390

13911391
template <class A, class T, detail::enable_neon_type_t<T> = 0>
@@ -1432,7 +1432,7 @@ namespace xsimd
14321432
XSIMD_INLINE batch<T, A> bitwise_or(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
14331433
{
14341434
using register_type = typename batch<T, A>::register_type;
1435-
return wrap::x_vorrq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1435+
return wrap::x_vorrq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
14361436
}
14371437

14381438
template <class A, class T, detail::enable_neon_type_t<T> = 0>
@@ -1479,7 +1479,7 @@ namespace xsimd
14791479
XSIMD_INLINE batch<T, A> bitwise_xor(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
14801480
{
14811481
using register_type = typename batch<T, A>::register_type;
1482-
return wrap::x_veorq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1482+
return wrap::x_veorq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
14831483
}
14841484

14851485
template <class A, class T, detail::enable_neon_type_t<T> = 0>
@@ -1541,7 +1541,7 @@ namespace xsimd
15411541
XSIMD_INLINE batch<T, A> bitwise_not(batch<T, A> const& arg, requires_arch<neon>) noexcept
15421542
{
15431543
using register_type = typename batch<T, A>::register_type;
1544-
return wrap::x_vmvnq<project_num_t<T>>(register_type(arg));
1544+
return wrap::x_vmvnq<map_to_sized_type_t<T>>(register_type(arg));
15451545
}
15461546

15471547
template <class A, class T, detail::enable_neon_type_t<T> = 0>
@@ -1587,7 +1587,7 @@ namespace xsimd
15871587
XSIMD_INLINE batch<T, A> bitwise_andnot(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
15881588
{
15891589
using register_type = typename batch<T, A>::register_type;
1590-
return wrap::x_vbicq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1590+
return wrap::x_vbicq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
15911591
}
15921592

15931593
template <class A, class T, detail::enable_neon_type_t<T> = 0>
@@ -1626,7 +1626,7 @@ namespace xsimd
16261626
XSIMD_INLINE batch<T, A> min(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
16271627
{
16281628
using register_type = typename batch<T, A>::register_type;
1629-
return wrap::x_vminq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1629+
return wrap::x_vminq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
16301630
}
16311631

16321632
template <class A, class T, detail::enable_sized_integral_t<T, 8> = 0>
@@ -1664,7 +1664,7 @@ namespace xsimd
16641664
XSIMD_INLINE batch<T, A> max(batch<T, A> const& lhs, batch<T, A> const& rhs, requires_arch<neon>) noexcept
16651665
{
16661666
using register_type = typename batch<T, A>::register_type;
1667-
return wrap::x_vmaxq<project_num_t<T>>(register_type(lhs), register_type(rhs));
1667+
return wrap::x_vmaxq<map_to_sized_type_t<T>>(register_type(lhs), register_type(rhs));
16681668
}
16691669

16701670
template <class A, class T, detail::enable_sized_integral_t<T, 8> = 0>
@@ -1702,7 +1702,7 @@ namespace xsimd
17021702
XSIMD_INLINE batch<T, A> abs(batch<T, A> const& arg, requires_arch<neon>) noexcept
17031703
{
17041704
using register_type = typename batch<T, A>::register_type;
1705-
return wrap::x_vabsq<project_num_t<T>>(register_type(arg));
1705+
return wrap::x_vabsq<map_to_sized_type_t<T>>(register_type(arg));
17061706
}
17071707

17081708
/********
@@ -2052,7 +2052,7 @@ namespace xsimd
20522052
{
20532053
using bool_register_type = typename batch_bool<T, A>::register_type;
20542054
using register_type = typename batch<T, A>::register_type;
2055-
return wrap::x_vbslq<project_num_t<T>>(bool_register_type(cond), register_type(a), register_type(b));
2055+
return wrap::x_vbslq<map_to_sized_type_t<T>>(bool_register_type(cond), register_type(a), register_type(b));
20562056
}
20572057

20582058
template <class A, class T, bool... b, detail::enable_neon_type_t<T> = 0>
@@ -3182,7 +3182,7 @@ namespace xsimd
31823182
XSIMD_INLINE batch<T, A> rotate_left(batch<T, A> const& a, requires_arch<neon>) noexcept
31833183
{
31843184
using register_type = typename batch<T, A>::register_type;
3185-
return wrap::x_rotate_left<N, project_num_t<T>>(register_type(a), register_type(a));
3185+
return wrap::x_rotate_left<N, map_to_sized_type_t<T>>(register_type(a), register_type(a));
31863186
}
31873187
}
31883188

include/xsimd/arch/xsimd_neon64.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,14 +1309,14 @@ namespace xsimd
13091309
XSIMD_INLINE batch<double, A> bitwise_cast(batch<T, A> const& arg, batch<double, A> const&, requires_arch<neon64>) noexcept
13101310
{
13111311
using register_type = typename batch<T, A>::register_type;
1312-
return wrap::x_vreinterpretq<double, project_num_t<T>>(register_type(arg));
1312+
return wrap::x_vreinterpretq<double, map_to_sized_type_t<T>>(register_type(arg));
13131313
}
13141314

13151315
template <class A, class R>
13161316
XSIMD_INLINE batch<R, A> bitwise_cast(batch<double, A> const& arg, batch<R, A> const&, requires_arch<neon64>) noexcept
13171317
{
13181318
using src_register_type = typename batch<double, A>::register_type;
1319-
return wrap::x_vreinterpretq<project_num_t<R>, double>(src_register_type(arg));
1319+
return wrap::x_vreinterpretq<map_to_sized_type_t<R>, double>(src_register_type(arg));
13201320
}
13211321

13221322
template <class A>

include/xsimd/arch/xsimd_rvv.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,7 @@ namespace xsimd
388388
// A bit of a dance, here, because rvvmv_splat has no other
389389
// argument from which to deduce type, and T=char is not
390390
// supported.
391-
project_num_t<T> arg_not_char(arg);
391+
map_to_sized_type_t<T> arg_not_char(arg);
392392
const auto splat = rvvmv_splat(arg_not_char);
393393
return rvv_reg_t<T, Width>(splat.get_bytes(), types::detail::XSIMD_RVV_BITCAST);
394394
}
@@ -414,7 +414,7 @@ namespace xsimd
414414
template <class A, class T, detail::enable_arithmetic_t<T> = 0>
415415
XSIMD_INLINE batch<T, A> load_aligned(T const* src, convert<T>, requires_arch<rvv>) noexcept
416416
{
417-
return detail_rvv::rvvle(reinterpret_cast<project_num_t<T> const*>(src));
417+
return detail_rvv::rvvle(reinterpret_cast<map_to_sized_type_t<T> const*>(src));
418418
}
419419

420420
template <class A, class T, detail::enable_arithmetic_t<T> = 0>
@@ -491,7 +491,7 @@ namespace xsimd
491491
template <class A, class T, detail::enable_arithmetic_t<T> = 0>
492492
XSIMD_INLINE void store_aligned(T* dst, batch<T, A> const& src, requires_arch<rvv>) noexcept
493493
{
494-
detail_rvv::rvvse(reinterpret_cast<project_num_t<T>*>(dst), src);
494+
detail_rvv::rvvse(reinterpret_cast<map_to_sized_type_t<T>*>(dst), src);
495495
}
496496

497497
template <class A, class T, detail::enable_arithmetic_t<T> = 0>
@@ -522,7 +522,7 @@ namespace xsimd
522522
{
523523
using UU = as_unsigned_integer_t<U>;
524524
const auto uindex = detail_rvv::rvv_to_unsigned_batch(index);
525-
auto* base = reinterpret_cast<project_num_t<T>*>(dst);
525+
auto* base = reinterpret_cast<map_to_sized_type_t<T>*>(dst);
526526
// or rvvsuxei
527527
const auto bi = detail_rvv::rvvmul_splat(uindex, sizeof(T));
528528
detail_rvv::rvvsoxei(base, bi, vals);
@@ -534,7 +534,7 @@ namespace xsimd
534534
{
535535
using UU = as_unsigned_integer_t<U>;
536536
const auto uindex = detail_rvv::rvv_to_unsigned_batch(index);
537-
auto const* base = reinterpret_cast<project_num_t<T> const*>(src);
537+
auto const* base = reinterpret_cast<map_to_sized_type_t<T> const*>(src);
538538
// or rvvluxei
539539
const auto bi = detail_rvv::rvvmul_splat(uindex, sizeof(T));
540540
return detail_rvv::rvvloxei(base, bi);

include/xsimd/arch/xsimd_sve.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ namespace xsimd
9292
template <class A, class T, detail::enable_arithmetic_t<T> = 0>
9393
XSIMD_INLINE batch<T, A> load_aligned(T const* src, convert<T>, requires_arch<sve>) noexcept
9494
{
95-
return svld1(detail_sve::ptrue<T>(), reinterpret_cast<project_num_t<T> const*>(src));
95+
return svld1(detail_sve::ptrue<T>(), reinterpret_cast<map_to_sized_type_t<T> const*>(src));
9696
}
9797

9898
template <class A, class T, detail::enable_arithmetic_t<T> = 0>
@@ -105,7 +105,7 @@ namespace xsimd
105105
template <class A, class T, bool... Values, class Mode, detail::enable_arithmetic_t<T> = 0>
106106
XSIMD_INLINE batch<T, A> load_masked(T const* mem, batch_bool_constant<float, A, Values...>, Mode, requires_arch<sve>) noexcept
107107
{
108-
return svld1(detail_sve::pmask<Values...>(), reinterpret_cast<project_num_t<T> const*>(mem));
108+
return svld1(detail_sve::pmask<Values...>(), reinterpret_cast<map_to_sized_type_t<T> const*>(mem));
109109
}
110110

111111
// load_complex
@@ -132,7 +132,7 @@ namespace xsimd
132132
template <class A, class T, detail::enable_arithmetic_t<T> = 0>
133133
XSIMD_INLINE void store_aligned(T* dst, batch<T, A> const& src, requires_arch<sve>) noexcept
134134
{
135-
svst1(detail_sve::ptrue<T>(), reinterpret_cast<project_num_t<T>*>(dst), src);
135+
svst1(detail_sve::ptrue<T>(), reinterpret_cast<map_to_sized_type_t<T>*>(dst), src);
136136
}
137137

138138
template <class A, class T, detail::enable_arithmetic_t<T> = 0>

include/xsimd/types/xsimd_rvv_register.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ namespace xsimd
326326
operator register_type() const noexcept { return value.get(); }
327327
};
328328
template <class T, size_t Width = XSIMD_RVV_BITS>
329-
using rvv_reg_t = std::conditional_t<!std::is_void<T>::value, rvv_reg<project_num_t<T>, Width>, void>;
329+
using rvv_reg_t = std::conditional_t<!std::is_void<T>::value, rvv_reg<map_to_sized_type_t<T>, Width>, void>;
330330

331331
// And some more of the same stuff for bool types, which have
332332
// similar problems and similar workarounds.
@@ -388,7 +388,7 @@ namespace xsimd
388388

389389
template <class T, size_t Width = XSIMD_RVV_BITS>
390390
using rvv_bool_t = std::enable_if_t < !std::is_void<T>::value,
391-
rvv_bool<project_num_t<T>, Width<rvv_width_m1 ? rvv_width_m1 : Width>>;
391+
rvv_bool<map_to_sized_type_t<T>, Width<rvv_width_m1 ? rvv_width_m1 : Width>>;
392392

393393
template <size_t S>
394394
struct rvv_vector_type_impl;

include/xsimd/utils/xsimd_type_traits.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ namespace xsimd
127127
* @tparam T arithmetic type to project from.
128128
*/
129129
template <typename T>
130-
using project_num_t = typename detail::remap_num<T, /* factor= */ 1>::type;
130+
using map_to_sized_type_t = typename detail::remap_num<T, /* factor= */ 1>::type;
131131

132132
/**
133133
* @ingroup type_traits

0 commit comments

Comments
 (0)