Skip to content

Commit c31e8c5

Browse files
authored
Merge pull request #2534 from gouarin/rename-and-fix-storage-iterator
Rename and fix storage iterator
2 parents 214d812 + c8c5a28 commit c31e8c5

23 files changed

+394
-333
lines changed

benchmark/benchmark_adapter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace xt
2222
const V a({1,2,3,4});
2323
const V b({1,2,3,4});
2424
using value_type = typename V::value_type;
25-
25+
2626
for (auto _ : state)
2727
{
2828
xtensor<value_type, 1> result(std::array<std::size_t, 1>({4}));
@@ -63,7 +63,7 @@ namespace xt
6363
auto ab = xt::adapt(b);
6464
auto ar = xt::adapt(res);
6565
auto fun = aa + ab;
66-
std::copy(fun.storage_cbegin(), fun.storage_cend(), ar.storage_begin());
66+
std::copy(fun.linear_cbegin(), fun.linear_cend(), ar.linear_begin());
6767
benchmark::DoNotOptimize(ar.data());
6868
}
6969
}
@@ -81,7 +81,7 @@ namespace xt
8181
auto ab = xt::adapt(b);
8282
auto ar = xt::adapt(res);
8383
auto fun = aa + ab;
84-
std::transform(fun.storage_cbegin(), fun.storage_cend(), ar.storage_begin(),
84+
std::transform(fun.linear_cbegin(), fun.linear_cend(), ar.linear_begin(),
8585
[](typename decltype(fun)::value_type x) { return static_cast<typename decltype(ar)::value_type>(x); });
8686
benchmark::DoNotOptimize(ar.data());
8787
}

benchmark/benchmark_assign.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ namespace xt
161161
for (auto _ : state)
162162
{
163163
auto fun = 3.0 * x - 2.0 * y;
164-
std::copy(fun.storage_cbegin(), fun.storage_cend(), res.storage_begin());
164+
std::copy(fun.linear_cbegin(), fun.linear_cend(), res.linear_begin());
165165
benchmark::DoNotOptimize(res.data());
166166
}
167167
}

benchmark/benchmark_math.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ namespace xt
9292
for (auto _ : state)
9393
{
9494
auto fct = f(lhs, rhs);
95-
std::copy(fct.storage_begin(), fct.storage_end(), res.storage_begin());
95+
std::copy(fct.linear_begin(), fct.linear_end(), res.linear_begin());
9696
benchmark::DoNotOptimize(res.data());
9797
}
9898
}

include/xtensor/xcontainer.hpp

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,10 @@ namespace xt
108108
using data_alignment = xt_simd::container_alignment_t<storage_type>;
109109
using simd_type = xt_simd::simd_type<value_type>;
110110

111-
using storage_iterator = typename iterable_base::storage_iterator;
112-
using const_storage_iterator = typename iterable_base::const_storage_iterator;
113-
using reverse_storage_iterator = typename iterable_base::reverse_storage_iterator;
114-
using const_reverse_storage_iterator = typename iterable_base::const_reverse_storage_iterator;
111+
using linear_iterator = typename iterable_base::linear_iterator;
112+
using const_linear_iterator = typename iterable_base::const_linear_iterator;
113+
using reverse_linear_iterator = typename iterable_base::reverse_linear_iterator;
114+
using const_reverse_linear_iterator = typename iterable_base::const_reverse_linear_iterator;
115115

116116
static_assert(static_layout != layout_type::any, "Container layout can never be layout_type::any!");
117117

@@ -189,24 +189,24 @@ namespace xt
189189
container_simd_return_type_t<storage_type, value_type, requested_type>
190190
/*simd_return_type<requested_type>*/ load_simd(size_type i) const;
191191

192-
storage_iterator storage_begin() noexcept;
193-
storage_iterator storage_end() noexcept;
192+
linear_iterator linear_begin() noexcept;
193+
linear_iterator linear_end() noexcept;
194194

195-
const_storage_iterator storage_begin() const noexcept;
196-
const_storage_iterator storage_end() const noexcept;
197-
const_storage_iterator storage_cbegin() const noexcept;
198-
const_storage_iterator storage_cend() const noexcept;
195+
const_linear_iterator linear_begin() const noexcept;
196+
const_linear_iterator linear_end() const noexcept;
197+
const_linear_iterator linear_cbegin() const noexcept;
198+
const_linear_iterator linear_cend() const noexcept;
199199

200-
reverse_storage_iterator storage_rbegin() noexcept;
201-
reverse_storage_iterator storage_rend() noexcept;
200+
reverse_linear_iterator storage_rbegin() noexcept;
201+
reverse_linear_iterator storage_rend() noexcept;
202202

203-
const_reverse_storage_iterator storage_rbegin() const noexcept;
204-
const_reverse_storage_iterator storage_rend() const noexcept;
205-
const_reverse_storage_iterator storage_crbegin() const noexcept;
206-
const_reverse_storage_iterator storage_crend() const noexcept;
203+
const_reverse_linear_iterator storage_rbegin() const noexcept;
204+
const_reverse_linear_iterator storage_rend() const noexcept;
205+
const_reverse_linear_iterator storage_crbegin() const noexcept;
206+
const_reverse_linear_iterator storage_crend() const noexcept;
207207

208-
using container_iterator = storage_iterator;
209-
using const_container_iterator = const_storage_iterator;
208+
using container_iterator = linear_iterator;
209+
using const_container_iterator = const_linear_iterator;
210210

211211
protected:
212212

@@ -423,7 +423,7 @@ namespace xt
423423
template <class T>
424424
inline void xcontainer<D>::fill(const T& value)
425425
{
426-
std::fill(storage_begin(), storage_end(), value);
426+
std::fill(linear_begin(), linear_end(), value);
427427
}
428428

429429
/**
@@ -752,73 +752,73 @@ namespace xt
752752
}
753753

754754
template <class D>
755-
inline auto xcontainer<D>::storage_begin() noexcept -> storage_iterator
755+
inline auto xcontainer<D>::linear_begin() noexcept -> linear_iterator
756756
{
757757
return storage().begin();
758758
}
759759

760760
template <class D>
761-
inline auto xcontainer<D>::storage_end() noexcept -> storage_iterator
761+
inline auto xcontainer<D>::linear_end() noexcept -> linear_iterator
762762
{
763763
return storage().end();
764764
}
765765

766766
template <class D>
767-
inline auto xcontainer<D>::storage_begin() const noexcept -> const_storage_iterator
767+
inline auto xcontainer<D>::linear_begin() const noexcept -> const_linear_iterator
768768
{
769769
return storage().begin();
770770
}
771771

772772
template <class D>
773-
inline auto xcontainer<D>::storage_end() const noexcept -> const_storage_iterator
773+
inline auto xcontainer<D>::linear_end() const noexcept -> const_linear_iterator
774774
{
775775
return storage().cend();
776776
}
777777

778778
template <class D>
779-
inline auto xcontainer<D>::storage_cbegin() const noexcept -> const_storage_iterator
779+
inline auto xcontainer<D>::linear_cbegin() const noexcept -> const_linear_iterator
780780
{
781781
return storage().cbegin();
782782
}
783783

784784
template <class D>
785-
inline auto xcontainer<D>::storage_cend() const noexcept -> const_storage_iterator
785+
inline auto xcontainer<D>::linear_cend() const noexcept -> const_linear_iterator
786786
{
787787
return storage().cend();
788788
}
789789

790790
template <class D>
791-
inline auto xcontainer<D>::storage_rbegin() noexcept -> reverse_storage_iterator
791+
inline auto xcontainer<D>::storage_rbegin() noexcept -> reverse_linear_iterator
792792
{
793793
return storage().rbegin();
794794
}
795795

796796
template <class D>
797-
inline auto xcontainer<D>::storage_rend() noexcept -> reverse_storage_iterator
797+
inline auto xcontainer<D>::storage_rend() noexcept -> reverse_linear_iterator
798798
{
799799
return storage().rend();
800800
}
801801

802802
template <class D>
803-
inline auto xcontainer<D>::storage_rbegin() const noexcept -> const_reverse_storage_iterator
803+
inline auto xcontainer<D>::storage_rbegin() const noexcept -> const_reverse_linear_iterator
804804
{
805805
return storage().rbegin();
806806
}
807807

808808
template <class D>
809-
inline auto xcontainer<D>::storage_rend() const noexcept -> const_reverse_storage_iterator
809+
inline auto xcontainer<D>::storage_rend() const noexcept -> const_reverse_linear_iterator
810810
{
811811
return storage().rend();
812812
}
813813

814814
template <class D>
815-
inline auto xcontainer<D>::storage_crbegin() const noexcept -> const_reverse_storage_iterator
815+
inline auto xcontainer<D>::storage_crbegin() const noexcept -> const_reverse_linear_iterator
816816
{
817817
return storage().crbegin();
818818
}
819819

820820
template <class D>
821-
inline auto xcontainer<D>::storage_crend() const noexcept -> const_reverse_storage_iterator
821+
inline auto xcontainer<D>::storage_crend() const noexcept -> const_reverse_linear_iterator
822822
{
823823
return storage().crend();
824824
}

include/xtensor/xdynamic_view.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ namespace xt
499499
template <class T>
500500
inline void xdynamic_view<CT, S, L, FST>::fill(const T& value)
501501
{
502-
return std::fill(this->storage_begin(), this->storage_end(), value);
502+
return std::fill(this->linear_begin(), this->linear_end(), value);
503503
}
504504

505505
template <class CT, class S, layout_type L, class FST>

include/xtensor/xexpression.hpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ namespace xt
278278

279279
template <class E>
280280
using const_xclosure_t = typename const_xclosure<E>::type;
281-
281+
282282
/*************************
283283
* expression tag system *
284284
*************************/
@@ -534,8 +534,8 @@ namespace xt
534534
using stepper = typename E::stepper;
535535
using const_stepper = typename E::const_stepper;
536536

537-
using storage_iterator = typename E::storage_iterator;
538-
using const_storage_iterator = typename E::const_storage_iterator;
537+
using linear_iterator = typename E::linear_iterator;
538+
using const_linear_iterator = typename E::const_linear_iterator;
539539

540540
using bool_load_type = typename E::bool_load_type;
541541

@@ -571,14 +571,14 @@ namespace xt
571571
XTENSOR_FORWARD_CONST_ITERATOR_METHOD(rend)
572572
XTENSOR_FORWARD_CONST_ITERATOR_METHOD(crbegin)
573573
XTENSOR_FORWARD_CONST_ITERATOR_METHOD(crend)
574-
575-
XTENSOR_FORWARD_METHOD(storage_begin)
576-
XTENSOR_FORWARD_METHOD(storage_end)
577-
XTENSOR_FORWARD_CONST_METHOD(storage_begin)
578-
XTENSOR_FORWARD_CONST_METHOD(storage_end)
579-
XTENSOR_FORWARD_CONST_METHOD(storage_cbegin)
580-
XTENSOR_FORWARD_CONST_METHOD(storage_cend)
581-
574+
575+
XTENSOR_FORWARD_METHOD(linear_begin)
576+
XTENSOR_FORWARD_METHOD(linear_end)
577+
XTENSOR_FORWARD_CONST_METHOD(linear_begin)
578+
XTENSOR_FORWARD_CONST_METHOD(linear_end)
579+
XTENSOR_FORWARD_CONST_METHOD(linear_cbegin)
580+
XTENSOR_FORWARD_CONST_METHOD(linear_cend)
581+
582582
XTENSOR_FORWARD_METHOD(storage_rbegin)
583583
XTENSOR_FORWARD_METHOD(storage_rend)
584584
XTENSOR_FORWARD_CONST_METHOD(storage_rbegin)

include/xtensor/xfunction.hpp

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,10 @@ namespace xt
230230
template <class S, layout_type L>
231231
using const_reverse_broadcast_iterator = typename iterable_base::template const_reverse_broadcast_iterator<S, L>;
232232

233-
using const_storage_iterator = xfunction_iterator<F, CT...>;
234-
using storage_iterator = const_storage_iterator;
235-
using const_reverse_storage_iterator = std::reverse_iterator<const_storage_iterator>;
236-
using reverse_storage_iterator = std::reverse_iterator<storage_iterator>;
233+
using const_linear_iterator = xfunction_iterator<F, CT...>;
234+
using linear_iterator = const_linear_iterator;
235+
using const_reverse_linear_iterator = std::reverse_iterator<const_linear_iterator>;
236+
using reverse_linear_iterator = std::reverse_iterator<linear_iterator>;
237237

238238
using iterator = typename iterable_base::iterator;
239239
using const_iterator = typename iterable_base::const_iterator;
@@ -292,15 +292,15 @@ namespace xt
292292
using iterable_base::crbegin;
293293
using iterable_base::crend;
294294

295-
const_storage_iterator storage_begin() const noexcept;
296-
const_storage_iterator storage_end() const noexcept;
297-
const_storage_iterator storage_cbegin() const noexcept;
298-
const_storage_iterator storage_cend() const noexcept;
295+
const_linear_iterator linear_begin() const noexcept;
296+
const_linear_iterator linear_end() const noexcept;
297+
const_linear_iterator linear_cbegin() const noexcept;
298+
const_linear_iterator linear_cend() const noexcept;
299299

300-
const_reverse_storage_iterator storage_rbegin() const noexcept;
301-
const_reverse_storage_iterator storage_rend() const noexcept;
302-
const_reverse_storage_iterator storage_crbegin() const noexcept;
303-
const_reverse_storage_iterator storage_crend() const noexcept;
300+
const_reverse_linear_iterator storage_rbegin() const noexcept;
301+
const_reverse_linear_iterator storage_rend() const noexcept;
302+
const_reverse_linear_iterator storage_crbegin() const noexcept;
303+
const_reverse_linear_iterator storage_crend() const noexcept;
304304

305305
template <class S>
306306
const_stepper stepper_begin(const S& shape) const noexcept;
@@ -403,7 +403,7 @@ namespace xt
403403

404404
private:
405405

406-
using data_type = std::tuple<decltype(linear_begin(std::declval<const std::decay_t<CT>>()))...>;
406+
using data_type = std::tuple<decltype(xt::linear_begin(std::declval<const std::decay_t<CT>>()))...>;
407407

408408
template <std::size_t... I>
409409
reference deref_impl(std::index_sequence<I...>) const;
@@ -686,53 +686,53 @@ namespace xt
686686
//@}
687687

688688
template <class F, class... CT>
689-
inline auto xfunction<F, CT...>::storage_begin() const noexcept -> const_storage_iterator
689+
inline auto xfunction<F, CT...>::linear_begin() const noexcept -> const_linear_iterator
690690
{
691-
return storage_cbegin();
691+
return linear_cbegin();
692692
}
693693

694694
template <class F, class... CT>
695-
inline auto xfunction<F, CT...>::storage_end() const noexcept -> const_storage_iterator
695+
inline auto xfunction<F, CT...>::linear_end() const noexcept -> const_linear_iterator
696696
{
697-
return storage_cend();
697+
return linear_cend();
698698
}
699699

700700
template <class F, class... CT>
701-
inline auto xfunction<F, CT...>::storage_cbegin() const noexcept -> const_storage_iterator
701+
inline auto xfunction<F, CT...>::linear_cbegin() const noexcept -> const_linear_iterator
702702
{
703-
auto f = [](const auto& e) noexcept { return linear_begin(e); };
703+
auto f = [](const auto& e) noexcept { return xt::linear_begin(e); };
704704
return build_iterator(f, std::make_index_sequence<sizeof...(CT)>());
705705
}
706706

707707
template <class F, class... CT>
708-
inline auto xfunction<F, CT...>::storage_cend() const noexcept -> const_storage_iterator
708+
inline auto xfunction<F, CT...>::linear_cend() const noexcept -> const_linear_iterator
709709
{
710-
auto f = [](const auto& e) noexcept { return linear_end(e); };
710+
auto f = [](const auto& e) noexcept { return xt::linear_end(e); };
711711
return build_iterator(f, std::make_index_sequence<sizeof...(CT)>());
712712
}
713713

714714
template <class F, class... CT>
715-
inline auto xfunction<F, CT...>::storage_rbegin() const noexcept -> const_reverse_storage_iterator
715+
inline auto xfunction<F, CT...>::storage_rbegin() const noexcept -> const_reverse_linear_iterator
716716
{
717717
return storage_crbegin();
718718
}
719719

720720
template <class F, class... CT>
721-
inline auto xfunction<F, CT...>::storage_rend() const noexcept -> const_reverse_storage_iterator
721+
inline auto xfunction<F, CT...>::storage_rend() const noexcept -> const_reverse_linear_iterator
722722
{
723723
return storage_crend();
724724
}
725725

726726
template <class F, class... CT>
727-
inline auto xfunction<F, CT...>::storage_crbegin() const noexcept -> const_reverse_storage_iterator
727+
inline auto xfunction<F, CT...>::storage_crbegin() const noexcept -> const_reverse_linear_iterator
728728
{
729-
return const_reverse_storage_iterator(storage_cend());
729+
return const_reverse_linear_iterator(linear_cend());
730730
}
731731

732732
template <class F, class... CT>
733-
inline auto xfunction<F, CT...>::storage_crend() const noexcept -> const_reverse_storage_iterator
733+
inline auto xfunction<F, CT...>::storage_crend() const noexcept -> const_reverse_linear_iterator
734734
{
735-
return const_reverse_storage_iterator(storage_cbegin());
735+
return const_reverse_linear_iterator(linear_cbegin());
736736
}
737737

738738
template <class F, class... CT>
@@ -841,7 +841,7 @@ namespace xt
841841
template <class Func, std::size_t... I>
842842
inline auto xfunction<F, CT...>::build_iterator(Func&& f, std::index_sequence<I...>) const noexcept
843843
{
844-
return const_storage_iterator(this, f(std::get<I>(m_e))...);
844+
return const_linear_iterator(this, f(std::get<I>(m_e))...);
845845
}
846846

847847
template <class F, class... CT>

0 commit comments

Comments
 (0)