#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int pow(double, double);
double Slater_1S_2S(double rij, double xij, double xii) {
  double S;
  if (xii == xij) {
    S = (-240.0 +
         240.0 * (pow((double)(2.71828182845904523536029),
                      (double)(2.0 * rij * xii))) -
         375.0 * rij * xii -
         270.0 * (pow((double)(rij), (double)(2.0))) *
             (pow((double)(xii), (double)(2.0))) -
         115.0 * (pow((double)(rij), (double)(3.0))) *
             (pow((double)(xii), (double)(3.0))) -
         30.0 * (pow((double)(rij), (double)(4.0))) *
             (pow((double)(xii), (double)(4.0))) -
         4.0 * (pow((double)(rij), (double)(5.0))) *
             (pow((double)(xii), (double)(5.0)))) /
        (240. *
         (pow((double)(2.71828182845904523536029), (double)(2.0 * rij * xii))) *
         rij);
  } else {
    S = (6.0 *
             (pow((double)(2.71828182845904523536029),
                  (double)(2.0 * rij * (xii + xij)))) *
             (pow((double)((pow((double)(xii), (double)(2.0))) -
                           (pow((double)(xij), (double)(2.0)))),
                  (double)(5.0))) +
         6.0 *
             (pow((double)(2.71828182845904523536029),
                  (double)(2.0 * rij * xij))) *
             (pow((double)(xij), (double)(6.0))) *
             (-4.0 * (pow((double)(xii), (double)(4.0))) -
              rij * (pow((double)(xii), (double)(5.0))) -
              5.0 * (pow((double)(xii), (double)(2.0))) *
                  (pow((double)(xij), (double)(2.0))) +
              (pow((double)(xij), (double)(4.0))) +
              rij * xii * (pow((double)(xij), (double)(4.0)))) -
         (pow((double)(2.71828182845904523536029), (double)(2.0 * rij * xii))) *
             (pow((double)(xii), (double)(4.0))) *
             ((pow((double)(xii), (double)(6.0))) *
                  (6.0 + 9.0 * rij * xij +
                   6.0 * (pow((double)(rij), (double)(2.0))) *
                       (pow((double)(xij), (double)(2.0))) +
                   2.0 * (pow((double)(rij), (double)(3.0))) *
                       (pow((double)(xij), (double)(3.0)))) -
              3.0 * (pow((double)(xii), (double)(4.0))) *
                  (pow((double)(xij), (double)(2.0))) *
                  (10.0 + 15.0 * rij * xij +
                   10.0 * (pow((double)(rij), (double)(2.0))) *
                       (pow((double)(xij), (double)(2.0))) +
                   2.0 * (pow((double)(rij), (double)(3.0))) *
                       (pow((double)(xij), (double)(3.0)))) +
              3.0 * (pow((double)(xii), (double)(2.0))) *
                  (pow((double)(xij), (double)(4.0))) *
                  (20.0 + 33.0 * rij * xij +
                   14.0 * (pow((double)(rij), (double)(2.0))) *
                       (pow((double)(xij), (double)(2.0))) +
                   2.0 * (pow((double)(rij), (double)(3.0))) *
                       (pow((double)(xij), (double)(3.0)))) -
              (pow((double)(xij), (double)(6.0))) *
                  (84.0 + 63.0 * rij * xij +
                   18.0 * (pow((double)(rij), (double)(2.0))) *
                       (pow((double)(xij), (double)(2.0))) +
                   2.0 * (pow((double)(rij), (double)(3.0))) *
                       (pow((double)(xij), (double)(3.0)))))) /
        (6. *
         (pow((double)(2.71828182845904523536029),
              (double)(2.0 * rij * (xii + xij)))) *
         rij *
         (pow((double)((pow((double)(xii), (double)(2.0))) -
                       (pow((double)(xij), (double)(2.0)))),
              (double)(5.0))));
  }
  return S;
}


x86 assembly (clang, -O0):
<Slater_1S_2S>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1c0,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
movsd  %xmm2,-0x18(%rbp)
movsd  -0x18(%rbp),%xmm0
ucomisd -0x10(%rbp),%xmm0
jne    13a4 <Slater_1S_2S+0x294>
jp     13a4 <Slater_1S_2S+0x294>
movsd  0xec0(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xebe(%rip),%xmm0
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xf15(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xf31(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0xf1d(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  -0x18(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xe4a(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xec9(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xe23(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x68(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm1
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xdf7(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xe56(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xdd0(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x58(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xdc4(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xde3(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xd9d(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x48(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm1
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xd01(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xd48(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0xcda(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x38(%rbp),%xmm0
movsd  -0x30(%rbp),%xmm1
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xca3(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0xca1(%rip),%xmm0
call   1030 <pow@plt>
movsd  -0x28(%rbp),%xmm0
cvtsi2sd %eax,%xmm2
movsd  0xcf3(%rip),%xmm1
mulsd  %xmm2,%xmm1
mulsd  -0x8(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
jmp    1c4b <Slater_1S_2S+0xb3b>
movsd  0xc5c(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm0
addsd  -0x10(%rbp),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xc51(%rip),%xmm0
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xc38(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0xc17(%rip),%xmm1
call   1030 <pow@plt>
mov    %eax,-0x1bc(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xbff(%rip),%xmm1
call   1030 <pow@plt>
mov    %eax,%ecx
mov    -0x1bc(%rbp),%eax
sub    %ecx,%eax
cvtsi2sd %eax,%xmm0
movsd  0xbdc(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  0xbcb(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x10(%rbp),%xmm1
movsd  0xbc9(%rip),%xmm0
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xbb0(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xb97(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x1b8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0xbb5(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0xb32(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x1b0(%rbp),%xmm1
ff
movsd  -0x1a8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0xb6e(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0xae1(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xac8(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xab7(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xaba(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x190(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
mulsd  -0x18(%rbp),%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xa7e(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x188(%rbp),%xmm3
ff
movsd  -0x180(%rbp),%xmm4
ff
movsd  -0x178(%rbp),%xmm1
ff
movsd  -0x170(%rbp),%xmm0
ff
movsd  -0x168(%rbp),%xmm2
ff
cvtsi2sd %eax,%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  0x9d9(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
mulsd  -0x18(%rbp),%xmm1
movsd  0x9d7(%rip),%xmm0
call   1030 <pow@plt>
mov    %eax,-0x15c(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0x9ff(%rip),%xmm1
call   1030 <pow@plt>
mov    %eax,%ecx
mov    -0x15c(%rbp),%eax
imul   %ecx,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0x98e(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  0x9d5(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x95f(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x93e(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x935(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x914(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x158(%rbp),%xmm0
movsd  -0x150(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x8f6(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x8cd(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x8cc(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x148(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0x8ce(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x885(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x854(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x138(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  0x88f(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x871(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x800(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x847(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x7d6(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x7b8(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x78f(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x78e(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x120(%rbp),%xmm3
ff
movsd  -0x118(%rbp),%xmm4
ff
movsd  -0x110(%rbp),%xmm1
ff
movsd  -0x108(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
cvtsi2sd %eax,%xmm5
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
movsd  0x705(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x70c(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x72b(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0xf8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0x6fe(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x6e0(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x687(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x6ae(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x65d(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0xe8(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x63f(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x616(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x615(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0xe0(%rbp),%xmm2
ff
movsd  -0xd8(%rbp),%xmm3
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm4
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x5b7(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  0x5c6(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  -0x10(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x5a8(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x567(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x576(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x53d(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0xb8(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x8(%rbp),%xmm0
movsd  0x51f(%rip),%xmm1
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x4f6(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0x4f5(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0xb0(%rbp),%xmm4
ff
movsd  -0xa8(%rbp),%xmm5
ff
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm3
ff
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm1
ff
cvtsi2sd %eax,%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  0x451(%rip),%xmm1
mulsd  -0x8(%rbp),%xmm1
movsd  -0x18(%rbp),%xmm0
addsd  -0x10(%rbp),%xmm0
mulsd  %xmm0,%xmm1
movsd  0x446(%rip),%xmm0
call   1030 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0x42d(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  0x40a(%rip),%xmm1
call   1030 <pow@plt>
mov    %eax,-0x7c(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0x3f5(%rip),%xmm1
call   1030 <pow@plt>
mov    %eax,%ecx
mov    -0x7c(%rbp),%eax
sub    %ecx,%eax
cvtsi2sd %eax,%xmm0
movsd  0x3d5(%rip),%xmm1
call   1030 <pow@plt>
movsd  -0x78(%rbp),%xmm1
movsd  -0x70(%rbp),%xmm0
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
add    $0x1c0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Slater_1S_2S>:
push   %rbx
sub    $0x60,%rsp
ucomisd %xmm1,%xmm2
movsd  %xmm0,0x18(%rsp)
addsd  %xmm0,%xmm0
movsd  %xmm2,0x20(%rsp)
jne    130e <Slater_1S_2S+0x1fe>
jp     130e <Slater_1S_2S+0x1fe>
mulsd  %xmm2,%xmm0
movsd  0xebf(%rip),%xmm3
movapd %xmm0,%xmm1
movsd  %xmm0,0x38(%rsp)
movapd %xmm3,%xmm0
call   1030 <pow@plt>
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
mulsd  0xf2d(%rip),%xmm1
addsd  0xf2d(%rip),%xmm1
movsd  0xf2d(%rip),%xmm2
movsd  0x18(%rsp),%xmm0
mulsd  %xmm0,%xmm2
mulsd  0x20(%rsp),%xmm2
addsd  %xmm1,%xmm2
movsd  %xmm2,0x10(%rsp)
movsd  0xe7b(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xe5b(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x8(%rsp),%xmm1
mulsd  0xed9(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x10(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xe59(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xe33(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xe89(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  0xde1(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xdbb(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x8(%rsp),%xmm1
mulsd  0xe39(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x10(%rsp),%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xd81(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xd5b(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xd51(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x8(%rsp),%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  0xd11(%rip),%xmm0
movsd  0x38(%rsp),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xd87(%rip),%xmm0
jmp    19f2 <Slater_1S_2S+0x8e2>
movapd %xmm1,%xmm3
addsd  %xmm2,%xmm3
mulsd  %xmm0,%xmm3
movsd  %xmm3,0x58(%rsp)
movsd  %xmm0,0x38(%rsp)
movsd  0xcd2(%rip),%xmm0
movsd  %xmm1,0x8(%rsp)
movapd %xmm3,%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xcbc(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xcb6(%rip),%xmm1
movsd  0x20(%rsp),%xmm0
call   1030 <pow@plt>
mov    %eax,%ebx
movsd  0x8(%rsp),%xmm0
movsd  0xc9b(%rip),%xmm1
call   1030 <pow@plt>
sub    %eax,%ebx
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
movsd  0xc8d(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x38(%rsp),%xmm1
mulsd  0x8(%rsp),%xmm1
movsd  0xc49(%rip),%xmm0
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0xc3d(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0xc25(%rip),%xmm1
movsd  0x20(%rsp),%xmm0
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xbf7(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xbe7(%rip),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xbb7(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0xb97(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x48(%rsp),%xmm1
mulsd  0xb9d(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x10(%rsp),%xmm1
movsd  %xmm1,0x48(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0xb6f(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  0x48(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
mulsd  0x20(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0xb37(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x48(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
mulsd  0x28(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x38(%rsp),%xmm1
mulsd  0x20(%rsp),%xmm1
movsd  0xad9(%rip),%xmm0
call   1030 <pow@plt>
mov    %eax,%ebx
movsd  0x20(%rsp),%xmm0
movsd  0xae4(%rip),%xmm1
call   1030 <pow@plt>
imul   %ebx,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0xaa9(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0xabf(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x8(%rsp),%xmm1
addsd  0xa77(%rip),%xmm1
movsd  %xmm1,0x30(%rsp)
movsd  0xa71(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xa55(%rip),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0xa49(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x28(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0xa53(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0xa29(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x28(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
mulsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0x9d7(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x9a7(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x9c5(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x8(%rsp),%xmm1
addsd  0x9b5(%rip),%xmm1
movsd  %xmm1,0x40(%rsp)
movsd  0x967(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x993(%rip),%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x93f(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x50(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x18(%rsp),%xmm0
movsd  0x943(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x91f(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x50(%rsp),%xmm0
movsd  0x38(%rsp),%xmm1
mulsd  0x917(%rip),%xmm1
addsd  0x40(%rsp),%xmm0
mulsd  0x28(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  0x30(%rsp),%xmm1
movsd  %xmm1,0x38(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0x8a5(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x8c1(%rip),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x88d(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x30(%rsp),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x8ad(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x8(%rsp),%xmm1
addsd  0x89d(%rip),%xmm1
movsd  %xmm1,0x28(%rsp)
movsd  0x837(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x883(%rip),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x80f(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x40(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x18(%rsp),%xmm0
movsd  0x813(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x7ef(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x40(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
mulsd  0x30(%rsp),%xmm0
addsd  0x38(%rsp),%xmm0
movsd  %xmm0,0x38(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x77f(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x7d5(%rip),%xmm1
movsd  0x18(%rsp),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x8(%rsp),%xmm1
addsd  0x7c5(%rip),%xmm1
movsd  %xmm1,0x28(%rsp)
movsd  0x747(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x7ab(%rip),%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x71f(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x40(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0x18(%rsp),%xmm0
movsd  0x723(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x40(%rsp)
movsd  0x8(%rsp),%xmm0
movsd  0x6ff(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x40(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
mulsd  0x30(%rsp),%xmm0
movsd  0x38(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0x48(%rsp),%xmm1
movsd  0x10(%rsp),%xmm0
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x679(%rip),%xmm0
movsd  0x58(%rsp),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x667(%rip),%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x20(%rsp),%xmm0
movsd  0x655(%rip),%xmm1
call   1030 <pow@plt>
mov    %eax,%ebx
movsd  0x8(%rsp),%xmm0
movsd  0x640(%rip),%xmm1
call   1030 <pow@plt>
sub    %eax,%ebx
xorps  %xmm0,%xmm0
cvtsi2sd %ebx,%xmm0
movsd  0x632(%rip),%xmm1
call   1030 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x18(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
divsd  %xmm0,%xmm1
movapd %xmm1,%xmm0
add    $0x60,%rsp
pop    %rbx
ret

LLVM IR (-O0):
define double @Slater_1S_2S(double %0, double %1, double %2) {
%4 = alloca double
%5 = alloca double
%6 = alloca double
%7 = alloca double
store double %0, double* %4
store double %1, double* %5
store double %2, double* %6
%8 = load double, double* %6
%9 = load double, double* %5
%10 = fcmp oeq double %8, %9
br i1 %10, label %11, label %70
11: ; preds = %3
%12 = load double, double* %4
%13 = fmul double 2.000000e+00, %12
%14 = load double, double* %6
%15 = fmul double %13, %14
%16 = call i32 @pow(double 0x4005BF0A8B145769, double %15)
%17 = sitofp i32 %16 to double
%18 = call double @llvm.fmuladd.f64(double 2.400000e+02, double %17, double -2.400000e+02)
%19 = load double, double* %4
%20 = fmul double 3.750000e+02, %19
%21 = load double, double* %6
%22 = fneg double %20
%23 = call double @llvm.fmuladd.f64(double %22, double %21, double %18)
%24 = load double, double* %4
%25 = call i32 @pow(double %24, double 2.000000e+00)
%26 = sitofp i32 %25 to double
%27 = fmul double 2.700000e+02, %26
%28 = load double, double* %6
%29 = call i32 @pow(double %28, double 2.000000e+00)
%30 = sitofp i32 %29 to double
%31 = fneg double %27
%32 = call double @llvm.fmuladd.f64(double %31, double %30, double %23)
%33 = load double, double* %4
%34 = call i32 @pow(double %33, double 3.000000e+00)
%35 = sitofp i32 %34 to double
%36 = fmul double 1.150000e+02, %35
%37 = load double, double* %6
%38 = call i32 @pow(double %37, double 3.000000e+00)
%39 = sitofp i32 %38 to double
%40 = fneg double %36
%41 = call double @llvm.fmuladd.f64(double %40, double %39, double %32)
%42 = load double, double* %4
%43 = call i32 @pow(double %42, double 4.000000e+00)
%44 = sitofp i32 %43 to double
%45 = fmul double 3.000000e+01, %44
%46 = load double, double* %6
%47 = call i32 @pow(double %46, double 4.000000e+00)
%48 = sitofp i32 %47 to double
%49 = fneg double %45
%50 = call double @llvm.fmuladd.f64(double %49, double %48, double %41)
%51 = load double, double* %4
%52 = call i32 @pow(double %51, double 5.000000e+00)
%53 = sitofp i32 %52 to double
%54 = fmul double 4.000000e+00, %53
%55 = load double, double* %6
%56 = call i32 @pow(double %55, double 5.000000e+00)
%57 = sitofp i32 %56 to double
%58 = fneg double %54
%59 = call double @llvm.fmuladd.f64(double %58, double %57, double %50)
%60 = load double, double* %4
%61 = fmul double 2.000000e+00, %60
%62 = load double, double* %6
%63 = fmul double %61, %62
%64 = call i32 @pow(double 0x4005BF0A8B145769, double %63)
%65 = sitofp i32 %64 to double
%66 = fmul double 2.400000e+02, %65
%67 = load double, double* %4
%68 = fmul double %66, %67
%69 = fdiv double %59, %68
store double %69, double* %7
br label %271
70: ; preds = %3
%71 = load double, double* %4
%72 = fmul double 2.000000e+00, %71
%73 = load double, double* %6
%74 = load double, double* %5
%75 = fadd double %73, %74
%76 = fmul double %72, %75
%77 = call i32 @pow(double 0x4005BF0A8B145769, double %76)
%78 = sitofp i32 %77 to double
%79 = fmul double 6.000000e+00, %78
%80 = load double, double* %6
%81 = call i32 @pow(double %80, double 2.000000e+00)
%82 = load double, double* %5
%83 = call i32 @pow(double %82, double 2.000000e+00)
%84 = sub nsw i32 %81, %83
%85 = sitofp i32 %84 to double
%86 = call i32 @pow(double %85, double 5.000000e+00)
%87 = sitofp i32 %86 to double
%88 = load double, double* %4
%89 = fmul double 2.000000e+00, %88
%90 = load double, double* %5
%91 = fmul double %89, %90
%92 = call i32 @pow(double 0x4005BF0A8B145769, double %91)
%93 = sitofp i32 %92 to double
%94 = fmul double 6.000000e+00, %93
%95 = load double, double* %5
%96 = call i32 @pow(double %95, double 6.000000e+00)
%97 = sitofp i32 %96 to double
%98 = fmul double %94, %97
%99 = load double, double* %6
%100 = call i32 @pow(double %99, double 4.000000e+00)
%101 = sitofp i32 %100 to double
%102 = load double, double* %4
%103 = load double, double* %6
%104 = call i32 @pow(double %103, double 5.000000e+00)
%105 = sitofp i32 %104 to double
%106 = fmul double %102, %105
%107 = fneg double %106
%108 = call double @llvm.fmuladd.f64(double -4.000000e+00, double %101, double %107)
%109 = load double, double* %6
%110 = call i32 @pow(double %109, double 2.000000e+00)
%111 = sitofp i32 %110 to double
%112 = fmul double 5.000000e+00, %111
%113 = load double, double* %5
%114 = call i32 @pow(double %113, double 2.000000e+00)
%115 = sitofp i32 %114 to double
%116 = fneg double %112
%117 = call double @llvm.fmuladd.f64(double %116, double %115, double %108)
%118 = load double, double* %5
%119 = call i32 @pow(double %118, double 4.000000e+00)
%120 = sitofp i32 %119 to double
%121 = fadd double %117, %120
%122 = load double, double* %4
%123 = load double, double* %6
%124 = fmul double %122, %123
%125 = load double, double* %5
%126 = call i32 @pow(double %125, double 4.000000e+00)
%127 = sitofp i32 %126 to double
%128 = call double @llvm.fmuladd.f64(double %124, double %127, double %121)
%129 = fmul double %98, %128
%130 = call double @llvm.fmuladd.f64(double %79, double %87, double %129)
%131 = load double, double* %4
%132 = fmul double 2.000000e+00, %131
%133 = load double, double* %6
%134 = fmul double %132, %133
%135 = call i32 @pow(double 0x4005BF0A8B145769, double %134)
%136 = load double, double* %6
%137 = call i32 @pow(double %136, double 4.000000e+00)
%138 = mul nsw i32 %135, %137
%139 = sitofp i32 %138 to double
%140 = load double, double* %6
%141 = call i32 @pow(double %140, double 6.000000e+00)
%142 = sitofp i32 %141 to double
%143 = load double, double* %4
%144 = fmul double 9.000000e+00, %143
%145 = load double, double* %5
%146 = call double @llvm.fmuladd.f64(double %144, double %145, double 6.000000e+00)
%147 = load double, double* %4
%148 = call i32 @pow(double %147, double 2.000000e+00)
%149 = sitofp i32 %148 to double
%150 = fmul double 6.000000e+00, %149
%151 = load double, double* %5
%152 = call i32 @pow(double %151, double 2.000000e+00)
%153 = sitofp i32 %152 to double
%154 = call double @llvm.fmuladd.f64(double %150, double %153, double %146)
%155 = load double, double* %4
%156 = call i32 @pow(double %155, double 3.000000e+00)
%157 = sitofp i32 %156 to double
%158 = fmul double 2.000000e+00, %157
%159 = load double, double* %5
%160 = call i32 @pow(double %159, double 3.000000e+00)
%161 = sitofp i32 %160 to double
%162 = call double @llvm.fmuladd.f64(double %158, double %161, double %154)
%163 = load double, double* %6
%164 = call i32 @pow(double %163, double 4.000000e+00)
%165 = sitofp i32 %164 to double
%166 = fmul double 3.000000e+00, %165
%167 = load double, double* %5
%168 = call i32 @pow(double %167, double 2.000000e+00)
%169 = sitofp i32 %168 to double
%170 = fmul double %166, %169
%171 = load double, double* %4
%172 = fmul double 1.500000e+01, %171
%173 = load double, double* %5
%174 = call double @llvm.fmuladd.f64(double %172, double %173, double 1.000000e+01)
%175 = load double, double* %4
%176 = call i32 @pow(double %175, double 2.000000e+00)
%177 = sitofp i32 %176 to double
%178 = fmul double 1.000000e+01, %177
%179 = load double, double* %5
%180 = call i32 @pow(double %179, double 2.000000e+00)
%181 = sitofp i32 %180 to double
%182 = call double @llvm.fmuladd.f64(double %178, double %181, double %174)
%183 = load double, double* %4
%184 = call i32 @pow(double %183, double 3.000000e+00)
%185 = sitofp i32 %184 to double
%186 = fmul double 2.000000e+00, %185
%187 = load double, double* %5
%188 = call i32 @pow(double %187, double 3.000000e+00)
%189 = sitofp i32 %188 to double
%190 = call double @llvm.fmuladd.f64(double %186, double %189, double %182)
%191 = fmul double %170, %190
%192 = fneg double %191
%193 = call double @llvm.fmuladd.f64(double %142, double %162, double %192)
%194 = load double, double* %6
%195 = call i32 @pow(double %194, double 2.000000e+00)
%196 = sitofp i32 %195 to double
%197 = fmul double 3.000000e+00, %196
%198 = load double, double* %5
%199 = call i32 @pow(double %198, double 4.000000e+00)
%200 = sitofp i32 %199 to double
%201 = fmul double %197, %200
%202 = load double, double* %4
%203 = fmul double 3.300000e+01, %202
%204 = load double, double* %5
%205 = call double @llvm.fmuladd.f64(double %203, double %204, double 2.000000e+01)
%206 = load double, double* %4
%207 = call i32 @pow(double %206, double 2.000000e+00)
%208 = sitofp i32 %207 to double
%209 = fmul double 1.400000e+01, %208
%210 = load double, double* %5
%211 = call i32 @pow(double %210, double 2.000000e+00)
%212 = sitofp i32 %211 to double
%213 = call double @llvm.fmuladd.f64(double %209, double %212, double %205)
%214 = load double, double* %4
%215 = call i32 @pow(double %214, double 3.000000e+00)
%216 = sitofp i32 %215 to double
%217 = fmul double 2.000000e+00, %216
%218 = load double, double* %5
%219 = call i32 @pow(double %218, double 3.000000e+00)
%220 = sitofp i32 %219 to double
%221 = call double @llvm.fmuladd.f64(double %217, double %220, double %213)
%222 = call double @llvm.fmuladd.f64(double %201, double %221, double %193)
%223 = load double, double* %5
%224 = call i32 @pow(double %223, double 6.000000e+00)
%225 = sitofp i32 %224 to double
%226 = load double, double* %4
%227 = fmul double 6.300000e+01, %226
%228 = load double, double* %5
%229 = call double @llvm.fmuladd.f64(double %227, double %228, double 8.400000e+01)
%230 = load double, double* %4
%231 = call i32 @pow(double %230, double 2.000000e+00)
%232 = sitofp i32 %231 to double
%233 = fmul double 1.800000e+01, %232
%234 = load double, double* %5
%235 = call i32 @pow(double %234, double 2.000000e+00)
%236 = sitofp i32 %235 to double
%237 = call double @llvm.fmuladd.f64(double %233, double %236, double %229)
%238 = load double, double* %4
%239 = call i32 @pow(double %238, double 3.000000e+00)
%240 = sitofp i32 %239 to double
%241 = fmul double 2.000000e+00, %240
%242 = load double, double* %5
%243 = call i32 @pow(double %242, double 3.000000e+00)
%244 = sitofp i32 %243 to double
%245 = call double @llvm.fmuladd.f64(double %241, double %244, double %237)
%246 = fneg double %225
%247 = call double @llvm.fmuladd.f64(double %246, double %245, double %222)
%248 = fneg double %139
%249 = call double @llvm.fmuladd.f64(double %248, double %247, double %130)
%250 = load double, double* %4
%251 = fmul double 2.000000e+00, %250
%252 = load double, double* %6
%253 = load double, double* %5
%254 = fadd double %252, %253
%255 = fmul double %251, %254
%256 = call i32 @pow(double 0x4005BF0A8B145769, double %255)
%257 = sitofp i32 %256 to double
%258 = fmul double 6.000000e+00, %257
%259 = load double, double* %4
%260 = fmul double %258, %259
%261 = load double, double* %6
%262 = call i32 @pow(double %261, double 2.000000e+00)
%263 = load double, double* %5
%264 = call i32 @pow(double %263, double 2.000000e+00)
%265 = sub nsw i32 %262, %264
%266 = sitofp i32 %265 to double
%267 = call i32 @pow(double %266, double 5.000000e+00)
%268 = sitofp i32 %267 to double
%269 = fmul double %260, %268
%270 = fdiv double %249, %269
store double %270, double* %7
br label %271
271: ; preds = %70, %11
%272 = load double, double* %7
ret double %272
}

LLVM IR (-O2):
define double @Slater_1S_2S(double %0, double %1, double %2) {
%4 = fcmp oeq double %2, %1
%5 = fmul double %0, 2.000000e+00
br i1 %4, label %6, label %42
6: ; preds = %3
%7 = fmul double %5, %2
%8 = tail call i32 @pow(double 0x4005BF0A8B145769, double %7)
%9 = sitofp i32 %8 to double
%10 = tail call double @llvm.fmuladd.f64(double %9, double 2.400000e+02, double -2.400000e+02)
%11 = fmul double %0, -3.750000e+02
%12 = tail call double @llvm.fmuladd.f64(double %11, double %2, double %10)
%13 = tail call i32 @pow(double %0, double 2.000000e+00)
%14 = sitofp i32 %13 to double
%15 = tail call i32 @pow(double %2, double 2.000000e+00)
%16 = sitofp i32 %15 to double
%17 = fmul double %14, -2.700000e+02
%18 = tail call double @llvm.fmuladd.f64(double %17, double %16, double %12)
%19 = tail call i32 @pow(double %0, double 3.000000e+00)
%20 = sitofp i32 %19 to double
%21 = tail call i32 @pow(double %2, double 3.000000e+00)
%22 = sitofp i32 %21 to double
%23 = fmul double %20, -1.150000e+02
%24 = tail call double @llvm.fmuladd.f64(double %23, double %22, double %18)
%25 = tail call i32 @pow(double %0, double 4.000000e+00)
%26 = sitofp i32 %25 to double
%27 = tail call i32 @pow(double %2, double 4.000000e+00)
%28 = sitofp i32 %27 to double
%29 = fmul double %26, -3.000000e+01
%30 = tail call double @llvm.fmuladd.f64(double %29, double %28, double %24)
%31 = tail call i32 @pow(double %0, double 5.000000e+00)
%32 = sitofp i32 %31 to double
%33 = tail call i32 @pow(double %2, double 5.000000e+00)
%34 = sitofp i32 %33 to double
%35 = fmul double %32, -4.000000e+00
%36 = tail call double @llvm.fmuladd.f64(double %35, double %34, double %30)
%37 = tail call i32 @pow(double 0x4005BF0A8B145769, double %7)
%38 = sitofp i32 %37 to double
%39 = fmul double %38, 2.400000e+02
%40 = fmul double %39, %0
%41 = fdiv double %36, %40
br label %179
42: ; preds = %3
%43 = fadd double %1, %2
%44 = fmul double %5, %43
%45 = tail call i32 @pow(double 0x4005BF0A8B145769, double %44)
%46 = sitofp i32 %45 to double
%47 = fmul double %46, 6.000000e+00
%48 = tail call i32 @pow(double %2, double 2.000000e+00)
%49 = tail call i32 @pow(double %1, double 2.000000e+00)
%50 = sub nsw i32 %48, %49
%51 = sitofp i32 %50 to double
%52 = tail call i32 @pow(double %51, double 5.000000e+00)
%53 = sitofp i32 %52 to double
%54 = fmul double %5, %1
%55 = tail call i32 @pow(double 0x4005BF0A8B145769, double %54)
%56 = sitofp i32 %55 to double
%57 = fmul double %56, 6.000000e+00
%58 = tail call i32 @pow(double %1, double 6.000000e+00)
%59 = sitofp i32 %58 to double
%60 = fmul double %57, %59
%61 = tail call i32 @pow(double %2, double 4.000000e+00)
%62 = sitofp i32 %61 to double
%63 = tail call i32 @pow(double %2, double 5.000000e+00)
%64 = sitofp i32 %63 to double
%65 = fneg double %64
%66 = fmul double %65, %0
%67 = tail call double @llvm.fmuladd.f64(double %62, double -4.000000e+00, double %66)
%68 = tail call i32 @pow(double %2, double 2.000000e+00)
%69 = sitofp i32 %68 to double
%70 = tail call i32 @pow(double %1, double 2.000000e+00)
%71 = sitofp i32 %70 to double
%72 = fmul double %69, -5.000000e+00
%73 = tail call double @llvm.fmuladd.f64(double %72, double %71, double %67)
%74 = tail call i32 @pow(double %1, double 4.000000e+00)
%75 = sitofp i32 %74 to double
%76 = fadd double %73, %75
%77 = fmul double %0, %2
%78 = tail call i32 @pow(double %1, double 4.000000e+00)
%79 = sitofp i32 %78 to double
%80 = tail call double @llvm.fmuladd.f64(double %77, double %79, double %76)
%81 = fmul double %60, %80
%82 = tail call double @llvm.fmuladd.f64(double %47, double %53, double %81)
%83 = fmul double %5, %2
%84 = tail call i32 @pow(double 0x4005BF0A8B145769, double %83)
%85 = tail call i32 @pow(double %2, double 4.000000e+00)
%86 = mul nsw i32 %85, %84
%87 = sitofp i32 %86 to double
%88 = tail call i32 @pow(double %2, double 6.000000e+00)
%89 = sitofp i32 %88 to double
%90 = fmul double %0, 9.000000e+00
%91 = tail call double @llvm.fmuladd.f64(double %90, double %1, double 6.000000e+00)
%92 = tail call i32 @pow(double %0, double 2.000000e+00)
%93 = sitofp i32 %92 to double
%94 = fmul double %93, 6.000000e+00
%95 = tail call i32 @pow(double %1, double 2.000000e+00)
%96 = sitofp i32 %95 to double
%97 = tail call double @llvm.fmuladd.f64(double %94, double %96, double %91)
%98 = tail call i32 @pow(double %0, double 3.000000e+00)
%99 = sitofp i32 %98 to double
%100 = fmul double %99, 2.000000e+00
%101 = tail call i32 @pow(double %1, double 3.000000e+00)
%102 = sitofp i32 %101 to double
%103 = tail call double @llvm.fmuladd.f64(double %100, double %102, double %97)
%104 = tail call i32 @pow(double %2, double 4.000000e+00)
%105 = sitofp i32 %104 to double
%106 = tail call i32 @pow(double %1, double 2.000000e+00)
%107 = sitofp i32 %106 to double
%108 = fmul double %0, 1.500000e+01
%109 = tail call double @llvm.fmuladd.f64(double %108, double %1, double 1.000000e+01)
%110 = tail call i32 @pow(double %0, double 2.000000e+00)
%111 = sitofp i32 %110 to double
%112 = fmul double %111, 1.000000e+01
%113 = tail call i32 @pow(double %1, double 2.000000e+00)
%114 = sitofp i32 %113 to double
%115 = tail call double @llvm.fmuladd.f64(double %112, double %114, double %109)
%116 = tail call i32 @pow(double %0, double 3.000000e+00)
%117 = sitofp i32 %116 to double
%118 = fmul double %117, 2.000000e+00
%119 = tail call i32 @pow(double %1, double 3.000000e+00)
%120 = sitofp i32 %119 to double
%121 = tail call double @llvm.fmuladd.f64(double %118, double %120, double %115)
%122 = fmul double %105, -3.000000e+00
%123 = fmul double %122, %107
%124 = fmul double %123, %121
%125 = tail call double @llvm.fmuladd.f64(double %89, double %103, double %124)
%126 = tail call i32 @pow(double %2, double 2.000000e+00)
%127 = sitofp i32 %126 to double
%128 = fmul double %127, 3.000000e+00
%129 = tail call i32 @pow(double %1, double 4.000000e+00)
%130 = sitofp i32 %129 to double
%131 = fmul double %128, %130
%132 = fmul double %0, 3.300000e+01
%133 = tail call double @llvm.fmuladd.f64(double %132, double %1, double 2.000000e+01)
%134 = tail call i32 @pow(double %0, double 2.000000e+00)
%135 = sitofp i32 %134 to double
%136 = fmul double %135, 1.400000e+01
%137 = tail call i32 @pow(double %1, double 2.000000e+00)
%138 = sitofp i32 %137 to double
%139 = tail call double @llvm.fmuladd.f64(double %136, double %138, double %133)
%140 = tail call i32 @pow(double %0, double 3.000000e+00)
%141 = sitofp i32 %140 to double
%142 = fmul double %141, 2.000000e+00
%143 = tail call i32 @pow(double %1, double 3.000000e+00)
%144 = sitofp i32 %143 to double
%145 = tail call double @llvm.fmuladd.f64(double %142, double %144, double %139)
%146 = tail call double @llvm.fmuladd.f64(double %131, double %145, double %125)
%147 = tail call i32 @pow(double %1, double 6.000000e+00)
%148 = sitofp i32 %147 to double
%149 = fmul double %0, 6.300000e+01
%150 = tail call double @llvm.fmuladd.f64(double %149, double %1, double 8.400000e+01)
%151 = tail call i32 @pow(double %0, double 2.000000e+00)
%152 = sitofp i32 %151 to double
%153 = fmul double %152, 1.800000e+01
%154 = tail call i32 @pow(double %1, double 2.000000e+00)
%155 = sitofp i32 %154 to double
%156 = tail call double @llvm.fmuladd.f64(double %153, double %155, double %150)
%157 = tail call i32 @pow(double %0, double 3.000000e+00)
%158 = sitofp i32 %157 to double
%159 = fmul double %158, 2.000000e+00
%160 = tail call i32 @pow(double %1, double 3.000000e+00)
%161 = sitofp i32 %160 to double
%162 = tail call double @llvm.fmuladd.f64(double %159, double %161, double %156)
%163 = fneg double %148
%164 = tail call double @llvm.fmuladd.f64(double %163, double %162, double %146)
%165 = fneg double %87
%166 = tail call double @llvm.fmuladd.f64(double %165, double %164, double %82)
%167 = tail call i32 @pow(double 0x4005BF0A8B145769, double %44)
%168 = sitofp i32 %167 to double
%169 = fmul double %168, 6.000000e+00
%170 = fmul double %169, %0
%171 = tail call i32 @pow(double %2, double 2.000000e+00)
%172 = tail call i32 @pow(double %1, double 2.000000e+00)
%173 = sub nsw i32 %171, %172
%174 = sitofp i32 %173 to double
%175 = tail call i32 @pow(double %174, double 5.000000e+00)
%176 = sitofp i32 %175 to double
%177 = fmul double %170, %176
%178 = fdiv double %166, %177
br label %179
179: ; preds = %42, %6
%180 = phi double [ %41, %6 ], [ %178, %42 ]
ret double %180
}