summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-08-20 12:32:46 -0400
committerErik Schnetter <schnetter@gmail.com>2013-08-20 12:32:46 -0400
commit4ae58dcb5e5c951d15a5e2052a299e2d2d98bee0 (patch)
treeee6a64f4e8d0c7fb59968cc9d7a2d4c29f395421
parentdd77c0150d3980d05d452eb3bdab079b8d2de155 (diff)
downloadvecmathlib-4ae58dcb5e5c951d15a5e2052a299e2d2d98bee0.zip
vecmathlib-4ae58dcb5e5c951d15a5e2052a299e2d2d98bee0.tar.gz
Provide trivial fallback "best vector" if no "best vector" is available
-rw-r--r--vecmathlib.h36
1 files changed, 22 insertions, 14 deletions
diff --git a/vecmathlib.h b/vecmathlib.h
index 6a79a7e..6f1f2be 100644
--- a/vecmathlib.h
+++ b/vecmathlib.h
@@ -120,16 +120,6 @@ namespace std { class type_info; }
// Define "best" vector types
namespace vecmathlib {
-#if defined VECMATHLIB_HAVE_VEC_DOUBLE_8
-# define VECMATHLIB_MAX_DOUBLE_VECSIZE 8
-#elif defined VECMATHLIB_HAVE_VEC_DOUBLE_4
-# define VECMATHLIB_MAX_DOUBLE_VECSIZE 4
-#elif defined VECMATHLIB_HAVE_VEC_DOUBLE_2
-# define VECMATHLIB_MAX_DOUBLE_VECSIZE 2
-#elif defined VECMATHLIB_HAVE_VEC_DOUBLE_1
-# define VECMATHLIB_MAX_DOUBLE_VECSIZE 1
-#endif
-
#if defined VECMATHLIB_HAVE_VEC_FLOAT_16
# define VECMATHLIB_MAX_FLOAT_VECSIZE 16
#elif defined VECMATHLIB_HAVE_VEC_FLOAT_8
@@ -142,16 +132,34 @@ namespace vecmathlib {
# define VECMATHLIB_MAX_FLOAT_VECSIZE 1
#endif
-#ifdef VECMATHLIB_MAX_DOUBLE_VECSIZE
- typedef realvec<double,VECMATHLIB_MAX_DOUBLE_VECSIZE> double_vec;
- typedef intvec<double,VECMATHLIB_MAX_DOUBLE_VECSIZE> long_vec;
- typedef boolvec<double,VECMATHLIB_MAX_DOUBLE_VECSIZE> bool_double_vec;
+#if defined VECMATHLIB_HAVE_VEC_DOUBLE_8
+# define VECMATHLIB_MAX_DOUBLE_VECSIZE 8
+#elif defined VECMATHLIB_HAVE_VEC_DOUBLE_4
+# define VECMATHLIB_MAX_DOUBLE_VECSIZE 4
+#elif defined VECMATHLIB_HAVE_VEC_DOUBLE_2
+# define VECMATHLIB_MAX_DOUBLE_VECSIZE 2
+#elif defined VECMATHLIB_HAVE_VEC_DOUBLE_1
+# define VECMATHLIB_MAX_DOUBLE_VECSIZE 1
#endif
#ifdef VECMATHLIB_MAX_FLOAT_VECSIZE
typedef realvec<float,VECMATHLIB_MAX_FLOAT_VECSIZE> float_vec;
typedef intvec<float,VECMATHLIB_MAX_FLOAT_VECSIZE> int_vec;
typedef boolvec<float,VECMATHLIB_MAX_FLOAT_VECSIZE> bool_float_vec;
+#else
+ typedef realpseudovec<float,1> float_vec;
+ typedef intpseudovec<float,1> int_vec;
+ typedef boolpseudovec<float,1> bool_float_vec;
+#endif
+
+#ifdef VECMATHLIB_MAX_DOUBLE_VECSIZE
+ typedef realvec<double,VECMATHLIB_MAX_DOUBLE_VECSIZE> double_vec;
+ typedef intvec<double,VECMATHLIB_MAX_DOUBLE_VECSIZE> long_vec;
+ typedef boolvec<double,VECMATHLIB_MAX_DOUBLE_VECSIZE> bool_double_vec;
+#else
+ typedef realpseudovec<double,1> double_vec;
+ typedef intpseudovec<double,1> long_vec;
+ typedef boolpseudovec<double,1> bool_double_vec;
#endif
}
OpenPOWER on IntegriCloud