// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/statistics.c
// Function: all_pairwise_comparisons
Comparisonptr all_pairwise_comparisons(char** files, int filecount, int correctiontype, TEST_TYPE testtype)
{
 int i, j, compcount = 0, which;
 double confidence = get_parameter_f("confidencelevel"), conf;
 char **two_file;
 Comparisonptr comparisons;
 two_file = safemalloc(2 * sizeof(char *), "all_pairwise_comparisons", 3);
 comparisons = safemalloc(((filecount * (filecount - 1)) / 2) * sizeof(Comparison), "all_pairwise_comparisons", 5);
 for (i = 0; i < filecount; i++)
   for (j = i + 1; j < filecount; j++)
    {
     two_file[0] = strcopy(two_file[0], files[i]);
     two_file[1] = strcopy(two_file[1], files[j]);
     compare_two_files_using_test(testtype, two_file, &which, 1 - confidence, &conf);
     safe_free(two_file[0]);
     safe_free(two_file[1]);
     comparisons[compcount].alg1 = i;
     comparisons[compcount].alg2 = j;
     comparisons[compcount].confidence = 1 - conf;
     comparisons[compcount].accepted = 1;
     compcount++;
    }
 switch (correctiontype)
  {
   case BONFERRONI_CORRECTION:bonferroni_correction(comparisons, compcount, confidence);
                              break;
   case HOLM_CORRECTION      :holm_correction(comparisons, compcount, confidence);
                              break;
   case NO_CORRECTION        :no_correction(comparisons, compcount, confidence);
                              break;
  }
 safe_free(two_file);
 return comparisons;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl $0x0, -0x20(%rbp)
leaq 0x1f1ea(%rip), %rdi     # 0xe269d
callq 0x79040
movsd %xmm0, -0x30(%rbp)
movl $0x10, %edi
leaq 0x2a922(%rip), %rsi     # 0xeddeb
movl $0x3, %edx
callq 0x52d70
movq %rax, -0x40(%rbp)
movl -0xc(%rbp), %eax
movl -0xc(%rbp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
cltq
imulq $0x18, %rax, %rdi
leaq 0x2a8f3(%rip), %rsi     # 0xeddeb
movl $0x5, %edx
callq 0x52d70
movq %rax, -0x48(%rbp)
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0xc3635
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0xc3625
movq -0x40(%rbp), %rax
movq (%rax), %rdi
movq -0x8(%rbp), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x54ba0
movq %rax, %rcx
movq -0x40(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x8(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x54ba0
movq %rax, %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x8(%rax)
movl -0x14(%rbp), %edi
movq -0x40(%rbp), %rsi
movsd 0x1ea95(%rip), %xmm0    # 0xe2018
subsd -0x30(%rbp), %xmm0
leaq -0x24(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0xc2810
movq -0x40(%rbp), %rax
movq (%rax), %rdi
callq 0x52e80
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x52e80
movl -0x18(%rbp), %ecx
movq -0x48(%rbp), %rax
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movl -0x1c(%rbp), %ecx
movq -0x48(%rbp), %rax
movslq -0x20(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
movsd 0x1ea39(%rip), %xmm0    # 0xe2018
subsd -0x38(%rbp), %xmm0
movq -0x48(%rbp), %rax
movslq -0x20(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movsd %xmm0, 0x8(%rax)
movq -0x48(%rbp), %rax
movslq -0x20(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl $0x1, 0x10(%rax)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xc3522
jmp 0xc3627
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xc350d
movl -0x10(%rbp), %eax
movl %eax, -0x4c(%rbp)
testl %eax, %eax
je 0xc3655
jmp 0xc3641
movl -0x4c(%rbp), %eax
subl $0x1, %eax
je 0xc3668
jmp 0xc364b
movl -0x4c(%rbp), %eax
subl $0x2, %eax
je 0xc367b
jmp 0xc368c
movq -0x48(%rbp), %rdi
movl -0x20(%rbp), %esi
movsd -0x30(%rbp), %xmm0
callq 0xc30f0
jmp 0xc368c
movq -0x48(%rbp), %rdi
movl -0x20(%rbp), %esi
movsd -0x30(%rbp), %xmm0
callq 0xc3170
jmp 0xc368c
movq -0x48(%rbp), %rdi
movl -0x20(%rbp), %esi
movsd -0x30(%rbp), %xmm0
callq 0xc3080
movq -0x40(%rbp), %rdi
callq 0x52e80
movq -0x48(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nop