// File: /workspace/github_c_makefile_star2_O2/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 0x5983
leaq 0x8fa07(%rip), %rcx     # 0x95334
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x8fdf5(%rip), %rdi     # 0x95732
callq 0x4cf11
pushq $0x2
popq %rdx
pushq $0x1
popq %rbx
movl %eax, %edi
movl %edx, %esi
movl %ebx, %ecx
xorl %eax, %eax
callq 0x35812
testl %eax, %eax
jne 0x5a98
leaq 0x8fdce(%rip), %rdi     # 0x95732
callq 0x4cf11
testl %eax, %eax
jne 0x59e3
leaq 0x8fe41(%rip), %rdi     # 0x957b5
callq 0x4cff1
cmpl $0x1, %eax
jne 0x59e3
jmp 0x5a98
leal -0x7d1(%rdi), %eax
cmpl $0xc, %eax
ja 0x5a0c
movl $0x181, %ecx            # imm = 0x181
btl %eax, %ecx
jb 0x5a45
movl $0x1042, %ecx           # imm = 0x1042
btl %eax, %ecx
jae 0x5a0c
leaq 0x8fd85(%rip), %rdi     # 0x95732
callq 0x4cf11
pushq $0x1
popq %rbx
cmpl $0x1, %eax
je 0x5a98
leaq 0x8fd6d(%rip), %rdi     # 0x95732
callq 0x4cf11
cmpl $0x2, %eax
jne 0x59e3
leaq 0x8fe00(%rip), %rdi     # 0x957d6
callq 0x4cf11
testl %eax, %eax
je 0x5a98
xorl %ebx, %ebx
jmp 0x5a98
leaq 0x8fd41(%rip), %rdi     # 0x95732
callq 0x4cf11
pushq $0x2
popq %rdx
pushq $0x1
popq %rcx
movl %eax, %edi
movl %edx, %esi
xorl %eax, %eax
callq 0x35812
jmp 0x5a91
popq %rbx
jmp 0x450c
leaq 0x8fdd2(%rip), %rdi     # 0x957eb
callq 0x4cf11
xorl %ebx, %ebx
cmpl $0x2, %eax
jmp 0x5a95
leaq 0x8fd9c(%rip), %rdi     # 0x957c8
callq 0x4cd35
testl %eax, %eax
jle 0x5a45
leaq 0x8fd9a(%rip), %rdi     # 0x957d6
callq 0x4cf11
testl %eax, %eax
je 0x5a6b
leaq 0x8fd69(%rip), %rdi     # 0x957b5
callq 0x4cff1
xorl %ebx, %ebx
cmpl $0x1, %eax
sete %bl
jmp 0x5a98
leaq 0x8fd66(%rip), %rdi     # 0x957c8
callq 0x4cd35
testl %eax, %eax
jle 0x5a45
pushq $0x1
popq %rbx
jmp 0x5a98
leaq 0x8fcbb(%rip), %rdi     # 0x95732
callq 0x4cf11
pushq $0x3
popq %rsi
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movl %eax, %edi
xorl %edx, %edx
xorl %eax, %eax
callq 0x35812
xorl %ebx, %ebx
testl %eax, %eax
setne %bl
movl %ebx, %eax
popq %rbx
retq