diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-09-10 14:23:17 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-09-10 14:23:17 -0400 |
commit | 8399a416b2b6d67aca303788afce1e97b47b205b (patch) | |
tree | e2390ca2e54b21757ba0d93751266835745a203e | |
parent | 80d472d7531d541d953adf94228e0555f38296fe (diff) | |
download | vecmathlib-8399a416b2b6d67aca303788afce1e97b47b205b.zip vecmathlib-8399a416b2b6d67aca303788afce1e97b47b205b.tar.gz |
Use mad() instead of fma()
-rw-r--r-- | mathfuncs_asin.h | 54 | ||||
-rw-r--r-- | mathfuncs_exp.h | 62 | ||||
-rw-r--r-- | mathfuncs_log.h | 46 |
3 files changed, 81 insertions, 81 deletions
diff --git a/mathfuncs_asin.h b/mathfuncs_asin.h index ea336de..c4e658c 100644 --- a/mathfuncs_asin.h +++ b/mathfuncs_asin.h @@ -50,45 +50,45 @@ namespace vecmathlib { #ifdef VML_HAVE_FP_CONTRACT // float, error=6.66422646286979497624922530951e-8 r = RV(+0.067880041389077294203913658751); - r = fma(r, x2, RV(-0.133733063898947623461317627449)); - r = fma(r, x2, RV(+0.19911334683762018553047223812)); - r = fma(r, x2, RV(-0.333297629421461914979541552214)); - r = fma(r, x2, RV(0.99999959717590068040974191128)); + r = mad(r, x2, RV(-0.133733063898947623461317627449)); + r = mad(r, x2, RV(+0.19911334683762018553047223812)); + r = mad(r, x2, RV(-0.333297629421461914979541552214)); + r = mad(r, x2, RV(0.99999959717590068040974191128)); #else // float, error=1.32698047768409645072438892571e-6 r = RV(-0.097792979486911722224672843246); - r = fma(r, x2, RV(+0.192823203439066255014185816489)); - r = fma(r, x2, RV(-0.332894374801791377010848071499)); - r = fma(r, x2, RV(+0.99999272283064606320969693166)); + r = mad(r, x2, RV(+0.192823203439066255014185816489)); + r = mad(r, x2, RV(-0.332894374801791377010848071499)); + r = mad(r, x2, RV(+0.99999272283064606320969693166)); #endif break; case 8: #ifdef VML_HAVE_FP_CONTRACT // double, error=7.23827307971781482562906889298e-17 r = RV(-0.0119268581772947474118625342812); - r = fma(r, x2, RV(+0.0314136659341247717203573238714)); - r = fma(r, x2, RV(-0.0471488852137420698546535537847)); - r = fma(r, x2, RV(+0.057569335614537634720962389105)); - r = fma(r, x2, RV(-0.066469674694325315726074277265)); - r = fma(r, x2, RV(+0.076901807118525604168645555045)); - r = fma(r, x2, RV(-0.090907534052423738503603248332)); - r = fma(r, x2, RV(+0.111111036293577807846564325197)); - r = fma(r, x2, RV(-0.142857140628324608456323319753)); - r = fma(r, x2, RV(+0.199999999962771461194546102341)); - r = fma(r, x2, RV(-0.333333333333044876533973016233)); - r = fma(r, x2, RV(+0.9999999999999993386168118967)); + r = mad(r, x2, RV(+0.0314136659341247717203573238714)); + r = mad(r, x2, RV(-0.0471488852137420698546535537847)); + r = mad(r, x2, RV(+0.057569335614537634720962389105)); + r = mad(r, x2, RV(-0.066469674694325315726074277265)); + r = mad(r, x2, RV(+0.076901807118525604168645555045)); + r = mad(r, x2, RV(-0.090907534052423738503603248332)); + r = mad(r, x2, RV(+0.111111036293577807846564325197)); + r = mad(r, x2, RV(-0.142857140628324608456323319753)); + r = mad(r, x2, RV(+0.199999999962771461194546102341)); + r = mad(r, x2, RV(-0.333333333333044876533973016233)); + r = mad(r, x2, RV(+0.9999999999999993386168118967)); #else // double, error=2.55716065822130171460427941931e-14 r = RV(-0.0181544668501977245345114956236); - r = fma(r, x2, RV(+0.0437292245148812058302877081114)); - r = fma(r, x2, RV(-0.062544339168176953821092935889)); - r = fma(r, x2, RV(+0.076201106915857900897507167054)); - r = fma(r, x2, RV(-0.090827503061359848291718661563)); - r = fma(r, x2, RV(+0.11110526662726539375601075137)); - r = fma(r, x2, RV(-0.142856889699649116820344831251)); - r = fma(r, x2, RV(+0.199999993955745494607716573019)); - r = fma(r, x2, RV(-0.333333333267116176139371545145)); - r = fma(r, x2, RV(+0.99999999999978652742783656623)); + r = mad(r, x2, RV(+0.0437292245148812058302877081114)); + r = mad(r, x2, RV(-0.062544339168176953821092935889)); + r = mad(r, x2, RV(+0.076201106915857900897507167054)); + r = mad(r, x2, RV(-0.090827503061359848291718661563)); + r = mad(r, x2, RV(+0.11110526662726539375601075137)); + r = mad(r, x2, RV(-0.142856889699649116820344831251)); + r = mad(r, x2, RV(+0.199999993955745494607716573019)); + r = mad(r, x2, RV(-0.333333333267116176139371545145)); + r = mad(r, x2, RV(+0.99999999999978652742783656623)); #endif break; default: diff --git a/mathfuncs_exp.h b/mathfuncs_exp.h index a8aed3f..a615db1 100644 --- a/mathfuncs_exp.h +++ b/mathfuncs_exp.h @@ -38,49 +38,49 @@ namespace vecmathlib { #ifdef VML_HAVE_FP_CONTRACT // float, error=4.55549108005200277750378992345e-9 r = RV(0.000154653240842602623787395880898); - r = fma(r, x, RV(0.00133952915439234389712105060319)); - r = fma(r, x, RV(0.0096180399118156827664944870552)); - r = fma(r, x, RV(0.055503406540531310853149866446)); - r = fma(r, x, RV(0.240226511015459465468737123346)); - r = fma(r, x, RV(0.69314720007380208630542805293)); - r = fma(r, x, RV(0.99999999997182023878745628977)); + r = mad(r, x, RV(0.00133952915439234389712105060319)); + r = mad(r, x, RV(0.0096180399118156827664944870552)); + r = mad(r, x, RV(0.055503406540531310853149866446)); + r = mad(r, x, RV(0.240226511015459465468737123346)); + r = mad(r, x, RV(0.69314720007380208630542805293)); + r = mad(r, x, RV(0.99999999997182023878745628977)); #else // float, error=1.62772721960621336664735896836e-7 r = RV(0.00133952915439234389712105060319); - r = fma(r, x, RV(0.009670773148229417605024318985)); - r = fma(r, x, RV(0.055503406540531310853149866446)); - r = fma(r, x, RV(0.240222115700585316818177639177)); - r = fma(r, x, RV(0.69314720007380208630542805293)); - r = fma(r, x, RV(1.00000005230745711373079206024)); + r = mad(r, x, RV(0.009670773148229417605024318985)); + r = mad(r, x, RV(0.055503406540531310853149866446)); + r = mad(r, x, RV(0.240222115700585316818177639177)); + r = mad(r, x, RV(0.69314720007380208630542805293)); + r = mad(r, x, RV(1.00000005230745711373079206024)); #endif break; case 8: #ifdef VML_HAVE_FP_CONTRACT // double, error=9.32016781355638010975628074746e-18 r = RV(4.45623165388261696886670014471e-10); - r = fma(r, x, RV(7.0733589360775271430968224806e-9)); - r = fma(r, x, RV(1.01780540270960163558119510246e-7)); - r = fma(r, x, RV(1.3215437348041505269462510712e-6)); - r = fma(r, x, RV(0.000015252733849766201174247690629)); - r = fma(r, x, RV(0.000154035304541242555115696403795)); - r = fma(r, x, RV(0.00133335581463968601407096905671)); - r = fma(r, x, RV(0.0096181291075949686712855561931)); - r = fma(r, x, RV(0.055504108664821672870565883052)); - r = fma(r, x, RV(0.240226506959101382690753994082)); - r = fma(r, x, RV(0.69314718055994530864272481773)); - r = fma(r, x, RV(0.9999999999999999978508676375)); + r = mad(r, x, RV(7.0733589360775271430968224806e-9)); + r = mad(r, x, RV(1.01780540270960163558119510246e-7)); + r = mad(r, x, RV(1.3215437348041505269462510712e-6)); + r = mad(r, x, RV(0.000015252733849766201174247690629)); + r = mad(r, x, RV(0.000154035304541242555115696403795)); + r = mad(r, x, RV(0.00133335581463968601407096905671)); + r = mad(r, x, RV(0.0096181291075949686712855561931)); + r = mad(r, x, RV(0.055504108664821672870565883052)); + r = mad(r, x, RV(0.240226506959101382690753994082)); + r = mad(r, x, RV(0.69314718055994530864272481773)); + r = mad(r, x, RV(0.9999999999999999978508676375)); #else // double, error=3.74939899823302048807873981077e-14 r = RV(1.02072375599725694063203809188e-7); - r = fma(r, x, RV(1.32573274434801314145133004073e-6)); - r = fma(r, x, RV(0.0000152526647170731944840736190013)); - r = fma(r, x, RV(0.000154034441925859828261898614555)); - r = fma(r, x, RV(0.00133335582175770747495287552557)); - r = fma(r, x, RV(0.0096181291794939392517233403183)); - r = fma(r, x, RV(0.055504108664525029438908798685)); - r = fma(r, x, RV(0.240226506957026959772247598695)); - r = fma(r, x, RV(0.6931471805599487321347668143)); - r = fma(r, x, RV(1.00000000000000942892870993489)); + r = mad(r, x, RV(1.32573274434801314145133004073e-6)); + r = mad(r, x, RV(0.0000152526647170731944840736190013)); + r = mad(r, x, RV(0.000154034441925859828261898614555)); + r = mad(r, x, RV(0.00133335582175770747495287552557)); + r = mad(r, x, RV(0.0096181291794939392517233403183)); + r = mad(r, x, RV(0.055504108664525029438908798685)); + r = mad(r, x, RV(0.240226506957026959772247598695)); + r = mad(r, x, RV(0.6931471805599487321347668143)); + r = mad(r, x, RV(1.00000000000000942892870993489)); #endif break; default: diff --git a/mathfuncs_log.h b/mathfuncs_log.h index 0a40eec..53b5f94 100644 --- a/mathfuncs_log.h +++ b/mathfuncs_log.h @@ -34,41 +34,41 @@ namespace vecmathlib { #ifdef VML_HAVE_FP_CONTRACT // float, error=5.98355642684398209498469870525e-9 r = RV(0.410981538282433293325329456838); - r = fma(r, y2, RV(0.402155483172044562892705980539)); - r = fma(r, y2, RV(0.57755014627178237959721643293)); - r = fma(r, y2, RV(0.96178780600659929206930296869)); - r = fma(r, y2, RV(2.88539012786343587248965772685)); + r = mad(r, y2, RV(0.402155483172044562892705980539)); + r = mad(r, y2, RV(0.57755014627178237959721643293)); + r = mad(r, y2, RV(0.96178780600659929206930296869)); + r = mad(r, y2, RV(2.88539012786343587248965772685)); #else //flaot, error=2.25468184051947656525068987795e-7 r = RV(0.498866687070343238590910977481); - r = fma(r, y2, RV(0.57002741193682764193895550312)); - r = fma(r, y2, RV(0.96200215034262628756932169194)); - r = fma(r, y2, RV(2.88538850388042106595516956395)); + r = mad(r, y2, RV(0.57002741193682764193895550312)); + r = mad(r, y2, RV(0.96200215034262628756932169194)); + r = mad(r, y2, RV(2.88538850388042106595516956395)); #endif break; case 8: #ifdef VML_HAVE_FP_CONTRACT // double, error=9.45037202901655672811489051683e-17 r = RV(0.259935726478127940817401224248); - r = fma(r, y2, RV(0.140676370079882918464564658472)); - r = fma(r, y2, RV(0.196513478841924000569879320851)); - r = fma(r, y2, RV(0.221596471338300882039273355617)); - r = fma(r, y2, RV(0.262327298560598641020007602127)); - r = fma(r, y2, RV(0.320598261015170101859472461613)); - r = fma(r, y2, RV(0.412198595799726905825871956187)); - r = fma(r, y2, RV(0.57707801621733949207376840932)); - r = fma(r, y2, RV(0.96179669392666302667713134701)); - r = fma(r, y2, RV(2.88539008177792581277410991327)); + r = mad(r, y2, RV(0.140676370079882918464564658472)); + r = mad(r, y2, RV(0.196513478841924000569879320851)); + r = mad(r, y2, RV(0.221596471338300882039273355617)); + r = mad(r, y2, RV(0.262327298560598641020007602127)); + r = mad(r, y2, RV(0.320598261015170101859472461613)); + r = mad(r, y2, RV(0.412198595799726905825871956187)); + r = mad(r, y2, RV(0.57707801621733949207376840932)); + r = mad(r, y2, RV(0.96179669392666302667713134701)); + r = mad(r, y2, RV(2.88539008177792581277410991327)); #else // double, error=1.21820548287702216975532695788e-13 r = RV(0.293251364683280430617251942017); - r = fma(r, y2, RV(0.201364223624519571276587631354)); - r = fma(r, y2, RV(0.264443947645547871780098560836)); - r = fma(r, y2, RV(0.320475051320227723946459855458)); - r = fma(r, y2, RV(0.412202612052105347480086431555)); - r = fma(r, y2, RV(0.57707794741938820005328259256)); - r = fma(r, y2, RV(0.96179669445173881282808321929)); - r = fma(r, y2, RV(2.88539008177676567117601117274)); + r = mad(r, y2, RV(0.201364223624519571276587631354)); + r = mad(r, y2, RV(0.264443947645547871780098560836)); + r = mad(r, y2, RV(0.320475051320227723946459855458)); + r = mad(r, y2, RV(0.412202612052105347480086431555)); + r = mad(r, y2, RV(0.57707794741938820005328259256)); + r = mad(r, y2, RV(0.96179669445173881282808321929)); + r = mad(r, y2, RV(2.88539008177676567117601117274)); #endif break; default: |