// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/algorithm.c
// Function: generate_test_code
void generate_test_code(FILE* testcodefile, int algorithm, void* model, void* parameters, int language, Datasetptr current_dataset)
{
 /*!Last Changed 21.08.2007 added RBF and RBFREG*/
 /*!Last Changed 07.08.2007 added QDACLASS*/
 /*!Last Changed 15.05.2006*/
 indentation = 0;
 switch (algorithm)
  {
   case SELECTMAX    :generate_test_code_selectmax(testcodefile, language, current_dataset, (Model_selectmaxptr) model);
                      break;
   case ONEFEATURE   :generate_test_code_onefeature(testcodefile, language, current_dataset, (Model_onefeatureptr) model);
                      break;
   case SELECTAVERAGE:generate_test_code_selectaverage(testcodefile, language, current_dataset, (double*) model);
                      break;
   case GAUSSIAN     :generate_test_code_gaussian(testcodefile, language, current_dataset, (Model_gaussianptr) model);
                      break;
   case NEARESTMEAN  :generate_test_code_nearestmean(testcodefile, language, current_dataset, (Instanceptr) model);
                      break;
   case LINEARREG    :generate_test_code_linearreg(testcodefile, language, current_dataset, (Model_linearregressionptr) model);
                      break;                      
   case QUANTIZEREG  :generate_test_code_quantizereg(testcodefile, language, current_dataset, (Model_quantizeregptr) model);
                      break;                      
   case KNN          :generate_test_code_knn(testcodefile, language, current_dataset, ((Knn_parameterptr) parameters)->nearcount, (Instanceptr) model);
                      break;
   case KNNREG       :generate_test_code_knnreg(testcodefile, language, current_dataset, ((Knn_parameterptr) parameters)->nearcount, (Instanceptr) model);
                      break;
   case C45          :generate_test_code_c45(testcodefile, language, current_dataset, (Decisionnodeptr) model);
                      break;
   case LDT          :generate_test_code_ldt(testcodefile, language, current_dataset, (Decisionnodeptr) model);
                      break;
   case SVMTREE      :generate_test_code_svmtree(testcodefile, language, current_dataset, (Decisionnodeptr) model);
                      break;
   case SVMREGTREE   :
   case REGTREE      :generate_test_code_regtree(testcodefile, language, current_dataset, (Regressionnodeptr) model);
                      break;
   case IREP         :generate_test_code_ripper(testcodefile, language, current_dataset, "Irep", (Rulesetptr) model);
                      break;
   case IREP2        :generate_test_code_ripper(testcodefile, language, current_dataset, "Irep2", (Rulesetptr) model);
                      break;
   case RIPPER       :generate_test_code_ripper(testcodefile, language, current_dataset, "Ripper", (Rulesetptr) model);
                      break;
   case CN2          :generate_test_code_ripper(testcodefile, language, current_dataset, "Cn2", (Rulesetptr) model);
                      break;
   case LERILS       :generate_test_code_ripper(testcodefile, language, current_dataset, "Lerils", (Rulesetptr) model);
                      break;
   case PART         :generate_test_code_ripper(testcodefile, language, current_dataset, "Part", (Rulesetptr) model);
                      break;
   case RISE         :generate_test_code_rise(testcodefile, language, current_dataset, (Rulesetptr) model);
                      break;
   case MULTIRIPPER  :generate_test_code_multiripper(testcodefile, language, current_dataset, "Multiripper", (Rulesetptr) model);
                      break;
   case C45RULES     :generate_test_code_c45rules(testcodefile, language, current_dataset, (Rulesetptr) model);
                      break;
   case LDACLASS     :generate_test_code_ldaclass(testcodefile, language, current_dataset, (Model_ldaclassptr) model);
                      break;
   case NAIVEBAYES   :generate_test_code_naivebayes(testcodefile, language, current_dataset, (Model_naivebayesptr) model);
                      break;
   case QDACLASS     :generate_test_code_qdaclass(testcodefile, language, current_dataset, (Model_qdaclassptr) model);
                      break;
   case LOGISTIC     :generate_test_code_logistic(testcodefile, language, current_dataset, (double**) model);
                      break;
   case RBF          :generate_test_code_rbf(testcodefile, language, current_dataset, (Rbfnetworkptr) model);
                      break;
   case RBFREG       :generate_test_code_rbfreg(testcodefile, language, current_dataset, (Rbfnetworkptr) model);
                      break;
   case MLPGENERIC   :
   case DNC          :generate_test_code_mlpgeneric(testcodefile, language, current_dataset, (Mlpnetworkptr) model);
                      break;
   case MLPGENERICREG:
   case DNCREG       :generate_test_code_mlpgenericreg(testcodefile, language, current_dataset, (Mlpnetworkptr) model);
                      break;
   case MULTILDT     :generate_test_code_multildt(testcodefile, language, current_dataset, (Decisionnodeptr) model, "multildt");
                      break;
   case NBTREE       :generate_test_code_multildt(testcodefile, language, current_dataset, (Decisionnodeptr) model, "nodeboundedtree");
                      break;
   case SVM          :generate_test_code_svm(testcodefile, language, current_dataset, "Svm", (Svm_modelptr) model);
                      break;
   case SVMREG       :generate_test_code_svmreg(testcodefile, language, current_dataset, "Svmreg", (Svm_modelptr) model);
                      break;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq %r9, -0x30(%rbp)
leaq 0x3dcdc2(%rip), %rax    # 0x3e21b8
movl $0x0, (%rax)
movl -0xc(%rbp), %eax
movl %eax, -0x34(%rbp)
subl $0x3e8, %eax            # imm = 0x3E8
je 0x5652
jmp 0x540f
movl -0x34(%rbp), %eax
subl $0x3e9, %eax            # imm = 0x3E9
je 0x5701
jmp 0x541f
movl -0x34(%rbp), %eax
subl $0x3ea, %eax            # imm = 0x3EA
je 0x573f
jmp 0x542f
movl -0x34(%rbp), %eax
subl $0x3eb, %eax            # imm = 0x3EB
je 0x56b6
jmp 0x543f
movl -0x34(%rbp), %eax
subl $0x3ec, %eax            # imm = 0x3EC
je 0x58b5
jmp 0x544f
movl -0x34(%rbp), %eax
subl $0x3ed, %eax            # imm = 0x3ED
je 0x5758
jmp 0x545f
movl -0x34(%rbp), %eax
subl $0x3ee, %eax            # imm = 0x3EE
je 0x57a3
jmp 0x546f
movl -0x34(%rbp), %eax
subl $0x3ef, %eax            # imm = 0x3EF
je 0x57c3
jmp 0x547f
movl -0x34(%rbp), %eax
subl $0x3f0, %eax            # imm = 0x3F0
je 0x57e3
jmp 0x548f
movl -0x34(%rbp), %eax
subl $0x3f1, %eax            # imm = 0x3F1
je 0x589c
jmp 0x549f
movl -0x34(%rbp), %eax
subl $0x3f2, %eax            # imm = 0x3F2
je 0x587c
jmp 0x54af
movl -0x34(%rbp), %eax
subl $0x3f4, %eax            # imm = 0x3F4
je 0x594b
jmp 0x54bf
movl -0x34(%rbp), %eax
subl $0x3f6, %eax            # imm = 0x3F6
je 0x597a
jmp 0x54cf
movl -0x34(%rbp), %eax
subl $0x3f8, %eax            # imm = 0x3F8
je 0x5900
jmp 0x54df
movl -0x34(%rbp), %eax
subl $0x3f9, %eax            # imm = 0x3F9
je 0x59b4
jmp 0x54ef
movl -0x34(%rbp), %eax
subl $0x3fb, %eax            # imm = 0x3FB
je 0x5771
jmp 0x54ff
movl -0x34(%rbp), %eax
subl $0x3fc, %eax            # imm = 0x3FC
je 0x569d
jmp 0x550f
movl -0x34(%rbp), %eax
subl $0x3fd, %eax            # imm = 0x3FD
je 0x5997
jmp 0x551f
movl -0x34(%rbp), %eax
subl $0x3ff, %eax            # imm = 0x3FF
je 0x594b
jmp 0x552f
movl -0x34(%rbp), %eax
subl $0x400, %eax            # imm = 0x400
je 0x58e7
jmp 0x553f
movl -0x34(%rbp), %eax
subl $0x401, %eax            # imm = 0x401
je 0x58ce
jmp 0x554f
movl -0x34(%rbp), %eax
subl $0x402, %eax            # imm = 0x402
je 0x5919
jmp 0x555f
movl -0x34(%rbp), %eax
subl $0x404, %eax            # imm = 0x404
je 0x5863
jmp 0x556f
movl -0x34(%rbp), %eax
subl $0x406, %eax            # imm = 0x406
je 0x5803
jmp 0x557f
movl -0x34(%rbp), %eax
subl $0x407, %eax            # imm = 0x407
je 0x5823
jmp 0x558f
movl -0x34(%rbp), %eax
subl $0x408, %eax            # imm = 0x408
je 0x5843
jmp 0x559f
movl -0x34(%rbp), %eax
subl $0x7d0, %eax            # imm = 0x7D0
je 0x566b
jmp 0x55af
movl -0x34(%rbp), %eax
subl $0x7d1, %eax            # imm = 0x7D1
je 0x5720
jmp 0x55bf
movl -0x34(%rbp), %eax
subl $0x7d2, %eax            # imm = 0x7D2
je 0x578a
jmp 0x55cf
movl -0x34(%rbp), %eax
subl $0x7d3, %eax            # imm = 0x7D3
je 0x5964
jmp 0x55df
movl -0x34(%rbp), %eax
subl $0x7d4, %eax            # imm = 0x7D4
je 0x5684
jmp 0x55ef
movl -0x34(%rbp), %eax
subl $0x7d5, %eax            # imm = 0x7D5
je 0x56cf
jmp 0x55ff
movl -0x34(%rbp), %eax
subl $0x7d6, %eax            # imm = 0x7D6
je 0x56e8
jmp 0x560f
movl -0x34(%rbp), %eax
subl $0x7d8, %eax            # imm = 0x7D8
je 0x59d1
jmp 0x561f
movl -0x34(%rbp), %eax
subl $0x7da, %eax            # imm = 0x7DA
je 0x5964
jmp 0x562f
movl -0x34(%rbp), %eax
subl $0x7db, %eax            # imm = 0x7DB
je 0x5932
jmp 0x563f
movl -0x34(%rbp), %eax
subl $0x7dd, %eax            # imm = 0x7DD
je 0x578a
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb3e20
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb3e90
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb3fa0
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb4010
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb4450
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb4690
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb48f0
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x18(%rbp), %r8
callq 0xb4e90
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x20(%rbp), %rax
movl (%rax), %ecx
movq -0x18(%rbp), %r8
callq 0xb5270
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb55d0
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb5650
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb5790
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb58d0
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdcb9e(%rip), %rcx     # 0xe2357
callq 0xb5a30
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdcb83(%rip), %rcx     # 0xe235c
callq 0xb5a30
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdcb69(%rip), %rcx     # 0xe2362
callq 0xb5a30
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdcb50(%rip), %rcx     # 0xe2369
callq 0xb5a30
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdcb34(%rip), %rcx     # 0xe236d
callq 0xb5a30
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdcb1b(%rip), %rcx     # 0xe2374
callq 0xb5a30
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb6040
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdcae7(%rip), %rcx     # 0xe2379
callq 0xb5b20
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb5d00
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb6240
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb6a00
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb6e10
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb66a0
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb7510
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb7b10
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb8050
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0xb8590
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
leaq 0xdc9f5(%rip), %r8      # 0xe2385
callq 0xb8a80
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %rcx
leaq 0xe0efc(%rip), %r8      # 0xe68a9
callq 0xb8a80
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdc9c4(%rip), %rcx     # 0xe238e
callq 0xb8bf0
jmp 0x59ec
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
movq -0x18(%rbp), %r8
leaq 0xdc9ab(%rip), %rcx     # 0xe2392
callq 0xb9760
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)