// File: /workspace/github_c_makefile_star2_O1/olcaytaner[P]Isell/process.c
// Function: test_single
void test_single(void* model, void* parameters, int algorithm, FILE* posfile, Instanceptr means, Instanceptr variances)
{
 /*!Last Changed 20.12.2005*/
 int testsize = data_size(testdata);
 Instance dummy;
 totalrun++;
 if (get_parameter_o("normalizeoutput") && get_algorithm_type(algorithm) == REGRESSION)
   normalize_regression_values(testdata, outputmean, outputvariance);
 if (must_normalize(algorithm))
   pre_process_with_mean_and_variance(means[totalrun - 1], variances[totalrun - 1], testdata);
 else
   pre_process_with_mean_and_variance(dummy, dummy, testdata);
 test_algorithm(algorithm, model, parameters, testsize); 
 if (get_parameter_o("printposterior"))
  {
   fprintf(posfile, "####### CURRENT RUN COUNT %d\n", totalrun);
   testsize = data_size(testdata);
   print_posterior(posfile, ((Classificationresultptr) result)->posteriors, testsize, testdata);
  }
 if (get_algorithm_type(algorithm) == CLASSIFICATION)
  {
   print_classification_results(testdata, (Classificationresultptr) result, 0, get_parameter_o("printbinary"), OFF, get_parameter_o("accuracy"), get_parameter_o("displayclassresulton"));
   free_performance((Classificationresultptr) result);
  }
 else
  {
   print_regression_results(testdata, (Regressionresultptr) result, 0, get_parameter_o("printbinary"), OFF);
   free_performance_regression((Regressionresultptr) result);
  }
 post_process(NO);
 if (traindata)
  {
   deallocate(traindata);
   traindata = NULL;
  }
 if (testdata)
  {
   deallocate(testdata);
   testdata = NULL;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %r9, %r14
movq %r8, %r13
movq %rcx, 0x60(%rsp)
movl %edx, %ebx
movq %rsi, %r15
movq %rdi, %r12
movq 0x2d4a15(%rip), %rdi    # 0x334e38
callq 0x2fa14
movl %eax, %ebp
incl 0x34ebf0(%rip)          # 0x3af020
leaq 0x477e0(%rip), %rdi     # 0xa7c17
callq 0x536e7
testl %eax, %eax
je 0x60468
movl %ebx, %edi
callq 0x445c
cmpl $0x1, %eax
jne 0x60468
movq 0x2d49e5(%rip), %rdi    # 0x334e38
movsd 0x34ebb5(%rip), %xmm0   # 0x3af010
movsd 0x34ebb5(%rip), %xmm1   # 0x3af018
callq 0x1015c
movl %ebx, %edi
callq 0x44c0
testl %eax, %eax
je 0x604be
movslq 0x34eba6(%rip), %rax    # 0x3af020
leaq (%rax,%rax,2), %rax
shlq $0x4, %rax
movq 0x2d49af(%rip), %rdi    # 0x334e38
movups -0x30(%r14,%rax), %xmm0
movups -0x20(%r14,%rax), %xmm1
movups -0x10(%r14,%rax), %xmm2
movups %xmm2, 0x50(%rsp)
movups %xmm1, 0x40(%rsp)
movups %xmm0, 0x30(%rsp)
movups -0x30(%r13,%rax), %xmm0
movups -0x20(%r13,%rax), %xmm1
movups -0x10(%r13,%rax), %xmm2
jmp 0x604e6
movq 0x2d4973(%rip), %rdi    # 0x334e38
movups 0x68(%rsp), %xmm0
movups 0x78(%rsp), %xmm1
movups 0x88(%rsp), %xmm2
movups %xmm2, 0x50(%rsp)
movups %xmm1, 0x40(%rsp)
movups %xmm0, 0x30(%rsp)
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
callq 0x5db62
movl %ebx, %edi
movq %r12, %rsi
movq %r15, %rdx
movl %ebp, %ecx
callq 0x5f8dc
leaq 0x4848d(%rip), %rdi     # 0xa899c
callq 0x536e7
testl %eax, %eax
je 0x6055c
movl 0x34eb02(%rip), %edx    # 0x3af020
leaq 0x48486(%rip), %rsi     # 0xa89ab
movq 0x60(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x42e0
movq 0x2d48fd(%rip), %rdi    # 0x334e38
callq 0x2fa14
movq 0x34eae1(%rip), %rcx    # 0x3af028
movq 0x28(%rcx), %rsi
movq 0x2d48e6(%rip), %rcx    # 0x334e38
movq %r14, %rdi
movl %eax, %edx
callq 0x86f8
movl %ebx, %edi
callq 0x445c
movl %eax, %r15d
movq 0x2d48cb(%rip), %r14    # 0x334e38
movq 0x34eab4(%rip), %rbx    # 0x3af028
leaq 0x484a6(%rip), %rdi     # 0xa8a21
callq 0x536e7
movl %eax, %ebp
testl %r15d, %r15d
je 0x605a7
xorps %xmm0, %xmm0
movq %r14, %rdi
movq %rbx, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x70a00
movq 0x34ea88(%rip), %rdi    # 0x3af028
callq 0x70bc0
jmp 0x605e6
leaq 0x4848e(%rip), %rdi     # 0xa8a3c
callq 0x536e7
movl %eax, %r15d
leaq 0x48488(%rip), %rdi     # 0xa8a45
callq 0x536e7
xorps %xmm0, %xmm0
movq %r14, %rdi
movq %rbx, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
movl %r15d, %r8d
movl %eax, %r9d
callq 0x87f3
movq 0x34ea47(%rip), %rdi    # 0x3af028
callq 0x8b7b
xorl %edi, %edi
callq 0x5c49b
movq 0x2d483c(%rip), %rdi    # 0x334e30
testq %rdi, %rdi
je 0x60609
callq 0x2f616
movq $0x0, 0x2d4827(%rip) # 0x334e30
movq 0x2d4828(%rip), %rdi    # 0x334e38
testq %rdi, %rdi
je 0x60625
callq 0x2f616
movq $0x0, 0x2d4813(%rip) # 0x334e38
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq