// File: /workspace/github_c_makefile_star2_O2/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 0x2d6c23(%rip), %rdi    # 0x32fe38
callq 0x2c3cc
movl %eax, %ebp
incl 0x350dfe(%rip)          # 0x3aa020
leaq 0x419ce(%rip), %rdi     # 0x9abf7
callq 0x4cff1
testl %eax, %eax
je 0x5925a
movl %ebx, %edi
callq 0x445c
cmpl $0x1, %eax
jne 0x5925a
movq 0x2d6bf3(%rip), %rdi    # 0x32fe38
movsd 0x350dc3(%rip), %xmm0   # 0x3aa010
movsd 0x350dc3(%rip), %xmm1   # 0x3aa018
callq 0xf4d8
movl %ebx, %edi
callq 0x44cb
testl %eax, %eax
je 0x592ac
movslq 0x350db4(%rip), %rax    # 0x3aa020
imulq $0x30, %rax, %rax
movq 0x2d6bc1(%rip), %rdi    # 0x32fe38
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 0x592d4
movq 0x2d6b85(%rip), %rdi    # 0x32fe38
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 0x56a9e
movl %ebx, %edi
movq %r12, %rsi
movq %r15, %rdx
movl %ebp, %ecx
callq 0x5872b
leaq 0x4268f(%rip), %rdi     # 0x9b98c
callq 0x4cff1
testl %eax, %eax
je 0x5934a
movl 0x350d14(%rip), %edx    # 0x3aa020
leaq 0x42688(%rip), %rsi     # 0x9b99b
movq 0x60(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x42e0
movq 0x2d6b0f(%rip), %rdi    # 0x32fe38
callq 0x2c3cc
movq 0x350cf3(%rip), %rcx    # 0x3aa028
movq 0x28(%rcx), %rsi
movq 0x2d6af8(%rip), %rcx    # 0x32fe38
movq %r14, %rdi
movl %eax, %edx
callq 0x840e
movl %ebx, %edi
callq 0x445c
movl %eax, %r15d
movq 0x2d6add(%rip), %r14    # 0x32fe38
movq 0x350cc6(%rip), %rbx    # 0x3aa028
leaq 0x426a8(%rip), %rdi     # 0x9ba11
callq 0x4cff1
movl %eax, %ebp
testl %r15d, %r15d
je 0x59395
xorps %xmm0, %xmm0
movq %r14, %rdi
movq %rbx, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
callq 0x68838
movq 0x350c9a(%rip), %rdi    # 0x3aa028
callq 0x689da
jmp 0x593d4
leaq 0x42690(%rip), %rdi     # 0x9ba2c
callq 0x4cff1
movl %eax, %r15d
leaq 0x4268a(%rip), %rdi     # 0x9ba35
callq 0x4cff1
xorps %xmm0, %xmm0
movq %r14, %rdi
movq %rbx, %rsi
movl %ebp, %edx
xorl %ecx, %ecx
movl %r15d, %r8d
movl %eax, %r9d
callq 0x84db
movq 0x350c59(%rip), %rdi    # 0x3aa028
callq 0x882e
xorl %edi, %edi
callq 0x5549c
movq 0x2d6a4e(%rip), %rdi    # 0x32fe30
testq %rdi, %rdi
je 0x593f4
callq 0x2c010
andq $0x0, 0x2d6a3c(%rip)    # 0x32fe30
movq 0x2d6a3d(%rip), %rdi    # 0x32fe38
testq %rdi, %rdi
je 0x5940d
callq 0x2c010
andq $0x0, 0x2d6a2b(%rip)    # 0x32fe38
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq