diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-09-10 14:22:35 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-09-10 14:22:35 -0400 |
commit | 80d472d7531d541d953adf94228e0555f38296fe (patch) | |
tree | b6943e23b21cf4f697ed94b15e3ab9b9cbfab39c /vec_pseudo.h | |
parent | 05b92eee2c5f5792d148b671e67fc92392e99eee (diff) | |
download | vecmathlib-80d472d7531d541d953adf94228e0555f38296fe.zip vecmathlib-80d472d7531d541d953adf94228e0555f38296fe.tar.gz |
Introduce mad(), as low-accuracy version of fma()
Diffstat (limited to 'vec_pseudo.h')
-rw-r--r-- | vec_pseudo.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/vec_pseudo.h b/vec_pseudo.h index ec3bcb2..5f84d3c 100644 --- a/vec_pseudo.h +++ b/vec_pseudo.h @@ -887,6 +887,10 @@ namespace vecmathlib { realvec_t log10() const { return map(vml_std::log10); } realvec_t log1p() const { return map(vml_std::log1p); } realvec_t log2() const { return map(vml_std::log2); } + realvec_t mad(realvec_t y, realvec_t z) const + { + return MF::vml_mad(*this, y, z); + } realvec_t nextafter(realvec_t y) const { return map(vml_std::nextafter, y); @@ -1503,6 +1507,14 @@ namespace vecmathlib { } template<typename real_t, int size> + inline realpseudovec<real_t, size> mad(realpseudovec<real_t, size> x, + realpseudovec<real_t, size> y, + realpseudovec<real_t, size> z) + { + return x.mad(y, z); + } + + template<typename real_t, int size> inline realpseudovec<real_t, size> nextafter(realpseudovec<real_t, size> x, realpseudovec<real_t, size> y) { |