// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/omnivariatetree.c
// Function: find_best_hybrid_ldt_split_single_model
int find_best_hybrid_ldt_split_single_model(Decisionnodeptr node, NODE_TYPE model, double variance_explained)
{
 /*!Last Changed 13.02.2005*/
 switch (model)
  {
   case UNIVARIATE:node->featureno = find_best_ldt_feature_for_realized(node->instances, &(node->split));
                   if (node->featureno == -1)
                     return 0;
                   break;
   case     LINEAR:node->lineard = find_best_multi_ldt_split(&(node->instances), &(node->w), &(node->w0), MULTIVARIATE_LINEAR, variance_explained);
                   if (node->lineard == 0)
                    {
                     matrix_free(node->w);
                     node->featureno = LEAF_NODE;
                     return 0;
                    }
                   else
                     node->featureno = LINEAR;
                   break;
   case  QUADRATIC:node->quadraticd = find_best_multi_ldt_split(&(node->instances), &(node->w), &(node->w0), MULTIVARIATE_QUADRATIC, variance_explained);
                   if (node->quadraticd == 0)
                    {
                     matrix_free(node->w);
                     node->featureno = LEAF_NODE;
                     return 0;
                    }
                   else
                     node->featureno = QUADRATIC;
                   break;
   default        :node->featureno = LEAF_NODE;
                   printf("This node type is not supported\n");
                   break;
  }
 return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movsd %xmm0, -0x20(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x24(%rbp)
subl $-0x3, %eax
je 0x7705d
jmp 0x76f95
movl -0x24(%rbp), %eax
subl $-0x2, %eax
je 0x76fe5
jmp 0x76f9f
movl -0x24(%rbp), %eax
testl %eax, %eax
jne 0x770cf
jmp 0x76fac
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
callq 0xdec70
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x10(%rbp), %rax
cmpl $-0x1, 0x30(%rax)
jne 0x76fe0
movl $0x0, -0x4(%rbp)
jmp 0x770ef
jmp 0x770e8
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
addq $0x38, %rsi
movq -0x10(%rbp), %rdx
addq $0x48, %rdx
movsd -0x20(%rbp), %xmm0
movl $0xfffffffe, %ecx       # imm = 0xFFFFFFFE
callq 0x6fd20
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x90(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x90(%rax)
jne 0x7704d
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
movq 0x40(%rax), %rsi
callq 0x59ea0
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x30(%rax) # imm = 0xFFFFFFFF
movl $0x0, -0x4(%rbp)
jmp 0x770ef
movq -0x10(%rbp), %rax
movl $0xfffffffe, 0x30(%rax) # imm = 0xFFFFFFFE
jmp 0x770e8
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rsi
addq $0x38, %rsi
movq -0x10(%rbp), %rdx
addq $0x48, %rdx
movsd -0x20(%rbp), %xmm0
movl $0xfffffffd, %ecx       # imm = 0xFFFFFFFD
callq 0x6fd20
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x94(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x94(%rax)
jne 0x770c2
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
movq 0x40(%rax), %rsi
callq 0x59ea0
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x30(%rax) # imm = 0xFFFFFFFF
movl $0x0, -0x4(%rbp)
jmp 0x770ef
movq -0x10(%rbp), %rax
movl $0xfffffffd, 0x30(%rax) # imm = 0xFFFFFFFD
jmp 0x770e8
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x30(%rax) # imm = 0xFFFFFFFF
leaq 0x70448(%rip), %rdi     # 0xe7529
movb $0x0, %al
callq 0x4030
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)