aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2011-07-20 14:53:08 -0700
committerJosé Fonseca <[email protected]>2011-07-22 18:52:09 -0700
commitaf82ff556cdd748f9f6b0d60d53afaaf369b1c5b (patch)
tree96b5cb20e3c92dbf7af249a0a2291a97c4a2fa8e
parent47d6d44a231b811f1bba05478a6bbfb1e3fdb27b (diff)
gallivm: Fix lp_build_exp2 order 4-5 polynomial coefficients and bump order.
Not sure how I computed these, but they were wrong (which explains why bumping the polynomial order before never improved precision). This allows to pass the EXP test cases of PSPrecision/VSPrecision DCTs.
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_arit.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index fce4685cc2d..0c075bafb2c 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -61,7 +61,7 @@
#include "lp_bld_arit.h"
-#define EXP_POLY_DEGREE 3
+#define EXP_POLY_DEGREE 5
#define LOG_POLY_DEGREE 5
@@ -2218,18 +2218,18 @@ lp_build_polynomial(struct lp_build_context *bld,
*/
const double lp_build_exp2_polynomial[] = {
#if EXP_POLY_DEGREE == 5
- 0.999999999690134838155,
- 0.583974334321735217258,
- 0.164553105719676828492,
- 0.0292811063701710962255,
- 0.00354944426657875141846,
- 0.000296253726543423377365
+ 0.999999925063526176901,
+ 0.693153073200168932794,
+ 0.240153617044375388211,
+ 0.0558263180532956664775,
+ 0.00898934009049466391101,
+ 0.00187757667519147912699
#elif EXP_POLY_DEGREE == 4
- 1.00000001502262084505,
- 0.563586057338685991394,
- 0.150436017652442413623,
- 0.0243220604213317927308,
- 0.0025359088446580436489
+ 1.00000259337069434683,
+ 0.693003834469974940458,
+ 0.24144275689150793076,
+ 0.0520114606103070150235,
+ 0.0135341679161270268764
#elif EXP_POLY_DEGREE == 3
0.999925218562710312959,
0.695833540494823811697,