// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/plot.c
// Function: performance_plot
void performance_plot(char** names, int filecount, Performance_point (*calculate_performance)(int tp, int fp, int tn, int fn))
{
 int count = get_parameter_i("runcount") * get_parameter_i("foldcount"), i, j, k, number_of_points;
 matrixptr posteriors;
 Performance_pointptr points;
 Objectptr obj;
 char st[2];
 Point p1, p2, dummyp;
 st[1] = '\0';
 clear_image();
 for (i = 0; i < filecount; i++)
  {
   st[0] = '0';
   posteriors = read_posteriors(count, names[i]);
   for (j = 0; j < count; j++)
    {
     points = find_performance_points(posteriors[j], &number_of_points, 0, 1, calculate_performance);
     for (k = 0; k < number_of_points - 1; k++)
      {
       p1.x = points[k].x;
       p1.y = points[k].y;
       p2.x = points[k + 1].x;
       p2.y = points[k + 1].y;
       obj = add_object(OBJECT_LINE, p1, p2, dummyp, st);
       obj->fnt.fontcolor = i;
       if (get_parameter_o("displayequalloss") && points[k].equal_loss)
        {
         st[0] = plots[i];
         obj = add_object(OBJECT_STRING, p1, dummyp, dummyp, st);
         obj->fnt.fontcolor = i;
         obj->fnt.fontsize = 20;
        }
      }
     safe_free(points);
     matrix_free(posteriors[j]);
    }
   safe_free(posteriors);
  }
 img.xaxis.limitsset = 1;
 img.xaxis.lim.division = 10;
 img.xaxis.lim.min = 0.0;
 img.xaxis.lim.max = 1.0;
 img.xaxis.lim.precision = 1;
 img.yaxis.limitsset = 1;
 img.yaxis.lim.division = 10;
 img.yaxis.lim.min = 0.0;
 img.yaxis.lim.max = 1.0;
 img.yaxis.lim.precision = 1;
 export_image();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x683e0(%rip), %rdi     # 0xe775d
callq 0x78f10
movl %eax, -0x84(%rbp)
leaq 0x683d7(%rip), %rdi     # 0xe7766
callq 0x78f10
movl %eax, %ecx
movl -0x84(%rbp), %eax
imull %ecx, %eax
movl %eax, -0x1c(%rbp)
movb $0x0, -0x49(%rbp)
movb $0x0, %al
callq 0x41a40
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x7f5b4
movb $0x30, -0x4a(%rbp)
movl -0x1c(%rbp), %edi
movq -0x8(%rbp), %rax
movslq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0xb2a0
movq %rax, -0x38(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x7f59d
movq -0x38(%rbp), %rax
movslq -0x24(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq -0x18(%rbp), %r9
movq (%rax), %rdi
movq 0x8(%rax), %rsi
leaq -0x2c(%rbp), %rdx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0xc5270
movq %rax, -0x40(%rbp)
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl -0x2c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x7f56b
movq -0x40(%rbp), %rax
movslq -0x28(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x60(%rbp)
movq -0x40(%rbp), %rax
movslq -0x28(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x58(%rbp)
movq -0x40(%rbp), %rax
movl -0x28(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x70(%rbp)
movq -0x40(%rbp), %rax
movl -0x28(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x68(%rbp)
leaq -0x4a(%rbp), %rsi
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x70(%rbp), %xmm2
movsd -0x68(%rbp), %xmm3
movsd -0x80(%rbp), %xmm4
movsd -0x78(%rbp), %xmm5
xorl %edi, %edi
callq 0x3f100
movq %rax, -0x48(%rbp)
movl -0x20(%rbp), %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x18(%rax)
leaq 0x68290(%rip), %rdi     # 0xe7770
callq 0x79440
cmpl $0x0, %eax
je 0x7f55b
movq -0x40(%rbp), %rax
movslq -0x28(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpl $0x0, 0x10(%rax)
je 0x7f55b
movslq -0x20(%rbp), %rcx
leaq 0x85b26(%rip), %rax     # 0x105030
movb (%rax,%rcx), %al
movb %al, -0x4a(%rbp)
leaq -0x4a(%rbp), %rsi
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movsd -0x80(%rbp), %xmm2
movsd -0x78(%rbp), %xmm3
movsd -0x80(%rbp), %xmm4
movsd -0x78(%rbp), %xmm5
movl $0x1, %edi
callq 0x3f100
movq %rax, -0x48(%rbp)
movl -0x20(%rbp), %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x48(%rbp), %rax
movsd 0x6816a(%rip), %xmm0    # 0xe76c0
movsd %xmm0, 0x10(%rax)
jmp 0x7f55d
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x7f425
movq -0x40(%rbp), %rdi
callq 0x52e80
movq -0x38(%rbp), %rax
movslq -0x24(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
movq 0x8(%rax), %rsi
callq 0x59ea0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x7f3e3
movq -0x38(%rbp), %rdi
callq 0x52e80
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x7f3b4
leaq 0x362acd(%rip), %rax    # 0x3e2088
movl $0x1, 0x28(%rax)
leaq 0x362abf(%rip), %rax    # 0x3e2088
movl $0xa, 0x20(%rax)
leaq 0x362ab1(%rip), %rax    # 0x3e2088
xorps %xmm0, %xmm0
movsd %xmm0, 0x10(%rax)
leaq 0x362aa2(%rip), %rax    # 0x3e2088
movsd 0x62a2a(%rip), %xmm0    # 0xe2018
movsd %xmm0, 0x18(%rax)
leaq 0x362a8e(%rip), %rax    # 0x3e2088
movl $0x1, 0x24(%rax)
leaq 0x362a80(%rip), %rax    # 0x3e2088
movl $0x1, 0x98(%rax)
leaq 0x362a6f(%rip), %rax    # 0x3e2088
movl $0xa, 0x90(%rax)
leaq 0x362a5e(%rip), %rax    # 0x3e2088
xorps %xmm0, %xmm0
movsd %xmm0, 0x80(%rax)
leaq 0x362a4c(%rip), %rax    # 0x3e2088
movsd 0x629d4(%rip), %xmm0    # 0xe2018
movsd %xmm0, 0x88(%rax)
leaq 0x362a35(%rip), %rax    # 0x3e2088
movl $0x1, 0x94(%rax)
movb $0x0, %al
callq 0x42280
addq $0x90, %rsp
popq %rbp
retq
nopl (%rax)