|
Ryan Curtin |
d3a671e |
Index: mlpack-1.0.3/src/mlpack/core/arma_extend/traits.hpp
|
|
Ryan Curtin |
d3a671e |
===================================================================
|
|
Ryan Curtin |
d3a671e |
--- mlpack-1.0.3/src/mlpack/core/arma_extend/traits.hpp (revision 13920)
|
|
Ryan Curtin |
d3a671e |
+++ mlpack-1.0.3/src/mlpack/core/arma_extend/traits.hpp (working copy)
|
|
Ryan Curtin |
d3a671e |
@@ -15,7 +15,25 @@
|
|
Ryan Curtin |
d3a671e |
|
|
Ryan Curtin |
d3a671e |
// This isn't necessary if Armadillo was compiled with 64-bit support.
|
|
Ryan Curtin |
d3a671e |
#ifndef ARMA_64BIT_WORD
|
|
Ryan Curtin |
d3a671e |
+template<typename T1>
|
|
Ryan Curtin |
d3a671e |
+struct is_u64
|
|
Ryan Curtin |
d3a671e |
+ { static const bool value = false; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
template<>
|
|
Ryan Curtin |
d3a671e |
+struct is_u64<u64>
|
|
Ryan Curtin |
d3a671e |
+ { static const bool value = true; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<typename T1>
|
|
Ryan Curtin |
d3a671e |
+struct is_s64
|
|
Ryan Curtin |
d3a671e |
+ { static const bool value = false; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<>
|
|
Ryan Curtin |
d3a671e |
+struct is_s64<s64>
|
|
Ryan Curtin |
d3a671e |
+ { static const bool value = true; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<>
|
|
Ryan Curtin |
d3a671e |
struct is_supported_elem_type<u64>
|
|
Ryan Curtin |
d3a671e |
{
|
|
Ryan Curtin |
d3a671e |
static const bool value = true;
|
|
Ryan Curtin |
d3a671e |
@@ -26,6 +44,13 @@
|
|
Ryan Curtin |
d3a671e |
{
|
|
Ryan Curtin |
d3a671e |
static const bool value = true;
|
|
Ryan Curtin |
d3a671e |
};
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<>
|
|
Ryan Curtin |
d3a671e |
+struct is_signed<u64>
|
|
Ryan Curtin |
d3a671e |
+ {
|
|
Ryan Curtin |
d3a671e |
+ static const bool value = false;
|
|
Ryan Curtin |
d3a671e |
+ };
|
|
Ryan Curtin |
d3a671e |
#endif
|
|
Ryan Curtin |
d3a671e |
|
|
Ryan Curtin |
d3a671e |
#endif
|
|
Ryan Curtin |
d3a671e |
Index: mlpack-1.0.3/src/mlpack/core/arma_extend/restrictors.hpp
|
|
Ryan Curtin |
d3a671e |
===================================================================
|
|
Ryan Curtin |
d3a671e |
--- mlpack-1.0.3/src/mlpack/core/arma_extend/restrictors.hpp (revision 0)
|
|
Ryan Curtin |
d3a671e |
+++ mlpack-1.0.3/src/mlpack/core/arma_extend/restrictors.hpp (working copy)
|
|
Ryan Curtin |
d3a671e |
@@ -0,0 +1,17 @@
|
|
Ryan Curtin |
d3a671e |
+// Modifications to allow u64/s64 in Armadillo when ARMA_64BIT_WORD is not
|
|
Ryan Curtin |
d3a671e |
+// defined.
|
|
Ryan Curtin |
d3a671e |
+#ifndef ARMA_64BIT_WORD
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<> struct arma_scalar_only<u64> { typedef u64 result; };
|
|
Ryan Curtin |
d3a671e |
+template<> struct arma_scalar_only<s64> { typedef s64 result; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<> struct arma_integral_only<u64> { typedef u64 result; };
|
|
Ryan Curtin |
d3a671e |
+template<> struct arma_integral_only<s64> { typedef s64 result; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<> struct arma_unsigned_integral_only<u64> { typedef u64 result; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<> struct arma_signed_integral_only<s64> { typedef s64 result; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<> struct arma_signed_only<s64> { typedef s64 result; };
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+#endif
|
|
Ryan Curtin |
d3a671e |
Index: mlpack-1.0.3/src/mlpack/core/arma_extend/arma_extend.hpp
|
|
Ryan Curtin |
d3a671e |
===================================================================
|
|
Ryan Curtin |
d3a671e |
--- mlpack-1.0.3/src/mlpack/core/arma_extend/arma_extend.hpp (revision 13920)
|
|
Ryan Curtin |
d3a671e |
+++ mlpack-1.0.3/src/mlpack/core/arma_extend/arma_extend.hpp (working copy)
|
|
Ryan Curtin |
d3a671e |
@@ -21,10 +21,12 @@
|
|
Ryan Curtin |
d3a671e |
#endif
|
|
Ryan Curtin |
d3a671e |
|
|
Ryan Curtin |
d3a671e |
namespace arma {
|
|
Ryan Curtin |
d3a671e |
- // u64
|
|
Ryan Curtin |
d3a671e |
+ // u64/s64
|
|
Ryan Curtin |
d3a671e |
#include "typedef.hpp"
|
|
Ryan Curtin |
d3a671e |
#include "traits.hpp"
|
|
Ryan Curtin |
d3a671e |
#include "promote_type.hpp"
|
|
Ryan Curtin |
d3a671e |
+ #include "restrictors.hpp"
|
|
Ryan Curtin |
d3a671e |
+ #include "hdf5_misc.hpp"
|
|
Ryan Curtin |
d3a671e |
|
|
Ryan Curtin |
d3a671e |
// ccov()
|
|
Ryan Curtin |
d3a671e |
#include "op_ccov_proto.hpp"
|
|
Ryan Curtin |
d3a671e |
Index: mlpack-1.0.3/src/mlpack/core/arma_extend/typedef.hpp
|
|
Ryan Curtin |
d3a671e |
===================================================================
|
|
Ryan Curtin |
d3a671e |
--- mlpack-1.0.3/src/mlpack/core/arma_extend/typedef.hpp (revision 13920)
|
|
Ryan Curtin |
d3a671e |
+++ mlpack-1.0.3/src/mlpack/core/arma_extend/typedef.hpp (working copy)
|
|
Ryan Curtin |
d3a671e |
@@ -42,17 +42,28 @@
|
|
Ryan Curtin |
d3a671e |
#endif
|
|
Ryan Curtin |
d3a671e |
};
|
|
Ryan Curtin |
d3a671e |
|
|
Ryan Curtin |
d3a671e |
- typedef deduce_u64<(sizeof(std::size_t) >= 8)>::u64 u64;
|
|
Ryan Curtin |
d3a671e |
-#endif
|
|
Ryan Curtin |
d3a671e |
-
|
|
Ryan Curtin |
d3a671e |
// We only need to typedef s64.
|
|
Ryan Curtin |
d3a671e |
#if ULONG_MAX >= 0xffffffffffffffff
|
|
Ryan Curtin |
d3a671e |
typedef long s64;
|
|
Ryan Curtin |
d3a671e |
#elif ULLONG_MAX >= 0xffffffffffffffff
|
|
Ryan Curtin |
d3a671e |
- typedef long s64;
|
|
Ryan Curtin |
d3a671e |
+ typedef long long s64;
|
|
Ryan Curtin |
d3a671e |
#else
|
|
Ryan Curtin |
d3a671e |
#error "don't know how to typedef 's64' on this system"
|
|
Ryan Curtin |
d3a671e |
#endif
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+ typedef deduce_u64<(sizeof(std::size_t) >= 8)>::u64 u64;
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+ namespace junk
|
|
Ryan Curtin |
d3a671e |
+ {
|
|
Ryan Curtin |
d3a671e |
+ struct arma_64_elem_size_test
|
|
Ryan Curtin |
d3a671e |
+ {
|
|
Ryan Curtin |
d3a671e |
+ arma_static_check( (sizeof(u64) != 8), ERROR___TYPE_U64_HAS_UNSUPPORTED_SIZE );
|
|
Ryan Curtin |
d3a671e |
+ arma_static_check( (sizeof(s64) != 8), ERROR___TYPE_S64_HAS_UNSUPPORTED_SIZE );
|
|
Ryan Curtin |
d3a671e |
+ };
|
|
Ryan Curtin |
d3a671e |
+ }
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+#endif
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
#else
|
|
Ryan Curtin |
d3a671e |
|
|
Ryan Curtin |
d3a671e |
// We must typedef both u64 and s64.
|
|
Ryan Curtin |
d3a671e |
Index: mlpack-1.0.3/src/mlpack/core/arma_extend/hdf5_misc.hpp
|
|
Ryan Curtin |
d3a671e |
===================================================================
|
|
Ryan Curtin |
d3a671e |
--- mlpack-1.0.3/src/mlpack/core/arma_extend/hdf5_misc.hpp (revision 0)
|
|
Ryan Curtin |
d3a671e |
+++ mlpack-1.0.3/src/mlpack/core/arma_extend/hdf5_misc.hpp (working copy)
|
|
Ryan Curtin |
d3a671e |
@@ -0,0 +1,21 @@
|
|
Ryan Curtin |
d3a671e |
+// To hack in u64/s64 support to Armadillo when it is not compiled with
|
|
Ryan Curtin |
d3a671e |
+// ARMA_64BIT_WORD.
|
|
Ryan Curtin |
d3a671e |
+#ifdef ARMA_USE_HDF5
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<>
|
|
Ryan Curtin |
d3a671e |
+inline
|
|
Ryan Curtin |
d3a671e |
+hid_t
|
|
Ryan Curtin |
d3a671e |
+get_hdf5_type< long long >()
|
|
Ryan Curtin |
d3a671e |
+ {
|
|
Ryan Curtin |
d3a671e |
+ return H5Tcopy(H5T_NATIVE_LLONG);
|
|
Ryan Curtin |
d3a671e |
+ }
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+template<>
|
|
Ryan Curtin |
d3a671e |
+inline
|
|
Ryan Curtin |
d3a671e |
+hid_t
|
|
Ryan Curtin |
d3a671e |
+get_hdf5_type< unsigned long long >()
|
|
Ryan Curtin |
d3a671e |
+ {
|
|
Ryan Curtin |
d3a671e |
+ return H5Tcopy(H5T_NATIVE_ULLONG);
|
|
Ryan Curtin |
d3a671e |
+ }
|
|
Ryan Curtin |
d3a671e |
+
|
|
Ryan Curtin |
d3a671e |
+#endif
|