| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

Gaudi::Math::IDigits< TYPE, I, N1, N2 > Struct Template Reference

Simple structr efor compile-time evaluation of the range of decimal digits N1->N2 (N2 is excluded) for the given integral type. More...

#include <Digit.h>

Inheritance diagram for Gaudi::Math::IDigits< TYPE, I, N1, N2 >:

[legend]
Collaboration diagram for Gaudi::Math::IDigits< TYPE, I, N1, N2 >:
[legend]
List of all members.

Public Types

 value
 TYPE
 long
enum  {
  value, TYPE, TYPE, TYPE,
  long, long, value
}

Public Member Functions

 BOOST_STATIC_ASSERT (boost::integer_traits< TYPE >::is_specialized)
 BOOST_STATIC_ASSERT (boost::integer_traits< TYPE >::is_integral)
 BOOST_STATIC_ASSERT (!boost::integer_traits< TYPE >::is_signed)

Detailed Description

template<class TYPE, typename Gaudi::Math::TypeWrapper< TYPE >::value_type I, unsigned int N1, unsigned int N2>
struct Gaudi::Math::IDigits< TYPE, I, N1, N2 >

Simple structr efor compile-time evaluation of the range of decimal digits N1->N2 (N2 is excluded) for the given integral type.

  const int dig02 = IDigits<unsigned int,4362736,0,2>::value ;

Attention:
the least significant decimal digit is numbered as #0
Author:
Vanya BELYAEV Ivan.Belyaev@nilkhef.nl
Date:
2008-07-31

Definition at line 312 of file Digit.h.


Member Enumeration Documentation

template<class TYPE, typename TypeWrapper< TYPE >::value_type I, unsigned int N1, unsigned int N2>
anonymous enum [inherited]

Enumerator:
value 
TYPE 
TYPE 
TYPE 
long 
long 
value 

Definition at line 155 of file Digit.h.

00156           { 
00157             value = 
00158             Check10<TYPE,N1>::safe && Check10<TYPE,N2-N1>::safe     ?
00159             (I/Gaudi::Math::IPower<TYPE              ,10,N1>::value )%
00160             Gaudi::Math::IPower<TYPE,10,N2-N1>::value :
00161             (I/Gaudi::Math::IPower<unsigned long long,10,N1>::value )%
00162             Gaudi::Math::IPower<unsigned long long,10,N2-N1>::value 
00163           };


Member Function Documentation

template<class TYPE, typename Gaudi::Math::TypeWrapper< TYPE >::value_type I, unsigned int N1, unsigned int N2>
Gaudi::Math::IDigits< TYPE, I, N1, N2 >::BOOST_STATIC_ASSERT ( boost::integer_traits< TYPE >::is_specialized   ) 

Reimplemented from Gaudi::Math::detail::_IDigits< TYPE, I, N1, N2 >.

template<class TYPE, typename Gaudi::Math::TypeWrapper< TYPE >::value_type I, unsigned int N1, unsigned int N2>
Gaudi::Math::IDigits< TYPE, I, N1, N2 >::BOOST_STATIC_ASSERT ( boost::integer_traits< TYPE >::is_integral   ) 

Reimplemented from Gaudi::Math::detail::_IDigits< TYPE, I, N1, N2 >.

template<class TYPE, typename Gaudi::Math::TypeWrapper< TYPE >::value_type I, unsigned int N1, unsigned int N2>
Gaudi::Math::IDigits< TYPE, I, N1, N2 >::BOOST_STATIC_ASSERT ( !boost::integer_traits< TYPE >::is_signed   ) 

Reimplemented from Gaudi::Math::detail::_IDigits< TYPE, I, N1, N2 >.


The documentation for this struct was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:02:58 2011 for LHCbMath by doxygen 1.4.7