summaryrefslogtreecommitdiffstats
path: root/vec_pseudo.h
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-09-10 14:22:35 -0400
committerErik Schnetter <schnetter@gmail.com>2013-09-10 14:22:35 -0400
commit80d472d7531d541d953adf94228e0555f38296fe (patch)
treeb6943e23b21cf4f697ed94b15e3ab9b9cbfab39c /vec_pseudo.h
parent05b92eee2c5f5792d148b671e67fc92392e99eee (diff)
downloadvecmathlib-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.h12
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)
{
OpenPOWER on IntegriCloud