android_util_FloatMath.cpp revision 5d728bb9ff8c6ad89d5a1b88b2804f954d45d763
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "jni.h" 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <android_runtime/AndroidRuntime.h> 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <math.h> 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include <float.h> 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#include "SkTypes.h" 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass MathUtilsGlue { 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic: 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static float FloorF(JNIEnv* env, jobject clazz, float x) { 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return floorf(x); 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static float CeilF(JNIEnv* env, jobject clazz, float x) { 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ceilf(x); 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static float SinF(JNIEnv* env, jobject clazz, float x) { 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sinf(x); 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static float CosF(JNIEnv* env, jobject clazz, float x) { 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return cosf(x); 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static float SqrtF(JNIEnv* env, jobject clazz, float x) { 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sqrtf(x); 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 285d728bb9ff8c6ad89d5a1b88b2804f954d45d763Jeff Brown 295d728bb9ff8c6ad89d5a1b88b2804f954d45d763Jeff Brown static float ExpF(JNIEnv* env, jobject clazz, float x) { 305d728bb9ff8c6ad89d5a1b88b2804f954d45d763Jeff Brown return expf(x); 315d728bb9ff8c6ad89d5a1b88b2804f954d45d763Jeff Brown } 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectstatic JNINativeMethod gMathUtilsMethods[] = { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {"floor", "(F)F", (void*) MathUtilsGlue::FloorF}, 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {"ceil", "(F)F", (void*) MathUtilsGlue::CeilF}, 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {"sin", "(F)F", (void*) MathUtilsGlue::SinF}, 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project {"cos", "(F)F", (void*) MathUtilsGlue::CosF}, 395d728bb9ff8c6ad89d5a1b88b2804f954d45d763Jeff Brown {"sqrt", "(F)F", (void*) MathUtilsGlue::SqrtF}, 405d728bb9ff8c6ad89d5a1b88b2804f954d45d763Jeff Brown {"exp", "(F)F", (void*) MathUtilsGlue::ExpF}, 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}; 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectint register_android_util_FloatMath(JNIEnv* env) 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int result = android::AndroidRuntime::registerNativeMethods(env, 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "android/util/FloatMath", 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project gMathUtilsMethods, 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SK_ARRAY_COUNT(gMathUtilsMethods)); 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return result; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 52