// File: /workspace/github_c_makefile_star2_O1/janet-lang[P]janet/src/core/math.c
// Function: janet_lib_math
void janet_lib_math(JanetTable *env) {
    JanetRegExt math_cfuns[] = {
        JANET_CORE_REG("not", janet_not),
        JANET_CORE_REG("math/random", janet_rand),
        JANET_CORE_REG("math/seedrandom", janet_srand),
        JANET_CORE_REG("math/cos", janet_cos),
        JANET_CORE_REG("math/sin", janet_sin),
        JANET_CORE_REG("math/tan", janet_tan),
        JANET_CORE_REG("math/acos", janet_acos),
        JANET_CORE_REG("math/asin", janet_asin),
        JANET_CORE_REG("math/atan", janet_atan),
        JANET_CORE_REG("math/exp", janet_exp),
        JANET_CORE_REG("math/log", janet_log),
        JANET_CORE_REG("math/log10", janet_log10),
        JANET_CORE_REG("math/log2", janet_log2),
        JANET_CORE_REG("math/sqrt", janet_sqrt),
        JANET_CORE_REG("math/cbrt", janet_cbrt),
        JANET_CORE_REG("math/floor", janet_floor),
        JANET_CORE_REG("math/ceil", janet_ceil),
        JANET_CORE_REG("math/pow", janet_pow),
        JANET_CORE_REG("math/abs", janet_fabs),
        JANET_CORE_REG("math/sinh", janet_sinh),
        JANET_CORE_REG("math/cosh", janet_cosh),
        JANET_CORE_REG("math/tanh", janet_tanh),
        JANET_CORE_REG("math/atanh", janet_atanh),
        JANET_CORE_REG("math/asinh", janet_asinh),
        JANET_CORE_REG("math/acosh", janet_acosh),
        JANET_CORE_REG("math/atan2", janet_atan2),
        JANET_CORE_REG("math/rng", cfun_rng_make),
        JANET_CORE_REG("math/rng-uniform", cfun_rng_uniform),
        JANET_CORE_REG("math/rng-int", cfun_rng_int),
        JANET_CORE_REG("math/rng-buffer", cfun_rng_buffer),
        JANET_CORE_REG("math/hypot", janet_hypot),
        JANET_CORE_REG("math/exp2", janet_exp2),
        JANET_CORE_REG("math/log1p", janet_log1p),
        JANET_CORE_REG("math/gamma", janet_tgamma),
        JANET_CORE_REG("math/log-gamma", janet_lgamma),
        JANET_CORE_REG("math/erfc", janet_erfc),
        JANET_CORE_REG("math/erf", janet_erf),
        JANET_CORE_REG("math/expm1", janet_expm1),
        JANET_CORE_REG("math/trunc", janet_trunc),
        JANET_CORE_REG("math/round", janet_round),
        JANET_CORE_REG("math/next", janet_nextafter),
        JANET_CORE_REG("math/gcd", janet_cfun_gcd),
        JANET_CORE_REG("math/lcm", janet_cfun_lcm),
        JANET_CORE_REG("math/frexp", janet_cfun_frexp),
        JANET_CORE_REG("math/ldexp", janet_cfun_ldexp),
        JANET_REG_END
    };
    janet_core_cfuns_ext(env, NULL, math_cfuns);
    janet_register_abstract_type(&janet_rng_type);
#ifdef JANET_BOOTSTRAP
    JANET_CORE_DEF(env, "math/pi", janet_wrap_number(3.1415926535897931),
                   "The value pi.");
    JANET_CORE_DEF(env, "math/e", janet_wrap_number(2.7182818284590451),
                   "The base of the natural log.");
    JANET_CORE_DEF(env, "math/inf", janet_wrap_number(INFINITY),
                   "The number representing positive infinity");
    JANET_CORE_DEF(env, "math/-inf", janet_wrap_number(-INFINITY),
                   "The number representing negative infinity");
    JANET_CORE_DEF(env, "math/int32-min", janet_wrap_number(INT32_MIN),
                   "The minimum contiguous integer representable by a 32 bit signed integer");
    JANET_CORE_DEF(env, "math/int32-max", janet_wrap_number(INT32_MAX),
                   "The maximum contiguous integer representable by a 32 bit signed integer");
    JANET_CORE_DEF(env, "math/int-min", janet_wrap_number(JANET_INTMIN_DOUBLE),
                   "The minimum contiguous integer representable by a double (2^53)");
    JANET_CORE_DEF(env, "math/int-max", janet_wrap_number(JANET_INTMAX_DOUBLE),
                   "The maximum contiguous integer representable by a double (-(2^53))");
#ifdef NAN
    JANET_CORE_DEF(env, "math/nan", janet_wrap_number(NAN), "Not a number (IEEE-754 NaN)");
#else
    JANET_CORE_DEF(env, "math/nan", janet_wrap_number(0.0 / 0.0), "Not a number (IEEE-754 NaN)");
#endif
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x730, %rsp            # imm = 0x730
movq %rdi, %rbx
leaq 0x4eba6(%rip), %rsi     # 0x82b10
leaq -0x740(%rbp), %r14
movl $0x730, %edx            # imm = 0x730
movq %r14, %rdi
callq 0x12680
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x498ba
leaq 0x4eb0e(%rip), %rdi     # 0x82aa0
callq 0x49b93
movsd 0x2d0b9(%rip), %xmm0    # 0x61058
callq 0x4fab8
leaq 0x2d2b6(%rip), %rsi     # 0x61261
leaq 0x2d2b7(%rip), %rcx     # 0x61269
leaq 0x2d0c0(%rip), %r14     # 0x61079
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1aa, %r9d            # imm = 0x1AA
callq 0x49301
movsd 0x2d08b(%rip), %xmm0    # 0x61060
callq 0x4fab8
leaq 0x2d296(%rip), %rsi     # 0x61277
leaq 0x2d296(%rip), %rcx     # 0x6127e
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1ac, %r9d            # imm = 0x1AC
callq 0x49301
movsd 0x25f9c(%rip), %xmm0    # 0x59fa0
callq 0x4fab8
leaq 0x2d28b(%rip), %rsi     # 0x6129b
leaq 0x2d28d(%rip), %rcx     # 0x612a4
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1ae, %r9d            # imm = 0x1AE
callq 0x49301
movsd 0x2d035(%rip), %xmm0    # 0x61068
callq 0x4fab8
leaq 0x2d28f(%rip), %rsi     # 0x612ce
leaq 0x2d292(%rip), %rcx     # 0x612d8
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1b0, %r9d            # imm = 0x1B0
callq 0x49301
movsd 0x1f416(%rip), %xmm0    # 0x53478
callq 0x4fab8
leaq 0x2d294(%rip), %rsi     # 0x61302
leaq 0x2d29c(%rip), %rcx     # 0x61311
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1b2, %r9d            # imm = 0x1B2
callq 0x49301
movsd 0x1f3ef(%rip), %xmm0    # 0x53480
callq 0x4fab8
leaq 0x2d2bc(%rip), %rsi     # 0x61359
leaq 0x2d2c4(%rip), %rcx     # 0x61368
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1b4, %r9d            # imm = 0x1B4
callq 0x49301
movsd 0x2acf8(%rip), %xmm0    # 0x5edb8
callq 0x4fab8
leaq 0x2d2e4(%rip), %rsi     # 0x613b0
leaq 0x2d2ea(%rip), %rcx     # 0x613bd
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1b6, %r9d            # imm = 0x1B6
callq 0x49301
movsd 0x2acc1(%rip), %xmm0    # 0x5edb0
callq 0x4fab8
leaq 0x2d302(%rip), %rsi     # 0x613fd
leaq 0x2d308(%rip), %rcx     # 0x6140a
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1b8, %r9d            # imm = 0x1B8
callq 0x49301
movsd 0x2cf32(%rip), %xmm0    # 0x61050
callq 0x4fab8
leaq 0x2d323(%rip), %rsi     # 0x6144d
leaq 0x2d325(%rip), %rcx     # 0x61456
movq %rbx, %rdi
movq %rax, %rdx
movq %r14, %r8
movl $0x1ba, %r9d            # imm = 0x1BA
callq 0x49301
addq $0x730, %rsp            # imm = 0x730
popq %rbx
popq %r14
popq %rbp
retq
nopl (%rax)