/usr/include/ThePEG/Utilities/Interval.tcc is in libthepeg-dev 1.8.0-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | // -*- C++ -*-
//
// Interval.tcc is a part of ThePEG - Toolkit for HEP Event Generation
// Copyright (C) 1999-2011 Leif Lonnblad
//
// ThePEG is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
namespace ThePEG {
template <typename T, typename CMP>
template <typename Iterator>
bool Interval<T,CMP>::check(Iterator first, Iterator last) {
while ( first != last ) if ( includes(*first++) ) return true;
return false;
}
template <typename T, typename CMP>
template <typename Iterator>
bool Interval<T,CMP>::checkAll(Iterator first, Iterator last) {
while ( first != last ) if ( !includes(*first++) ) return false;
return true;
}
template <typename T, typename CMP>
std::vector< Interval<T,CMP> > Interval<T,CMP>::split(Interval<T,CMP> i, T x) {
std::vector< Interval<T,CMP> > intervals;
Interval<T,CMP> low = i.chopLower(x);
if ( low.check() ) intervals.push_back(low);
intervals.push_back(x);
return intervals;
}
template <typename T, typename CMP>
template <typename Iterator>
std::vector< Interval<T,CMP> >
Interval<T,CMP>::split(Interval<T,CMP> i, Iterator first, Iterator last) {
typedef std::vector< Interval<T,CMP> > IVec;
IVec intervals;
if ( first != last ) {
Interval<T,CMP> low = i.chopLower(*first++);
IVec loints;
if ( low.check() ) loints = split(low, first, last);
IVec hiints = split(i, first, last);
intervals.insert(intervals.end(), loints.begin(), loints.end());
intervals.insert(intervals.end(), hiints.begin(), hiints.end());
} else
intervals = IVec(1, i);
return intervals;
}
template <typename T, typename CMP>
CMP Interval<T,CMP>::cmp;
}
|