1/* Copyright JS Foundation and other contributors, http://js.foundation 2 * 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#ifndef JERRY_LIBM_MATH_H 17#define JERRY_LIBM_MATH_H 18 19#ifdef __cplusplus 20extern "C" 21{ 22#endif /* __cplusplus */ 23 24/* General Constants. */ 25#define INFINITY (1.0/0.0) 26#define NAN (0.0/0.0) 27#define HUGE_VAL INFINITY 28 29#define isnan(x) ((x) != (x)) 30#define isinf(x) (((x) == INFINITY) || ((x) == -INFINITY)) 31#define isfinite(x) (!(isinf(x)) && (x != NAN)) 32 33/* Exponential and Logarithmic constants. */ 34#define M_E 2.7182818284590452353602874713526625 35#define M_SQRT2 1.4142135623730950488016887242096981 36#define M_SQRT1_2 0.7071067811865475244008443621048490 37#define M_LOG2E 1.4426950408889634073599246810018921 38#define M_LOG10E 0.4342944819032518276511289189166051 39#define M_LN2 0.6931471805599453094172321214581765 40#define M_LN10 2.3025850929940456840179914546843642 41 42/* Trigonometric Constants. */ 43#define M_PI 3.1415926535897932384626433832795029 44#define M_PI_2 1.5707963267948966192313216916397514 45#define M_PI_4 0.7853981633974483096156608458198757 46#define M_1_PI 0.3183098861837906715377675267450287 47#define M_2_PI 0.6366197723675813430755350534900574 48#define M_2_SQRTPI 1.1283791670955125738961589031215452 49 50/* Trigonometric functions. */ 51double cos (double); 52double sin (double); 53double tan (double); 54double acos (double); 55double asin (double); 56double atan (double); 57double atan2 (double, double); 58 59/* Hyperbolic functions. */ 60double cosh (double x); 61double sinh (double x); 62double tanh (double x); 63 64/* Inverse hyperbolic functions */ 65double acosh (double); 66double asinh (double); 67double atanh (double); 68 69/* Exponential and logarithmic functions. */ 70double exp (double); 71double expm1 (double); 72double log (double); 73double log1p (double); 74double log2 (double); 75double log10 (double); 76 77/* Power functions. */ 78double pow (double, double); 79double sqrt (double); 80double cbrt (double); 81 82/* Rounding and remainder functions. */ 83double ceil (double); 84double floor (double); 85 86/* Other functions. */ 87double fabs (double); 88double fmod (double, double); 89 90double nextafter (double, double); 91 92#ifdef __cplusplus 93} 94#endif /* __cplusplus */ 95#endif /* !JERRY_LIBM_MATH_H */ 96