Skip to content

Commit c0554a8

Browse files
committed
Rename is_iota to is_ptr and is_iota_any to is_iota
These names still aren't good (is_iota means 'is sequence view') but at least is_ptr is better than before. * ra/ply.hh: As stated. * ra/ra.hh, test/iota.cc: Fix uses.
1 parent 27ca538 commit c0554a8

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

ra/ply.hh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -487,10 +487,10 @@ ii(ra::ilist_t<i ...>, T o=0)
487487
return ViewSmall<Seq<T>, ra::ic_t<ra::default_dims(std::array<ra::dim_t, sizeof...(i)>{i...})>>(Seq<T>{o});
488488
}
489489

490-
template <class A> concept is_iota = requires (A a) { []<class I, class N, class S>(Ptr<Seq<I>, N, S> const &){}(a); };
490+
template <class A> concept is_ptr = requires (A a) { []<class I, class N, class S>(Ptr<Seq<I>, N, S> const &){}(a); };
491491
template <class A> concept is_iota_static = requires (A a) { []<class I, class Dimv>(ViewSmall<Seq<I>, Dimv> const &){}(a); };
492492
template <class A> concept is_iota_dynamic = requires (A a) { []<class I, rank_t RANK>(ViewBig<Seq<I>, RANK> const &){}(a); };
493-
template <class A> concept is_iota_any = (is_iota<A> || is_iota_dynamic<A> || is_iota_static<A>);
493+
template <class A> concept is_iota = (is_ptr<A> || is_iota_dynamic<A> || is_iota_static<A>);
494494
template <class A> concept is_scalar_index = is_ra_0<A>;
495495

496496
// beaten, whole or piecewise. Presize bv/ds not to need push_back
@@ -500,7 +500,7 @@ beatable(I && i)
500500
{
501501
return ((requires { []<int N>(dots_t<N>){}(i); }) || (requires { []<int N>(insert_t<N>){}(i); }) || is_scalar_index<I>
502502
// exclude to let B=A(... i ...) use B's len. FIXME
503-
|| (is_iota_any<I> && requires { requires UNB!=ra::size_s<I>(); }));
503+
|| (is_iota<I> && requires { requires UNB!=ra::size_s<I>(); }));
504504
}
505505

506506
consteval auto fsrc(auto const &) { return 1; }
@@ -558,7 +558,7 @@ fromb(auto pl, auto ds, auto && bv, int bk, auto && a, int ak, I0 const & i0, au
558558
pl += i*a.step(ak);
559559
}
560560
++ak;
561-
} else if constexpr (is_iota_any<I0> && beatable(i0)) {
561+
} else if constexpr (is_iota<I0> && beatable(i0)) {
562562
if constexpr (dobv || dopl) {
563563
auto const la = a.len(ak);
564564
for (int q=0; q<rank(i0); ++q) {

ra/ra.hh

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -140,17 +140,17 @@ template <class X> concept iota_op = ra::is_ra_0<X> && std::is_integral_v<ncvalu
140140
#define RA_IOTA_BINOP(OP, A, B, VAL) \
141141
template <A I, B J> constexpr auto opt(Map<OP, std::tuple<I, J>> && e) { return VAL; }
142142

143-
RA_IOTA_BINOP(std::plus<>, is_iota_any, iota_op, ra::iota(RA0.dimv[0].len, RA0.cp.i+RA1, RA0.dimv[0].step))
144-
RA_IOTA_BINOP(std::plus<>, iota_op, is_iota_any, ra::iota(RA1.dimv[0].len, RA0+RA1.cp.i, RA1.dimv[0].step))
145-
RA_IOTA_BINOP(std::plus<>, is_iota_any, is_iota_any, ra::iota(clen(e, ic<0>), RA0.cp.i+RA1.cp.i, cadd(RA0.dimv[0].step, RA1.dimv[0].step)))
146-
RA_IOTA_BINOP(std::minus<>, is_iota_any, iota_op, ra::iota(RA0.dimv[0].len, RA0.cp.i-RA1, RA0.dimv[0].step))
147-
RA_IOTA_BINOP(std::minus<>, iota_op, is_iota_any, ra::iota(RA1.dimv[0].len, RA0-RA1.cp.i, csub(ic<0>, RA1.dimv[0].step)))
148-
RA_IOTA_BINOP(std::minus<>, is_iota_any, is_iota_any, ra::iota(clen(e, ic<0>), RA0.cp.i-RA1.cp.i, csub(RA0.dimv[0].step, RA1.dimv[0].step)))
149-
RA_IOTA_BINOP(std::multiplies<>, is_iota_any, iota_op, ra::iota(RA0.dimv[0].len, RA0.cp.i*RA1, RA0.dimv[0].step*RA1))
150-
RA_IOTA_BINOP(std::multiplies<>, iota_op, is_iota_any, ra::iota(RA1.dimv[0].len, RA0*RA1.cp.i, RA0*RA1.dimv[0].step))
143+
RA_IOTA_BINOP(std::plus<>, is_iota, iota_op, ra::iota(RA0.dimv[0].len, RA0.cp.i+RA1, RA0.dimv[0].step))
144+
RA_IOTA_BINOP(std::plus<>, iota_op, is_iota, ra::iota(RA1.dimv[0].len, RA0+RA1.cp.i, RA1.dimv[0].step))
145+
RA_IOTA_BINOP(std::plus<>, is_iota, is_iota, ra::iota(clen(e, ic<0>), RA0.cp.i+RA1.cp.i, cadd(RA0.dimv[0].step, RA1.dimv[0].step)))
146+
RA_IOTA_BINOP(std::minus<>, is_iota, iota_op, ra::iota(RA0.dimv[0].len, RA0.cp.i-RA1, RA0.dimv[0].step))
147+
RA_IOTA_BINOP(std::minus<>, iota_op, is_iota, ra::iota(RA1.dimv[0].len, RA0-RA1.cp.i, csub(ic<0>, RA1.dimv[0].step)))
148+
RA_IOTA_BINOP(std::minus<>, is_iota, is_iota, ra::iota(clen(e, ic<0>), RA0.cp.i-RA1.cp.i, csub(RA0.dimv[0].step, RA1.dimv[0].step)))
149+
RA_IOTA_BINOP(std::multiplies<>, is_iota, iota_op, ra::iota(RA0.dimv[0].len, RA0.cp.i*RA1, RA0.dimv[0].step*RA1))
150+
RA_IOTA_BINOP(std::multiplies<>, iota_op, is_iota, ra::iota(RA1.dimv[0].len, RA0*RA1.cp.i, RA0*RA1.dimv[0].step))
151151
#undef RA_IOTA_BINOP
152152

153-
template <is_iota_any I> constexpr auto
153+
template <is_iota I> constexpr auto
154154
opt(Map<std::negate<>, std::tuple<I>> && e) { return ra::iota(RA0.dimv[0].len, -RA0.cp.i, csub(ic<0>, RA0.dimv[0].step)); }
155155

156156
#if RA_OPT_SMALL==1

test/iota.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ int main()
116116
}
117117
tr.section("TODO view iota also gets optimized");
118118
{
119-
assert(ra::is_iota_any<decltype(ra::ii({3}))>);
120-
assert(ra::is_iota_any<decltype(ra::iota(3, 1, 2))>);
119+
assert(ra::is_iota<decltype(ra::ii({3}))>);
120+
assert(ra::is_iota<decltype(ra::iota(3, 1, 2))>);
121121
cout << ra::opt(-ra::iota(3)).dimv[0].len << endl;
122-
// FIXME doesn't work because opt() works on Map and the leaves of that are Views' iterators which aren't is_iota_any, not the Views themselves which are.
122+
// FIXME doesn't work because opt() works on Map and the leaves of that are Views' iterators which aren't is_iota, not the Views themselves which are.
123123
// cout << ra::opt(-ra::ii({3})).dimv[0].len << endl;
124124
}
125125
tr.section("truncated sequence");

0 commit comments

Comments
 (0)