[mlpack-svn] r10729 - mlpack/trunk/src/mlpack/core/arma_extend

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Mon Dec 12 13:44:35 EST 2011


Author: rcurtin
Date: 2011-12-12 13:44:34 -0500 (Mon, 12 Dec 2011)
New Revision: 10729

Removed:
   mlpack/trunk/src/mlpack/core/arma_extend/promote_type.hpp
   mlpack/trunk/src/mlpack/core/arma_extend/traits.hpp
   mlpack/trunk/src/mlpack/core/arma_extend/typedef.hpp
Modified:
   mlpack/trunk/src/mlpack/core/arma_extend/arma_extend.hpp
Log:
These aren't necessary with Armadillo >= 2.4.0.


Modified: mlpack/trunk/src/mlpack/core/arma_extend/arma_extend.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/arma_extend/arma_extend.hpp	2011-12-12 18:28:41 UTC (rev 10728)
+++ mlpack/trunk/src/mlpack/core/arma_extend/arma_extend.hpp	2011-12-12 18:44:34 UTC (rev 10729)
@@ -71,11 +71,6 @@
 #endif
 
 namespace arma {
-  // 64-bit support
-  #include "typedef.hpp" // This has to come first.
-  #include "traits.hpp"
-  #include "promote_type.hpp"
-
   // ccov()
   #include "op_ccov_proto.hpp"
   #include "op_ccov_meat.hpp"

Deleted: mlpack/trunk/src/mlpack/core/arma_extend/promote_type.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/arma_extend/promote_type.hpp	2011-12-12 18:28:41 UTC (rev 10728)
+++ mlpack/trunk/src/mlpack/core/arma_extend/promote_type.hpp	2011-12-12 18:44:34 UTC (rev 10729)
@@ -1,109 +0,0 @@
-// Extra promote_type definitions until 64-bit index support is added to
-// Armadillo.  The syntax was changed for 2.1.91, so we need to be careful about
-// how we do that.
-#if ((ARMA_VERSION_MAJOR > 2)) || \
-    ((ARMA_VERSION_MAJOR == 2) && (ARMA_VERSION_MINOR > 1)) || \
-    ((ARMA_VERSION_MAJOR == 2) && (ARMA_VERSION_MINOR == 1) && \
-     (ARMA_VERSION_PATCH >= 91))
-// The new syntax changed the name of 'promote_type' to 'is_promotable'.  We
-// have to update accordingly...
-template<typename T> struct is_promotable<std::complex<T>, s64> : public is_promotable_ok { typedef std::complex<T> result; };
-template<typename T> struct is_promotable<std::complex<T>, u64> : public is_promotable_ok { typedef std::complex<T> result; };
-
-template<> struct is_promotable<double, s64  > : public is_promotable_ok { typedef double result; };
-template<> struct is_promotable<double, u64  > : public is_promotable_ok { typedef double result; };
-
-template<> struct is_promotable<float, s64> : public is_promotable_ok { typedef float result; };
-template<> struct is_promotable<float, u64> : public is_promotable_ok { typedef float result; };
-
-template<> struct is_promotable<s64, u64> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<s64, s32> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<s64, u32> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<s64, s16> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<s64, u16> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<s64, s8 > : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<s64, u8 > : public is_promotable_ok { typedef s64 result; };
-
-template<> struct is_promotable<u64, s32> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<u64, u32> : public is_promotable_ok { typedef u64 result; };
-template<> struct is_promotable<u64, s16> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<u64, u16> : public is_promotable_ok { typedef u64 result; };
-template<> struct is_promotable<u64, s8 > : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<u64, u8 > : public is_promotable_ok { typedef u64 result; };
-
-template<typename T> struct is_promotable<s64, std::complex<T> > : public is_promotable_ok { typedef std::complex<T> result; };
-template<typename T> struct is_promotable<u64, std::complex<T> > : public is_promotable_ok { typedef std::complex<T> result; };
-
-template<> struct is_promotable<s64  , double> : public is_promotable_ok { typedef double result; };
-template<> struct is_promotable<u64  , double> : public is_promotable_ok { typedef double result; };
-
-template<> struct is_promotable<s64, float> : public is_promotable_ok { typedef float result; };
-template<> struct is_promotable<u64, float> : public is_promotable_ok { typedef float result; };
-
-template<> struct is_promotable<u64, s64> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<s32, s64> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<u32, s64> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<s16, s64> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<u16, s64> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<s8 , s64> : public is_promotable_ok { typedef s64 result; };
-template<> struct is_promotable<u8 , s64> : public is_promotable_ok { typedef s64 result; };
-
-template<> struct is_promotable<s32, u64> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<u32, u64> : public is_promotable_ok { typedef u64 result; };
-template<> struct is_promotable<s16, u64> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<u16, u64> : public is_promotable_ok { typedef u64 result; };
-template<> struct is_promotable<s8 , u64> : public is_promotable_ok { typedef s64 result; };  // float ?
-template<> struct is_promotable<u8 , u64> : public is_promotable_ok { typedef u64 result; };
-
-#else
-// The old syntax used the 'promote_type' struct.  We just define all of these
-// for u64 and s64.
-template<typename T> struct promote_type<std::complex<T>, s64> : public promote_type_ok { typedef std::complex<T> result; };
-template<typename T> struct promote_type<std::complex<T>, u64> : public promote_type_ok { typedef std::complex<T> result; };
-
-template<> struct promote_type<double, s64  > : public promote_type_ok { typedef double result; };
-template<> struct promote_type<double, u64  > : public promote_type_ok { typedef double result; };
-
-template<> struct promote_type<float, s64> : public promote_type_ok { typedef float result; };
-template<> struct promote_type<float, u64> : public promote_type_ok { typedef float result; };
-
-template<> struct promote_type<s64, u64> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<s64, s32> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<s64, u32> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<s64, s16> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<s64, u16> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<s64, s8 > : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<s64, u8 > : public promote_type_ok { typedef s64 result; };
-
-template<> struct promote_type<u64, s32> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<u64, u32> : public promote_type_ok { typedef u64 result; };
-template<> struct promote_type<u64, s16> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<u64, u16> : public promote_type_ok { typedef u64 result; };
-template<> struct promote_type<u64, s8 > : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<u64, u8 > : public promote_type_ok { typedef u64 result; };
-
-template<typename T> struct promote_type<s64, std::complex<T> > : public promote_type_ok { typedef std::complex<T> result; };
-template<typename T> struct promote_type<u64, std::complex<T> > : public promote_type_ok { typedef std::complex<T> result; };
-
-template<> struct promote_type<s64  , double> : public promote_type_ok { typedef double result; };
-template<> struct promote_type<u64  , double> : public promote_type_ok { typedef double result; };
-
-template<> struct promote_type<s64, float> : public promote_type_ok { typedef float result; };
-template<> struct promote_type<u64, float> : public promote_type_ok { typedef float result; };
-
-template<> struct promote_type<u64, s64> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<s32, s64> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<u32, s64> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<s16, s64> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<u16, s64> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<s8 , s64> : public promote_type_ok { typedef s64 result; };
-template<> struct promote_type<u8 , s64> : public promote_type_ok { typedef s64 result; };
-
-template<> struct promote_type<s32, u64> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<u32, u64> : public promote_type_ok { typedef u64 result; };
-template<> struct promote_type<s16, u64> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<u16, u64> : public promote_type_ok { typedef u64 result; };
-template<> struct promote_type<s8 , u64> : public promote_type_ok { typedef s64 result; };  // float ?
-template<> struct promote_type<u8 , u64> : public promote_type_ok { typedef u64 result; };
-
-#endif

Deleted: mlpack/trunk/src/mlpack/core/arma_extend/traits.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/arma_extend/traits.hpp	2011-12-12 18:28:41 UTC (rev 10728)
+++ mlpack/trunk/src/mlpack/core/arma_extend/traits.hpp	2011-12-12 18:44:34 UTC (rev 10729)
@@ -1,26 +0,0 @@
-// Extra traits to support u64 and s64 until that patch is applied to the
-// Armadillo sources.
-
-#if ARMA_VERSION_MAJOR < 1 || \
-    (ARMA_VERSION_MAJOR == 1 && ARMA_VERSION_MINOR <= 2)
-// For old Armadillo versions ( <= 1.2.0 ), all we have to do is define these
-// two structs which say these element types are supported.
-template<> struct isnt_supported_elem_type< u64 >                  : public isnt_supported_elem_type_false {};
-template<> struct isnt_supported_elem_type< s64 >                  : public isnt_supported_elem_type_false {};
-
-#else
-// For new Armadillo versions ( > 1.2.0 ) we have to get a little bit more
-// tricky.  We will overload the values for the is_supported_elem_type
-// structure, allowing us to redefine it to report success for u64s and s64s.
-template<>
-struct is_supported_elem_type<u64>
-  {
-  static const bool value = true;
-  };
-
-template<>
-struct is_supported_elem_type<s64>
-  {
-  static const bool value = true;
-  };
-#endif

Deleted: mlpack/trunk/src/mlpack/core/arma_extend/typedef.hpp
===================================================================
--- mlpack/trunk/src/mlpack/core/arma_extend/typedef.hpp	2011-12-12 18:28:41 UTC (rev 10728)
+++ mlpack/trunk/src/mlpack/core/arma_extend/typedef.hpp	2011-12-12 18:44:34 UTC (rev 10729)
@@ -1,32 +0,0 @@
-// Extensions to typedef u64 and s64 until that support is added into
-// Armadillo.  We only need to typedef s64 on Armadillo > 1.2.0.
-
-#if   ((ARMA_VERSION_MAJOR > 1)) || \
-      ((ARMA_VERSION_MAJOR == 1) && (ARMA_VERSION_MINOR > 2)) || \
-      ((ARMA_VERSION_MAJOR == 1) && (ARMA_VERSION_MINOR == 2) && \
-       (ARMA_VERSION_PATCH > 0))
-  // An unincluded header file typedefs u64 for us.
-  #include <armadillo_bits/typedef_u64.hpp>
-
-  // We only need to typedef s64.
-  #if   ULONG_MAX >= 0xffffffffffffffff
-    typedef          long s64;
-  #elif ULLONG_MAX >= 0xffffffffffffffff
-    typedef          long s64;
-  #else
-    #error "don't know how to typedef 's64' on this system"
-  #endif
-#else
-
-  // We must typedef both u64 and s64.
-  #if   ULONG_MAX >= 0xffffffffffffffff
-    typedef unsigned long u64;
-    typedef          long s64;
-  #elif ULLONG_MAX >= 0xffffffffffffffff
-    typedef unsigned long long u64;
-    typedef          long long s64;
-  #else
-    #error "don't know how to typedef 'u64' on this system"
-  #endif
-
-#endif




More information about the mlpack-svn mailing list