// File: /workspace/github_c_makefile_star2_O3/olcaytaner[P]Isell/distributions.c
// Function: f_distribution
double f_distribution(double F,int freedom1,int freedom2)
{/*Finds the probability*/
 int i, j;
 int a, b;
 double  w, y, z, d, p;
 if (F < F_EPSILON || freedom1 < 1 || freedom2 < 1)
   return (1.0);
 if (freedom1%2)
   a=1;
 else
   a=2;
 if (freedom2%2)
   b=1;
 else
   b=2;
 w = (F * freedom1) / freedom2;
 z = 1.0 / (1.0 + w);
 if (a == 1)
   if (b == 1)
    {
     p = sqrt (w);
     y = I_PI; /* 1 / 3.14159 */
     d = y * z / p;
     p = 2.0 * y * atan (p);
    }
   else
    {
     p = sqrt (w * z);
     d = 0.5 * p * z / w;
    }
 else
   if (b == 1)
    {
     p = sqrt (z);
     d = 0.5 * z * p;
     p = 1.0 - p;
    }
   else
    {
     d = z * z;
     p = w * z;
    }
 y = 2.0 * w / z;
 for (j = b + 2; j <= freedom2; j += 2)
  {
   d *= (1.0 + a / (j - 2.0)) * z;
   if (a==1)
     p = p + d * y / (j - 1.0);
   else
     p = (p + w) * z;
  }
 y = w * z;
 z = 2.0 / z;
 b = freedom2 - 2;
 for (i = a + 2; i <= freedom1; i += 2)
  {
   j = i + b;
   d *= y * j / (i - 2.0);
   p -= z * d / j;
  }
 if (p < 0.0)
   p = 0.0;
 else
   if (p > 1.0)
     p = 1.0;
 return (1.0-p);
}

// Assembly:
movsd 0x879cb(%rip), %xmm1    # 0xa7bc0
ucomisd %xmm0, %xmm1
seta %al
testl %edi, %edi
setle %cl
testl %esi, %esi
setle %dl
orb %cl, %dl
orb %al, %dl
je 0x20219
movsd 0x8530c(%rip), %xmm5    # 0xa5520
jmp 0x204c6
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movl %esi, %ebx
movl %edi, %ebp
movl %edi, %r12d
andl $0x1, %r12d
movl $0x2, %r14d
movl %esi, %eax
andl $0x1, %eax
movl $0x4, %r15d
subl %eax, %r15d
cvtsi2sd %edi, %xmm6
xorps %xmm1, %xmm1
cvtsi2sd %esi, %xmm1
mulsd %xmm0, %xmm6
divsd %xmm1, %xmm6
movsd 0x852c1(%rip), %xmm5    # 0xa5520
movapd %xmm6, %xmm0
addsd %xmm5, %xmm0
movapd %xmm5, %xmm7
divsd %xmm0, %xmm7
testl %r12d, %r12d
jne 0x20290
testb $0x1, %bl
jne 0x202ad
movapd %xmm7, %xmm8
mulsd %xmm7, %xmm8
movapd %xmm6, %xmm0
mulsd %xmm7, %xmm0
jmp 0x203c6
testb $0x1, %bl
jne 0x202c3
movapd %xmm6, %xmm0
mulsd %xmm7, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x202e9
sqrtsd %xmm0, %xmm0
jmp 0x2030e
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm7
jb 0x2032b
xorps %xmm1, %xmm1
sqrtsd %xmm7, %xmm1
jmp 0x20358
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm6
movsd %xmm6, 0x10(%rsp)
movsd %xmm7, 0x8(%rsp)
jb 0x20379
xorps %xmm0, %xmm0
sqrtsd %xmm6, %xmm0
jmp 0x20388
movsd %xmm6, 0x10(%rsp)
movsd %xmm7, 0x8(%rsp)
callq 0x4300
movsd 0x8(%rsp), %xmm7
movsd 0x10(%rsp), %xmm6
movsd 0x85212(%rip), %xmm5    # 0xa5520
movsd 0x85a01(%rip), %xmm8    # 0xa5d18
mulsd %xmm0, %xmm8
mulsd %xmm7, %xmm8
divsd %xmm6, %xmm8
jmp 0x203c6
movapd %xmm7, %xmm0
movsd %xmm6, 0x10(%rsp)
movsd %xmm7, 0x8(%rsp)
callq 0x4300
movsd 0x8(%rsp), %xmm7
movsd 0x10(%rsp), %xmm6
movsd 0x851cc(%rip), %xmm5    # 0xa5520
movapd %xmm0, %xmm1
movsd 0x859b7(%rip), %xmm8    # 0xa5d18
mulsd %xmm7, %xmm8
mulsd %xmm1, %xmm8
movsd 0x851ad(%rip), %xmm0    # 0xa5520
subsd %xmm1, %xmm0
jmp 0x203c6
movapd %xmm6, %xmm0
callq 0x4300
movsd 0x8(%rsp), %xmm7
movsd 0x87838(%rip), %xmm1    # 0xa7bc8
mulsd %xmm7, %xmm1
divsd %xmm0, %xmm1
movsd %xmm1, 0x18(%rsp)
callq 0x4180
movsd 0x18(%rsp), %xmm8
movsd 0x8(%rsp), %xmm7
mulsd 0x87818(%rip), %xmm0    # 0xa7bd0
movsd 0x85160(%rip), %xmm5    # 0xa5520
movsd 0x10(%rsp), %xmm6
subl %r12d, %r14d
cmpl %ebx, %r15d
ja 0x2043d
movapd %xmm6, %xmm1
addsd %xmm6, %xmm1
divsd %xmm7, %xmm1
cvtsi2sd %r14d, %xmm2
movapd %xmm8, %xmm3
leal -0x2(%r15), %eax
xorps %xmm4, %xmm4
cvtsi2sd %eax, %xmm4
movapd %xmm2, %xmm8
divsd %xmm4, %xmm8
addsd %xmm5, %xmm8
mulsd %xmm7, %xmm8
mulsd %xmm3, %xmm8
testb $0x1, %bpl
jne 0x20418
addsd %xmm6, %xmm0
mulsd %xmm7, %xmm0
jmp 0x20434
movapd %xmm1, %xmm3
mulsd %xmm8, %xmm3
leal -0x1(%r15), %eax
xorps %xmm4, %xmm4
cvtsi2sd %eax, %xmm4
divsd %xmm4, %xmm3
addsd %xmm3, %xmm0
addl $0x2, %r15d
cmpl %ebx, %r15d
jle 0x203df
leal 0x2(%r14), %eax
cmpl %ebp, %eax
jg 0x2049a
mulsd %xmm7, %xmm6
movsd 0x85bef(%rip), %xmm1    # 0xa6040
divsd %xmm7, %xmm1
leal (%rbx,%r14), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movapd %xmm6, %xmm3
mulsd %xmm2, %xmm3
xorps %xmm4, %xmm4
cvtsi2sd %r14d, %xmm4
divsd %xmm4, %xmm3
mulsd %xmm3, %xmm8
movapd %xmm1, %xmm3
mulsd %xmm8, %xmm3
divsd %xmm2, %xmm3
subsd %xmm3, %xmm0
leal 0x2(%r14), %eax
addl $0x4, %r14d
cmpl %ebp, %r14d
movl %eax, %r14d
jle 0x20455
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x204b6
ucomisd 0x85074(%rip), %xmm0    # 0xa5520
movapd %xmm0, %xmm1
jbe 0x204b6
movapd %xmm5, %xmm1
subsd %xmm1, %xmm5
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
movapd %xmm5, %xmm0
retq