OXIESEC PANEL
- Current Dir:
/
/
usr
/
include
/
c++
/
7
/
parallel
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
01/31/2023 12:38:15 PM
rwxr-xr-x
📄
algo.h
78.15 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
algobase.h
16.75 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
algorithm
1.35 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
algorithmfwd.h
31.45 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
balanced_quicksort.h
16.55 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
base.h
12.08 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
basic_iterator.h
1.55 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
checkers.h
2.25 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
compatibility.h
3.7 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
compiletime_settings.h
2.8 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
equally_split.h
3.28 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
features.h
3.46 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
find.h
13.27 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
find_selectors.h
6.83 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
for_each.h
3.85 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
for_each_selectors.h
10.32 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
iterator.h
5.54 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
list_partition.h
6.39 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
losertree.h
27.92 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
merge.h
9.35 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
multiseq_selection.h
21.56 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
multiway_merge.h
68.88 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
multiway_mergesort.h
14.91 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
numeric
20.23 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
numericfwd.h
7.32 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
omp_loop.h
3.94 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
omp_loop_static.h
4.01 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
par_loop.h
4.45 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
parallel.h
1.54 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
partial_sum.h
7.3 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
partition.h
14.61 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
queue.h
5.41 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
quicksort.h
5.98 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
random_number.h
4.13 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
random_shuffle.h
18.24 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
search.h
5.26 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
set_operations.h
14.25 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
settings.h
12.17 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
sort.h
7.53 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
tags.h
5.84 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
types.h
3.63 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
unique_copy.h
6.02 KB
12/04/2019 02:25:41 PM
rw-r--r--
📄
workstealing.h
9.39 KB
12/04/2019 02:25:41 PM
rw-r--r--
Editing: iterator.h
Close
// -*- C++ -*- // Copyright (C) 2007-2017 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms // of the GNU General Public License as published by the Free Software // Foundation; either version 3, or (at your option) any later // version. // This library is distributed in the hope that it will be useful, but // WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. // You should have received a copy of the GNU General Public License and // a copy of the GCC Runtime Library Exception along with this program; // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. /** @file parallel/iterator.h * @brief Helper iterator classes for the std::transform() functions. * This file is a GNU parallel extension to the Standard C++ Library. */ // Written by Johannes Singler. #ifndef _GLIBCXX_PARALLEL_ITERATOR_H #define _GLIBCXX_PARALLEL_ITERATOR_H 1 #include <parallel/basic_iterator.h> #include <bits/stl_pair.h> namespace __gnu_parallel { /** @brief A pair of iterators. The usual iterator operations are * applied to both child iterators. */ template<typename _Iterator1, typename _Iterator2, typename _IteratorCategory> class _IteratorPair : public std::pair<_Iterator1, _Iterator2> { private: typedef std::pair<_Iterator1, _Iterator2> _Base; public: typedef _IteratorCategory iterator_category; typedef void value_type; typedef std::iterator_traits<_Iterator1> _TraitsType; typedef typename _TraitsType::difference_type difference_type; typedef _IteratorPair* pointer; typedef _IteratorPair& reference; _IteratorPair() { } _IteratorPair(const _Iterator1& __first, const _Iterator2& __second) : _Base(__first, __second) { } // Pre-increment operator. _IteratorPair& operator++() { ++_Base::first; ++_Base::second; return *this; } // Post-increment operator. const _IteratorPair operator++(int) { return _IteratorPair(_Base::first++, _Base::second++); } // Pre-decrement operator. _IteratorPair& operator--() { --_Base::first; --_Base::second; return *this; } // Post-decrement operator. const _IteratorPair operator--(int) { return _IteratorPair(_Base::first--, _Base::second--); } // Type conversion. operator _Iterator2() const { return _Base::second; } _IteratorPair& operator=(const _IteratorPair& __other) { _Base::first = __other.first; _Base::second = __other.second; return *this; } _IteratorPair operator+(difference_type __delta) const { return _IteratorPair(_Base::first + __delta, _Base::second + __delta); } difference_type operator-(const _IteratorPair& __other) const { return _Base::first - __other.first; } }; /** @brief A triple of iterators. The usual iterator operations are applied to all three child iterators. */ template<typename _Iterator1, typename _Iterator2, typename _Iterator3, typename _IteratorCategory> class _IteratorTriple { public: typedef _IteratorCategory iterator_category; typedef void value_type; typedef typename std::iterator_traits<_Iterator1>::difference_type difference_type; typedef _IteratorTriple* pointer; typedef _IteratorTriple& reference; _Iterator1 _M_first; _Iterator2 _M_second; _Iterator3 _M_third; _IteratorTriple() { } _IteratorTriple(const _Iterator1& __first, const _Iterator2& __second, const _Iterator3& __third) { _M_first = __first; _M_second = __second; _M_third = __third; } // Pre-increment operator. _IteratorTriple& operator++() { ++_M_first; ++_M_second; ++_M_third; return *this; } // Post-increment operator. const _IteratorTriple operator++(int) { return _IteratorTriple(_M_first++, _M_second++, _M_third++); } // Pre-decrement operator. _IteratorTriple& operator--() { --_M_first; --_M_second; --_M_third; return *this; } // Post-decrement operator. const _IteratorTriple operator--(int) { return _IteratorTriple(_M_first--, _M_second--, _M_third--); } // Type conversion. operator _Iterator3() const { return _M_third; } _IteratorTriple& operator=(const _IteratorTriple& __other) { _M_first = __other._M_first; _M_second = __other._M_second; _M_third = __other._M_third; return *this; } _IteratorTriple operator+(difference_type __delta) const { return _IteratorTriple(_M_first + __delta, _M_second + __delta, _M_third + __delta); } difference_type operator-(const _IteratorTriple& __other) const { return _M_first - __other._M_first; } }; } #endif /* _GLIBCXX_PARALLEL_ITERATOR_H */