// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/srm.c
// Function: vc_estimates_for_a_design
Vcestimateptr vc_estimates_for_a_design(void* parameters, int nodecount, Datasetptr d, int experimentcount, double averagevaluecount)
{
 /*!Last Changed 06.11.2007 added preestimation value*/
 /*!Last Changed 01.10.2006*/
 /*!Last Changed 01.04.2006*/
 int multiplier, n, k, ncount;
 double p, epsilon;
 Vcestimateptr header = NULL;
 ((Nodeboundedtree_parameterptr) parameters)->nodecount = nodecount;
 if (in_list(get_parameter_l("modelselectionmethod"), 3, MODEL_SELECTION_UNI, MODEL_SELECTION_LIN, MODEL_SELECTION_QUA))
   if (((Nodeboundedtree_parameterptr) parameters)->usediscrete)
     multiplier = decisiontree_vc_dimension_preestimation_discrete(d, (int) (nodecount * log2(averagevaluecount)));
   else
     multiplier = decisiontree_vc_dimension_preestimation(d, nodecount, get_parameter_l("modelselectionmethod") - 5);
 else
   multiplier = decisiontree_vc_dimension_preestimation(d, nodecount, MODEL_QUA);
 for (p = 1.5; p <= 30; p += 1.5)
  {
   n = (int) (multiplier * p);
   for (k = 0; k < experimentcount; k++)
    {
     epsilon = vc_single_epsilon_estimate(parameters, d, n, &ncount);
     if (ncount == nodecount)
       add_single_epsilon_estimate(&header, n, epsilon);
    }
  }
 return header;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movsd %xmm0, -0x28(%rbp)
movq $0x0, -0x50(%rbp)
movl -0xc(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
leaq 0x210d8(%rip), %rdi     # 0xe24db
callq 0x792b0
movl %eax, %edi
movl $0x3, %esi
movl $0x5, %edx
movl $0x6, %ecx
movl $0x7, %r8d
movb $0x0, %al
callq 0x53e40
cmpl $0x0, %eax
je 0xc149f
movq -0x8(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0xc146f
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
cvtsi2sdl -0xc(%rbp), %xmm0
movsd %xmm0, -0x58(%rbp)
movsd -0x28(%rbp), %xmm0
callq 0x52ad0
movq -0x60(%rbp), %rdi
movaps %xmm0, %xmm1
movsd -0x58(%rbp), %xmm0
mulsd %xmm1, %xmm0
cvttsd2si %xmm0, %esi
callq 0xdfee0
movl %eax, -0x2c(%rbp)
jmp 0xc149d
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x21057(%rip), %rdi     # 0xe24db
callq 0x792b0
movq -0x70(%rbp), %rdi
movl -0x64(%rbp), %esi
movl %eax, %edx
subl $0x5, %edx
callq 0xdff80
movl %eax, -0x2c(%rbp)
jmp 0xc14b3
movq -0x18(%rbp), %rdi
movl -0xc(%rbp), %esi
movl $0x2, %edx
callq 0xdff80
movl %eax, -0x2c(%rbp)
movsd 0x215bd(%rip), %xmm0    # 0xe2a78
movsd %xmm0, -0x40(%rbp)
movsd 0x23478(%rip), %xmm0    # 0xe4940
ucomisd -0x40(%rbp), %xmm0
jb 0xc1547
cvtsi2sdl -0x2c(%rbp), %xmm0
mulsd -0x40(%rbp), %xmm0
cvttsd2si %xmm0, %eax
movl %eax, -0x30(%rbp)
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0xc152e
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl -0x30(%rbp), %edx
leaq -0x38(%rbp), %rcx
callq 0xc11d0
movsd %xmm0, -0x48(%rbp)
movl -0x38(%rbp), %eax
cmpl -0xc(%rbp), %eax
jne 0xc1521
movl -0x30(%rbp), %esi
movsd -0x48(%rbp), %xmm0
leaq -0x50(%rbp), %rdi
callq 0xc0ba0
jmp 0xc1523
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0xc14e7
jmp 0xc1530
movsd 0x21540(%rip), %xmm0    # 0xe2a78
addsd -0x40(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
jmp 0xc14c0
movq -0x50(%rbp), %rax
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)