// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/omnivariatetree.c
// Function: find_best_hybrid_ldt_split_aic
int find_best_hybrid_ldt_split_aic(Decisionnodeptr node, Multildt_parameterptr param)
{
 /*!Last Changed 01.02.2005*/
 /*!Last Changed 22.11.2004*/
 int hybridspace = get_parameter_i("hybridspace");
 matrix qw;
 int d, i;
 double qw0, results[3], loglikelihood;
 find_uni_and_multi_splits(node, &qw, &qw0, results, param->variance_explained, hybridspace);
 for (i = 0; i < hybridspace; i++)
   if (results[i] != -1)
    {
     switch (i)
      {
       case 0:loglikelihood = log_likelihood_for_uni_ldt_splits(node->instances, node->featureno, node->split, param->conditiontype);
              d = 2;
              break;
       case 1:loglikelihood = log_likelihood_for_multi_ldt_splits(node->instances, node->w, node->w0);
              d = node->lineard + 1;
              break;
       case 2:loglikelihood = log_likelihood_for_multi_ldt_splits(node->instances, qw, qw0);
              d = node->quadraticd + 1;
              break;
       default:loglikelihood = 0.0;
               d = 0;
               break;
      }
     results[i] = aic_loglikelihood(loglikelihood, d);
    }
 return set_best_hybrid_split(results, node, qw, qw0, hybridspace);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq 0x6e6b9(%rip), %rdi     # 0xe57d0
callq 0x78f10
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x50(%rbp), %rcx
movq -0x10(%rbp), %rax
movsd 0x20(%rax), %xmm0
movl -0x14(%rbp), %r8d
leaq -0x28(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x76ad0
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x7726a
movslq -0x30(%rbp), %rax
movsd -0x50(%rbp,%rax,8), %xmm0
movsd 0x6b8e2(%rip), %xmm1    # 0xe2a48
ucomisd %xmm1, %xmm0
jne 0x77173
jp 0x77173
jmp 0x7725a
movl -0x30(%rbp), %eax
movl %eax, -0x5c(%rbp)
testl %eax, %eax
je 0x77196
jmp 0x7717f
movl -0x5c(%rbp), %eax
subl $0x1, %eax
je 0x771c8
jmp 0x77189
movl -0x5c(%rbp), %eax
subl $0x2, %eax
je 0x77201
jmp 0x77232
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %esi
movq -0x8(%rbp), %rax
movsd 0x28(%rax), %xmm0
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %edx
callq 0xdf780
movsd %xmm0, -0x58(%rbp)
movl $0x2, -0x2c(%rbp)
jmp 0x77241
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movsd 0x48(%rcx), %xmm0
movq 0x38(%rax), %rsi
movq 0x40(%rax), %rdx
callq 0x6fc70
movsd %xmm0, -0x58(%rbp)
movq -0x8(%rbp), %rax
movl 0x90(%rax), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x77241
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movsd -0x38(%rbp), %xmm0
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x6fc70
movsd %xmm0, -0x58(%rbp)
movq -0x8(%rbp), %rax
movl 0x94(%rax), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x77241
xorps %xmm0, %xmm0
movsd %xmm0, -0x58(%rbp)
movl $0x0, -0x2c(%rbp)
movsd -0x58(%rbp), %xmm0
cvtsi2sdl -0x2c(%rbp), %xmm1
callq 0x66430
movslq -0x30(%rbp), %rax
movsd %xmm0, -0x50(%rbp,%rax,8)
jmp 0x7725c
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x77148
leaq -0x50(%rbp), %rdi
movq -0x8(%rbp), %rsi
movsd -0x38(%rbp), %xmm0
movl -0x14(%rbp), %r8d
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x76df0
addq $0x60, %rsp
popq %rbp
retq
nop