CMS 3D CMS Logo

Public Member Functions | Private Attributes

npstat::diveq_left_0by0isC< T1, T2 > Struct Template Reference

#include <SimpleFunctors.h>

List of all members.

Public Member Functions

 diveq_left_0by0isC ()
 diveq_left_0by0isC (const T1 &value)
T1 & operator() (T1 &left, const T2 &right) const

Private Attributes

T1 C
T1 leftZero
T2 rightZero

Detailed Description

template<typename T1, typename T2>
struct npstat::diveq_left_0by0isC< T1, T2 >

In-place division on the left side. Allow 0/0 = const.

Definition at line 349 of file SimpleFunctors.h.


Constructor & Destructor Documentation

template<typename T1 , typename T2 >
npstat::diveq_left_0by0isC< T1, T2 >::diveq_left_0by0isC ( ) [inline]

Definition at line 351 of file SimpleFunctors.h.

                                    : 
            C(T1()), leftZero(T1()), rightZero(T2()) {}
template<typename T1 , typename T2 >
npstat::diveq_left_0by0isC< T1, T2 >::diveq_left_0by0isC ( const T1 &  value) [inline, explicit]

Definition at line 353 of file SimpleFunctors.h.

                                                            :
            C(value), leftZero(T1()), rightZero(T2()) {}

Member Function Documentation

template<typename T1 , typename T2 >
T1& npstat::diveq_left_0by0isC< T1, T2 >::operator() ( T1 &  left,
const T2 &  right 
) const [inline]

Definition at line 356 of file SimpleFunctors.h.

References npstat::diveq_left_0by0isC< T1, T2 >::C, npstat::diveq_left_0by0isC< T1, T2 >::leftZero, and npstat::diveq_left_0by0isC< T1, T2 >::rightZero.

        {
            if (right == rightZero)
                if (left == leftZero)
                {
                    left = C;
                    return left;
                }
            return left /= right;
        }

Member Data Documentation

template<typename T1 , typename T2 >
T1 npstat::diveq_left_0by0isC< T1, T2 >::C [private]

Definition at line 368 of file SimpleFunctors.h.

Referenced by npstat::diveq_left_0by0isC< T1, T2 >::operator()().

template<typename T1 , typename T2 >
T1 npstat::diveq_left_0by0isC< T1, T2 >::leftZero [private]

Definition at line 369 of file SimpleFunctors.h.

Referenced by npstat::diveq_left_0by0isC< T1, T2 >::operator()().

template<typename T1 , typename T2 >
T2 npstat::diveq_left_0by0isC< T1, T2 >::rightZero [private]

Definition at line 370 of file SimpleFunctors.h.

Referenced by npstat::diveq_left_0by0isC< T1, T2 >::operator()().