// File: /workspace/github_c_makefile_star2_O3/olcaytaner[P]Isell/algorithm.c
// Function: is_cvdata_needed
int is_cvdata_needed(int algorithm)
{
 /*!Last Changed 16.08.2007*/
 /*!Last Changed 04.03.2006*/
 switch (algorithm)
  {
   case C45          :
   case LDT          :
   case MULTILDT     :if (in_list(get_parameter_l("prunetype"), 2, MODELSELECTIONPRUNING, VALIDATIONPRUNING))
                        return YES;
                      else
                        if (get_parameter_l("prunetype") == PREPRUNING && get_parameter_o("hyperparametertune") == ON)
                          return YES;
                        else
                          return NO;
                      break;
   case KTREE        :if (in_list(get_parameter_l("prunetype"), 2, MODELSELECTIONPRUNING, VALIDATIONPRUNING))
                        return YES;
                      else
                        return NO;
   case RANDOMFOREST :
   case KFOREST      :if (get_parameter_o("hyperparametertune") == ON)
                        return YES;
                      else
                        return NO;
   case SVMTREE      :if (in_list(get_parameter_l("prunetype"), 2, MODELSELECTIONPRUNING, VALIDATIONPRUNING))
                        return YES;
                      else
                        return NO;
                      break;
   case NBTREE       :if (in_list(get_parameter_l("prunetype"), 3, PREPRUNING, VALIDATIONPRUNING, MODELSELECTIONPRUNING))
                        return YES;
                      else
                        return NO;
                      break;
   case MULTIRIPPER  :if ((get_parameter_i("optimizecount") > 0) || (get_parameter_o("hyperparametertune") == ON))
                        return YES;
                      else
                        return NO;
                      break;
   case HYBRIDRIPPER :if ((get_parameter_i("optimizecount") > 0 && get_parameter_l("modelselectionmethod") == 0) || (get_parameter_o("hyperparametertune") == ON))
                        return YES;
                      else
                        return NO;
                      break;
   case HMM          :if (get_parameter_l("hmmlearningtype") != LEARNING_FIXED)
                        return YES;
                      else
                        return NO;
   case SVMREGTREE   :
   case REGTREE      :
   case OMNILDT      :
   case REGRULE      :if (get_parameter_l("prunetype") == VALIDATIONPRUNING || (get_parameter_l("prunetype") == MODELSELECTIONPRUNING && get_parameter_l("modelselectionmethod") == 0))
                        return YES;
                      else
                        return NO;
                      break;
   case SVM          :
   case SIMPLEXSVM   :
   case SVMREG       :
   case SIMPLEXSVMREG:
   case KNN          :
   case KNNREG       :
   case LOGISTIC     :if (get_parameter_o("hyperparametertune") == ON)
                        return YES;
                      else 
                        return NO;
                      break;
  }
 return cvdata_needed(algorithm);
}

// Assembly:
pushq %rbx
leal -0x3e9(%rdi), %eax
cmpl $0x23, %eax
ja 0x59ce
leaq 0x9f9c6(%rip), %rcx     # 0xa5334
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x9fdb4(%rip), %rdi     # 0xa5732
callq 0x54afc
movl $0x1, %ebx
movl %eax, %edi
movl $0x2, %esi
movl $0x2, %edx
movl $0x1, %ecx
xorl %eax, %eax
callq 0x3aa8c
testl %eax, %eax
jne 0x5b33
leaq 0x9fd83(%rip), %rdi     # 0xa5732
callq 0x54afc
testl %eax, %eax
jne 0x5a34
leaq 0x9fdf6(%rip), %rdi     # 0xa57b5
callq 0x54bec
cmpl $0x1, %eax
jne 0x5a34
jmp 0x5b33
leal -0x7d1(%rdi), %eax
cmpl $0xc, %eax
ja 0x5a64
movl $0x181, %ecx            # imm = 0x181
btl %eax, %ecx
jb 0x5aef
movl $0x1042, %ecx           # imm = 0x1042
btl %eax, %ecx
jae 0x5a64
leaq 0x9fd36(%rip), %rdi     # 0xa5732
callq 0x54afc
movl $0x1, %ebx
cmpl $0x1, %eax
je 0x5b33
leaq 0x9fd1c(%rip), %rdi     # 0xa5732
callq 0x54afc
cmpl $0x2, %eax
jne 0x5a34
leaq 0x9fdaf(%rip), %rdi     # 0xa57d6
callq 0x54afc
testl %eax, %eax
je 0x5b33
xorl %ebx, %ebx
jmp 0x5b33
leaq 0x9fcf0(%rip), %rdi     # 0xa5732
callq 0x54afc
movl %eax, %edi
movl $0x2, %esi
movl $0x2, %edx
movl $0x1, %ecx
xorl %eax, %eax
callq 0x3aa8c
jmp 0x5b2c
leal -0x3e8(%rdi), %eax
addl $0xfffff830, %edi       # imm = 0xFFFFF830
cmpl $0x29, %eax
leaq (%rax,%rax,4), %rax
leaq 0xce742(%rip), %rcx     # 0xd41c0
leaq (%rcx,%rax,8), %rax
movslq %edi, %rcx
leaq (%rcx,%rcx,4), %rcx
leaq 0xceda0(%rip), %rdx     # 0xd4830
leaq (%rdx,%rcx,8), %rcx
cmovbq %rax, %rcx
movl 0x20(%rcx), %ebx
jmp 0x5b33
leaq 0x9fd44(%rip), %rdi     # 0xa57eb
callq 0x54afc
xorl %ebx, %ebx
cmpl $0x2, %eax
jmp 0x5b30
leaq 0x9fd0e(%rip), %rdi     # 0xa57c8
callq 0x54920
testl %eax, %eax
jle 0x5aef
leaq 0x9fd0c(%rip), %rdi     # 0xa57d6
callq 0x54afc
testl %eax, %eax
jne 0x5aef
movl $0x1, %ebx
jmp 0x5b33
leaq 0x9fce7(%rip), %rdi     # 0xa57c8
callq 0x54920
movl $0x1, %ebx
testl %eax, %eax
jg 0x5b33
leaq 0x9fcbf(%rip), %rdi     # 0xa57b5
callq 0x54bec
xorl %ebx, %ebx
cmpl $0x1, %eax
sete %bl
jmp 0x5b33
leaq 0x9fc26(%rip), %rdi     # 0xa5732
callq 0x54afc
movl %eax, %edi
movl $0x3, %esi
xorl %edx, %edx
movl $0x1, %ecx
movl $0x2, %r8d
xorl %eax, %eax
callq 0x3aa8c
xorl %ebx, %ebx
testl %eax, %eax
setne %bl
movl %ebx, %eax
popq %rbx
retq