core/vpdl/vpdt/vpdt_dist_traits.h
Go to the documentation of this file.
00001 // This is core/vpdl/vpdt/vpdt_dist_traits.h
00002 #ifndef vpdt_dist_traits_h_
00003 #define vpdt_dist_traits_h_
00004 //:
00005 // \file
00006 // \author Matthew Leotta
00007 // \brief specialized template trait classes for properties of a distribution type
00008 // \date March 5, 2009
00009 //
00010 // Provides a short cut to vpdt_field_traits<typename dist::vector>::*
00011 //
00012 // \verbatim
00013 //  Modifications
00014 //   None
00015 // \endverbatim
00016 
00017 #include <vpdl/vpdt/vpdt_field_traits.h>
00018 
00019 
00020 
00021 //: The distribution traits class
00022 //  traits are taken from vpdt_field_traits 
00023 template <class dist>
00024 struct vpdt_dist_traits 
00025 {
00026   //: the data type to represent a point in the field
00027   typedef typename vpdt_field_traits<typename dist::field_type>::field_type field_type;
00028   //: The compile time dimension of the distribution
00029   static const unsigned int dimension = vpdt_field_traits<field_type>::dimension;
00030   //: The type used for scalar operations 
00031   typedef typename vpdt_field_traits<field_type>::scalar_type scalar_type;
00032   //: the data type used for vectors (difference between points)
00033   typedef typename vpdt_field_traits<field_type>::vector_type vector_type;
00034   //: the data type used for square matrices
00035   typedef typename vpdt_field_traits<field_type>::matrix_type matrix_type;
00036   
00037 };
00038 
00039 
00040 template <class dist>
00041 struct vpdt_is_mixture
00042 {
00043   static const bool value = false;
00044 };
00045 
00046 
00047 #endif // vpdt_dist_traits_h_