Add __NDK_FPABI__ to function taking/returning float/double
Allow user code to be compiled with "-mhard-float" for armeabi-v7a (which implies -mfloat-abi=hard), and either link with 1. Android native APIs which use softfp, or 2. A customized libm_hard.a which is compiled with -mhard-float. Need -D_NDK_MATH_NO_SOFTFP=1 See tests/device/hard-float/jni/Android.mk for details and restriction on Clang Change-Id: I773a842c73368e08b9a6cda0441e95a96fa303b2
This commit is contained in:
@@ -541,23 +541,23 @@ int64_t AMotionEvent_getEventTime(const AInputEvent* motion_event);
|
||||
* For touch events on the screen, this is the delta that was added to the raw
|
||||
* screen coordinates to adjust for the absolute position of the containing windows
|
||||
* and views. */
|
||||
float AMotionEvent_getXOffset(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getXOffset(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the Y coordinates being reported.
|
||||
* For touch events on the screen, this is the delta that was added to the raw
|
||||
* screen coordinates to adjust for the absolute position of the containing windows
|
||||
* and views. */
|
||||
float AMotionEvent_getYOffset(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getYOffset(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the X coordinates being reported.
|
||||
* You can multiply this number with an X coordinate sample to find the
|
||||
* actual hardware value of the X coordinate. */
|
||||
float AMotionEvent_getXPrecision(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getXPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the Y coordinates being reported.
|
||||
* You can multiply this number with a Y coordinate sample to find the
|
||||
* actual hardware value of the Y coordinate. */
|
||||
float AMotionEvent_getYPrecision(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getYPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the number of pointers of data contained in this event.
|
||||
* Always >= 1. */
|
||||
@@ -573,29 +573,29 @@ int32_t AMotionEvent_getPointerId(const AInputEvent* motion_event, size_t pointe
|
||||
* For touch events on the screen, this is the original location of the event
|
||||
* on the screen, before it had been adjusted for the containing window
|
||||
* and views. */
|
||||
float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the original raw X coordinate of this event.
|
||||
* For touch events on the screen, this is the original location of the event
|
||||
* on the screen, before it had been adjusted for the containing window
|
||||
* and views. */
|
||||
float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current X coordinate of this event for the given pointer index.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current Y coordinate of this event for the given pointer index.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current pressure of this event for the given pointer index.
|
||||
* The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure),
|
||||
* although values higher than 1 may be generated depending on the calibration of
|
||||
* the input device. */
|
||||
float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current scaled value of the approximate size for the given pointer index.
|
||||
* This represents some approximation of the area of the screen being
|
||||
@@ -603,27 +603,27 @@ float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_i
|
||||
* touch is normalized with the device specific range of values
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* determine fat touch events. */
|
||||
float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the major axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index. */
|
||||
float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the minor axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index. */
|
||||
float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the major axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index.
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the minor axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index.
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current orientation of the touch area and tool area in radians clockwise from
|
||||
* vertical for the given pointer index.
|
||||
@@ -633,11 +633,11 @@ float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_
|
||||
* indicates that the major axis of contact is oriented to the left.
|
||||
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
|
||||
* (finger pointing fully right). */
|
||||
float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the value of the request axis for the given pointer index. */
|
||||
float AMotionEvent_getAxisValue(const AInputEvent* motion_event,
|
||||
int32_t axis, size_t pointer_index);
|
||||
int32_t axis, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the number of historical points in this event. These are movements that
|
||||
* have occurred between this event and the previous event. This only applies
|
||||
@@ -658,7 +658,7 @@ int64_t AMotionEvent_getHistoricalEventTime(const AInputEvent* motion_event,
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical raw Y coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -668,21 +668,21 @@ float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t poi
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalRawY(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical X coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalX(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical Y coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical pressure of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -690,7 +690,7 @@ float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointe
|
||||
* although values higher than 1 may be generated depending on the calibration of
|
||||
* the input device. */
|
||||
float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current scaled value of the approximate size for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -700,19 +700,19 @@ float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* determine fat touch events. */
|
||||
float AMotionEvent_getHistoricalSize(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the major axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index that
|
||||
* occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalTouchMajor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the minor axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index that
|
||||
* occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the major axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index that
|
||||
@@ -720,7 +720,7 @@ float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the minor axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index that
|
||||
@@ -728,7 +728,7 @@ float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical orientation of the touch area and tool area in radians clockwise from
|
||||
* vertical for the given pointer index that
|
||||
@@ -740,12 +740,12 @@ float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_
|
||||
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
|
||||
* (finger pointing fully right). */
|
||||
float AMotionEvent_getHistoricalOrientation(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical value of the request axis for the given pointer index
|
||||
* that occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalAxisValue(const AInputEvent* motion_event,
|
||||
int32_t axis, size_t pointer_index, size_t history_index);
|
||||
int32_t axis, size_t pointer_index, size_t history_index) __NDK_FPABI__;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -183,222 +183,222 @@ __BEGIN_DECLS
|
||||
/*
|
||||
* ANSI/POSIX
|
||||
*/
|
||||
int __fpclassifyd(double) __pure2;
|
||||
int __fpclassifyf(float) __pure2;
|
||||
int __fpclassifyl(long double) __pure2;
|
||||
int __isfinitef(float) __pure2;
|
||||
int __isfinite(double) __pure2;
|
||||
int __isfinitel(long double) __pure2;
|
||||
int __isinff(float) __pure2;
|
||||
int __isinf(double) __pure2;
|
||||
int __isinfl(long double) __pure2;
|
||||
int __isnanl(long double) __pure2;
|
||||
int __isnormalf(float) __pure2;
|
||||
int __isnormal(double) __pure2;
|
||||
int __isnormall(long double) __pure2;
|
||||
int __signbit(double) __pure2;
|
||||
int __signbitf(float) __pure2;
|
||||
int __signbitl(long double) __pure2;
|
||||
int __fpclassifyd(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitel(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinff(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinf(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinfl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnanl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormalf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormal(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormall(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbit(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
double acos(double);
|
||||
double asin(double);
|
||||
double atan(double);
|
||||
double atan2(double, double);
|
||||
double cos(double);
|
||||
double sin(double);
|
||||
double tan(double);
|
||||
double acos(double) __NDK_FPABI_MATH__;
|
||||
double asin(double) __NDK_FPABI_MATH__;
|
||||
double atan(double) __NDK_FPABI_MATH__;
|
||||
double atan2(double, double) __NDK_FPABI_MATH__;
|
||||
double cos(double) __NDK_FPABI_MATH__;
|
||||
double sin(double) __NDK_FPABI_MATH__;
|
||||
double tan(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double cosh(double);
|
||||
double sinh(double);
|
||||
double tanh(double);
|
||||
double cosh(double) __NDK_FPABI_MATH__;
|
||||
double sinh(double) __NDK_FPABI_MATH__;
|
||||
double tanh(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double exp(double);
|
||||
double frexp(double, int *); /* fundamentally !__pure2 */
|
||||
double ldexp(double, int);
|
||||
double log(double);
|
||||
double log10(double);
|
||||
double modf(double, double *); /* fundamentally !__pure2 */
|
||||
double exp(double) __NDK_FPABI_MATH__;
|
||||
double frexp(double, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
double ldexp(double, int) __NDK_FPABI_MATH__;
|
||||
double log(double) __NDK_FPABI_MATH__;
|
||||
double log10(double) __NDK_FPABI_MATH__;
|
||||
double modf(double, double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
double pow(double, double);
|
||||
double sqrt(double);
|
||||
double pow(double, double) __NDK_FPABI_MATH__;
|
||||
double sqrt(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double ceil(double);
|
||||
double fabs(double) __pure2;
|
||||
double floor(double);
|
||||
double fmod(double, double);
|
||||
double ceil(double) __NDK_FPABI_MATH__;
|
||||
double fabs(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double floor(double) __NDK_FPABI_MATH__;
|
||||
double fmod(double, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* These functions are not in C90.
|
||||
*/
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
double acosh(double);
|
||||
double asinh(double);
|
||||
double atanh(double);
|
||||
double cbrt(double);
|
||||
double erf(double);
|
||||
double erfc(double);
|
||||
double exp2(double);
|
||||
double expm1(double);
|
||||
double fma(double, double, double);
|
||||
double hypot(double, double);
|
||||
int ilogb(double) __pure2;
|
||||
/* int (isinf)(double) __pure2; */
|
||||
int (isnan)(double) __pure2;
|
||||
double lgamma(double);
|
||||
long long llrint(double);
|
||||
long long llround(double);
|
||||
double log1p(double);
|
||||
double logb(double);
|
||||
long lrint(double);
|
||||
long lround(double);
|
||||
double nan(const char *) __pure2;
|
||||
double nextafter(double, double);
|
||||
double remainder(double, double);
|
||||
double remquo(double, double, int *);
|
||||
double rint(double);
|
||||
double acosh(double) __NDK_FPABI_MATH__;
|
||||
double asinh(double) __NDK_FPABI_MATH__;
|
||||
double atanh(double) __NDK_FPABI_MATH__;
|
||||
double cbrt(double) __NDK_FPABI_MATH__;
|
||||
double erf(double) __NDK_FPABI_MATH__;
|
||||
double erfc(double) __NDK_FPABI_MATH__;
|
||||
double exp2(double) __NDK_FPABI_MATH__;
|
||||
double expm1(double) __NDK_FPABI_MATH__;
|
||||
double fma(double, double, double) __NDK_FPABI_MATH__;
|
||||
double hypot(double, double) __NDK_FPABI_MATH__;
|
||||
int ilogb(double) __NDK_FPABI_MATH__ __pure2;
|
||||
/* int (isinf)(double) __NDK_FPABI_MATH__ __pure2; */
|
||||
int (isnan)(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double lgamma(double) __NDK_FPABI_MATH__;
|
||||
long long llrint(double) __NDK_FPABI_MATH__;
|
||||
long long llround(double) __NDK_FPABI_MATH__;
|
||||
double log1p(double) __NDK_FPABI_MATH__;
|
||||
double logb(double) __NDK_FPABI_MATH__;
|
||||
long lrint(double) __NDK_FPABI_MATH__;
|
||||
long lround(double) __NDK_FPABI_MATH__;
|
||||
double nan(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
double nextafter(double, double) __NDK_FPABI_MATH__;
|
||||
double remainder(double, double) __NDK_FPABI_MATH__;
|
||||
double remquo(double, double, int *) __NDK_FPABI_MATH__;
|
||||
double rint(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
double j0(double);
|
||||
double j1(double);
|
||||
double jn(int, double);
|
||||
double scalb(double, double);
|
||||
double y0(double);
|
||||
double y1(double);
|
||||
double yn(int, double);
|
||||
double j0(double) __NDK_FPABI_MATH__;
|
||||
double j1(double) __NDK_FPABI_MATH__;
|
||||
double jn(int, double) __NDK_FPABI_MATH__;
|
||||
double scalb(double, double) __NDK_FPABI_MATH__;
|
||||
double y0(double) __NDK_FPABI_MATH__;
|
||||
double y1(double) __NDK_FPABI_MATH__;
|
||||
double yn(int, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* #if __XSI_VISIBLE <= 500 || __BSD_VISIBLE */
|
||||
double gamma(double);
|
||||
double gamma(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
/* #endif */ /* __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 */
|
||||
double copysign(double, double) __pure2;
|
||||
double fdim(double, double);
|
||||
double fmax(double, double) __pure2;
|
||||
double fmin(double, double) __pure2;
|
||||
double nearbyint(double);
|
||||
double round(double);
|
||||
double scalbln(double, long);
|
||||
double scalbn(double, int);
|
||||
double tgamma(double);
|
||||
double trunc(double);
|
||||
double copysign(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fdim(double, double) __NDK_FPABI_MATH__;
|
||||
double fmax(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fmin(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double nearbyint(double) __NDK_FPABI_MATH__;
|
||||
double round(double) __NDK_FPABI_MATH__;
|
||||
double scalbln(double, long) __NDK_FPABI_MATH__;
|
||||
double scalbn(double, int) __NDK_FPABI_MATH__;
|
||||
double tgamma(double) __NDK_FPABI_MATH__;
|
||||
double trunc(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
double drem(double, double);
|
||||
int finite(double) __pure2;
|
||||
int isnanf(float) __pure2;
|
||||
double drem(double, double) __NDK_FPABI_MATH__;
|
||||
int finite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int isnanf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
/*
|
||||
* Reentrant version of gamma & lgamma; passes signgam back by reference
|
||||
* as the second argument; user must allocate space for signgam.
|
||||
*/
|
||||
double gamma_r(double, int *);
|
||||
double lgamma_r(double, int *);
|
||||
double gamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
double lgamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* IEEE Test Vector
|
||||
*/
|
||||
double significand(double);
|
||||
double significand(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/* float versions of ANSI/POSIX functions */
|
||||
/*#if __ISO_C_VISIBLE >= 1999 */
|
||||
float acosf(float);
|
||||
float asinf(float);
|
||||
float atanf(float);
|
||||
float atan2f(float, float);
|
||||
float cosf(float);
|
||||
float sinf(float);
|
||||
float tanf(float);
|
||||
float acosf(float) __NDK_FPABI_MATH__;
|
||||
float asinf(float) __NDK_FPABI_MATH__;
|
||||
float atanf(float) __NDK_FPABI_MATH__;
|
||||
float atan2f(float, float) __NDK_FPABI_MATH__;
|
||||
float cosf(float) __NDK_FPABI_MATH__;
|
||||
float sinf(float) __NDK_FPABI_MATH__;
|
||||
float tanf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float coshf(float);
|
||||
float sinhf(float);
|
||||
float tanhf(float);
|
||||
float coshf(float) __NDK_FPABI_MATH__;
|
||||
float sinhf(float) __NDK_FPABI_MATH__;
|
||||
float tanhf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float exp2f(float);
|
||||
float expf(float);
|
||||
float expm1f(float);
|
||||
float frexpf(float, int *); /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __pure2;
|
||||
float ldexpf(float, int);
|
||||
float log10f(float);
|
||||
float log1pf(float);
|
||||
float logf(float);
|
||||
float modff(float, float *); /* fundamentally !__pure2 */
|
||||
float exp2f(float) __NDK_FPABI_MATH__;
|
||||
float expf(float) __NDK_FPABI_MATH__;
|
||||
float expm1f(float) __NDK_FPABI_MATH__;
|
||||
float frexpf(float, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float ldexpf(float, int) __NDK_FPABI_MATH__;
|
||||
float log10f(float) __NDK_FPABI_MATH__;
|
||||
float log1pf(float) __NDK_FPABI_MATH__;
|
||||
float logf(float) __NDK_FPABI_MATH__;
|
||||
float modff(float, float *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
float powf(float, float);
|
||||
float sqrtf(float);
|
||||
float powf(float, float) __NDK_FPABI_MATH__;
|
||||
float sqrtf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float ceilf(float);
|
||||
float fabsf(float) __pure2;
|
||||
float floorf(float);
|
||||
float fmodf(float, float);
|
||||
float roundf(float);
|
||||
float ceilf(float) __NDK_FPABI_MATH__;
|
||||
float fabsf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float floorf(float) __NDK_FPABI_MATH__;
|
||||
float fmodf(float, float) __NDK_FPABI_MATH__;
|
||||
float roundf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float erff(float);
|
||||
float erfcf(float);
|
||||
float hypotf(float, float);
|
||||
float lgammaf(float);
|
||||
float tgammaf(float);
|
||||
float erff(float) __NDK_FPABI_MATH__;
|
||||
float erfcf(float) __NDK_FPABI_MATH__;
|
||||
float hypotf(float, float) __NDK_FPABI_MATH__;
|
||||
float lgammaf(float) __NDK_FPABI_MATH__;
|
||||
float tgammaf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float acoshf(float);
|
||||
float asinhf(float);
|
||||
float atanhf(float);
|
||||
float cbrtf(float);
|
||||
float logbf(float);
|
||||
float copysignf(float, float) __pure2;
|
||||
long long llrintf(float);
|
||||
long long llroundf(float);
|
||||
long lrintf(float);
|
||||
long lroundf(float);
|
||||
float nanf(const char *) __pure2;
|
||||
float nearbyintf(float);
|
||||
float nextafterf(float, float);
|
||||
float remainderf(float, float);
|
||||
float remquof(float, float, int *);
|
||||
float rintf(float);
|
||||
float scalblnf(float, long);
|
||||
float scalbnf(float, int);
|
||||
float truncf(float);
|
||||
float acoshf(float) __NDK_FPABI_MATH__;
|
||||
float asinhf(float) __NDK_FPABI_MATH__;
|
||||
float atanhf(float) __NDK_FPABI_MATH__;
|
||||
float cbrtf(float) __NDK_FPABI_MATH__;
|
||||
float logbf(float) __NDK_FPABI_MATH__;
|
||||
float copysignf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
long long llrintf(float) __NDK_FPABI_MATH__;
|
||||
long long llroundf(float) __NDK_FPABI_MATH__;
|
||||
long lrintf(float) __NDK_FPABI_MATH__;
|
||||
long lroundf(float) __NDK_FPABI_MATH__;
|
||||
float nanf(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
float nearbyintf(float) __NDK_FPABI_MATH__;
|
||||
float nextafterf(float, float) __NDK_FPABI_MATH__;
|
||||
float remainderf(float, float) __NDK_FPABI_MATH__;
|
||||
float remquof(float, float, int *) __NDK_FPABI_MATH__;
|
||||
float rintf(float) __NDK_FPABI_MATH__;
|
||||
float scalblnf(float, long) __NDK_FPABI_MATH__;
|
||||
float scalbnf(float, int) __NDK_FPABI_MATH__;
|
||||
float truncf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float fdimf(float, float);
|
||||
float fmaf(float, float, float);
|
||||
float fmaxf(float, float) __pure2;
|
||||
float fminf(float, float) __pure2;
|
||||
float fdimf(float, float) __NDK_FPABI_MATH__;
|
||||
float fmaf(float, float, float) __NDK_FPABI_MATH__;
|
||||
float fmaxf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
float fminf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* float versions of BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
float dremf(float, float);
|
||||
int finitef(float) __pure2;
|
||||
float gammaf(float);
|
||||
float j0f(float);
|
||||
float j1f(float);
|
||||
float jnf(int, float);
|
||||
float scalbf(float, float);
|
||||
float y0f(float);
|
||||
float y1f(float);
|
||||
float ynf(int, float);
|
||||
float dremf(float, float) __NDK_FPABI_MATH__;
|
||||
int finitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float gammaf(float) __NDK_FPABI_MATH__;
|
||||
float j0f(float) __NDK_FPABI_MATH__;
|
||||
float j1f(float) __NDK_FPABI_MATH__;
|
||||
float jnf(int, float) __NDK_FPABI_MATH__;
|
||||
float scalbf(float, float) __NDK_FPABI_MATH__;
|
||||
float y0f(float) __NDK_FPABI_MATH__;
|
||||
float y1f(float) __NDK_FPABI_MATH__;
|
||||
float ynf(int, float) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* Float versions of reentrant version of gamma & lgamma; passes
|
||||
* signgam back by reference as the second argument; user must
|
||||
* allocate space for signgam.
|
||||
*/
|
||||
float gammaf_r(float, int *);
|
||||
float lgammaf_r(float, int *);
|
||||
float gammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
float lgammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* float version of IEEE Test Vector
|
||||
*/
|
||||
float significandf(float);
|
||||
float significandf(float) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/*
|
||||
@@ -406,90 +406,90 @@ float significandf(float);
|
||||
*/
|
||||
/* #if __ISO_C_VISIBLE >= 1999 */
|
||||
#if 0
|
||||
long double acoshl(long double);
|
||||
long double acosl(long double);
|
||||
long double asinhl(long double);
|
||||
long double asinl(long double);
|
||||
long double atan2l(long double, long double);
|
||||
long double atanhl(long double);
|
||||
long double atanl(long double);
|
||||
long double cbrtl(long double);
|
||||
long double acoshl(long double) __NDK_FPABI_MATH__;
|
||||
long double acosl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinl(long double) __NDK_FPABI_MATH__;
|
||||
long double atan2l(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double atanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double atanl(long double) __NDK_FPABI_MATH__;
|
||||
long double cbrtl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double ceill(long double);
|
||||
long double copysignl(long double, long double) __pure2;
|
||||
long double ceill(long double) __NDK_FPABI_MATH__;
|
||||
long double copysignl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double coshl(long double);
|
||||
long double cosl(long double);
|
||||
long double erfcl(long double);
|
||||
long double erfl(long double);
|
||||
long double exp2l(long double);
|
||||
long double expl(long double);
|
||||
long double expm1l(long double);
|
||||
long double coshl(long double) __NDK_FPABI_MATH__;
|
||||
long double cosl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfcl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfl(long double) __NDK_FPABI_MATH__;
|
||||
long double exp2l(long double) __NDK_FPABI_MATH__;
|
||||
long double expl(long double) __NDK_FPABI_MATH__;
|
||||
long double expm1l(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double fabsl(long double) __pure2;
|
||||
long double fdiml(long double, long double);
|
||||
long double floorl(long double);
|
||||
long double fmal(long double, long double, long double);
|
||||
long double fmaxl(long double, long double) __pure2;
|
||||
long double fminl(long double, long double) __pure2;
|
||||
long double fabsl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fdiml(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double floorl(long double) __NDK_FPABI_MATH__;
|
||||
long double fmal(long double, long double, long double) __NDK_FPABI_MATH__;
|
||||
long double fmaxl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fminl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double fmodl(long double, long double);
|
||||
long double fmodl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double frexpl(long double value, int *); /* fundamentally !__pure2 */
|
||||
long double frexpl(long double value, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
#if 0
|
||||
long double hypotl(long double, long double);
|
||||
long double hypotl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
int ilogbl(long double) __pure2;
|
||||
long double ldexpl(long double, int);
|
||||
int ilogbl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double ldexpl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double lgammal(long double);
|
||||
long long llrintl(long double);
|
||||
long double lgammal(long double) __NDK_FPABI_MATH__;
|
||||
long long llrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long long llroundl(long double);
|
||||
long long llroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double log10l(long double);
|
||||
long double log1pl(long double);
|
||||
long double log2l(long double);
|
||||
long double logbl(long double);
|
||||
long double logl(long double);
|
||||
long lrintl(long double);
|
||||
long double log10l(long double) __NDK_FPABI_MATH__;
|
||||
long double log1pl(long double) __NDK_FPABI_MATH__;
|
||||
long double log2l(long double) __NDK_FPABI_MATH__;
|
||||
long double logbl(long double) __NDK_FPABI_MATH__;
|
||||
long double logl(long double) __NDK_FPABI_MATH__;
|
||||
long lrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long lroundl(long double);
|
||||
long lroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double modfl(long double, long double *); /* fundamentally !__pure2 */
|
||||
long double modfl(long double, long double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
#endif
|
||||
long double nanl(const char *) __pure2;
|
||||
long double nanl(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double nearbyintl(long double);
|
||||
long double nearbyintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double nextafterl(long double, long double);
|
||||
double nexttoward(double, long double);
|
||||
float nexttowardf(float, long double);
|
||||
long double nexttowardl(long double, long double);
|
||||
long double nextafterl(long double, long double) __NDK_FPABI_MATH__;
|
||||
double nexttoward(double, long double) __NDK_FPABI_MATH__;
|
||||
float nexttowardf(float, long double) __NDK_FPABI_MATH__;
|
||||
long double nexttowardl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double powl(long double, long double);
|
||||
long double remainderl(long double, long double);
|
||||
long double remquol(long double, long double, int *);
|
||||
long double rintl(long double);
|
||||
long double powl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remainderl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remquol(long double, long double, int *) __NDK_FPABI_MATH__;
|
||||
long double rintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double roundl(long double);
|
||||
long double scalblnl(long double, long);
|
||||
long double scalbnl(long double, int);
|
||||
long double roundl(long double) __NDK_FPABI_MATH__;
|
||||
long double scalblnl(long double, long) __NDK_FPABI_MATH__;
|
||||
long double scalbnl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double sinhl(long double);
|
||||
long double sinl(long double);
|
||||
long double sqrtl(long double);
|
||||
long double tanhl(long double);
|
||||
long double tanl(long double);
|
||||
long double tgammal(long double);
|
||||
long double sinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double sinl(long double) __NDK_FPABI_MATH__;
|
||||
long double sqrtl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanl(long double) __NDK_FPABI_MATH__;
|
||||
long double tgammal(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double truncl(long double);
|
||||
long double truncl(long double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* BIONIC: GLibc compatibility - required by the ARM toolchain */
|
||||
#ifdef _GNU_SOURCE
|
||||
void sincos(double x, double *sin, double *cos);
|
||||
void sincosf(float x, float *sin, float *cos);
|
||||
void sincosl(long double x, long double *sin, long double *cos);
|
||||
void sincos(double x, double *sin, double *cos) __NDK_FPABI_MATH__;
|
||||
void sincosf(float x, float *sin, float *cos) __NDK_FPABI_MATH__;
|
||||
void sincosl(long double x, long double *sin, long double *cos) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
|
||||
/* #endif */ /* __ISO_C_VISIBLE >= 1999 */
|
||||
|
||||
@@ -579,23 +579,23 @@ int64_t AMotionEvent_getEventTime(const AInputEvent* motion_event);
|
||||
* For touch events on the screen, this is the delta that was added to the raw
|
||||
* screen coordinates to adjust for the absolute position of the containing windows
|
||||
* and views. */
|
||||
float AMotionEvent_getXOffset(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getXOffset(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the Y coordinates being reported.
|
||||
* For touch events on the screen, this is the delta that was added to the raw
|
||||
* screen coordinates to adjust for the absolute position of the containing windows
|
||||
* and views. */
|
||||
float AMotionEvent_getYOffset(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getYOffset(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the X coordinates being reported.
|
||||
* You can multiply this number with an X coordinate sample to find the
|
||||
* actual hardware value of the X coordinate. */
|
||||
float AMotionEvent_getXPrecision(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getXPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the Y coordinates being reported.
|
||||
* You can multiply this number with a Y coordinate sample to find the
|
||||
* actual hardware value of the Y coordinate. */
|
||||
float AMotionEvent_getYPrecision(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getYPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the number of pointers of data contained in this event.
|
||||
* Always >= 1. */
|
||||
@@ -616,29 +616,29 @@ int32_t AMotionEvent_getToolType(const AInputEvent* motion_event, size_t pointer
|
||||
* For touch events on the screen, this is the original location of the event
|
||||
* on the screen, before it had been adjusted for the containing window
|
||||
* and views. */
|
||||
float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the original raw X coordinate of this event.
|
||||
* For touch events on the screen, this is the original location of the event
|
||||
* on the screen, before it had been adjusted for the containing window
|
||||
* and views. */
|
||||
float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current X coordinate of this event for the given pointer index.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current Y coordinate of this event for the given pointer index.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current pressure of this event for the given pointer index.
|
||||
* The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure),
|
||||
* although values higher than 1 may be generated depending on the calibration of
|
||||
* the input device. */
|
||||
float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current scaled value of the approximate size for the given pointer index.
|
||||
* This represents some approximation of the area of the screen being
|
||||
@@ -646,27 +646,27 @@ float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_i
|
||||
* touch is normalized with the device specific range of values
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* determine fat touch events. */
|
||||
float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the major axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index. */
|
||||
float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the minor axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index. */
|
||||
float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the major axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index.
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the minor axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index.
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current orientation of the touch area and tool area in radians clockwise from
|
||||
* vertical for the given pointer index.
|
||||
@@ -676,11 +676,11 @@ float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_
|
||||
* indicates that the major axis of contact is oriented to the left.
|
||||
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
|
||||
* (finger pointing fully right). */
|
||||
float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the value of the request axis for the given pointer index. */
|
||||
float AMotionEvent_getAxisValue(const AInputEvent* motion_event,
|
||||
int32_t axis, size_t pointer_index);
|
||||
int32_t axis, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the number of historical points in this event. These are movements that
|
||||
* have occurred between this event and the previous event. This only applies
|
||||
@@ -701,7 +701,7 @@ int64_t AMotionEvent_getHistoricalEventTime(const AInputEvent* motion_event,
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical raw Y coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -711,21 +711,21 @@ float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t poi
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalRawY(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical X coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalX(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical Y coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical pressure of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -733,7 +733,7 @@ float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointe
|
||||
* although values higher than 1 may be generated depending on the calibration of
|
||||
* the input device. */
|
||||
float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current scaled value of the approximate size for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -743,19 +743,19 @@ float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* determine fat touch events. */
|
||||
float AMotionEvent_getHistoricalSize(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the major axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index that
|
||||
* occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalTouchMajor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the minor axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index that
|
||||
* occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the major axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index that
|
||||
@@ -763,7 +763,7 @@ float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the minor axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index that
|
||||
@@ -771,7 +771,7 @@ float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical orientation of the touch area and tool area in radians clockwise from
|
||||
* vertical for the given pointer index that
|
||||
@@ -783,12 +783,12 @@ float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_
|
||||
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
|
||||
* (finger pointing fully right). */
|
||||
float AMotionEvent_getHistoricalOrientation(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical value of the request axis for the given pointer index
|
||||
* that occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalAxisValue(const AInputEvent* motion_event,
|
||||
int32_t axis, size_t pointer_index, size_t history_index);
|
||||
int32_t axis, size_t pointer_index, size_t history_index) __NDK_FPABI__;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -183,224 +183,224 @@ __BEGIN_DECLS
|
||||
/*
|
||||
* ANSI/POSIX
|
||||
*/
|
||||
int __fpclassifyd(double) __pure2;
|
||||
int __fpclassifyf(float) __pure2;
|
||||
int __fpclassifyl(long double) __pure2;
|
||||
int __isfinitef(float) __pure2;
|
||||
int __isfinite(double) __pure2;
|
||||
int __isfinitel(long double) __pure2;
|
||||
int __isinff(float) __pure2;
|
||||
int __isinf(double) __pure2;
|
||||
int __isinfl(long double) __pure2;
|
||||
int __isnanl(long double) __pure2;
|
||||
int __isnormalf(float) __pure2;
|
||||
int __isnormal(double) __pure2;
|
||||
int __isnormall(long double) __pure2;
|
||||
int __signbit(double) __pure2;
|
||||
int __signbitf(float) __pure2;
|
||||
int __signbitl(long double) __pure2;
|
||||
int __fpclassifyd(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitel(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinff(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinf(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinfl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnanl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormalf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormal(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormall(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbit(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
double acos(double);
|
||||
double asin(double);
|
||||
double atan(double);
|
||||
double atan2(double, double);
|
||||
double cos(double);
|
||||
double sin(double);
|
||||
double tan(double);
|
||||
double acos(double) __NDK_FPABI_MATH__;
|
||||
double asin(double) __NDK_FPABI_MATH__;
|
||||
double atan(double) __NDK_FPABI_MATH__;
|
||||
double atan2(double, double) __NDK_FPABI_MATH__;
|
||||
double cos(double) __NDK_FPABI_MATH__;
|
||||
double sin(double) __NDK_FPABI_MATH__;
|
||||
double tan(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double cosh(double);
|
||||
double sinh(double);
|
||||
double tanh(double);
|
||||
double cosh(double) __NDK_FPABI_MATH__;
|
||||
double sinh(double) __NDK_FPABI_MATH__;
|
||||
double tanh(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double exp(double);
|
||||
double frexp(double, int *); /* fundamentally !__pure2 */
|
||||
double ldexp(double, int);
|
||||
double log(double);
|
||||
double log10(double);
|
||||
double modf(double, double *); /* fundamentally !__pure2 */
|
||||
double exp(double) __NDK_FPABI_MATH__;
|
||||
double frexp(double, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
double ldexp(double, int) __NDK_FPABI_MATH__;
|
||||
double log(double) __NDK_FPABI_MATH__;
|
||||
double log10(double) __NDK_FPABI_MATH__;
|
||||
double modf(double, double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
double pow(double, double);
|
||||
double sqrt(double);
|
||||
double pow(double, double) __NDK_FPABI_MATH__;
|
||||
double sqrt(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double ceil(double);
|
||||
double fabs(double) __pure2;
|
||||
double floor(double);
|
||||
double fmod(double, double);
|
||||
double ceil(double) __NDK_FPABI_MATH__;
|
||||
double fabs(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double floor(double) __NDK_FPABI_MATH__;
|
||||
double fmod(double, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* These functions are not in C90.
|
||||
*/
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
double acosh(double);
|
||||
double asinh(double);
|
||||
double atanh(double);
|
||||
double cbrt(double);
|
||||
double erf(double);
|
||||
double erfc(double);
|
||||
double exp2(double);
|
||||
double expm1(double);
|
||||
double fma(double, double, double);
|
||||
double hypot(double, double);
|
||||
int ilogb(double) __pure2;
|
||||
/* int (isinf)(double) __pure2; */
|
||||
int (isnan)(double) __pure2;
|
||||
double lgamma(double);
|
||||
long long llrint(double);
|
||||
long long llround(double);
|
||||
double log1p(double);
|
||||
double log2(double);
|
||||
double logb(double);
|
||||
long lrint(double);
|
||||
long lround(double);
|
||||
double nan(const char *) __pure2;
|
||||
double nextafter(double, double);
|
||||
double remainder(double, double);
|
||||
double remquo(double, double, int *);
|
||||
double rint(double);
|
||||
double acosh(double) __NDK_FPABI_MATH__;
|
||||
double asinh(double) __NDK_FPABI_MATH__;
|
||||
double atanh(double) __NDK_FPABI_MATH__;
|
||||
double cbrt(double) __NDK_FPABI_MATH__;
|
||||
double erf(double) __NDK_FPABI_MATH__;
|
||||
double erfc(double) __NDK_FPABI_MATH__;
|
||||
double exp2(double) __NDK_FPABI_MATH__;
|
||||
double expm1(double) __NDK_FPABI_MATH__;
|
||||
double fma(double, double, double) __NDK_FPABI_MATH__;
|
||||
double hypot(double, double) __NDK_FPABI_MATH__;
|
||||
int ilogb(double) __NDK_FPABI_MATH__ __pure2;
|
||||
/* int (isinf)(double) __NDK_FPABI_MATH__ __pure2; */
|
||||
int (isnan)(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double lgamma(double) __NDK_FPABI_MATH__;
|
||||
long long llrint(double) __NDK_FPABI_MATH__;
|
||||
long long llround(double) __NDK_FPABI_MATH__;
|
||||
double log1p(double) __NDK_FPABI_MATH__;
|
||||
double log2(double) __NDK_FPABI_MATH__;
|
||||
double logb(double) __NDK_FPABI_MATH__;
|
||||
long lrint(double) __NDK_FPABI_MATH__;
|
||||
long lround(double) __NDK_FPABI_MATH__;
|
||||
double nan(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
double nextafter(double, double) __NDK_FPABI_MATH__;
|
||||
double remainder(double, double) __NDK_FPABI_MATH__;
|
||||
double remquo(double, double, int *) __NDK_FPABI_MATH__;
|
||||
double rint(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
double j0(double);
|
||||
double j1(double);
|
||||
double jn(int, double);
|
||||
double scalb(double, double);
|
||||
double y0(double);
|
||||
double y1(double);
|
||||
double yn(int, double);
|
||||
double j0(double) __NDK_FPABI_MATH__;
|
||||
double j1(double) __NDK_FPABI_MATH__;
|
||||
double jn(int, double) __NDK_FPABI_MATH__;
|
||||
double scalb(double, double) __NDK_FPABI_MATH__;
|
||||
double y0(double) __NDK_FPABI_MATH__;
|
||||
double y1(double) __NDK_FPABI_MATH__;
|
||||
double yn(int, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* #if __XSI_VISIBLE <= 500 || __BSD_VISIBLE */
|
||||
double gamma(double);
|
||||
double gamma(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
/* #endif */ /* __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 */
|
||||
double copysign(double, double) __pure2;
|
||||
double fdim(double, double);
|
||||
double fmax(double, double) __pure2;
|
||||
double fmin(double, double) __pure2;
|
||||
double nearbyint(double);
|
||||
double round(double);
|
||||
double scalbln(double, long);
|
||||
double scalbn(double, int);
|
||||
double tgamma(double);
|
||||
double trunc(double);
|
||||
double copysign(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fdim(double, double) __NDK_FPABI_MATH__;
|
||||
double fmax(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fmin(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double nearbyint(double) __NDK_FPABI_MATH__;
|
||||
double round(double) __NDK_FPABI_MATH__;
|
||||
double scalbln(double, long) __NDK_FPABI_MATH__;
|
||||
double scalbn(double, int) __NDK_FPABI_MATH__;
|
||||
double tgamma(double) __NDK_FPABI_MATH__;
|
||||
double trunc(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
double drem(double, double);
|
||||
int finite(double) __pure2;
|
||||
int isnanf(float) __pure2;
|
||||
double drem(double, double) __NDK_FPABI_MATH__;
|
||||
int finite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int isnanf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
/*
|
||||
* Reentrant version of gamma & lgamma; passes signgam back by reference
|
||||
* as the second argument; user must allocate space for signgam.
|
||||
*/
|
||||
double gamma_r(double, int *);
|
||||
double lgamma_r(double, int *);
|
||||
double gamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
double lgamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* IEEE Test Vector
|
||||
*/
|
||||
double significand(double);
|
||||
double significand(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/* float versions of ANSI/POSIX functions */
|
||||
/*#if __ISO_C_VISIBLE >= 1999 */
|
||||
float acosf(float);
|
||||
float asinf(float);
|
||||
float atanf(float);
|
||||
float atan2f(float, float);
|
||||
float cosf(float);
|
||||
float sinf(float);
|
||||
float tanf(float);
|
||||
float acosf(float) __NDK_FPABI_MATH__;
|
||||
float asinf(float) __NDK_FPABI_MATH__;
|
||||
float atanf(float) __NDK_FPABI_MATH__;
|
||||
float atan2f(float, float) __NDK_FPABI_MATH__;
|
||||
float cosf(float) __NDK_FPABI_MATH__;
|
||||
float sinf(float) __NDK_FPABI_MATH__;
|
||||
float tanf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float coshf(float);
|
||||
float sinhf(float);
|
||||
float tanhf(float);
|
||||
float coshf(float) __NDK_FPABI_MATH__;
|
||||
float sinhf(float) __NDK_FPABI_MATH__;
|
||||
float tanhf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float exp2f(float);
|
||||
float expf(float);
|
||||
float expm1f(float);
|
||||
float frexpf(float, int *); /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __pure2;
|
||||
float ldexpf(float, int);
|
||||
float log10f(float);
|
||||
float log1pf(float);
|
||||
float log2f(float);
|
||||
float logf(float);
|
||||
float modff(float, float *); /* fundamentally !__pure2 */
|
||||
float exp2f(float) __NDK_FPABI_MATH__;
|
||||
float expf(float) __NDK_FPABI_MATH__;
|
||||
float expm1f(float) __NDK_FPABI_MATH__;
|
||||
float frexpf(float, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float ldexpf(float, int) __NDK_FPABI_MATH__;
|
||||
float log10f(float) __NDK_FPABI_MATH__;
|
||||
float log1pf(float) __NDK_FPABI_MATH__;
|
||||
float log2f(float) __NDK_FPABI_MATH__;
|
||||
float logf(float) __NDK_FPABI_MATH__;
|
||||
float modff(float, float *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
float powf(float, float);
|
||||
float sqrtf(float);
|
||||
float powf(float, float) __NDK_FPABI_MATH__;
|
||||
float sqrtf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float ceilf(float);
|
||||
float fabsf(float) __pure2;
|
||||
float floorf(float);
|
||||
float fmodf(float, float);
|
||||
float roundf(float);
|
||||
float ceilf(float) __NDK_FPABI_MATH__;
|
||||
float fabsf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float floorf(float) __NDK_FPABI_MATH__;
|
||||
float fmodf(float, float) __NDK_FPABI_MATH__;
|
||||
float roundf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float erff(float);
|
||||
float erfcf(float);
|
||||
float hypotf(float, float);
|
||||
float lgammaf(float);
|
||||
float tgammaf(float);
|
||||
float erff(float) __NDK_FPABI_MATH__;
|
||||
float erfcf(float) __NDK_FPABI_MATH__;
|
||||
float hypotf(float, float) __NDK_FPABI_MATH__;
|
||||
float lgammaf(float) __NDK_FPABI_MATH__;
|
||||
float tgammaf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float acoshf(float);
|
||||
float asinhf(float);
|
||||
float atanhf(float);
|
||||
float cbrtf(float);
|
||||
float logbf(float);
|
||||
float copysignf(float, float) __pure2;
|
||||
long long llrintf(float);
|
||||
long long llroundf(float);
|
||||
long lrintf(float);
|
||||
long lroundf(float);
|
||||
float nanf(const char *) __pure2;
|
||||
float nearbyintf(float);
|
||||
float nextafterf(float, float);
|
||||
float remainderf(float, float);
|
||||
float remquof(float, float, int *);
|
||||
float rintf(float);
|
||||
float scalblnf(float, long);
|
||||
float scalbnf(float, int);
|
||||
float truncf(float);
|
||||
float acoshf(float) __NDK_FPABI_MATH__;
|
||||
float asinhf(float) __NDK_FPABI_MATH__;
|
||||
float atanhf(float) __NDK_FPABI_MATH__;
|
||||
float cbrtf(float) __NDK_FPABI_MATH__;
|
||||
float logbf(float) __NDK_FPABI_MATH__;
|
||||
float copysignf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
long long llrintf(float) __NDK_FPABI_MATH__;
|
||||
long long llroundf(float) __NDK_FPABI_MATH__;
|
||||
long lrintf(float) __NDK_FPABI_MATH__;
|
||||
long lroundf(float) __NDK_FPABI_MATH__;
|
||||
float nanf(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
float nearbyintf(float) __NDK_FPABI_MATH__;
|
||||
float nextafterf(float, float) __NDK_FPABI_MATH__;
|
||||
float remainderf(float, float) __NDK_FPABI_MATH__;
|
||||
float remquof(float, float, int *) __NDK_FPABI_MATH__;
|
||||
float rintf(float) __NDK_FPABI_MATH__;
|
||||
float scalblnf(float, long) __NDK_FPABI_MATH__;
|
||||
float scalbnf(float, int) __NDK_FPABI_MATH__;
|
||||
float truncf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float fdimf(float, float);
|
||||
float fmaf(float, float, float);
|
||||
float fmaxf(float, float) __pure2;
|
||||
float fminf(float, float) __pure2;
|
||||
float fdimf(float, float) __NDK_FPABI_MATH__;
|
||||
float fmaf(float, float, float) __NDK_FPABI_MATH__;
|
||||
float fmaxf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
float fminf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* float versions of BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
float dremf(float, float);
|
||||
int finitef(float) __pure2;
|
||||
float gammaf(float);
|
||||
float j0f(float);
|
||||
float j1f(float);
|
||||
float jnf(int, float);
|
||||
float scalbf(float, float);
|
||||
float y0f(float);
|
||||
float y1f(float);
|
||||
float ynf(int, float);
|
||||
float dremf(float, float) __NDK_FPABI_MATH__;
|
||||
int finitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float gammaf(float) __NDK_FPABI_MATH__;
|
||||
float j0f(float) __NDK_FPABI_MATH__;
|
||||
float j1f(float) __NDK_FPABI_MATH__;
|
||||
float jnf(int, float) __NDK_FPABI_MATH__;
|
||||
float scalbf(float, float) __NDK_FPABI_MATH__;
|
||||
float y0f(float) __NDK_FPABI_MATH__;
|
||||
float y1f(float) __NDK_FPABI_MATH__;
|
||||
float ynf(int, float) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* Float versions of reentrant version of gamma & lgamma; passes
|
||||
* signgam back by reference as the second argument; user must
|
||||
* allocate space for signgam.
|
||||
*/
|
||||
float gammaf_r(float, int *);
|
||||
float lgammaf_r(float, int *);
|
||||
float gammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
float lgammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* float version of IEEE Test Vector
|
||||
*/
|
||||
float significandf(float);
|
||||
float significandf(float) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/*
|
||||
@@ -408,95 +408,95 @@ float significandf(float);
|
||||
*/
|
||||
/* #if __ISO_C_VISIBLE >= 1999 */
|
||||
#if 0
|
||||
long double acoshl(long double);
|
||||
long double acosl(long double);
|
||||
long double asinhl(long double);
|
||||
long double asinl(long double);
|
||||
long double atan2l(long double, long double);
|
||||
long double atanhl(long double);
|
||||
long double atanl(long double);
|
||||
long double cbrtl(long double);
|
||||
long double acoshl(long double) __NDK_FPABI_MATH__;
|
||||
long double acosl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinl(long double) __NDK_FPABI_MATH__;
|
||||
long double atan2l(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double atanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double atanl(long double) __NDK_FPABI_MATH__;
|
||||
long double cbrtl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double ceill(long double);
|
||||
long double copysignl(long double, long double) __pure2;
|
||||
long double ceill(long double) __NDK_FPABI_MATH__;
|
||||
long double copysignl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double coshl(long double);
|
||||
long double cosl(long double);
|
||||
long double erfcl(long double);
|
||||
long double erfl(long double);
|
||||
long double exp2l(long double);
|
||||
long double expl(long double);
|
||||
long double expm1l(long double);
|
||||
long double coshl(long double) __NDK_FPABI_MATH__;
|
||||
long double cosl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfcl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfl(long double) __NDK_FPABI_MATH__;
|
||||
long double exp2l(long double) __NDK_FPABI_MATH__;
|
||||
long double expl(long double) __NDK_FPABI_MATH__;
|
||||
long double expm1l(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double fabsl(long double) __pure2;
|
||||
long double fdiml(long double, long double);
|
||||
long double floorl(long double);
|
||||
long double fmal(long double, long double, long double);
|
||||
long double fmaxl(long double, long double) __pure2;
|
||||
long double fminl(long double, long double) __pure2;
|
||||
long double fabsl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fdiml(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double floorl(long double) __NDK_FPABI_MATH__;
|
||||
long double fmal(long double, long double, long double) __NDK_FPABI_MATH__;
|
||||
long double fmaxl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fminl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double fmodl(long double, long double);
|
||||
long double fmodl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double frexpl(long double value, int *); /* fundamentally !__pure2 */
|
||||
long double frexpl(long double value, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
#if 0
|
||||
long double hypotl(long double, long double);
|
||||
long double hypotl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
int ilogbl(long double) __pure2;
|
||||
long double ldexpl(long double, int);
|
||||
int ilogbl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double ldexpl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double lgammal(long double);
|
||||
long long llrintl(long double);
|
||||
long double lgammal(long double) __NDK_FPABI_MATH__;
|
||||
long long llrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long long llroundl(long double);
|
||||
long long llroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double log10l(long double);
|
||||
long double log1pl(long double);
|
||||
long double log2l(long double);
|
||||
long double log10l(long double) __NDK_FPABI_MATH__;
|
||||
long double log1pl(long double) __NDK_FPABI_MATH__;
|
||||
long double log2l(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double logbl(long double);
|
||||
long double logbl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long lrintl(long double);
|
||||
long lrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long lroundl(long double);
|
||||
long lroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double modfl(long double, long double *); /* fundamentally !__pure2 */
|
||||
long double modfl(long double, long double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
#endif
|
||||
long double nanl(const char *) __pure2;
|
||||
long double nanl(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double nearbyintl(long double);
|
||||
long double nearbyintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double nextafterl(long double, long double);
|
||||
double nexttoward(double, long double);
|
||||
float nexttowardf(float, long double);
|
||||
long double nexttowardl(long double, long double);
|
||||
long double nextafterl(long double, long double) __NDK_FPABI_MATH__;
|
||||
double nexttoward(double, long double) __NDK_FPABI_MATH__;
|
||||
float nexttowardf(float, long double) __NDK_FPABI_MATH__;
|
||||
long double nexttowardl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double powl(long double, long double);
|
||||
long double remainderl(long double, long double);
|
||||
long double remquol(long double, long double, int *);
|
||||
long double rintl(long double);
|
||||
long double powl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remainderl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remquol(long double, long double, int *) __NDK_FPABI_MATH__;
|
||||
long double rintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double roundl(long double);
|
||||
long double scalblnl(long double, long);
|
||||
long double scalbnl(long double, int);
|
||||
long double roundl(long double) __NDK_FPABI_MATH__;
|
||||
long double scalblnl(long double, long) __NDK_FPABI_MATH__;
|
||||
long double scalbnl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double sinhl(long double);
|
||||
long double sinl(long double);
|
||||
long double sqrtl(long double);
|
||||
long double tanhl(long double);
|
||||
long double tanl(long double);
|
||||
long double tgammal(long double);
|
||||
long double sinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double sinl(long double) __NDK_FPABI_MATH__;
|
||||
long double sqrtl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanl(long double) __NDK_FPABI_MATH__;
|
||||
long double tgammal(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double truncl(long double);
|
||||
long double truncl(long double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* BIONIC: GLibc compatibility - required by the ARM toolchain */
|
||||
#ifdef _GNU_SOURCE
|
||||
void sincos(double x, double *sin, double *cos);
|
||||
void sincosf(float x, float *sin, float *cos);
|
||||
void sincosl(long double x, long double *sin, long double *cos);
|
||||
void sincos(double x, double *sin, double *cos) __NDK_FPABI_MATH__;
|
||||
void sincosf(float x, float *sin, float *cos) __NDK_FPABI_MATH__;
|
||||
void sincosl(long double x, long double *sin, long double *cos) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
|
||||
/* #endif */ /* __ISO_C_VISIBLE >= 1999 */
|
||||
long double log2l(long double);
|
||||
long double log2l(long double) __NDK_FPABI_MATH__;
|
||||
__END_DECLS
|
||||
|
||||
#endif /* !_MATH_H_ */
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#ifndef JNI_H_
|
||||
#define JNI_H_
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
/*
|
||||
@@ -231,12 +232,12 @@ struct JNINativeInterface {
|
||||
jlong (*CallLongMethod)(JNIEnv*, jobject, jmethodID, ...);
|
||||
jlong (*CallLongMethodV)(JNIEnv*, jobject, jmethodID, va_list);
|
||||
jlong (*CallLongMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
|
||||
jfloat (*CallFloatMethod)(JNIEnv*, jobject, jmethodID, ...);
|
||||
jfloat (*CallFloatMethodV)(JNIEnv*, jobject, jmethodID, va_list);
|
||||
jfloat (*CallFloatMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
|
||||
jdouble (*CallDoubleMethod)(JNIEnv*, jobject, jmethodID, ...);
|
||||
jdouble (*CallDoubleMethodV)(JNIEnv*, jobject, jmethodID, va_list);
|
||||
jdouble (*CallDoubleMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
|
||||
jfloat (*CallFloatMethod)(JNIEnv*, jobject, jmethodID, ...) __NDK_FPABI__;
|
||||
jfloat (*CallFloatMethodV)(JNIEnv*, jobject, jmethodID, va_list) __NDK_FPABI__;
|
||||
jfloat (*CallFloatMethodA)(JNIEnv*, jobject, jmethodID, jvalue*) __NDK_FPABI__;
|
||||
jdouble (*CallDoubleMethod)(JNIEnv*, jobject, jmethodID, ...) __NDK_FPABI__;
|
||||
jdouble (*CallDoubleMethodV)(JNIEnv*, jobject, jmethodID, va_list) __NDK_FPABI__;
|
||||
jdouble (*CallDoubleMethodA)(JNIEnv*, jobject, jmethodID, jvalue*) __NDK_FPABI__;
|
||||
void (*CallVoidMethod)(JNIEnv*, jobject, jmethodID, ...);
|
||||
void (*CallVoidMethodV)(JNIEnv*, jobject, jmethodID, va_list);
|
||||
void (*CallVoidMethodA)(JNIEnv*, jobject, jmethodID, jvalue*);
|
||||
@@ -284,17 +285,17 @@ struct JNINativeInterface {
|
||||
jlong (*CallNonvirtualLongMethodA)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, jvalue*);
|
||||
jfloat (*CallNonvirtualFloatMethod)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, ...);
|
||||
jmethodID, ...) __NDK_FPABI__;
|
||||
jfloat (*CallNonvirtualFloatMethodV)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, va_list);
|
||||
jmethodID, va_list) __NDK_FPABI__;
|
||||
jfloat (*CallNonvirtualFloatMethodA)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, jvalue*);
|
||||
jmethodID, jvalue*) __NDK_FPABI__;
|
||||
jdouble (*CallNonvirtualDoubleMethod)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, ...);
|
||||
jmethodID, ...) __NDK_FPABI__;
|
||||
jdouble (*CallNonvirtualDoubleMethodV)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, va_list);
|
||||
jmethodID, va_list) __NDK_FPABI__;
|
||||
jdouble (*CallNonvirtualDoubleMethodA)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, jvalue*);
|
||||
jmethodID, jvalue*) __NDK_FPABI__;
|
||||
void (*CallNonvirtualVoidMethod)(JNIEnv*, jobject, jclass,
|
||||
jmethodID, ...);
|
||||
void (*CallNonvirtualVoidMethodV)(JNIEnv*, jobject, jclass,
|
||||
@@ -311,8 +312,8 @@ struct JNINativeInterface {
|
||||
jshort (*GetShortField)(JNIEnv*, jobject, jfieldID);
|
||||
jint (*GetIntField)(JNIEnv*, jobject, jfieldID);
|
||||
jlong (*GetLongField)(JNIEnv*, jobject, jfieldID);
|
||||
jfloat (*GetFloatField)(JNIEnv*, jobject, jfieldID);
|
||||
jdouble (*GetDoubleField)(JNIEnv*, jobject, jfieldID);
|
||||
jfloat (*GetFloatField)(JNIEnv*, jobject, jfieldID) __NDK_FPABI__;
|
||||
jdouble (*GetDoubleField)(JNIEnv*, jobject, jfieldID) __NDK_FPABI__;
|
||||
|
||||
void (*SetObjectField)(JNIEnv*, jobject, jfieldID, jobject);
|
||||
void (*SetBooleanField)(JNIEnv*, jobject, jfieldID, jboolean);
|
||||
@@ -321,8 +322,8 @@ struct JNINativeInterface {
|
||||
void (*SetShortField)(JNIEnv*, jobject, jfieldID, jshort);
|
||||
void (*SetIntField)(JNIEnv*, jobject, jfieldID, jint);
|
||||
void (*SetLongField)(JNIEnv*, jobject, jfieldID, jlong);
|
||||
void (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat);
|
||||
void (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble);
|
||||
void (*SetFloatField)(JNIEnv*, jobject, jfieldID, jfloat) __NDK_FPABI__;
|
||||
void (*SetDoubleField)(JNIEnv*, jobject, jfieldID, jdouble) __NDK_FPABI__;
|
||||
|
||||
jmethodID (*GetStaticMethodID)(JNIEnv*, jclass, const char*, const char*);
|
||||
|
||||
@@ -349,12 +350,12 @@ struct JNINativeInterface {
|
||||
jlong (*CallStaticLongMethod)(JNIEnv*, jclass, jmethodID, ...);
|
||||
jlong (*CallStaticLongMethodV)(JNIEnv*, jclass, jmethodID, va_list);
|
||||
jlong (*CallStaticLongMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
|
||||
jfloat (*CallStaticFloatMethod)(JNIEnv*, jclass, jmethodID, ...);
|
||||
jfloat (*CallStaticFloatMethodV)(JNIEnv*, jclass, jmethodID, va_list);
|
||||
jfloat (*CallStaticFloatMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
|
||||
jdouble (*CallStaticDoubleMethod)(JNIEnv*, jclass, jmethodID, ...);
|
||||
jdouble (*CallStaticDoubleMethodV)(JNIEnv*, jclass, jmethodID, va_list);
|
||||
jdouble (*CallStaticDoubleMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
|
||||
jfloat (*CallStaticFloatMethod)(JNIEnv*, jclass, jmethodID, ...) __NDK_FPABI__;
|
||||
jfloat (*CallStaticFloatMethodV)(JNIEnv*, jclass, jmethodID, va_list) __NDK_FPABI__;
|
||||
jfloat (*CallStaticFloatMethodA)(JNIEnv*, jclass, jmethodID, jvalue*) __NDK_FPABI__;
|
||||
jdouble (*CallStaticDoubleMethod)(JNIEnv*, jclass, jmethodID, ...) __NDK_FPABI__;
|
||||
jdouble (*CallStaticDoubleMethodV)(JNIEnv*, jclass, jmethodID, va_list) __NDK_FPABI__;
|
||||
jdouble (*CallStaticDoubleMethodA)(JNIEnv*, jclass, jmethodID, jvalue*) __NDK_FPABI__;
|
||||
void (*CallStaticVoidMethod)(JNIEnv*, jclass, jmethodID, ...);
|
||||
void (*CallStaticVoidMethodV)(JNIEnv*, jclass, jmethodID, va_list);
|
||||
void (*CallStaticVoidMethodA)(JNIEnv*, jclass, jmethodID, jvalue*);
|
||||
@@ -369,8 +370,8 @@ struct JNINativeInterface {
|
||||
jshort (*GetStaticShortField)(JNIEnv*, jclass, jfieldID);
|
||||
jint (*GetStaticIntField)(JNIEnv*, jclass, jfieldID);
|
||||
jlong (*GetStaticLongField)(JNIEnv*, jclass, jfieldID);
|
||||
jfloat (*GetStaticFloatField)(JNIEnv*, jclass, jfieldID);
|
||||
jdouble (*GetStaticDoubleField)(JNIEnv*, jclass, jfieldID);
|
||||
jfloat (*GetStaticFloatField)(JNIEnv*, jclass, jfieldID) __NDK_FPABI__;
|
||||
jdouble (*GetStaticDoubleField)(JNIEnv*, jclass, jfieldID) __NDK_FPABI__;
|
||||
|
||||
void (*SetStaticObjectField)(JNIEnv*, jclass, jfieldID, jobject);
|
||||
void (*SetStaticBooleanField)(JNIEnv*, jclass, jfieldID, jboolean);
|
||||
@@ -379,8 +380,8 @@ struct JNINativeInterface {
|
||||
void (*SetStaticShortField)(JNIEnv*, jclass, jfieldID, jshort);
|
||||
void (*SetStaticIntField)(JNIEnv*, jclass, jfieldID, jint);
|
||||
void (*SetStaticLongField)(JNIEnv*, jclass, jfieldID, jlong);
|
||||
void (*SetStaticFloatField)(JNIEnv*, jclass, jfieldID, jfloat);
|
||||
void (*SetStaticDoubleField)(JNIEnv*, jclass, jfieldID, jdouble);
|
||||
void (*SetStaticFloatField)(JNIEnv*, jclass, jfieldID, jfloat) __NDK_FPABI__;
|
||||
void (*SetStaticDoubleField)(JNIEnv*, jclass, jfieldID, jdouble) __NDK_FPABI__;
|
||||
|
||||
jstring (*NewString)(JNIEnv*, const jchar*, jsize);
|
||||
jsize (*GetStringLength)(JNIEnv*, jstring);
|
||||
@@ -605,6 +606,7 @@ struct _JNIEnv {
|
||||
{ return functions->GetMethodID(this, clazz, name, sig); }
|
||||
|
||||
#define CALL_TYPE_METHOD(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype Call##_jname##Method(jobject obj, jmethodID methodID, ...) \
|
||||
{ \
|
||||
_jtype result; \
|
||||
@@ -616,10 +618,12 @@ struct _JNIEnv {
|
||||
return result; \
|
||||
}
|
||||
#define CALL_TYPE_METHODV(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype Call##_jname##MethodV(jobject obj, jmethodID methodID, \
|
||||
va_list args) \
|
||||
{ return functions->Call##_jname##MethodV(this, obj, methodID, args); }
|
||||
#define CALL_TYPE_METHODA(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype Call##_jname##MethodA(jobject obj, jmethodID methodID, \
|
||||
jvalue* args) \
|
||||
{ return functions->Call##_jname##MethodA(this, obj, methodID, args); }
|
||||
@@ -652,6 +656,7 @@ struct _JNIEnv {
|
||||
{ functions->CallVoidMethodA(this, obj, methodID, args); }
|
||||
|
||||
#define CALL_NONVIRT_TYPE_METHOD(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype CallNonvirtual##_jname##Method(jobject obj, jclass clazz, \
|
||||
jmethodID methodID, ...) \
|
||||
{ \
|
||||
@@ -664,11 +669,13 @@ struct _JNIEnv {
|
||||
return result; \
|
||||
}
|
||||
#define CALL_NONVIRT_TYPE_METHODV(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype CallNonvirtual##_jname##MethodV(jobject obj, jclass clazz, \
|
||||
jmethodID methodID, va_list args) \
|
||||
{ return functions->CallNonvirtual##_jname##MethodV(this, obj, clazz, \
|
||||
methodID, args); }
|
||||
#define CALL_NONVIRT_TYPE_METHODA(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype CallNonvirtual##_jname##MethodA(jobject obj, jclass clazz, \
|
||||
jmethodID methodID, jvalue* args) \
|
||||
{ return functions->CallNonvirtual##_jname##MethodA(this, obj, clazz, \
|
||||
@@ -721,8 +728,10 @@ struct _JNIEnv {
|
||||
{ return functions->GetIntField(this, obj, fieldID); }
|
||||
jlong GetLongField(jobject obj, jfieldID fieldID)
|
||||
{ return functions->GetLongField(this, obj, fieldID); }
|
||||
__NDK_FPABI__
|
||||
jfloat GetFloatField(jobject obj, jfieldID fieldID)
|
||||
{ return functions->GetFloatField(this, obj, fieldID); }
|
||||
__NDK_FPABI__
|
||||
jdouble GetDoubleField(jobject obj, jfieldID fieldID)
|
||||
{ return functions->GetDoubleField(this, obj, fieldID); }
|
||||
|
||||
@@ -740,8 +749,10 @@ struct _JNIEnv {
|
||||
{ functions->SetIntField(this, obj, fieldID, value); }
|
||||
void SetLongField(jobject obj, jfieldID fieldID, jlong value)
|
||||
{ functions->SetLongField(this, obj, fieldID, value); }
|
||||
__NDK_FPABI__
|
||||
void SetFloatField(jobject obj, jfieldID fieldID, jfloat value)
|
||||
{ functions->SetFloatField(this, obj, fieldID, value); }
|
||||
__NDK_FPABI__
|
||||
void SetDoubleField(jobject obj, jfieldID fieldID, jdouble value)
|
||||
{ functions->SetDoubleField(this, obj, fieldID, value); }
|
||||
|
||||
@@ -749,6 +760,7 @@ struct _JNIEnv {
|
||||
{ return functions->GetStaticMethodID(this, clazz, name, sig); }
|
||||
|
||||
#define CALL_STATIC_TYPE_METHOD(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype CallStatic##_jname##Method(jclass clazz, jmethodID methodID, \
|
||||
...) \
|
||||
{ \
|
||||
@@ -761,11 +773,13 @@ struct _JNIEnv {
|
||||
return result; \
|
||||
}
|
||||
#define CALL_STATIC_TYPE_METHODV(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype CallStatic##_jname##MethodV(jclass clazz, jmethodID methodID, \
|
||||
va_list args) \
|
||||
{ return functions->CallStatic##_jname##MethodV(this, clazz, methodID, \
|
||||
args); }
|
||||
#define CALL_STATIC_TYPE_METHODA(_jtype, _jname) \
|
||||
__NDK_FPABI__ \
|
||||
_jtype CallStatic##_jname##MethodA(jclass clazz, jmethodID methodID, \
|
||||
jvalue* args) \
|
||||
{ return functions->CallStatic##_jname##MethodA(this, clazz, methodID, \
|
||||
@@ -815,8 +829,10 @@ struct _JNIEnv {
|
||||
{ return functions->GetStaticIntField(this, clazz, fieldID); }
|
||||
jlong GetStaticLongField(jclass clazz, jfieldID fieldID)
|
||||
{ return functions->GetStaticLongField(this, clazz, fieldID); }
|
||||
__NDK_FPABI__
|
||||
jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID)
|
||||
{ return functions->GetStaticFloatField(this, clazz, fieldID); }
|
||||
__NDK_FPABI__
|
||||
jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID)
|
||||
{ return functions->GetStaticDoubleField(this, clazz, fieldID); }
|
||||
|
||||
@@ -834,8 +850,10 @@ struct _JNIEnv {
|
||||
{ functions->SetStaticIntField(this, clazz, fieldID, value); }
|
||||
void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value)
|
||||
{ functions->SetStaticLongField(this, clazz, fieldID, value); }
|
||||
__NDK_FPABI__
|
||||
void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value)
|
||||
{ functions->SetStaticFloatField(this, clazz, fieldID, value); }
|
||||
__NDK_FPABI__
|
||||
void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value)
|
||||
{ functions->SetStaticDoubleField(this, clazz, fieldID, value); }
|
||||
|
||||
|
||||
@@ -183,219 +183,219 @@ __BEGIN_DECLS
|
||||
/*
|
||||
* ANSI/POSIX
|
||||
*/
|
||||
int __fpclassifyd(double) __pure2;
|
||||
int __fpclassifyf(float) __pure2;
|
||||
int __fpclassifyl(long double) __pure2;
|
||||
int __isfinitef(float) __pure2;
|
||||
int __isfinite(double) __pure2;
|
||||
int __isfinitel(long double) __pure2;
|
||||
int __isinff(float) __pure2;
|
||||
int __isinf(double) __pure2;
|
||||
int __isinfl(long double) __pure2;
|
||||
int __isnanl(long double) __pure2;
|
||||
int __isnormalf(float) __pure2;
|
||||
int __isnormal(double) __pure2;
|
||||
int __isnormall(long double) __pure2;
|
||||
int __signbit(double) __pure2;
|
||||
int __signbitf(float) __pure2;
|
||||
int __signbitl(long double) __pure2;
|
||||
int __fpclassifyd(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitel(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinff(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinf(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinfl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnanl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormalf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormal(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormall(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbit(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
double acos(double);
|
||||
double asin(double);
|
||||
double atan(double);
|
||||
double atan2(double, double);
|
||||
double cos(double);
|
||||
double sin(double);
|
||||
double tan(double);
|
||||
double acos(double) __NDK_FPABI_MATH__;
|
||||
double asin(double) __NDK_FPABI_MATH__;
|
||||
double atan(double) __NDK_FPABI_MATH__;
|
||||
double atan2(double, double) __NDK_FPABI_MATH__;
|
||||
double cos(double) __NDK_FPABI_MATH__;
|
||||
double sin(double) __NDK_FPABI_MATH__;
|
||||
double tan(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double cosh(double);
|
||||
double sinh(double);
|
||||
double tanh(double);
|
||||
double cosh(double) __NDK_FPABI_MATH__;
|
||||
double sinh(double) __NDK_FPABI_MATH__;
|
||||
double tanh(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double exp(double);
|
||||
double frexp(double, int *); /* fundamentally !__pure2 */
|
||||
double ldexp(double, int);
|
||||
double log(double);
|
||||
double log10(double);
|
||||
double modf(double, double *); /* fundamentally !__pure2 */
|
||||
double exp(double) __NDK_FPABI_MATH__;
|
||||
double frexp(double, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
double ldexp(double, int) __NDK_FPABI_MATH__;
|
||||
double log(double) __NDK_FPABI_MATH__;
|
||||
double log10(double) __NDK_FPABI_MATH__;
|
||||
double modf(double, double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
double pow(double, double);
|
||||
double sqrt(double);
|
||||
double pow(double, double) __NDK_FPABI_MATH__;
|
||||
double sqrt(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double ceil(double);
|
||||
double fabs(double) __pure2;
|
||||
double floor(double);
|
||||
double fmod(double, double);
|
||||
double ceil(double) __NDK_FPABI_MATH__;
|
||||
double fabs(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double floor(double) __NDK_FPABI_MATH__;
|
||||
double fmod(double, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* These functions are not in C90.
|
||||
*/
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
double acosh(double);
|
||||
double asinh(double);
|
||||
double atanh(double);
|
||||
double cbrt(double);
|
||||
double erf(double);
|
||||
double erfc(double);
|
||||
double exp2(double);
|
||||
double expm1(double);
|
||||
double fma(double, double, double);
|
||||
double hypot(double, double);
|
||||
int ilogb(double) __pure2;
|
||||
/* int (isinf)(double) __pure2; */
|
||||
int (isnan)(double) __pure2;
|
||||
double lgamma(double);
|
||||
long long llrint(double);
|
||||
long long llround(double);
|
||||
double log1p(double);
|
||||
double logb(double);
|
||||
long lrint(double);
|
||||
long lround(double);
|
||||
double nextafter(double, double);
|
||||
double remainder(double, double);
|
||||
double remquo(double, double, int *);
|
||||
double rint(double);
|
||||
double acosh(double) __NDK_FPABI_MATH__;
|
||||
double asinh(double) __NDK_FPABI_MATH__;
|
||||
double atanh(double) __NDK_FPABI_MATH__;
|
||||
double cbrt(double) __NDK_FPABI_MATH__;
|
||||
double erf(double) __NDK_FPABI_MATH__;
|
||||
double erfc(double) __NDK_FPABI_MATH__;
|
||||
double exp2(double) __NDK_FPABI_MATH__;
|
||||
double expm1(double) __NDK_FPABI_MATH__;
|
||||
double fma(double, double, double) __NDK_FPABI_MATH__;
|
||||
double hypot(double, double) __NDK_FPABI_MATH__;
|
||||
int ilogb(double) __NDK_FPABI_MATH__ __pure2;
|
||||
/* int (isinf)(double) __NDK_FPABI_MATH__ __pure2; */
|
||||
int (isnan)(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double lgamma(double) __NDK_FPABI_MATH__;
|
||||
long long llrint(double) __NDK_FPABI_MATH__;
|
||||
long long llround(double) __NDK_FPABI_MATH__;
|
||||
double log1p(double) __NDK_FPABI_MATH__;
|
||||
double logb(double) __NDK_FPABI_MATH__;
|
||||
long lrint(double) __NDK_FPABI_MATH__;
|
||||
long lround(double) __NDK_FPABI_MATH__;
|
||||
double nextafter(double, double) __NDK_FPABI_MATH__;
|
||||
double remainder(double, double) __NDK_FPABI_MATH__;
|
||||
double remquo(double, double, int *) __NDK_FPABI_MATH__;
|
||||
double rint(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
double j0(double);
|
||||
double j1(double);
|
||||
double jn(int, double);
|
||||
double scalb(double, double);
|
||||
double y0(double);
|
||||
double y1(double);
|
||||
double yn(int, double);
|
||||
double j0(double) __NDK_FPABI_MATH__;
|
||||
double j1(double) __NDK_FPABI_MATH__;
|
||||
double jn(int, double) __NDK_FPABI_MATH__;
|
||||
double scalb(double, double) __NDK_FPABI_MATH__;
|
||||
double y0(double) __NDK_FPABI_MATH__;
|
||||
double y1(double) __NDK_FPABI_MATH__;
|
||||
double yn(int, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* #if __XSI_VISIBLE <= 500 || __BSD_VISIBLE */
|
||||
double gamma(double);
|
||||
double gamma(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
/* #endif */ /* __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 */
|
||||
double copysign(double, double) __pure2;
|
||||
double fdim(double, double);
|
||||
double fmax(double, double) __pure2;
|
||||
double fmin(double, double) __pure2;
|
||||
double nearbyint(double);
|
||||
double round(double);
|
||||
double scalbln(double, long);
|
||||
double scalbn(double, int);
|
||||
double tgamma(double);
|
||||
double trunc(double);
|
||||
double copysign(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fdim(double, double) __NDK_FPABI_MATH__;
|
||||
double fmax(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fmin(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double nearbyint(double) __NDK_FPABI_MATH__;
|
||||
double round(double) __NDK_FPABI_MATH__;
|
||||
double scalbln(double, long) __NDK_FPABI_MATH__;
|
||||
double scalbn(double, int) __NDK_FPABI_MATH__;
|
||||
double tgamma(double) __NDK_FPABI_MATH__;
|
||||
double trunc(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
double drem(double, double);
|
||||
int finite(double) __pure2;
|
||||
int isnanf(float) __pure2;
|
||||
double drem(double, double) __NDK_FPABI_MATH__;
|
||||
int finite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int isnanf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
/*
|
||||
* Reentrant version of gamma & lgamma; passes signgam back by reference
|
||||
* as the second argument; user must allocate space for signgam.
|
||||
*/
|
||||
double gamma_r(double, int *);
|
||||
double lgamma_r(double, int *);
|
||||
double gamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
double lgamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* IEEE Test Vector
|
||||
*/
|
||||
double significand(double);
|
||||
double significand(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/* float versions of ANSI/POSIX functions */
|
||||
/*#if __ISO_C_VISIBLE >= 1999 */
|
||||
float acosf(float);
|
||||
float asinf(float);
|
||||
float atanf(float);
|
||||
float atan2f(float, float);
|
||||
float cosf(float);
|
||||
float sinf(float);
|
||||
float tanf(float);
|
||||
float acosf(float) __NDK_FPABI_MATH__;
|
||||
float asinf(float) __NDK_FPABI_MATH__;
|
||||
float atanf(float) __NDK_FPABI_MATH__;
|
||||
float atan2f(float, float) __NDK_FPABI_MATH__;
|
||||
float cosf(float) __NDK_FPABI_MATH__;
|
||||
float sinf(float) __NDK_FPABI_MATH__;
|
||||
float tanf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float coshf(float);
|
||||
float sinhf(float);
|
||||
float tanhf(float);
|
||||
float coshf(float) __NDK_FPABI_MATH__;
|
||||
float sinhf(float) __NDK_FPABI_MATH__;
|
||||
float tanhf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float exp2f(float);
|
||||
float expf(float);
|
||||
float expm1f(float);
|
||||
float frexpf(float, int *); /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __pure2;
|
||||
float ldexpf(float, int);
|
||||
float log10f(float);
|
||||
float log1pf(float);
|
||||
float logf(float);
|
||||
float modff(float, float *); /* fundamentally !__pure2 */
|
||||
float exp2f(float) __NDK_FPABI_MATH__;
|
||||
float expf(float) __NDK_FPABI_MATH__;
|
||||
float expm1f(float) __NDK_FPABI_MATH__;
|
||||
float frexpf(float, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float ldexpf(float, int) __NDK_FPABI_MATH__;
|
||||
float log10f(float) __NDK_FPABI_MATH__;
|
||||
float log1pf(float) __NDK_FPABI_MATH__;
|
||||
float logf(float) __NDK_FPABI_MATH__;
|
||||
float modff(float, float *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
float powf(float, float);
|
||||
float sqrtf(float);
|
||||
float powf(float, float) __NDK_FPABI_MATH__;
|
||||
float sqrtf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float ceilf(float);
|
||||
float fabsf(float) __pure2;
|
||||
float floorf(float);
|
||||
float fmodf(float, float);
|
||||
float roundf(float);
|
||||
float ceilf(float) __NDK_FPABI_MATH__;
|
||||
float fabsf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float floorf(float) __NDK_FPABI_MATH__;
|
||||
float fmodf(float, float) __NDK_FPABI_MATH__;
|
||||
float roundf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float erff(float);
|
||||
float erfcf(float);
|
||||
float hypotf(float, float);
|
||||
float lgammaf(float);
|
||||
float erff(float) __NDK_FPABI_MATH__;
|
||||
float erfcf(float) __NDK_FPABI_MATH__;
|
||||
float hypotf(float, float) __NDK_FPABI_MATH__;
|
||||
float lgammaf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float acoshf(float);
|
||||
float asinhf(float);
|
||||
float atanhf(float);
|
||||
float cbrtf(float);
|
||||
float logbf(float);
|
||||
float copysignf(float, float) __pure2;
|
||||
long long llrintf(float);
|
||||
long long llroundf(float);
|
||||
long lrintf(float);
|
||||
long lroundf(float);
|
||||
float nearbyintf(float);
|
||||
float nextafterf(float, float);
|
||||
float remainderf(float, float);
|
||||
float remquof(float, float, int *);
|
||||
float rintf(float);
|
||||
float scalblnf(float, long);
|
||||
float scalbnf(float, int);
|
||||
float truncf(float);
|
||||
float acoshf(float) __NDK_FPABI_MATH__;
|
||||
float asinhf(float) __NDK_FPABI_MATH__;
|
||||
float atanhf(float) __NDK_FPABI_MATH__;
|
||||
float cbrtf(float) __NDK_FPABI_MATH__;
|
||||
float logbf(float) __NDK_FPABI_MATH__;
|
||||
float copysignf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
long long llrintf(float) __NDK_FPABI_MATH__;
|
||||
long long llroundf(float) __NDK_FPABI_MATH__;
|
||||
long lrintf(float) __NDK_FPABI_MATH__;
|
||||
long lroundf(float) __NDK_FPABI_MATH__;
|
||||
float nearbyintf(float) __NDK_FPABI_MATH__;
|
||||
float nextafterf(float, float) __NDK_FPABI_MATH__;
|
||||
float remainderf(float, float) __NDK_FPABI_MATH__;
|
||||
float remquof(float, float, int *) __NDK_FPABI_MATH__;
|
||||
float rintf(float) __NDK_FPABI_MATH__;
|
||||
float scalblnf(float, long) __NDK_FPABI_MATH__;
|
||||
float scalbnf(float, int) __NDK_FPABI_MATH__;
|
||||
float truncf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float fdimf(float, float);
|
||||
float fmaf(float, float, float);
|
||||
float fmaxf(float, float) __pure2;
|
||||
float fminf(float, float) __pure2;
|
||||
float fdimf(float, float) __NDK_FPABI_MATH__;
|
||||
float fmaf(float, float, float) __NDK_FPABI_MATH__;
|
||||
float fmaxf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
float fminf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* float versions of BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
float dremf(float, float);
|
||||
int finitef(float) __pure2;
|
||||
float gammaf(float);
|
||||
float j0f(float);
|
||||
float j1f(float);
|
||||
float jnf(int, float);
|
||||
float scalbf(float, float);
|
||||
float y0f(float);
|
||||
float y1f(float);
|
||||
float ynf(int, float);
|
||||
float dremf(float, float) __NDK_FPABI_MATH__;
|
||||
int finitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float gammaf(float) __NDK_FPABI_MATH__;
|
||||
float j0f(float) __NDK_FPABI_MATH__;
|
||||
float j1f(float) __NDK_FPABI_MATH__;
|
||||
float jnf(int, float) __NDK_FPABI_MATH__;
|
||||
float scalbf(float, float) __NDK_FPABI_MATH__;
|
||||
float y0f(float) __NDK_FPABI_MATH__;
|
||||
float y1f(float) __NDK_FPABI_MATH__;
|
||||
float ynf(int, float) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* Float versions of reentrant version of gamma & lgamma; passes
|
||||
* signgam back by reference as the second argument; user must
|
||||
* allocate space for signgam.
|
||||
*/
|
||||
float gammaf_r(float, int *);
|
||||
float lgammaf_r(float, int *);
|
||||
float gammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
float lgammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* float version of IEEE Test Vector
|
||||
*/
|
||||
float significandf(float);
|
||||
float significandf(float) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/*
|
||||
@@ -403,82 +403,82 @@ float significandf(float);
|
||||
*/
|
||||
/* #if __ISO_C_VISIBLE >= 1999 */
|
||||
#if 0
|
||||
long double acoshl(long double);
|
||||
long double acosl(long double);
|
||||
long double asinhl(long double);
|
||||
long double asinl(long double);
|
||||
long double atan2l(long double, long double);
|
||||
long double atanhl(long double);
|
||||
long double atanl(long double);
|
||||
long double cbrtl(long double);
|
||||
long double acoshl(long double) __NDK_FPABI_MATH__;
|
||||
long double acosl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinl(long double) __NDK_FPABI_MATH__;
|
||||
long double atan2l(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double atanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double atanl(long double) __NDK_FPABI_MATH__;
|
||||
long double cbrtl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double ceill(long double);
|
||||
long double copysignl(long double, long double) __pure2;
|
||||
long double ceill(long double) __NDK_FPABI_MATH__;
|
||||
long double copysignl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double coshl(long double);
|
||||
long double cosl(long double);
|
||||
long double erfcl(long double);
|
||||
long double erfl(long double);
|
||||
long double exp2l(long double);
|
||||
long double expl(long double);
|
||||
long double expm1l(long double);
|
||||
long double coshl(long double) __NDK_FPABI_MATH__;
|
||||
long double cosl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfcl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfl(long double) __NDK_FPABI_MATH__;
|
||||
long double exp2l(long double) __NDK_FPABI_MATH__;
|
||||
long double expl(long double) __NDK_FPABI_MATH__;
|
||||
long double expm1l(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double fabsl(long double) __pure2;
|
||||
long double fdiml(long double, long double);
|
||||
long double floorl(long double);
|
||||
long double fmal(long double, long double, long double);
|
||||
long double fmaxl(long double, long double) __pure2;
|
||||
long double fminl(long double, long double) __pure2;
|
||||
long double fabsl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fdiml(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double floorl(long double) __NDK_FPABI_MATH__;
|
||||
long double fmal(long double, long double, long double) __NDK_FPABI_MATH__;
|
||||
long double fmaxl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fminl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double fmodl(long double, long double);
|
||||
long double fmodl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double frexpl(long double value, int *); /* fundamentally !__pure2 */
|
||||
long double frexpl(long double value, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
#if 0
|
||||
long double hypotl(long double, long double);
|
||||
long double hypotl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
int ilogbl(long double) __pure2;
|
||||
long double ldexpl(long double, int);
|
||||
int ilogbl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double ldexpl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double lgammal(long double);
|
||||
long long llrintl(long double);
|
||||
long double lgammal(long double) __NDK_FPABI_MATH__;
|
||||
long long llrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long long llroundl(long double);
|
||||
long long llroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double log10l(long double);
|
||||
long double log1pl(long double);
|
||||
long double log2l(long double);
|
||||
long double logbl(long double);
|
||||
long double logl(long double);
|
||||
long lrintl(long double);
|
||||
long double log10l(long double) __NDK_FPABI_MATH__;
|
||||
long double log1pl(long double) __NDK_FPABI_MATH__;
|
||||
long double log2l(long double) __NDK_FPABI_MATH__;
|
||||
long double logbl(long double) __NDK_FPABI_MATH__;
|
||||
long double logl(long double) __NDK_FPABI_MATH__;
|
||||
long lrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long lroundl(long double);
|
||||
long lroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double modfl(long double, long double *); /* fundamentally !__pure2 */
|
||||
long double nanl(const char *) __pure2;
|
||||
long double nearbyintl(long double);
|
||||
long double modfl(long double, long double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
long double nanl(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
long double nearbyintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double nextafterl(long double, long double);
|
||||
double nexttoward(double, long double);
|
||||
float nexttowardf(float, long double);
|
||||
long double nexttowardl(long double, long double);
|
||||
long double nextafterl(long double, long double) __NDK_FPABI_MATH__;
|
||||
double nexttoward(double, long double) __NDK_FPABI_MATH__;
|
||||
float nexttowardf(float, long double) __NDK_FPABI_MATH__;
|
||||
long double nexttowardl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double powl(long double, long double);
|
||||
long double remainderl(long double, long double);
|
||||
long double remquol(long double, long double, int *);
|
||||
long double rintl(long double);
|
||||
long double powl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remainderl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remquol(long double, long double, int *) __NDK_FPABI_MATH__;
|
||||
long double rintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double roundl(long double);
|
||||
long double scalblnl(long double, long);
|
||||
long double scalbnl(long double, int);
|
||||
long double roundl(long double) __NDK_FPABI_MATH__;
|
||||
long double scalblnl(long double, long) __NDK_FPABI_MATH__;
|
||||
long double scalbnl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double sinhl(long double);
|
||||
long double sinl(long double);
|
||||
long double sqrtl(long double);
|
||||
long double tanhl(long double);
|
||||
long double tanl(long double);
|
||||
long double tgammal(long double);
|
||||
long double sinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double sinl(long double) __NDK_FPABI_MATH__;
|
||||
long double sqrtl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanl(long double) __NDK_FPABI_MATH__;
|
||||
long double tgammal(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double truncl(long double);
|
||||
long double truncl(long double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* #endif */ /* __ISO_C_VISIBLE >= 1999 */
|
||||
__END_DECLS
|
||||
|
||||
@@ -63,8 +63,9 @@ extern long strtol(const char *, char **, int);
|
||||
extern long long strtoll(const char *, char **, int);
|
||||
extern unsigned long strtoul(const char *, char **, int);
|
||||
extern unsigned long long strtoull(const char *, char **, int);
|
||||
extern double strtod(const char *nptr, char **endptr);
|
||||
extern double strtod(const char *nptr, char **endptr) __NDK_FPABI__;
|
||||
|
||||
__NDK_FPABI__
|
||||
static __inline__ float strtof(const char *nptr, char **endptr)
|
||||
{
|
||||
return (float)strtod(nptr, endptr);
|
||||
@@ -74,6 +75,7 @@ extern int atoi(const char *);
|
||||
extern long atol(const char *);
|
||||
extern long long atoll(const char *);
|
||||
|
||||
__NDK_FPABI__
|
||||
static __inline__ double atof(const char *nptr)
|
||||
{
|
||||
return (strtod(nptr, NULL));
|
||||
@@ -105,8 +107,8 @@ extern long mrand48(void);
|
||||
extern long nrand48(unsigned short *);
|
||||
extern long lrand48(void);
|
||||
extern unsigned short *seed48(unsigned short*);
|
||||
extern double erand48(unsigned short xsubi[3]);
|
||||
extern double drand48(void);
|
||||
extern double erand48(unsigned short xsubi[3]) __NDK_FPABI__;
|
||||
extern double drand48(void) __NDK_FPABI__;
|
||||
extern void srand48(long);
|
||||
extern unsigned int arc4random(void);
|
||||
extern void arc4random_stir(void);
|
||||
|
||||
@@ -530,4 +530,31 @@
|
||||
#define __BIONIC__ 1
|
||||
#include <android/api-level.h>
|
||||
|
||||
/* __NDK_FPABI__ or __NDK_FPABI_MATH__ are applied to APIs taking or returning float or
|
||||
[long] double, to ensure even at the presence of -mhard-float (which implies
|
||||
-mfloat-abi=hard), calling to 32-bit Android native APIs still follow -mfloat-abi=softfp.
|
||||
|
||||
__NDK_FPABI_MATH__ is applied to APIs in math.h. It normally equals to __NDK_FPABI__,
|
||||
but allows use of customized libm.a compiled with -mhard-float by -D_NDK_MATH_NO_SOFTFP=1
|
||||
|
||||
NOTE: Disable for clang for now unless _NDK_MATH_NO_SOFTFP=1, because clang before 3.4 doesn't
|
||||
allow change of calling convension for builtin and produces error message reads:
|
||||
|
||||
a.i:564:6: error: function declared 'aapcs' here was previously declared without calling convention
|
||||
int sin(double d) __attribute__((pcs("aapcs")));
|
||||
^
|
||||
a.i:564:6: note: previous declaration is here
|
||||
*/
|
||||
#if defined(__ANDROID__) && !__LP64__ && defined( __arm__)
|
||||
#define __NDK_FPABI__ __attribute__((pcs("aapcs")))
|
||||
#else
|
||||
#define __NDK_FPABI__
|
||||
#endif
|
||||
|
||||
#if (!defined(_NDK_MATH_NO_SOFTFP) || _NDK_MATH_NO_SOFTFP != 1) && !defined(__clang__)
|
||||
#define __NDK_FPABI_MATH__ __NDK_FPABI__
|
||||
#else
|
||||
#define __NDK_FPABI_MATH__ /* nothing */
|
||||
#endif
|
||||
|
||||
#endif /* !_SYS_CDEFS_H_ */
|
||||
|
||||
@@ -67,7 +67,7 @@ extern char* asctime(const struct tm* a);
|
||||
extern char* asctime_r(const struct tm* a, char* buf);
|
||||
|
||||
/* Return the difference between TIME1 and TIME0. */
|
||||
extern double difftime (time_t __time1, time_t __time0);
|
||||
extern double difftime (time_t __time1, time_t __time0) __NDK_FPABI__;
|
||||
extern time_t mktime (struct tm *a);
|
||||
|
||||
extern struct tm* localtime(const time_t *t);
|
||||
|
||||
@@ -134,7 +134,7 @@ extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
|
||||
extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
|
||||
extern size_t wcsspn(const wchar_t *, const wchar_t *);
|
||||
extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
|
||||
extern double wcstod(const wchar_t *, wchar_t **);
|
||||
extern double wcstod(const wchar_t *, wchar_t **) __NDK_FPABI__;
|
||||
extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
|
||||
extern long int wcstol(const wchar_t *, wchar_t **, int);
|
||||
extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
|
||||
|
||||
@@ -92,7 +92,8 @@
|
||||
#elif defined (__SYMBIAN32__)
|
||||
# define KHRONOS_APICALL IMPORT_C
|
||||
#elif defined(__ANDROID__)
|
||||
# define KHRONOS_APICALL __attribute__((visibility("default")))
|
||||
# include <sys/cdefs.h>
|
||||
# define KHRONOS_APICALL __attribute__((visibility("default"))) __NDK_FPABI__
|
||||
#else
|
||||
# define KHRONOS_APICALL
|
||||
#endif
|
||||
|
||||
@@ -64,8 +64,9 @@ extern long strtol(const char *, char **, int);
|
||||
extern long long strtoll(const char *, char **, int);
|
||||
extern unsigned long strtoul(const char *, char **, int);
|
||||
extern unsigned long long strtoull(const char *, char **, int);
|
||||
extern double strtod(const char *nptr, char **endptr);
|
||||
extern double strtod(const char *nptr, char **endptr) __NDK_FPABI__;
|
||||
|
||||
__NDK_FPABI__
|
||||
static __inline__ float strtof(const char *nptr, char **endptr)
|
||||
{
|
||||
return (float)strtod(nptr, endptr);
|
||||
@@ -75,6 +76,7 @@ extern int atoi(const char *);
|
||||
extern long atol(const char *);
|
||||
extern long long atoll(const char *);
|
||||
|
||||
__NDK_FPABI__
|
||||
static __inline__ double atof(const char *nptr)
|
||||
{
|
||||
return (strtod(nptr, NULL));
|
||||
@@ -106,8 +108,8 @@ extern long mrand48(void);
|
||||
extern long nrand48(unsigned short *);
|
||||
extern long lrand48(void);
|
||||
extern unsigned short *seed48(unsigned short*);
|
||||
extern double erand48(unsigned short xsubi[3]);
|
||||
extern double drand48(void);
|
||||
extern double erand48(unsigned short xsubi[3]) __NDK_FPABI__;
|
||||
extern double drand48(void) __NDK_FPABI__;
|
||||
extern void srand48(long);
|
||||
extern unsigned int arc4random(void);
|
||||
extern void arc4random_stir(void);
|
||||
|
||||
@@ -67,7 +67,7 @@ extern char* asctime(const struct tm* a);
|
||||
extern char* asctime_r(const struct tm* a, char* buf);
|
||||
|
||||
/* Return the difference between TIME1 and TIME0. */
|
||||
extern double difftime (time_t __time1, time_t __time0);
|
||||
extern double difftime (time_t __time1, time_t __time0) __NDK_FPABI__;
|
||||
extern time_t mktime (struct tm *a);
|
||||
|
||||
extern struct tm* localtime(const time_t *t);
|
||||
|
||||
@@ -140,7 +140,7 @@ extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
|
||||
extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
|
||||
extern size_t wcsspn(const wchar_t *, const wchar_t *);
|
||||
extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
|
||||
extern double wcstod(const wchar_t *, wchar_t **);
|
||||
extern double wcstod(const wchar_t *, wchar_t **) __NDK_FPABI__;
|
||||
extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
|
||||
extern long int wcstol(const wchar_t *, wchar_t **, int);
|
||||
extern size_t wcstombs(char *, const wchar_t *, size_t);
|
||||
|
||||
@@ -433,23 +433,23 @@ int64_t AMotionEvent_getEventTime(const AInputEvent* motion_event);
|
||||
* For touch events on the screen, this is the delta that was added to the raw
|
||||
* screen coordinates to adjust for the absolute position of the containing windows
|
||||
* and views. */
|
||||
float AMotionEvent_getXOffset(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getXOffset(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the Y coordinates being reported.
|
||||
* For touch events on the screen, this is the delta that was added to the raw
|
||||
* screen coordinates to adjust for the absolute position of the containing windows
|
||||
* and views. */
|
||||
float AMotionEvent_getYOffset(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getYOffset(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the X coordinates being reported.
|
||||
* You can multiply this number with an X coordinate sample to find the
|
||||
* actual hardware value of the X coordinate. */
|
||||
float AMotionEvent_getXPrecision(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getXPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the precision of the Y coordinates being reported.
|
||||
* You can multiply this number with a Y coordinate sample to find the
|
||||
* actual hardware value of the Y coordinate. */
|
||||
float AMotionEvent_getYPrecision(const AInputEvent* motion_event);
|
||||
float AMotionEvent_getYPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
|
||||
|
||||
/* Get the number of pointers of data contained in this event.
|
||||
* Always >= 1. */
|
||||
@@ -465,29 +465,29 @@ int32_t AMotionEvent_getPointerId(const AInputEvent* motion_event, size_t pointe
|
||||
* For touch events on the screen, this is the original location of the event
|
||||
* on the screen, before it had been adjusted for the containing window
|
||||
* and views. */
|
||||
float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the original raw X coordinate of this event.
|
||||
* For touch events on the screen, this is the original location of the event
|
||||
* on the screen, before it had been adjusted for the containing window
|
||||
* and views. */
|
||||
float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current X coordinate of this event for the given pointer index.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current Y coordinate of this event for the given pointer index.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current pressure of this event for the given pointer index.
|
||||
* The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure),
|
||||
* although values higher than 1 may be generated depending on the calibration of
|
||||
* the input device. */
|
||||
float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current scaled value of the approximate size for the given pointer index.
|
||||
* This represents some approximation of the area of the screen being
|
||||
@@ -495,27 +495,27 @@ float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_i
|
||||
* touch is normalized with the device specific range of values
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* determine fat touch events. */
|
||||
float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the major axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index. */
|
||||
float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the minor axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index. */
|
||||
float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the major axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index.
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current length of the minor axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index.
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current orientation of the touch area and tool area in radians clockwise from
|
||||
* vertical for the given pointer index.
|
||||
@@ -525,7 +525,7 @@ float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_
|
||||
* indicates that the major axis of contact is oriented to the left.
|
||||
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
|
||||
* (finger pointing fully right). */
|
||||
float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index);
|
||||
float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the number of historical points in this event. These are movements that
|
||||
* have occurred between this event and the previous event. This only applies
|
||||
@@ -546,7 +546,7 @@ int64_t AMotionEvent_getHistoricalEventTime(const AInputEvent* motion_event,
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical raw Y coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -556,21 +556,21 @@ float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t poi
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalRawY(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical X coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalX(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical Y coordinate of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
* Whole numbers are pixels; the value may have a fraction for input devices
|
||||
* that are sub-pixel precise. */
|
||||
float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical pressure of this event for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -578,7 +578,7 @@ float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointe
|
||||
* although values higher than 1 may be generated depending on the calibration of
|
||||
* the input device. */
|
||||
float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the current scaled value of the approximate size for the given pointer index that
|
||||
* occurred between this event and the previous motion event.
|
||||
@@ -588,19 +588,19 @@ float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t
|
||||
* and scaled to a value between 0 and 1. The value of size can be used to
|
||||
* determine fat touch events. */
|
||||
float AMotionEvent_getHistoricalSize(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the major axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index that
|
||||
* occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalTouchMajor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the minor axis of an ellipse that describes the touch area
|
||||
* at the point of contact for the given pointer index that
|
||||
* occurred between this event and the previous motion event. */
|
||||
float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the major axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index that
|
||||
@@ -608,7 +608,7 @@ float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical length of the minor axis of an ellipse that describes the size
|
||||
* of the approaching tool for the given pointer index that
|
||||
@@ -616,7 +616,7 @@ float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_
|
||||
* The tool area represents the estimated size of the finger or pen that is
|
||||
* touching the device independent of its actual touch area at the point of contact. */
|
||||
float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
/* Get the historical orientation of the touch area and tool area in radians clockwise from
|
||||
* vertical for the given pointer index that
|
||||
@@ -628,7 +628,7 @@ float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_
|
||||
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
|
||||
* (finger pointing fully right). */
|
||||
float AMotionEvent_getHistoricalOrientation(const AInputEvent* motion_event, size_t pointer_index,
|
||||
size_t history_index);
|
||||
size_t history_index) __NDK_FPABI__;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -239,7 +239,7 @@ int ASensor_getType(ASensor const* sensor);
|
||||
/*
|
||||
* Returns this sensors's resolution
|
||||
*/
|
||||
float ASensor_getResolution(ASensor const* sensor);
|
||||
float ASensor_getResolution(ASensor const* sensor) __NDK_FPABI__;
|
||||
|
||||
/*
|
||||
* Returns the minimum delay allowed between events in microseconds.
|
||||
|
||||
@@ -183,219 +183,219 @@ __BEGIN_DECLS
|
||||
/*
|
||||
* ANSI/POSIX
|
||||
*/
|
||||
int __fpclassifyd(double) __pure2;
|
||||
int __fpclassifyf(float) __pure2;
|
||||
int __fpclassifyl(long double) __pure2;
|
||||
int __isfinitef(float) __pure2;
|
||||
int __isfinite(double) __pure2;
|
||||
int __isfinitel(long double) __pure2;
|
||||
int __isinff(float) __pure2;
|
||||
int __isinf(double) __pure2;
|
||||
int __isinfl(long double) __pure2;
|
||||
int __isnanl(long double) __pure2;
|
||||
int __isnormalf(float) __pure2;
|
||||
int __isnormal(double) __pure2;
|
||||
int __isnormall(long double) __pure2;
|
||||
int __signbit(double) __pure2;
|
||||
int __signbitf(float) __pure2;
|
||||
int __signbitl(long double) __pure2;
|
||||
int __fpclassifyd(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __fpclassifyl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isfinitel(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinff(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinf(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isinfl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnanl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormalf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormal(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __isnormall(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbit(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
int __signbitl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
double acos(double);
|
||||
double asin(double);
|
||||
double atan(double);
|
||||
double atan2(double, double);
|
||||
double cos(double);
|
||||
double sin(double);
|
||||
double tan(double);
|
||||
double acos(double) __NDK_FPABI_MATH__;
|
||||
double asin(double) __NDK_FPABI_MATH__;
|
||||
double atan(double) __NDK_FPABI_MATH__;
|
||||
double atan2(double, double) __NDK_FPABI_MATH__;
|
||||
double cos(double) __NDK_FPABI_MATH__;
|
||||
double sin(double) __NDK_FPABI_MATH__;
|
||||
double tan(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double cosh(double);
|
||||
double sinh(double);
|
||||
double tanh(double);
|
||||
double cosh(double) __NDK_FPABI_MATH__;
|
||||
double sinh(double) __NDK_FPABI_MATH__;
|
||||
double tanh(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double exp(double);
|
||||
double frexp(double, int *); /* fundamentally !__pure2 */
|
||||
double ldexp(double, int);
|
||||
double log(double);
|
||||
double log10(double);
|
||||
double modf(double, double *); /* fundamentally !__pure2 */
|
||||
double exp(double) __NDK_FPABI_MATH__;
|
||||
double frexp(double, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
double ldexp(double, int) __NDK_FPABI_MATH__;
|
||||
double log(double) __NDK_FPABI_MATH__;
|
||||
double log10(double) __NDK_FPABI_MATH__;
|
||||
double modf(double, double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
double pow(double, double);
|
||||
double sqrt(double);
|
||||
double pow(double, double) __NDK_FPABI_MATH__;
|
||||
double sqrt(double) __NDK_FPABI_MATH__;
|
||||
|
||||
double ceil(double);
|
||||
double fabs(double) __pure2;
|
||||
double floor(double);
|
||||
double fmod(double, double);
|
||||
double ceil(double) __NDK_FPABI_MATH__;
|
||||
double fabs(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double floor(double) __NDK_FPABI_MATH__;
|
||||
double fmod(double, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* These functions are not in C90.
|
||||
*/
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
double acosh(double);
|
||||
double asinh(double);
|
||||
double atanh(double);
|
||||
double cbrt(double);
|
||||
double erf(double);
|
||||
double erfc(double);
|
||||
double exp2(double);
|
||||
double expm1(double);
|
||||
double fma(double, double, double);
|
||||
double hypot(double, double);
|
||||
int ilogb(double) __pure2;
|
||||
/* int (isinf)(double) __pure2; */
|
||||
int (isnan)(double) __pure2;
|
||||
double lgamma(double);
|
||||
long long llrint(double);
|
||||
long long llround(double);
|
||||
double log1p(double);
|
||||
double logb(double);
|
||||
long lrint(double);
|
||||
long lround(double);
|
||||
double nextafter(double, double);
|
||||
double remainder(double, double);
|
||||
double remquo(double, double, int *);
|
||||
double rint(double);
|
||||
double acosh(double) __NDK_FPABI_MATH__;
|
||||
double asinh(double) __NDK_FPABI_MATH__;
|
||||
double atanh(double) __NDK_FPABI_MATH__;
|
||||
double cbrt(double) __NDK_FPABI_MATH__;
|
||||
double erf(double) __NDK_FPABI_MATH__;
|
||||
double erfc(double) __NDK_FPABI_MATH__;
|
||||
double exp2(double) __NDK_FPABI_MATH__;
|
||||
double expm1(double) __NDK_FPABI_MATH__;
|
||||
double fma(double, double, double) __NDK_FPABI_MATH__;
|
||||
double hypot(double, double) __NDK_FPABI_MATH__;
|
||||
int ilogb(double) __NDK_FPABI_MATH__ __pure2;
|
||||
/* int (isinf)(double) __NDK_FPABI_MATH__ __pure2; */
|
||||
int (isnan)(double) __NDK_FPABI_MATH__ __pure2;
|
||||
double lgamma(double) __NDK_FPABI_MATH__;
|
||||
long long llrint(double) __NDK_FPABI_MATH__;
|
||||
long long llround(double) __NDK_FPABI_MATH__;
|
||||
double log1p(double) __NDK_FPABI_MATH__;
|
||||
double logb(double) __NDK_FPABI_MATH__;
|
||||
long lrint(double) __NDK_FPABI_MATH__;
|
||||
long lround(double) __NDK_FPABI_MATH__;
|
||||
double nextafter(double, double) __NDK_FPABI_MATH__;
|
||||
double remainder(double, double) __NDK_FPABI_MATH__;
|
||||
double remquo(double, double, int *) __NDK_FPABI_MATH__;
|
||||
double rint(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
double j0(double);
|
||||
double j1(double);
|
||||
double jn(int, double);
|
||||
double scalb(double, double);
|
||||
double y0(double);
|
||||
double y1(double);
|
||||
double yn(int, double);
|
||||
double j0(double) __NDK_FPABI_MATH__;
|
||||
double j1(double) __NDK_FPABI_MATH__;
|
||||
double jn(int, double) __NDK_FPABI_MATH__;
|
||||
double scalb(double, double) __NDK_FPABI_MATH__;
|
||||
double y0(double) __NDK_FPABI_MATH__;
|
||||
double y1(double) __NDK_FPABI_MATH__;
|
||||
double yn(int, double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* #if __XSI_VISIBLE <= 500 || __BSD_VISIBLE */
|
||||
double gamma(double);
|
||||
double gamma(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
/* #endif */ /* __BSD_VISIBLE || __XSI_VISIBLE */
|
||||
|
||||
/* #if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 */
|
||||
double copysign(double, double) __pure2;
|
||||
double fdim(double, double);
|
||||
double fmax(double, double) __pure2;
|
||||
double fmin(double, double) __pure2;
|
||||
double nearbyint(double);
|
||||
double round(double);
|
||||
double scalbln(double, long);
|
||||
double scalbn(double, int);
|
||||
double tgamma(double);
|
||||
double trunc(double);
|
||||
double copysign(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fdim(double, double) __NDK_FPABI_MATH__;
|
||||
double fmax(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double fmin(double, double) __NDK_FPABI_MATH__ __pure2;
|
||||
double nearbyint(double) __NDK_FPABI_MATH__;
|
||||
double round(double) __NDK_FPABI_MATH__;
|
||||
double scalbln(double, long) __NDK_FPABI_MATH__;
|
||||
double scalbn(double, int) __NDK_FPABI_MATH__;
|
||||
double tgamma(double) __NDK_FPABI_MATH__;
|
||||
double trunc(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
double drem(double, double);
|
||||
int finite(double) __pure2;
|
||||
int isnanf(float) __pure2;
|
||||
double drem(double, double) __NDK_FPABI_MATH__;
|
||||
int finite(double) __NDK_FPABI_MATH__ __pure2;
|
||||
int isnanf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
|
||||
/*
|
||||
* Reentrant version of gamma & lgamma; passes signgam back by reference
|
||||
* as the second argument; user must allocate space for signgam.
|
||||
*/
|
||||
double gamma_r(double, int *);
|
||||
double lgamma_r(double, int *);
|
||||
double gamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
double lgamma_r(double, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* IEEE Test Vector
|
||||
*/
|
||||
double significand(double);
|
||||
double significand(double) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/* float versions of ANSI/POSIX functions */
|
||||
/*#if __ISO_C_VISIBLE >= 1999 */
|
||||
float acosf(float);
|
||||
float asinf(float);
|
||||
float atanf(float);
|
||||
float atan2f(float, float);
|
||||
float cosf(float);
|
||||
float sinf(float);
|
||||
float tanf(float);
|
||||
float acosf(float) __NDK_FPABI_MATH__;
|
||||
float asinf(float) __NDK_FPABI_MATH__;
|
||||
float atanf(float) __NDK_FPABI_MATH__;
|
||||
float atan2f(float, float) __NDK_FPABI_MATH__;
|
||||
float cosf(float) __NDK_FPABI_MATH__;
|
||||
float sinf(float) __NDK_FPABI_MATH__;
|
||||
float tanf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float coshf(float);
|
||||
float sinhf(float);
|
||||
float tanhf(float);
|
||||
float coshf(float) __NDK_FPABI_MATH__;
|
||||
float sinhf(float) __NDK_FPABI_MATH__;
|
||||
float tanhf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float exp2f(float);
|
||||
float expf(float);
|
||||
float expm1f(float);
|
||||
float frexpf(float, int *); /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __pure2;
|
||||
float ldexpf(float, int);
|
||||
float log10f(float);
|
||||
float log1pf(float);
|
||||
float logf(float);
|
||||
float modff(float, float *); /* fundamentally !__pure2 */
|
||||
float exp2f(float) __NDK_FPABI_MATH__;
|
||||
float expf(float) __NDK_FPABI_MATH__;
|
||||
float expm1f(float) __NDK_FPABI_MATH__;
|
||||
float frexpf(float, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
int ilogbf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float ldexpf(float, int) __NDK_FPABI_MATH__;
|
||||
float log10f(float) __NDK_FPABI_MATH__;
|
||||
float log1pf(float) __NDK_FPABI_MATH__;
|
||||
float logf(float) __NDK_FPABI_MATH__;
|
||||
float modff(float, float *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
|
||||
float powf(float, float);
|
||||
float sqrtf(float);
|
||||
float powf(float, float) __NDK_FPABI_MATH__;
|
||||
float sqrtf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float ceilf(float);
|
||||
float fabsf(float) __pure2;
|
||||
float floorf(float);
|
||||
float fmodf(float, float);
|
||||
float roundf(float);
|
||||
float ceilf(float) __NDK_FPABI_MATH__;
|
||||
float fabsf(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float floorf(float) __NDK_FPABI_MATH__;
|
||||
float fmodf(float, float) __NDK_FPABI_MATH__;
|
||||
float roundf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float erff(float);
|
||||
float erfcf(float);
|
||||
float hypotf(float, float);
|
||||
float lgammaf(float);
|
||||
float erff(float) __NDK_FPABI_MATH__;
|
||||
float erfcf(float) __NDK_FPABI_MATH__;
|
||||
float hypotf(float, float) __NDK_FPABI_MATH__;
|
||||
float lgammaf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float acoshf(float);
|
||||
float asinhf(float);
|
||||
float atanhf(float);
|
||||
float cbrtf(float);
|
||||
float logbf(float);
|
||||
float copysignf(float, float) __pure2;
|
||||
long long llrintf(float);
|
||||
long long llroundf(float);
|
||||
long lrintf(float);
|
||||
long lroundf(float);
|
||||
float nearbyintf(float);
|
||||
float nextafterf(float, float);
|
||||
float remainderf(float, float);
|
||||
float remquof(float, float, int *);
|
||||
float rintf(float);
|
||||
float scalblnf(float, long);
|
||||
float scalbnf(float, int);
|
||||
float truncf(float);
|
||||
float acoshf(float) __NDK_FPABI_MATH__;
|
||||
float asinhf(float) __NDK_FPABI_MATH__;
|
||||
float atanhf(float) __NDK_FPABI_MATH__;
|
||||
float cbrtf(float) __NDK_FPABI_MATH__;
|
||||
float logbf(float) __NDK_FPABI_MATH__;
|
||||
float copysignf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
long long llrintf(float) __NDK_FPABI_MATH__;
|
||||
long long llroundf(float) __NDK_FPABI_MATH__;
|
||||
long lrintf(float) __NDK_FPABI_MATH__;
|
||||
long lroundf(float) __NDK_FPABI_MATH__;
|
||||
float nearbyintf(float) __NDK_FPABI_MATH__;
|
||||
float nextafterf(float, float) __NDK_FPABI_MATH__;
|
||||
float remainderf(float, float) __NDK_FPABI_MATH__;
|
||||
float remquof(float, float, int *) __NDK_FPABI_MATH__;
|
||||
float rintf(float) __NDK_FPABI_MATH__;
|
||||
float scalblnf(float, long) __NDK_FPABI_MATH__;
|
||||
float scalbnf(float, int) __NDK_FPABI_MATH__;
|
||||
float truncf(float) __NDK_FPABI_MATH__;
|
||||
|
||||
float fdimf(float, float);
|
||||
float fmaf(float, float, float);
|
||||
float fmaxf(float, float) __pure2;
|
||||
float fminf(float, float) __pure2;
|
||||
float fdimf(float, float) __NDK_FPABI_MATH__;
|
||||
float fmaf(float, float, float) __NDK_FPABI_MATH__;
|
||||
float fmaxf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
float fminf(float, float) __NDK_FPABI_MATH__ __pure2;
|
||||
/* #endif */
|
||||
|
||||
/*
|
||||
* float versions of BSD math library entry points
|
||||
*/
|
||||
/* #if __BSD_VISIBLE */
|
||||
float dremf(float, float);
|
||||
int finitef(float) __pure2;
|
||||
float gammaf(float);
|
||||
float j0f(float);
|
||||
float j1f(float);
|
||||
float jnf(int, float);
|
||||
float scalbf(float, float);
|
||||
float y0f(float);
|
||||
float y1f(float);
|
||||
float ynf(int, float);
|
||||
float dremf(float, float) __NDK_FPABI_MATH__;
|
||||
int finitef(float) __NDK_FPABI_MATH__ __pure2;
|
||||
float gammaf(float) __NDK_FPABI_MATH__;
|
||||
float j0f(float) __NDK_FPABI_MATH__;
|
||||
float j1f(float) __NDK_FPABI_MATH__;
|
||||
float jnf(int, float) __NDK_FPABI_MATH__;
|
||||
float scalbf(float, float) __NDK_FPABI_MATH__;
|
||||
float y0f(float) __NDK_FPABI_MATH__;
|
||||
float y1f(float) __NDK_FPABI_MATH__;
|
||||
float ynf(int, float) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* Float versions of reentrant version of gamma & lgamma; passes
|
||||
* signgam back by reference as the second argument; user must
|
||||
* allocate space for signgam.
|
||||
*/
|
||||
float gammaf_r(float, int *);
|
||||
float lgammaf_r(float, int *);
|
||||
float gammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
float lgammaf_r(float, int *) __NDK_FPABI_MATH__;
|
||||
|
||||
/*
|
||||
* float version of IEEE Test Vector
|
||||
*/
|
||||
float significandf(float);
|
||||
float significandf(float) __NDK_FPABI_MATH__;
|
||||
/* #endif */ /* __BSD_VISIBLE */
|
||||
|
||||
/*
|
||||
@@ -403,88 +403,88 @@ float significandf(float);
|
||||
*/
|
||||
/* #if __ISO_C_VISIBLE >= 1999 */
|
||||
#if 0
|
||||
long double acoshl(long double);
|
||||
long double acosl(long double);
|
||||
long double asinhl(long double);
|
||||
long double asinl(long double);
|
||||
long double atan2l(long double, long double);
|
||||
long double atanhl(long double);
|
||||
long double atanl(long double);
|
||||
long double cbrtl(long double);
|
||||
long double acoshl(long double) __NDK_FPABI_MATH__;
|
||||
long double acosl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double asinl(long double) __NDK_FPABI_MATH__;
|
||||
long double atan2l(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double atanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double atanl(long double) __NDK_FPABI_MATH__;
|
||||
long double cbrtl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double ceill(long double);
|
||||
long double copysignl(long double, long double) __pure2;
|
||||
long double ceill(long double) __NDK_FPABI_MATH__;
|
||||
long double copysignl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double coshl(long double);
|
||||
long double cosl(long double);
|
||||
long double erfcl(long double);
|
||||
long double erfl(long double);
|
||||
long double exp2l(long double);
|
||||
long double expl(long double);
|
||||
long double expm1l(long double);
|
||||
long double coshl(long double) __NDK_FPABI_MATH__;
|
||||
long double cosl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfcl(long double) __NDK_FPABI_MATH__;
|
||||
long double erfl(long double) __NDK_FPABI_MATH__;
|
||||
long double exp2l(long double) __NDK_FPABI_MATH__;
|
||||
long double expl(long double) __NDK_FPABI_MATH__;
|
||||
long double expm1l(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double fabsl(long double) __pure2;
|
||||
long double fdiml(long double, long double);
|
||||
long double floorl(long double);
|
||||
long double fmal(long double, long double, long double);
|
||||
long double fmaxl(long double, long double) __pure2;
|
||||
long double fminl(long double, long double) __pure2;
|
||||
long double fabsl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fdiml(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double floorl(long double) __NDK_FPABI_MATH__;
|
||||
long double fmal(long double, long double, long double) __NDK_FPABI_MATH__;
|
||||
long double fmaxl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double fminl(long double, long double) __NDK_FPABI_MATH__ __pure2;
|
||||
#if 0
|
||||
long double fmodl(long double, long double);
|
||||
long double fmodl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double frexpl(long double value, int *); /* fundamentally !__pure2 */
|
||||
long double frexpl(long double value, int *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
#if 0
|
||||
long double hypotl(long double, long double);
|
||||
long double hypotl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
int ilogbl(long double) __pure2;
|
||||
long double ldexpl(long double, int);
|
||||
int ilogbl(long double) __NDK_FPABI_MATH__ __pure2;
|
||||
long double ldexpl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double lgammal(long double);
|
||||
long long llrintl(long double);
|
||||
long double lgammal(long double) __NDK_FPABI_MATH__;
|
||||
long long llrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long long llroundl(long double);
|
||||
long long llroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double log10l(long double);
|
||||
long double log1pl(long double);
|
||||
long double log2l(long double);
|
||||
long double logbl(long double);
|
||||
long double logl(long double);
|
||||
long lrintl(long double);
|
||||
long double log10l(long double) __NDK_FPABI_MATH__;
|
||||
long double log1pl(long double) __NDK_FPABI_MATH__;
|
||||
long double log2l(long double) __NDK_FPABI_MATH__;
|
||||
long double logbl(long double) __NDK_FPABI_MATH__;
|
||||
long double logl(long double) __NDK_FPABI_MATH__;
|
||||
long lrintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long lroundl(long double);
|
||||
long lroundl(long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double modfl(long double, long double *); /* fundamentally !__pure2 */
|
||||
long double nanl(const char *) __pure2;
|
||||
long double nearbyintl(long double);
|
||||
long double modfl(long double, long double *) __NDK_FPABI_MATH__; /* fundamentally !__pure2 */
|
||||
long double nanl(const char *) __NDK_FPABI_MATH__ __pure2;
|
||||
long double nearbyintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double nextafterl(long double, long double);
|
||||
double nexttoward(double, long double);
|
||||
float nexttowardf(float, long double);
|
||||
long double nexttowardl(long double, long double);
|
||||
long double nextafterl(long double, long double) __NDK_FPABI_MATH__;
|
||||
double nexttoward(double, long double) __NDK_FPABI_MATH__;
|
||||
float nexttowardf(float, long double) __NDK_FPABI_MATH__;
|
||||
long double nexttowardl(long double, long double) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double powl(long double, long double);
|
||||
long double remainderl(long double, long double);
|
||||
long double remquol(long double, long double, int *);
|
||||
long double rintl(long double);
|
||||
long double powl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remainderl(long double, long double) __NDK_FPABI_MATH__;
|
||||
long double remquol(long double, long double, int *) __NDK_FPABI_MATH__;
|
||||
long double rintl(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double roundl(long double);
|
||||
long double scalblnl(long double, long);
|
||||
long double scalbnl(long double, int);
|
||||
long double roundl(long double) __NDK_FPABI_MATH__;
|
||||
long double scalblnl(long double, long) __NDK_FPABI_MATH__;
|
||||
long double scalbnl(long double, int) __NDK_FPABI_MATH__;
|
||||
#if 0
|
||||
long double sinhl(long double);
|
||||
long double sinl(long double);
|
||||
long double sqrtl(long double);
|
||||
long double tanhl(long double);
|
||||
long double tanl(long double);
|
||||
long double tgammal(long double);
|
||||
long double sinhl(long double) __NDK_FPABI_MATH__;
|
||||
long double sinl(long double) __NDK_FPABI_MATH__;
|
||||
long double sqrtl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanhl(long double) __NDK_FPABI_MATH__;
|
||||
long double tanl(long double) __NDK_FPABI_MATH__;
|
||||
long double tgammal(long double) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
long double truncl(long double);
|
||||
long double truncl(long double) __NDK_FPABI_MATH__;
|
||||
|
||||
/* BIONIC: GLibc compatibility - required by the ARM toolchain */
|
||||
#ifdef _GNU_SOURCE
|
||||
void sincos(double x, double *sin, double *cos);
|
||||
void sincosf(float x, float *sin, float *cos);
|
||||
void sincosl(long double x, long double *sin, long double *cos);
|
||||
void sincos(double x, double *sin, double *cos) __NDK_FPABI_MATH__;
|
||||
void sincosf(float x, float *sin, float *cos) __NDK_FPABI_MATH__;
|
||||
void sincosl(long double x, long double *sin, long double *cos) __NDK_FPABI_MATH__;
|
||||
#endif
|
||||
|
||||
/* #endif */ /* __ISO_C_VISIBLE >= 1999 */
|
||||
|
||||
@@ -64,8 +64,9 @@ extern long strtol(const char *, char **, int);
|
||||
extern long long strtoll(const char *, char **, int);
|
||||
extern unsigned long strtoul(const char *, char **, int);
|
||||
extern unsigned long long strtoull(const char *, char **, int);
|
||||
extern double strtod(const char *nptr, char **endptr);
|
||||
extern double strtod(const char *nptr, char **endptr) __NDK_FPABI__;
|
||||
|
||||
__NDK_FPABI__
|
||||
static __inline__ float strtof(const char *nptr, char **endptr)
|
||||
{
|
||||
return (float)strtod(nptr, endptr);
|
||||
@@ -75,6 +76,7 @@ extern int atoi(const char *);
|
||||
extern long atol(const char *);
|
||||
extern long long atoll(const char *);
|
||||
|
||||
__NDK_FPABI__
|
||||
static __inline__ double atof(const char *nptr)
|
||||
{
|
||||
return (strtod(nptr, NULL));
|
||||
@@ -106,8 +108,8 @@ extern long mrand48(void);
|
||||
extern long nrand48(unsigned short *);
|
||||
extern long lrand48(void);
|
||||
extern unsigned short *seed48(unsigned short*);
|
||||
extern double erand48(unsigned short xsubi[3]);
|
||||
extern double drand48(void);
|
||||
extern double erand48(unsigned short xsubi[3]) __NDK_FPABI__;
|
||||
extern double drand48(void) __NDK_FPABI__;
|
||||
extern void srand48(long);
|
||||
extern unsigned int arc4random(void);
|
||||
extern void arc4random_stir(void);
|
||||
|
||||
@@ -499,4 +499,31 @@
|
||||
#define __BIONIC__ 1
|
||||
#include <android/api-level.h>
|
||||
|
||||
/* __NDK_FPABI__ or __NDK_FPABI_MATH__ are applied to APIs taking or returning float or
|
||||
[long] double, to ensure even at the presence of -mhard-float (which implies
|
||||
-mfloat-abi=hard), calling to 32-bit Android native APIs still follow -mfloat-abi=softfp.
|
||||
|
||||
__NDK_FPABI_MATH__ is applied to APIs in math.h. It normally equals to __NDK_FPABI__,
|
||||
but allows use of customized libm.a compiled with -mhard-float by -D_NDK_MATH_NO_SOFTFP=1
|
||||
|
||||
NOTE: Disable for clang for now unless _NDK_MATH_NO_SOFTFP=1, because clang before 3.4 doesn't
|
||||
allow change of calling convension for builtin and produces error message reads:
|
||||
|
||||
a.i:564:6: error: function declared 'aapcs' here was previously declared without calling convention
|
||||
int sin(double d) __attribute__((pcs("aapcs")));
|
||||
^
|
||||
a.i:564:6: note: previous declaration is here
|
||||
*/
|
||||
#if defined(__ANDROID__) && !__LP64__ && defined( __arm__)
|
||||
#define __NDK_FPABI__ __attribute__((pcs("aapcs")))
|
||||
#else
|
||||
#define __NDK_FPABI__
|
||||
#endif
|
||||
|
||||
#if (!defined(_NDK_MATH_NO_SOFTFP) || _NDK_MATH_NO_SOFTFP != 1) && !defined(__clang__)
|
||||
#define __NDK_FPABI_MATH__ __NDK_FPABI__
|
||||
#else
|
||||
#define __NDK_FPABI_MATH__ /* nothing */
|
||||
#endif
|
||||
|
||||
#endif /* !_SYS_CDEFS_H_ */
|
||||
|
||||
@@ -121,7 +121,7 @@ extern wchar_t *wcsrchr(const wchar_t *, wchar_t);
|
||||
extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
|
||||
extern size_t wcsspn(const wchar_t *, const wchar_t *);
|
||||
extern wchar_t *wcsstr(const wchar_t *, const wchar_t *);
|
||||
extern double wcstod(const wchar_t *, wchar_t **);
|
||||
extern double wcstod(const wchar_t *, wchar_t **) __NDK_FPABI__;
|
||||
extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **);
|
||||
extern long int wcstol(const wchar_t *, wchar_t **, int);
|
||||
extern size_t wcstombs(char *, const wchar_t *, size_t);
|
||||
|
||||
Reference in New Issue
Block a user