<commit_before>/*
 *  Copyright 2008-2010 NVIDIA Corporation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

//  Copyright <NAME> 2003-2004. Use, modification and
//  distribution is subject to the Boost Software License, Version
//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
//  http://www.boost.org/LICENSE_1_0.txt)
//
// For more information, see http://www.boost.org/libs/range/

#pragma once

#include <thrust/detail/config.h>
#include <thrust/pair.h>
#include <thrust/tuple.h>

#include <cstddef> // for std::size_t
#include <utility> // for std::pair


namespace thrust
{

namespace experimental
{

// default
template<typename Range>
  struct range_const_iterator
{
  // XXX Boost treats const_iterator as an optional typedef
  //     we may wish to provide this option as well
  typename Range::const_iterator type;
};


// std::pair
template<typename Iterator>
  struct range_const_iterator< std::pair<Iterator,Iterator> >
{
  typedef Iterator type;
};


// thrust::pair
template<typename Iterator>
  struct range_const_iterator< thrust::pair<Iterator,Iterator> >
{
  typedef Iterator type;
};


// thrust::tuple
template<typename Iterator>
  struct range_const_iterator< thrust::tuple<Iterator,Iterator> >
{
  typedef Iterator type;
};


// array
template<typename T, std::size_t sz>
struct range_const_iterator< T[sz] >
{
  typedef const T* type;
};


} // end experimental

} // end thrust

<commit_msg>backout<commit_after>/*
 *  Copyright 2008-2010 NVIDIA Corporation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

//  Copyright <NAME> 2003-2004. Use, modification and
//  distribution is subject to the Boost Software License, Version
//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
//  http://www.boost.org/LICENSE_1_0.txt)
//
// For more information, see http://www.boost.org/libs/range/

#pragma once

#include <thrust/detail/config.h>
#include <thrust/detail/type_traits.h>
#include <thrust/pair.h>

#include <cstddef> // for std::size_t
#include <utility> // for std::pair


namespace thrust
{

namespace experimental
{

// default
template<typename Range>
  struct range_const_iterator
{
  // XXX Boost treats const_iterator as an optional typedef
  //     we may wish to provide this option as well
  typename Range::const_iterator type;
};


// std::pair
template<typename Iterator>
  struct range_const_iterator< std::pair<Iterator,Iterator> >
{
  typedef Iterator type;
};


// thrust::pair
template<typename Iterator>
  struct range_const_iterator< thrust::pair<Iterator,Iterator> >
{
  typedef Iterator type;
};


// XXX tuple<Iterator,Iterator> ?


// array
template<typename T, std::size_t sz>
struct range_const_iterator< T[sz] >
{
  typedef const T* type;
};


} // end experimental

} // end thrust


{'fraction_non_alphanumeric': 0.1045717288491855, 'fraction_numerical': 0.013662637940094587, 'mean_word_length': 3.812895069532238, 'pattern_counts': {'":': 0, '<': 37, '<?xml version=': 0, '>': 37, 'https://': 0, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5299249', 'n_tokens_mistral': 1170, 'n_tokens_neox': 1123, 'n_words': 393}