diff options
author | Stephen Hines <srhines@google.com> | 2011-01-19 12:51:33 -0800 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2011-01-19 16:34:10 -0800 |
commit | 833166d274030bfd90653626f0e9f5bf710f7d4b (patch) | |
tree | f990266481e0c1a974e576dc7bb42577814b6478 /libs/rs/java | |
parent | 4243dc394d89a93cb207efa36e9755c2424d688b (diff) | |
download | frameworks_base-833166d274030bfd90653626f0e9f5bf710f7d4b.zip frameworks_base-833166d274030bfd90653626f0e9f5bf710f7d4b.tar.gz frameworks_base-833166d274030bfd90653626f0e9f5bf710f7d4b.tar.bz2 |
Clean up RS math fp library functions.
Change-Id: Ibe87b06a7f40a3889d63310641359d98bdff066c
Diffstat (limited to 'libs/rs/java')
-rw-r--r-- | libs/rs/java/tests/src/com/android/rs/test/fp_mad.rs | 8 | ||||
-rw-r--r-- | libs/rs/java/tests/src/com/android/rs/test/math.rs | 159 |
2 files changed, 141 insertions, 26 deletions
diff --git a/libs/rs/java/tests/src/com/android/rs/test/fp_mad.rs b/libs/rs/java/tests/src/com/android/rs/test/fp_mad.rs index b02f85d..b6f2b2a 100644 --- a/libs/rs/java/tests/src/com/android/rs/test/fp_mad.rs +++ b/libs/rs/java/tests/src/com/android/rs/test/fp_mad.rs @@ -102,8 +102,7 @@ static void test_clamp(uint32_t index) { start(); // Do ~100 M ops - int ct; - for (ct=0; ct < 1000 * 100; ct++) { + for (int ct=0; ct < 1000 * 100; ct++) { for (int i=0; i < (1000); i++) { data_f1[i] = clamp(data_f1[i], -1.f, 1.f); } @@ -114,7 +113,7 @@ static void test_clamp(uint32_t index) { start(); // Do ~100 M ops - for (ct=0; ct < 1000 * 100; ct++) { + for (int ct=0; ct < 1000 * 100; ct++) { for (int i=0; i < (1000); i++) { if (data_f1[i] < -1.f) data_f1[i] = -1.f; if (data_f1[i] > -1.f) data_f1[i] = 1.f; @@ -130,8 +129,7 @@ static void test_clamp4(uint32_t index) { float total = 0; // Do ~100 M ops - int ct; - for (ct=0; ct < 1000 * 100 /4; ct++) { + for (int ct=0; ct < 1000 * 100 /4; ct++) { for (int i=0; i < (1000); i++) { data_f4[i] = clamp(data_f4[i], -1.f, 1.f); } diff --git a/libs/rs/java/tests/src/com/android/rs/test/math.rs b/libs/rs/java/tests/src/com/android/rs/test/math.rs index 5b1ad15..3ff7910 100644 --- a/libs/rs/java/tests/src/com/android/rs/test/math.rs +++ b/libs/rs/java/tests/src/com/android/rs/test/math.rs @@ -7,37 +7,154 @@ volatile float2 f2; volatile float3 f3; volatile float4 f4; -#define TEST_F(fnc, var) \ +volatile int i1; +volatile int2 i2; +volatile int3 i3; +volatile int4 i4; + +#define TEST_FN_FUNC_FN(fnc) \ + rsDebug("Testing " #fnc, 0); \ + f1 = fnc(f1); \ + f2 = fnc(f2); \ + f3 = fnc(f3); \ + f4 = fnc(f4); + +#define TEST_FN_FUNC_FN_PFN(fnc) \ + rsDebug("Testing " #fnc, 0); \ + f1 = fnc(f1, (float*) &f1); \ + f2 = fnc(f2, (float2*) &f2); \ + f3 = fnc(f3, (float3*) &f3); \ + f4 = fnc(f4, (float4*) &f4); + +#define TEST_FN_FUNC_FN_FN(fnc) \ + rsDebug("Testing " #fnc, 0); \ + f1 = fnc(f1, f1); \ + f2 = fnc(f2, f2); \ + f3 = fnc(f3, f3); \ + f4 = fnc(f4, f4); + +#define TEST_FN_FUNC_FN_F(fnc) \ + rsDebug("Testing " #fnc, 0); \ + f1 = fnc(f1, f1); \ + f2 = fnc(f2, f1); \ + f3 = fnc(f3, f1); \ + f4 = fnc(f4, f1); + +#define TEST_FN_FUNC_FN_IN(fnc) \ rsDebug("Testing " #fnc, 0); \ - var##1 = fnc(var##1); \ - var##2 = fnc(var##2); \ - var##3 = fnc(var##3); \ - var##4 = fnc(var##4); + f1 = fnc(f1, i1); \ + f2 = fnc(f2, i2); \ + f3 = fnc(f3, i3); \ + f4 = fnc(f4, i4); -#define TEST_FP(fnc, var) \ +#define TEST_FN_FUNC_FN_I(fnc) \ rsDebug("Testing " #fnc, 0); \ - var##1 = fnc(var##1, (float*) &f1); \ - var##2 = fnc(var##2, (float2*) &f2); \ - var##3 = fnc(var##3, (float3*) &f3); \ - var##4 = fnc(var##4, (float4*) &f4); + f1 = fnc(f1, i1); \ + f2 = fnc(f2, i1); \ + f3 = fnc(f3, i1); \ + f4 = fnc(f4, i1); -#define TEST_F2(fnc, var) \ +#define TEST_FN_FUNC_FN_FN_FN(fnc) \ rsDebug("Testing " #fnc, 0); \ - var##1 = fnc(var##1, var##1); \ - var##2 = fnc(var##2, var##2); \ - var##3 = fnc(var##3, var##3); \ - var##4 = fnc(var##4, var##4); + f1 = fnc(f1, f1, f1); \ + f2 = fnc(f2, f2, f2); \ + f3 = fnc(f3, f3, f3); \ + f4 = fnc(f4, f4, f4); + +#define TEST_FN_FUNC_FN_PIN(fnc) \ + rsDebug("Testing " #fnc, 0); \ + f1 = fnc(f1, (int*) &i1); \ + f2 = fnc(f2, (int2*) &i2); \ + f3 = fnc(f3, (int3*) &i3); \ + f4 = fnc(f4, (int4*) &i4); + +#define TEST_FN_FUNC_FN_FN_PIN(fnc) \ + rsDebug("Testing " #fnc, 0); \ + f1 = fnc(f1, f1, (int*) &i1); \ + f2 = fnc(f2, f2, (int2*) &i2); \ + f3 = fnc(f3, f3, (int3*) &i3); \ + f4 = fnc(f4, f4, (int4*) &i4); + +#define TEST_IN_FUNC_FN(fnc) \ + rsDebug("Testing " #fnc, 0); \ + i1 = fnc(f1); \ + i2 = fnc(f2); \ + i3 = fnc(f3); \ + i4 = fnc(f4); + static bool test_math(uint32_t index) { bool failed = false; start(); - TEST_F(cos, f); - TEST_FP(modf, f); - TEST_F2(pow, f); - TEST_F(sin, f); - TEST_F(sqrt, f); - + TEST_FN_FUNC_FN(acos); + TEST_FN_FUNC_FN(acosh); + TEST_FN_FUNC_FN(acospi); + TEST_FN_FUNC_FN(asin); + TEST_FN_FUNC_FN(asinh); + TEST_FN_FUNC_FN(asinpi); + TEST_FN_FUNC_FN(atan); + TEST_FN_FUNC_FN_FN(atan2); + TEST_FN_FUNC_FN(atanh); + TEST_FN_FUNC_FN(atanpi); + TEST_FN_FUNC_FN_FN(atan2pi); + TEST_FN_FUNC_FN(cbrt); + TEST_FN_FUNC_FN(ceil); + TEST_FN_FUNC_FN_FN(copysign); + TEST_FN_FUNC_FN(cos); + TEST_FN_FUNC_FN(cosh); + TEST_FN_FUNC_FN(cospi); + TEST_FN_FUNC_FN(erfc); + TEST_FN_FUNC_FN(erf); + TEST_FN_FUNC_FN(exp); + TEST_FN_FUNC_FN(exp2); + TEST_FN_FUNC_FN(exp10); + TEST_FN_FUNC_FN(expm1); + TEST_FN_FUNC_FN(fabs); + TEST_FN_FUNC_FN_FN(fdim); + TEST_FN_FUNC_FN(floor); + TEST_FN_FUNC_FN_FN_FN(fma); + TEST_FN_FUNC_FN_FN(fmax); + TEST_FN_FUNC_FN_F(fmax); + TEST_FN_FUNC_FN_FN(fmin); + TEST_FN_FUNC_FN_F(fmin); + TEST_FN_FUNC_FN_FN(fmod); + TEST_FN_FUNC_FN_PFN(fract); + TEST_FN_FUNC_FN_PIN(frexp); + TEST_FN_FUNC_FN_FN(hypot); + TEST_IN_FUNC_FN(ilogb); + TEST_FN_FUNC_FN_IN(ldexp); + TEST_FN_FUNC_FN_I(ldexp); + TEST_FN_FUNC_FN(lgamma); + TEST_FN_FUNC_FN_PIN(lgamma); + TEST_FN_FUNC_FN(log); + TEST_FN_FUNC_FN(log2); + TEST_FN_FUNC_FN(log10); + TEST_FN_FUNC_FN(log1p); + TEST_FN_FUNC_FN(logb); + TEST_FN_FUNC_FN_FN_FN(mad); + TEST_FN_FUNC_FN_PFN(modf); + // nan + TEST_FN_FUNC_FN_FN(nextafter); + TEST_FN_FUNC_FN_FN(pow); + TEST_FN_FUNC_FN_IN(pown); + TEST_FN_FUNC_FN_FN(powr); + TEST_FN_FUNC_FN_FN(remainder); + TEST_FN_FUNC_FN_FN_PIN(remquo); + TEST_FN_FUNC_FN(rint); + TEST_FN_FUNC_FN_IN(rootn); + TEST_FN_FUNC_FN(round); + TEST_FN_FUNC_FN(rsqrt); + TEST_FN_FUNC_FN(sin); + TEST_FN_FUNC_FN_PFN(sincos); + TEST_FN_FUNC_FN(sinh); + TEST_FN_FUNC_FN(sinpi); + TEST_FN_FUNC_FN(sqrt); + TEST_FN_FUNC_FN(tan); + TEST_FN_FUNC_FN(tanh); + TEST_FN_FUNC_FN(tanpi); + TEST_FN_FUNC_FN(tgamma); + TEST_FN_FUNC_FN(trunc); float time = end(index); |