// File: /workspace/github_cpp_makefile_star2_O3/philipperemy[P]digital-setting-circles/Test.cpp
// Function: Test::test_MathLib_hyperbolic()
void Test::test_MathLib_hyperbolic()
{
    setUpErrorMessage("test_MathLib_hyperbolic() - failed");

    assertEquals((MathLib::exp(3) + MathLib::exp(-3))/2, MathLib::cosh(3));
    assertEquals((MathLib::exp(3) - MathLib::exp(-3))/2, MathLib::sinh(3));
    assertEquals((MathLib::exp(3) - MathLib::exp(-3))/(MathLib::exp(3) + MathLib::exp(-3)), MathLib::tanh(3));

    assertEquals(MathLib::log(33 + MathLib::sqrt(33*33 - 1)), MathLib::acosh(33));
    assertEquals(MathLib::log(33 + MathLib::sqrt(33*33 + 1)), MathLib::asinh(33));

    //ERREUR NEED TO SEE WHATS GOING ON THERE
    //assertEquals(MathLib::log(0.5*MathLib::log((double)(1.0+0.6)/(1.0-0.6))), MathLib::atanh(0.6));

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rdi, %rbx
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0xa671(%rip), %rsi      # 0x31d02
leaq 0xa68c(%rip), %rdx      # 0x31d24
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x4f28
movq %rbx, %rdi
movq %r14, %rsi
callq 0x28f78
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x276c4
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x32e0
movsd 0xa394(%rip), %xmm0     # 0x31a60
callq 0x58b2
movsd %xmm0, -0x20(%rbp)
movsd 0x5e82(%rip), %xmm0     # 0x2d560
callq 0x58b2
addsd -0x20(%rbp), %xmm0
mulsd 0x4950(%rip), %xmm0     # 0x2c040
movsd %xmm0, -0x20(%rbp)
movsd 0xa363(%rip), %xmm0     # 0x31a60
callq 0x5876
movaps %xmm0, %xmm1
movq %rbx, %rdi
movsd -0x20(%rbp), %xmm0
callq 0x29578
movsd 0xa346(%rip), %xmm0     # 0x31a60
callq 0x58b2
movsd %xmm0, -0x20(%rbp)
movsd 0x5e34(%rip), %xmm0     # 0x2d560
callq 0x58b2
movsd -0x20(%rbp), %xmm1
subsd %xmm0, %xmm1
mulsd 0x48fe(%rip), %xmm1     # 0x2c040
movsd %xmm1, -0x20(%rbp)
movsd 0xa311(%rip), %xmm0     # 0x31a60
callq 0x5880
movaps %xmm0, %xmm1
movq %rbx, %rdi
movsd -0x20(%rbp), %xmm0
callq 0x29578
movsd 0xa2f4(%rip), %xmm0     # 0x31a60
callq 0x58b2
movsd %xmm0, -0x20(%rbp)
movsd 0x5de2(%rip), %xmm0     # 0x2d560
callq 0x58b2
movsd -0x20(%rbp), %xmm1
subsd %xmm0, %xmm1
movsd %xmm1, -0x20(%rbp)
movsd 0xa2c7(%rip), %xmm0     # 0x31a60
callq 0x58b2
movsd %xmm0, -0x28(%rbp)
movsd 0x5db5(%rip), %xmm0     # 0x2d560
callq 0x58b2
addsd -0x28(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, -0x20(%rbp)
movsd 0xa295(%rip), %xmm0     # 0x31a60
callq 0x588a
movaps %xmm0, %xmm1
movq %rbx, %rdi
movsd -0x20(%rbp), %xmm0
callq 0x29578
movsd 0xa328(%rip), %xmm0     # 0x31b10
callq 0x5920
addsd 0xa2db(%rip), %xmm0     # 0x31ad0
callq 0x58d0
movsd %xmm0, -0x20(%rbp)
movsd 0xa2c9(%rip), %xmm0     # 0x31ad0
callq 0x5894
movaps %xmm0, %xmm1
movq %rbx, %rdi
movsd -0x20(%rbp), %xmm0
callq 0x29578
movsd 0xa2f4(%rip), %xmm0     # 0x31b18
callq 0x5920
addsd 0xa29f(%rip), %xmm0     # 0x31ad0
callq 0x58d0
movsd %xmm0, -0x20(%rbp)
movsd 0xa28d(%rip), %xmm0     # 0x31ad0
callq 0x589e
movaps %xmm0, %xmm1
movq %rbx, %rdi
movsd -0x20(%rbp), %xmm0
callq 0x29578
addq $0x38, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x2787b
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x32e0
movq %rbx, %rdi
callq 0x34b0
nop