Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/js/src/builtin/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 3 kB image not shown  

Quelle  Math.h

  Sprache: C
 

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef builtin_Math_h
#define builtin_Math_h

#include <stdint.h>

#include "NamespaceImports.h"

namespace js {

using UnaryMathFunctionType = double (*)(double);

// Used for inlining calls to double => double Math functions from JIT code.
// Note that this list does not include all unary Math functions: abs and sqrt
// for example are missing because the JITs optimize them without a C++ call.
enum class UnaryMathFunction : uint8_t {
  SinNative,
  SinFdlibm,
  CosNative,
  CosFdlibm,
  TanNative,
  TanFdlibm,
  Log,
  Exp,
  ACos,
  ASin,
  ATan,
  Log10,
  Log2,
  Log1P,
  ExpM1,
  CosH,
  SinH,
  TanH,
  ACosH,
  ASinH,
  ATanH,
  Trunc,
  Cbrt,
  Floor,
  Ceil,
  Round,
};

extern UnaryMathFunctionType GetUnaryMathFunctionPtr(UnaryMathFunction fun);
extern const char* GetUnaryMathFunctionName(UnaryMathFunction fun,
                                            bool enumName = false);

/*
 * JS math functions.
 */


extern const JSClass MathClass;

extern double math_random_impl(JSContext* cx);

extern double math_abs_impl(double x);

extern double math_max_impl(double x, double y);

extern double math_min_impl(double x, double y);

extern double math_sqrt_impl(double x);

extern bool math_imul_handle(JSContext* cx, HandleValue lhs, HandleValue rhs,
                             MutableHandleValue res);

extern bool RoundFloat32(JSContext* cx, HandleValue v, float* out);

extern bool RoundFloat32(JSContext* cx, HandleValue arg,
                         MutableHandleValue res);

extern double RoundFloat32(double d);

extern double RoundFloat16(double d);

extern double math_log_impl(double x);

extern bool math_use_fdlibm_for_sin_cos_tan();

extern double math_sin_fdlibm_impl(double x);
extern double math_sin_native_impl(double x);

extern double math_cos_fdlibm_impl(double x);
extern double math_cos_native_impl(double x);

extern double math_exp_impl(double x);

extern double math_tan_fdlibm_impl(double x);
extern double math_tan_native_impl(double x);

extern double ecmaHypot(double x, double y);

extern double hypot3(double x, double y, double z);

extern double hypot4(double x, double y, double z, double w);

extern bool math_hypot_handle(JSContext* cx, HandleValueArray args,
                              MutableHandleValue res);

extern double ecmaAtan2(double x, double y);

extern double math_atan_impl(double x);

extern double math_asin_impl(double x);

extern double math_acos_impl(double x);

extern double math_ceil_impl(double x);

extern double math_floor_impl(double x);

extern double math_round_impl(double x);

extern float math_roundf_impl(float x);

extern double powi(double x, int32_t y);

extern double ecmaPow(double x, double y);

extern double math_log10_impl(double x);

extern double math_log2_impl(double x);

extern double math_log1p_impl(double x);

extern double math_expm1_impl(double x);

extern double math_cosh_impl(double x);

extern double math_sinh_impl(double x);

extern double math_tanh_impl(double x);

extern double math_acosh_impl(double x);

extern double math_asinh_impl(double x);

extern double math_atanh_impl(double x);

extern double math_trunc_impl(double x);

extern double math_sign_impl(double x);

extern double math_cbrt_impl(double x);

// Math methods exposed so they can be installed in the self-hosting global.

extern bool math_max(JSContext* cx, unsigned argc, JS::Value* vp);

extern bool math_min(JSContext* cx, unsigned argc, JS::Value* vp);

extern bool math_trunc(JSContext* cx, unsigned argc, JS::Value* vp);

/* namespace js */

#endif /* builtin_Math_h */

Messung V0.5 in Prozent
C=90 H=97 G=93

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-08-25) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.