tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

math.h (2753B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 /**
      8 * This is intended for use only with vendored C libraries where editing the
      9 * source files to explicitly use fdblim is not desirable due to maintenance
     10 * burden.  cmath for C++ is not supported.
     11 *
     12 * Use LOCAL_INCLUDES += ['/modules/fdlibm/inexact-math-override'] to
     13 * substitute fdlibm math functions for inexact functions in system libraries.
     14 *
     15 * This is intended to remove fingerprinting entropy due to variations in
     16 * return values from system libaries.  Exact functions are not substituted
     17 * because these are expected to return consistent results regardless of
     18 * implementation.  sqrt() is considered exact as correct rounding is required
     19 * by IEEE-754.
     20 */
     21 
     22 #ifndef MODULES_FDLIBM_INEXACT_MATH_OVERRIDE_MATH_H_
     23 #define MODULES_FDLIBM_INEXACT_MATH_OVERRIDE_MATH_H_
     24 
     25 #include_next <math.h>
     26 
     27 #include <fdlibm.h>
     28 
     29 #define acos fdlibm_acos
     30 #define acosf fdlibm_acosf
     31 #define asin fdlibm_asin
     32 #define asinf fdlibm_asinf
     33 #define atan fdlibm_atan
     34 #define atanf fdlibm_atanf
     35 #define atan2 fdlibm_atan2
     36 #define cos fdlibm_cos
     37 #define cosf fdlibm_cosf
     38 #define sin fdlibm_sin
     39 #define sinf fdlibm_sinf
     40 #define tan fdlibm_tan
     41 #define tanf fdlibm_tanf
     42 #define cosh fdlibm_cosh
     43 #define sinh fdlibm_sinh
     44 #define tanh fdlibm_tanh
     45 #define exp fdlibm_exp
     46 #define expf fdlibm_expf
     47 #define exp2 fdlibm_exp2
     48 #define exp2f fdlibm_exp2f
     49 #define log fdlibm_log
     50 #define logf fdlibm_logf
     51 #define log10 fdlibm_log10
     52 #define log10f fdlibm_log10f
     53 #define pow fdlibm_pow
     54 #define powf fdlibm_powf
     55 #define acosh fdlibm_acosh
     56 #define asinh fdlibm_asinh
     57 #define atanh fdlibm_atanh
     58 #define cbrt fdlibm_cbrt
     59 #define expm1 fdlibm_expm1
     60 #define hypot fdlibm_hypot
     61 #define hypotf fdlibm_hypotf
     62 #define log1p fdlibm_log1p
     63 #define log2 fdlibm_log2
     64 
     65 // These functions are not yet vendored from fdlibm but are defined here to
     66 // catch any uses that would imply that they should be vendored.
     67 #define coshf fdlibm_coshf
     68 #define sinhf fdlibm_sinhf
     69 #define tanhf fdlibm_tanhf
     70 #define acoshf fdlibm_acoshf
     71 #define asinhf fdlibm_asinhf
     72 #define atanhf fdlibm_atanhf
     73 #define cbrtf fdlibm_cbrtf
     74 #define expm1f fdlibm_expm1f
     75 #define log1pf fdlibm_log1pf
     76 #define log2f fdlibm_log2f
     77 #define erf fdlibm_erf
     78 #define erff fdlibm_erff
     79 #define erfc fdlibm_erfc
     80 #define erfcf fdlibm_erfcf
     81 #define tgamma fdlibm_tgamma
     82 #define tgammaf fdlibm_tgammaf
     83 #define lgamma fdlibm_lgamma
     84 #define lgammaf fdlibm_lgammaf
     85 
     86 #endif  // MODULES_FDLIBM_INEXACT_MATH_OVERRIDE_MATH_H_