// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../tools/trigonometric_integrals.c
// Function: sine_integral
int sine_integral(
                  double x,
                  double *Si,
                  ErrorMsg error_message
                  ){

  double x2, y, f, g, si8;
  double pi8=3.1415926535897932384626433;

  if (fabs(x)<=4.){
    x2=x*x;

    si8 = x*(1.e0+x2*(-4.54393409816329991e-2+x2*(1.15457225751016682e-3
            +x2*(-1.41018536821330254e-5+x2*(9.43280809438713025e-8+x2*(-3.53201978997168357e-10
            +x2*(7.08240282274875911e-13+x2*(-6.05338212010422477e-16))))))))/
            (1.+x2*(1.01162145739225565e-2 +x2*(4.99175116169755106e-5+
            x2*(1.55654986308745614e-7+x2*(3.28067571055789734e-10+x2*(4.5049097575386581e-13
            +x2*(3.21107051193712168e-16)))))));

    *Si=si8;
  }
  else {
    y=1./(x*x);

    f = (1.e0 + y*(7.44437068161936700618e2 + y*(1.96396372895146869801e5 +
            y*(2.37750310125431834034e7 +y*(1.43073403821274636888e9 + y*(4.33736238870432522765e10
            + y*(6.40533830574022022911e11 + y*(4.20968180571076940208e12 +
            y*(1.00795182980368574617e13 + y*(4.94816688199951963482e12 +
            y*(-4.94701168645415959931e11)))))))))))/ (x*(1. +y*(7.46437068161927678031e2 +
            y*(1.97865247031583951450e5 +y*(2.41535670165126845144e7 +
            y*(1.47478952192985464958e9 + y*(4.58595115847765779830e10 +
            y*(7.08501308149515401563e11 + y*(5.06084464593475076774e12 +
            y*(1.43468549171581016479e13 + y*(1.11535493509914254097e13)))))))))));


    g = y*(1.e0 + y*(8.1359520115168615e2 + y*(2.35239181626478200e5 +
            y*(3.12557570795778731e7 + y*(2.06297595146763354e9 + y*(6.83052205423625007e10 +
            y*(1.09049528450362786e12 + y*(7.57664583257834349e12 +y*(1.81004487464664575e13 +
            y*(6.43291613143049485e12 +y*(-1.36517137670871689e12)))))))))))/
            (1. + y*(8.19595201151451564e2 +y*(2.40036752835578777e5 + y*(3.26026661647090822e7
            + y*(2.23355543278099360e9 + y*(7.87465017341829930e10 + y*(1.39866710696414565e12
            + y*(1.17164723371736605e13 + y*(4.01839087307656620e13 +y*(3.99653257887490811e13))))))))));

    *Si=pi8/2.-f*cos(x)-g*sin(x);
  }
  return _SUCCESS_;
}

// Assembly:
subq $0x68, %rsp
movsd %xmm0, 0x60(%rsp)
movq %rdi, 0x58(%rsp)
movq %rsi, 0x50(%rsp)
movsd 0x178bd4(%rip), %xmm0   # 0x1d4fe0
movsd %xmm0, 0x20(%rsp)
movsd 0x60(%rsp), %xmm1
movaps 0x175e11(%rip), %xmm0   # 0x1d2230
pand %xmm0, %xmm1
movsd 0x17909d(%rip), %xmm0   # 0x1d54c8
ucomisd %xmm1, %xmm0
jb 0x5c5a1
movsd 0x60(%rsp), %xmm0
mulsd 0x60(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0x60(%rsp), %xmm0
movsd 0x48(%rsp), %xmm1
movsd 0x48(%rsp), %xmm2
movsd 0x48(%rsp), %xmm3
movsd 0x48(%rsp), %xmm4
movsd 0x48(%rsp), %xmm5
movsd 0x48(%rsp), %xmm6
movsd 0x48(%rsp), %xmm7
movsd 0x17a018(%rip), %xmm8   # 0x1d6498
mulsd %xmm8, %xmm7
movsd 0x17a012(%rip), %xmm8   # 0x1d64a0
addsd %xmm8, %xmm7
mulsd %xmm7, %xmm6
movsd 0x179ff1(%rip), %xmm7   # 0x1d6490
addsd %xmm7, %xmm6
mulsd %xmm6, %xmm5
movsd 0x179fd9(%rip), %xmm6   # 0x1d6488
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm4
movsd 0x179fc1(%rip), %xmm5   # 0x1d6480
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm3
movsd 0x179fa9(%rip), %xmm4   # 0x1d6478
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm2
movsd 0x179f91(%rip), %xmm3   # 0x1d6470
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
movsd 0x175d59(%rip), %xmm2   # 0x1d2248
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd 0x48(%rsp), %xmm1
movsd 0x48(%rsp), %xmm2
movsd 0x48(%rsp), %xmm3
movsd 0x48(%rsp), %xmm4
movsd 0x48(%rsp), %xmm5
movsd 0x48(%rsp), %xmm6
movsd 0x179f3d(%rip), %xmm7   # 0x1d6460
mulsd %xmm7, %xmm6
movsd 0x179f39(%rip), %xmm7   # 0x1d6468
addsd %xmm7, %xmm6
mulsd %xmm6, %xmm5
movsd 0x179f19(%rip), %xmm6   # 0x1d6458
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm4
movsd 0x179f01(%rip), %xmm5   # 0x1d6450
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm3
movsd 0x179ee9(%rip), %xmm4   # 0x1d6448
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm2
movsd 0x179ed1(%rip), %xmm3   # 0x1d6440
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
movsd 0x175cc9(%rip), %xmm2   # 0x1d2248
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x28(%rsp), %xmm0
movq 0x58(%rsp), %rax
movsd %xmm0, (%rax)
jmp 0x5ca32
movsd 0x60(%rsp), %xmm1
mulsd 0x60(%rsp), %xmm1
movsd 0x175c93(%rip), %xmm0   # 0x1d2248
divsd %xmm1, %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x40(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movsd 0x40(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movsd 0x40(%rsp), %xmm4
movsd 0x40(%rsp), %xmm5
movsd 0x40(%rsp), %xmm6
movsd 0x40(%rsp), %xmm7
movsd 0x40(%rsp), %xmm8
movsd 0x40(%rsp), %xmm9
movsd 0x179dc2(%rip), %xmm10  # 0x1d63c8
mulsd %xmm10, %xmm9
movsd 0x179dbc(%rip), %xmm10  # 0x1d63d0
addsd %xmm10, %xmm9
mulsd %xmm9, %xmm8
movsd 0x179d99(%rip), %xmm9   # 0x1d63c0
addsd %xmm9, %xmm8
mulsd %xmm8, %xmm7
movsd 0x179d7e(%rip), %xmm8   # 0x1d63b8
addsd %xmm8, %xmm7
mulsd %xmm7, %xmm6
movsd 0x179d65(%rip), %xmm7   # 0x1d63b0
addsd %xmm7, %xmm6
mulsd %xmm6, %xmm5
movsd 0x179d4d(%rip), %xmm6   # 0x1d63a8
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm4
movsd 0x179d35(%rip), %xmm5   # 0x1d63a0
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm3
movsd 0x179d1d(%rip), %xmm4   # 0x1d6398
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm2
movsd 0x179d05(%rip), %xmm3   # 0x1d6390
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
movsd 0x179ced(%rip), %xmm2   # 0x1d6388
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd 0x175b9d(%rip), %xmm1   # 0x1d2248
addsd %xmm1, %xmm0
movsd 0x60(%rsp), %xmm1
movsd 0x40(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movsd 0x40(%rsp), %xmm4
movsd 0x40(%rsp), %xmm5
movsd 0x40(%rsp), %xmm6
movsd 0x40(%rsp), %xmm7
movsd 0x40(%rsp), %xmm8
movsd 0x40(%rsp), %xmm9
movsd 0x40(%rsp), %xmm10
movsd 0x179c81(%rip), %xmm11  # 0x1d6378
mulsd %xmm11, %xmm10
movsd 0x179c7b(%rip), %xmm11  # 0x1d6380
addsd %xmm11, %xmm10
mulsd %xmm10, %xmm9
movsd 0x179c58(%rip), %xmm10  # 0x1d6370
addsd %xmm10, %xmm9
mulsd %xmm9, %xmm8
movsd 0x179c3d(%rip), %xmm9   # 0x1d6368
addsd %xmm9, %xmm8
mulsd %xmm8, %xmm7
movsd 0x179c22(%rip), %xmm8   # 0x1d6360
addsd %xmm8, %xmm7
mulsd %xmm7, %xmm6
movsd 0x179c09(%rip), %xmm7   # 0x1d6358
addsd %xmm7, %xmm6
mulsd %xmm6, %xmm5
movsd 0x179bf1(%rip), %xmm6   # 0x1d6350
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm4
movsd 0x179bd9(%rip), %xmm5   # 0x1d6348
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm3
movsd 0x179bc1(%rip), %xmm4   # 0x1d6340
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm2
movsd 0x175ab9(%rip), %xmm3   # 0x1d2248
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x40(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
movsd 0x40(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movsd 0x40(%rsp), %xmm4
movsd 0x40(%rsp), %xmm5
movsd 0x40(%rsp), %xmm6
movsd 0x40(%rsp), %xmm7
movsd 0x40(%rsp), %xmm8
movsd 0x40(%rsp), %xmm9
movsd 0x40(%rsp), %xmm10
movsd 0x179b41(%rip), %xmm11  # 0x1d6330
mulsd %xmm11, %xmm10
movsd 0x179b3b(%rip), %xmm11  # 0x1d6338
addsd %xmm11, %xmm10
mulsd %xmm10, %xmm9
movsd 0x179b18(%rip), %xmm10  # 0x1d6328
addsd %xmm10, %xmm9
mulsd %xmm9, %xmm8
movsd 0x179afd(%rip), %xmm9   # 0x1d6320
addsd %xmm9, %xmm8
mulsd %xmm8, %xmm7
movsd 0x179ae2(%rip), %xmm8   # 0x1d6318
addsd %xmm8, %xmm7
mulsd %xmm7, %xmm6
movsd 0x179ac9(%rip), %xmm7   # 0x1d6310
addsd %xmm7, %xmm6
mulsd %xmm6, %xmm5
movsd 0x179ab1(%rip), %xmm6   # 0x1d6308
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm4
movsd 0x179a99(%rip), %xmm5   # 0x1d6300
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm3
movsd 0x179a81(%rip), %xmm4   # 0x1d62f8
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm2
movsd 0x179a69(%rip), %xmm3   # 0x1d62f0
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
movsd 0x1759b1(%rip), %xmm2   # 0x1d2248
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd 0x40(%rsp), %xmm1
movsd 0x40(%rsp), %xmm2
movsd 0x40(%rsp), %xmm3
movsd 0x40(%rsp), %xmm4
movsd 0x40(%rsp), %xmm5
movsd 0x40(%rsp), %xmm6
movsd 0x40(%rsp), %xmm7
movsd 0x40(%rsp), %xmm8
movsd 0x40(%rsp), %xmm9
movsd 0x179a00(%rip), %xmm10  # 0x1d62e0
mulsd %xmm10, %xmm9
movsd 0x1799fa(%rip), %xmm10  # 0x1d62e8
addsd %xmm10, %xmm9
mulsd %xmm9, %xmm8
movsd 0x1799d7(%rip), %xmm9   # 0x1d62d8
addsd %xmm9, %xmm8
mulsd %xmm8, %xmm7
movsd 0x1799bc(%rip), %xmm8   # 0x1d62d0
addsd %xmm8, %xmm7
mulsd %xmm7, %xmm6
movsd 0x1799a3(%rip), %xmm7   # 0x1d62c8
addsd %xmm7, %xmm6
mulsd %xmm6, %xmm5
movsd 0x17998b(%rip), %xmm6   # 0x1d62c0
addsd %xmm6, %xmm5
mulsd %xmm5, %xmm4
movsd 0x179973(%rip), %xmm5   # 0x1d62b8
addsd %xmm5, %xmm4
mulsd %xmm4, %xmm3
movsd 0x17995b(%rip), %xmm4   # 0x1d62b0
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm2
movsd 0x179943(%rip), %xmm3   # 0x1d62a8
addsd %xmm3, %xmm2
mulsd %xmm2, %xmm1
movsd 0x1758d3(%rip), %xmm2   # 0x1d2248
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x20(%rsp), %xmm0
movsd 0x1762ef(%rip), %xmm1   # 0x1d2c80
divsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x60(%rsp), %xmm0
callq 0x86a0
movsd (%rsp), %xmm1
movaps %xmm0, %xmm2
movsd 0x8(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x60(%rsp), %xmm0
callq 0x80a0
movsd 0x10(%rsp), %xmm1
movaps %xmm0, %xmm2
movsd 0x18(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x58(%rsp), %rax
movsd %xmm0, (%rax)
xorl %eax, %eax
addq $0x68, %rsp
retq
nopl (%rax)