diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-08-20 12:32:46 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-08-20 12:32:46 -0400 |
commit | 4ae58dcb5e5c951d15a5e2052a299e2d2d98bee0 (patch) | |
tree | ee6a64f4e8d0c7fb59968cc9d7a2d4c29f395421 | |
parent | dd77c0150d3980d05d452eb3bdab079b8d2de155 (diff) | |
download | vecmathlib-4ae58dcb5e5c951d15a5e2052a299e2d2d98bee0.zip vecmathlib-4ae58dcb5e5c951d15a5e2052a299e2d2d98bee0.tar.gz |
Provide trivial fallback "best vector" if no "best vector" is available
-rw-r--r-- | vecmathlib.h | 36 |
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 } |