Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
RVec.hxx File Reference
#include <Rtypes.h>
#include <TError.h>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <iterator>
#include <limits>
#include <memory>
#include <new>
#include <numeric>
#include <sstream>
#include <stdexcept>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>
#include <vector>

Classes

struct  ROOT::Internal::VecOps::IsRVec< typename >
struct  ROOT::Internal::VecOps::IsRVec< ROOT::VecOps::RVec< T > >
class  ROOT::VecOps::RVec< T >
 A "std::vector"-like collection of values implementing handy operation to analyse them. More...
class  ROOT::RVec< T >
 A "std::vector"-like collection of values implementing handy operation to analyse them. More...
class  ROOT::Detail::VecOps::RVecImpl< T >
 This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. More...
struct  ROOT::Internal::VecOps::RVecInlineStorageSize< T >
 The size of the inline storage of an RVec. More...
class  ROOT::VecOps::RVecN< T, N >
struct  ROOT::Internal::VecOps::SmallVectorAlignmentAndSize< T >
 Used to figure out the offset of the first element of an RVec. More...
class  ROOT::Internal::VecOps::SmallVectorBase
 This is all the stuff common to all SmallVectors. More...
struct  ROOT::Internal::VecOps::SmallVectorStorage< T, N >
 Storage for the SmallVector elements. More...
struct  ROOT::Internal::VecOps::SmallVectorStorage< T, 0 >
 We need the storage to be properly aligned even for small-size of 0 so that the pointer math in SmallVectorTemplateCommon::getFirstEl() is well-defined. More...
class  ROOT::Internal::VecOps::SmallVectorTemplateBase< T, bool >
 SmallVectorTemplateBase<TriviallyCopyable = false> - This is where we put method implementations that are designed to work with non-trivial T's. More...
class  ROOT::Internal::VecOps::SmallVectorTemplateBase< T, true >
 SmallVectorTemplateBase<TriviallyCopyable = true> - This is where we put method implementations that are designed to work with trivially copyable T's. More...
class  ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >
 This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. More...

Namespaces

namespace  ROOT
namespace  ROOT::Detail
 Special implementation of ROOT::RRangeCast for TCollection, including a check that the cast target type inherits from TObject and a new constructor that takes the TCollection by pointer.
namespace  ROOT::Detail::VecOps
namespace  ROOT::Internal
namespace  ROOT::Internal::VecOps
namespace  ROOT::VecOps

Macros

#define _VECOPS_USE_EXTERN_TEMPLATES   true
#define R__RVEC_NODISCARD

Typedefs

template<typename T>
using ROOT::Internal::VecOps::RVec = ROOT::VecOps::RVec<T>
using ROOT::RVecB = ROOT::VecOps::RVec<bool>
using ROOT::RVecC = ROOT::VecOps::RVec<char>
using ROOT::RVecD = ROOT::VecOps::RVec<double>
using ROOT::RVecF = ROOT::VecOps::RVec<float>
using ROOT::RVecI = ROOT::VecOps::RVec<int>
using ROOT::RVecL = ROOT::VecOps::RVec<long int>
using ROOT::RVecLL = ROOT::VecOps::RVec<long long int>
using ROOT::RVecU = ROOT::VecOps::RVec<unsigned int>
using ROOT::RVecUL = ROOT::VecOps::RVec<unsigned long int>
using ROOT::RVecULL = ROOT::VecOps::RVec<unsigned long long int>

Functions

constexpr bool ROOT::Internal::VecOps::All (const bool *vals, std::size_t size)
template<typename T>
auto ROOT::VecOps::All (const RVec< T > &v) -> decltype(v[0]==false)
 Return true if all of the elements equate to true, return false otherwise.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename T4 = T0, typename T5 = T0, typename Common_t = std::common_type_t<T0, T1>>
Common_t ROOT::VecOps::Angle (T0 x1, T1 y1, T2 z1, T3 x2, T4 y2, T5 z2)
 Return the angle between two three-vectors given the quantities x coordinate (x), y coordinate (y), z coordinate (y).
template<typename T>
auto ROOT::VecOps::Any (const RVec< T > &v) -> decltype(v[0]==true)
 Return true if any of the elements equates to true, return false otherwise.
template<typename T = double, typename Ret_t = std::conditional_t<std::is_floating_point_v<T>, T, double>>
RVec< Ret_t > ROOT::VecOps::Arange (T start, T end, T step)
 Produce RVec with entries in the range [start, end) in increments of step.
template<typename T>
std::size_t ROOT::VecOps::ArgMax (const RVec< T > &v)
 Get the index of the greatest element of an RVec In case of multiple occurrences of the maximum values, the index corresponding to the first occurrence is returned.
template<typename T>
std::size_t ROOT::VecOps::ArgMin (const RVec< T > &v)
 Get the index of the smallest element of an RVec In case of multiple occurrences of the minimum values, the index corresponding to the first occurrence is returned.
template<typename T>
RVec< typename RVec< T >::size_type > ROOT::VecOps::Argsort (const RVec< T > &v)
 Return an RVec of indices that sort the input RVec.
template<typename T, typename Compare>
RVec< typename RVec< T >::size_type > ROOT::VecOps::Argsort (const RVec< T > &v, Compare &&c)
 Return an RVec of indices that sort the input RVec based on a comparison function.
template<typename T, unsigned N>
size_t ROOT::VecOps::CapacityInBytes (const RVecN< T, N > &X)
template<typename T>
RVec< RVec< typename RVec< T >::size_type > > ROOT::VecOps::Combinations (const RVec< T > &v, const typename RVec< T >::size_type n)
 Return the indices that represent all unique combinations of the elements of a given RVec.
template<typename T1, typename T2>
RVec< RVec< typename RVec< T1 >::size_type > > ROOT::VecOps::Combinations (const RVec< T1 > &v1, const RVec< T2 > &v2)
 Return the indices that represent all combinations of the elements of two RVecs.
RVec< RVec< std::size_t > > ROOT::VecOps::Combinations (const std::size_t size1, const std::size_t size2)
 Return the indices that represent all combinations of the elements of two RVecs.
template<typename T0, typename T1, typename Common_t = typename std::common_type<T0, T1>::type>
RVec< Common_t > ROOT::VecOps::Concatenate (const RVec< T0 > &v0, const RVec< T1 > &v1)
 Return the concatenation of two RVecs.
template<typename T, typename... Args_t>
RVec< T > ROOT::VecOps::Construct (const RVec< Args_t > &... args)
 Build an RVec of objects starting from RVecs of input to their constructors.
template<typename T0, typename T1 = T0, typename Common_t = typename std::common_type_t<T0, T1>>
RVec< Common_t > ROOT::VecOps::DeltaPhi (const RVec< T0 > &v1, const RVec< T1 > &v2, const Common_t c=M_PI)
 Return the angle difference \(\Delta \phi\) in radians of two vectors.
template<typename T0, typename T1 = T0, typename Common_t = typename std::common_type_t<T0, T1>>
RVec< Common_t > ROOT::VecOps::DeltaPhi (const RVec< T0 > &v1, T1 v2, const Common_t c=M_PI)
 Return the angle difference \(\Delta \phi\) in radians of a vector and a scalar.
template<typename T0, typename T1 = T0, typename Common_t = typename std::common_type_t<T0, T1>>
RVec< Common_t > ROOT::VecOps::DeltaPhi (T0 v1, const RVec< T1 > &v2, const Common_t c=M_PI)
 Return the angle difference \(\Delta \phi\) in radians of a scalar and a vector.
template<typename T0, typename T1 = T0, typename Common_t = std::common_type_t<T0, T1>>
Common_t ROOT::VecOps::DeltaPhi (T0 v1, T1 v2, const Common_t c=M_PI)
 Return the angle difference \(\Delta \phi\) of two scalars.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename Common_t = std::common_type_t<T0, T1, T2, T3>>
RVec< Common_t > ROOT::VecOps::DeltaR (const RVec< T0 > &eta1, const RVec< T1 > &eta2, const RVec< T2 > &phi1, const RVec< T3 > &phi2, const Common_t c=M_PI)
 Return the distance on the \(\eta\)- \(\phi\) plane ( \(\Delta R\)) from the collections eta1, eta2, phi1 and phi2.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename Common_t = std::common_type_t<T0, T1, T2, T3>>
Common_t ROOT::VecOps::DeltaR (T0 eta1, T1 eta2, T2 phi1, T3 phi2, const Common_t c=M_PI)
 Return the distance on the \(\eta\)- \(\phi\) plane ( \(\Delta R\)) from the scalars eta1, eta2, phi1 and phi2.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename Common_t = std::common_type_t<T0, T1, T2, T3>>
RVec< Common_t > ROOT::VecOps::DeltaR2 (const RVec< T0 > &eta1, const RVec< T1 > &eta2, const RVec< T2 > &phi1, const RVec< T3 > &phi2, const Common_t c=M_PI)
 Return the square of the distance on the \(\eta\)- \(\phi\) plane ( \(\Delta R\)) from the collections eta1, eta2, phi1 and phi2.
template<typename T, typename V>
auto ROOT::VecOps::Dot (const RVec< T > &v0, const RVec< V > &v1) -> decltype(v0[0] *v1[0])
 Inner product.
template<typename T>
RVec< T > ROOT::VecOps::Drop (const RVec< T > &v, RVec< typename RVec< T >::size_type > idxs)
 Return a copy of the container without the elements at the specified indices.
template<typename T>
RVec< typename RVec< T >::size_type > ROOT::VecOps::Enumerate (const RVec< T > &v)
 For any Rvec v produce another RVec with entries starting from 0, and incrementing by 1 until a N = v.size() is reached.
template<typename T, typename F>
RVec< T > ROOT::VecOps::Filter (const RVec< T > &v, F &&f)
 Create a new collection with the elements passing the filter expressed by the predicate.
template<typename... T>
std::size_t ROOT::Internal::VecOps::GetVectorsSize (const std::string &id, const RVec< T > &... vs)
template<typename T>
RVec< T > ROOT::VecOps::Intersect (const RVec< T > &v1, const RVec< T > &v2, bool v2_is_sorted=false)
 Return the intersection of elements of two RVecs.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename Common_t = std::common_type_t<T0, T1, T2, T3>>
Common_t ROOT::VecOps::InvariantMass (const RVec< T0 > &pt, const RVec< T1 > &eta, const RVec< T2 > &phi, const RVec< T3 > &mass)
 Return the invariant mass of multiple particles given the collections of the quantities transverse momentum (pt), rapidity (eta), azimuth (phi) and mass.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename T4 = T0, typename T5 = T0, typename T6 = T0, typename T7 = T0, typename Common_t = std::common_type_t<T0, T1, T2, T3, T4, T5, T6, T7>>
RVec< Common_t > ROOT::VecOps::InvariantMasses (const RVec< T0 > &pt1, const RVec< T1 > &eta1, const RVec< T2 > &phi1, const RVec< T3 > &mass1, const RVec< T4 > &pt2, const RVec< T5 > &eta2, const RVec< T6 > &phi2, const RVec< T7 > &mass2)
 Return the invariant mass of two particles given the collections of the quantities transverse momentum (pt), rapidity (eta), azimuth (phi) and mass.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename T4 = T0, typename T5 = T0, typename T6 = T0, typename T7 = T0, typename Common_t = std::common_type_t<T0, T1, T2, T3, T4, T5, T6, T7>>
RVec< Common_t > ROOT::VecOps::InvariantMasses_PxPyPzM (const RVec< T0 > &px1, const RVec< T1 > &py1, const RVec< T2 > &pz1, const RVec< T3 > &mass1, const RVec< T4 > &px2, const RVec< T5 > &py2, const RVec< T6 > &pz2, const RVec< T7 > &mass2)
 Return the invariant mass of two particles given the collections of the quantities x coordinate (px), y coordinate (py), z coordinate (pz) and mass.
template<typename T0, typename T1 = T0, typename T2 = T0, typename T3 = T0, typename T4 = T0, typename T5 = T0, typename T6 = T0, typename T7 = T0, typename Common_t = std::common_type_t<T0, T1, T2, T3, T4, T5, T6, T7>>
Common_t ROOT::VecOps::InvariantMasses_PxPyPzM (const T0 &x1, const T1 &y1, const T2 &z1, const T3 &mass1, const T4 &x2, const T5 &y2, const T6 &z2, const T7 &mass2)
 Return the invariant mass of two particles given x coordinate (px), y coordinate (py), z coordinate (pz) and mass.
template<typename T>
bool ROOT::Detail::VecOps::IsAdopting (const ROOT::VecOps::RVec< T > &v)
template<typename T>
bool ROOT::Detail::VecOps::IsSmall (const ROOT::VecOps::RVec< T > &v)
template<typename T = double, typename Ret_t = std::conditional_t<std::is_floating_point_v<T>, T, double>>
RVec< Ret_t > ROOT::VecOps::Linspace (T start, T end, unsigned long long n=128, const bool endpoint=true)
 Produce RVec with N evenly-spaced entries from start to end.
template<typename T = double, typename Ret_t = std::conditional_t<std::is_floating_point_v<T>, T, double>>
RVec< Ret_t > ROOT::VecOps::Logspace (T start, T end, unsigned long long n=128, const bool endpoint=true, T base=10.0)
 Produce RVec with n log-spaced entries from base^{start} to base^{end}.
template<typename... Args>
auto ROOT::VecOps::Map (Args &&... args)
 Create new collection applying a callable to the elements of the input collection.
template<typename Tuple_t, std::size_t... Is>
auto ROOT::Internal::VecOps::MapFromTuple (Tuple_t &&t, std::index_sequence< Is... >) -> decltype(MapImpl(std::get< std::tuple_size< Tuple_t >::value - 1 >(t), std::get< Is >(t)...))
template<typename F, typename... RVecs>
auto ROOT::Internal::VecOps::MapImpl (F &&f, RVecs &&... vs) -> RVec< decltype(f(vs[0]...))>
template<typename T>
ROOT::VecOps::Max (const RVec< T > &v)
 Get the greatest element of an RVec.
template<typename T>
double ROOT::VecOps::Mean (const RVec< T > &v)
 Get the mean of the elements of an RVec.
template<typename T, typename R = T>
R ROOT::VecOps::Mean (const RVec< T > &v, const R zero)
 Get the mean of the elements of an RVec with custom initial value.
template<typename T>
ROOT::VecOps::Min (const RVec< T > &v)
 Get the smallest element of an RVec.
uint64_t ROOT::Internal::VecOps::NextPowerOf2 (uint64_t A)
 Return the next power of two (in 64-bits) that is strictly greater than A.
template<typename T>
RVec< typename RVec< T >::size_type > ROOT::VecOps::Nonzero (const RVec< T > &v)
 Return the indices of the elements which are not zero.
template<class T>
std::ostream & ROOT::VecOps::operator<< (std::ostream &os, const RVec< T > &v)
 Print a RVec at the prompt:
template<typename T>
ROOT::VecOps::Product (const RVec< T > &v, const T init=T(1))
 Return the product of the elements of the RVec.
RVec< long long intROOT::VecOps::Range (long long int begin, long long int end, long long int stride)
 Allows for negative begin, end, and/or stride.
RVec< std::size_t > ROOT::VecOps::Range (std::size_t begin, std::size_t end)
 Produce RVec with entries equal to begin, begin+1, ..., end-1.
RVec< std::size_t > ROOT::VecOps::Range (std::size_t length)
 Produce RVec with entries starting from 0, and incrementing by 1 until a user-specified N is reached.
template<typename T>
void ROOT::Internal::VecOps::ResetView (RVec< T > &v, T *addr, std::size_t sz)
 An unsafe function to reset the buffer for which this RVec is acting as a view.
template<typename T>
RVec< T > ROOT::VecOps::Reverse (const RVec< T > &v)
 Return copy of reversed vector.
template<typename T>
RVec< T > ROOT::VecOps::Sort (const RVec< T > &v)
 Return copy of RVec with elements sorted in ascending order.
template<typename T, typename Compare>
RVec< T > ROOT::VecOps::Sort (const RVec< T > &v, Compare &&c)
 Return copy of RVec with elements sorted based on a comparison operator.
template<typename T>
RVec< typename RVec< T >::size_type > ROOT::VecOps::StableArgsort (const RVec< T > &v)
 Return an RVec of indices that sort the input RVec while keeping the order of equal elements.
template<typename T, typename Compare>
RVec< typename RVec< T >::size_type > ROOT::VecOps::StableArgsort (const RVec< T > &v, Compare &&c)
 Return an RVec of indices that sort the input RVec based on a comparison function while keeping the order of equal elements.
template<typename T>
RVec< T > ROOT::VecOps::StableSort (const RVec< T > &v)
 Return copy of RVec with elements sorted in ascending order while keeping the order of equal elements.
template<typename T, typename Compare>
RVec< T > ROOT::VecOps::StableSort (const RVec< T > &v, Compare &&c)
 Return copy of RVec with elements sorted based on a comparison operator while keeping the order of equal elements.
template<typename T>
double ROOT::VecOps::StdDev (const RVec< T > &v)
 Get the standard deviation of the elements of an RVec.
std::size_t ROOT::VecOps::Sum (const RVec< bool > &v, std::size_t zero=0ul)
template<typename T>
ROOT::VecOps::Sum (const RVec< T > &v, const T zero=T(0))
 Sum elements of an RVec.
template<typename T>
void ROOT::VecOps::swap (RVec< T > &lhs, RVec< T > &rhs)
template<typename T>
RVec< T > ROOT::VecOps::Take (const RVec< T > &v, const int n)
 Return first n elements of an RVec if n > 0 and last n elements if n < 0.
template<typename T>
RVec< T > ROOT::VecOps::Take (const RVec< T > &v, const int n, const T default_val)
 Return first n elements of an RVec if n > 0 and last n elements if n < 0.
template<typename T>
RVec< T > ROOT::VecOps::Take (const RVec< T > &v, const RVec< typename RVec< T >::size_type > &i)
 Return elements of a vector at given indices.
template<typename T>
RVec< T > ROOT::VecOps::Take (const RVec< T > &v, const RVec< typename RVec< T >::size_type > &i, const T default_val)
 Take version that defaults to (user-specified) output value if some index is out of range.
template<typename ForwardIt>
void ROOT::Internal::VecOps::UninitializedValueConstruct (ForwardIt first, ForwardIt last)
template<typename T>
double ROOT::VecOps::Var (const RVec< T > &v)
 Get the variance of the elements of an RVec.
template<typename T, bool TriviallyCopyable>
 ROOT::Internal::VecOps::void (off) SmallVectorTemplateBase< T
template<typename T>
RVec< T > ROOT::VecOps::Where (const RVec< int > &c, const RVec< T > &v1, const RVec< T > &v2)
 Return the elements of v1 if the condition c is true and v2 if the condition c is false.
template<typename T>
RVec< T > ROOT::VecOps::Where (const RVec< int > &c, const RVec< T > &v1, typename RVec< T >::value_type v2)
 Return the elements of v1 if the condition c is true and sets the value v2 if the condition c is false.
template<typename T>
RVec< T > ROOT::VecOps::Where (const RVec< int > &c, T v1, T v2)
 Return a vector with the value v2 if the condition c is false and sets the value v1 if the condition c is true.
template<typename T>
RVec< T > ROOT::VecOps::Where (const RVec< int > &c, typename RVec< T >::value_type v1, const RVec< T > &v2)
 Return the elements of v2 if the condition c is false and sets the value v1 if the condition c is true.

RVec Unary Arithmetic Operators

template<typename T>
RVec< T > ROOT::VecOps::operator! (const RVec< T > &v)
template<typename T>
RVec< T > ROOT::VecOps::operator+ (const RVec< T > &v)
template<typename T>
RVec< T > ROOT::VecOps::operator- (const RVec< T > &v)
template<typename T>
RVec< T > ROOT::VecOps::operator~ (const RVec< T > &v)
#define RVEC_UNARY_OPERATOR(OP)

RVec Binary Arithmetic Operators

#define ERROR_MESSAGE(OP)
template<typename T0, typename T1>
auto ROOT::VecOps::operator% (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0] % y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator% (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0] % v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator% (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x % v[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator& (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0] &y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator& (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0] &v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator& (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x &v[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator* (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0] *y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator* (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0] *v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator* (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x *v[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator+ (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0]+y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator+ (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0]+v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator+ (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x+v[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator- (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0] - y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator- (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0] - v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator- (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x - v[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator/ (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0]/y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator/ (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0]/v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator/ (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x/v[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator^ (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0] ^ y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator^ (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0] ^ v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator^ (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x ^ v[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator| (const RVec< T0 > &v, const T1 &y) -> RVec< decltype(v[0]|y)>
template<typename T0, typename T1>
auto ROOT::VecOps::operator| (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< decltype(v0[0]|v1[0])>
template<typename T0, typename T1>
auto ROOT::VecOps::operator| (const T0 &x, const RVec< T1 > &v) -> RVec< decltype(x|v[0])>
#define RVEC_BINARY_OPERATOR(OP)

RVec Assignment Arithmetic Operators

template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator%= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator%= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator&= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator&= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator*= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator*= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator+= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator+= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator-= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator-= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator/= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator/= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator<<= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator<<= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator>>= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator>>= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator^= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator^= (RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator|= (RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< T0 > & ROOT::VecOps::operator|= (RVec< T0 > &v0, const RVec< T1 > &v1)
#define RVEC_ASSIGNMENT_OPERATOR(OP)

RVec Comparison and Logical Operators

template<typename T0, typename T1>
auto ROOT::VecOps::operator!= (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator!= (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator!= (const T0 &x, const RVec< T1 > &v) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator&& (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator&& (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator&& (const T0 &x, const RVec< T1 > &v) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator< (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator< (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator< (const T0 &x, const RVec< T1 > &v) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator<= (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator<= (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator<= (const T0 &x, const RVec< T1 > &v) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator== (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator== (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator== (const T0 &x, const RVec< T1 > &v) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator> (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator> (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator> (const T0 &x, const RVec< T1 > &v) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator>= (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator>= (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator>= (const T0 &x, const RVec< T1 > &v) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator|| (const RVec< T0 > &v, const T1 &y) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator|| (const RVec< T0 > &v0, const RVec< T1 > &v1) -> RVec< int >
template<typename T0, typename T1>
auto ROOT::VecOps::operator|| (const T0 &x, const RVec< T1 > &v) -> RVec< int >
#define RVEC_LOGICAL_OPERATOR(OP)

RVec Standard Mathematical Functions

template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::abs (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::acos (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::acosh (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::asin (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::asinh (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::atan (const RVec< T > &v)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::atan2 (const RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::atan2 (const RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::atan2 (const T0 &x, const RVec< T1 > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::atanh (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::cbrt (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::ceil (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::cos (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::cosh (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::erf (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::erfc (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::exp (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::exp2 (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::expm1 (const RVec< T > &v)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::fdim (const RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::fdim (const RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::fdim (const T0 &x, const RVec< T1 > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::floor (const RVec< T > &v)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::fmod (const RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::fmod (const RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::fmod (const T0 &x, const RVec< T1 > &v)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::hypot (const RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::hypot (const RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::hypot (const T0 &x, const RVec< T1 > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::lgamma (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::llround (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::log (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::log10 (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::log1p (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::log2 (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::lround (const RVec< T > &v)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::pow (const RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::pow (const RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::pow (const T0 &x, const RVec< T1 > &v)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::remainder (const RVec< T0 > &v, const T1 &y)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::remainder (const RVec< T0 > &v0, const RVec< T1 > &v1)
template<typename T0, typename T1>
RVec< PromoteTypes< T0, T1 > > ROOT::VecOps::remainder (const T0 &x, const RVec< T1 > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::round (const RVec< T > &v)
#define RVEC_BINARY_FUNCTION(NAME, FUNC)
#define RVEC_STD_BINARY_FUNCTION(F)
#define RVEC_STD_UNARY_FUNCTION(F)
#define RVEC_UNARY_FUNCTION(NAME, FUNC)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::sin (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::sinh (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::sqrt (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::tan (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::tanh (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::tgamma (const RVec< T > &v)
template<typename T>
RVec< PromoteType< T > > ROOT::VecOps::trunc (const RVec< T > &v)

Macro Definition Documentation

◆ _VECOPS_USE_EXTERN_TEMPLATES

#define _VECOPS_USE_EXTERN_TEMPLATES   true

Definition at line 33 of file RVec.hxx.

◆ R__RVEC_NODISCARD

#define R__RVEC_NODISCARD

Definition at line 19 of file RVec.hxx.