// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/univariatetree.c
// Function: create_ldtchildren
int create_ldtchildren(Decisionnodeptr node, C45_parameterptr p)
{
/*!Last Changed 23.01.2003*/
 int count, i;
 node->conditiontype = UNIVARIATE_CONDITION;
 if (!(can_be_divided(node, p)))
   return 1;
#ifdef MPI
 if (get_parameter_o("parallel") && get_parameter_i("proccount")>1)
  {
   switch (get_parameter_i("paralleltype"))
    {
     case 0:node->featureno = find_best_ldt_feature_mpi(node->instances,&(node->split));
            break;
     case 1:node->featureno = find_best_ldt_feature_mpi_rulebased(node);
            break;            
     case 2:Firsttime = 1;
            node->featureno = divide_data_to_find_best_feature(node->instances,&(node->split));
            break;
     case 3:create_ldtchildren_iterative(node);
            return 1;
            break;
    }
  }
 else
   node->featureno = find_best_ldt_feature(node->instances,&(node->split));
#else
 node->featureno = find_best_ldt_feature(node->instances,&(node->split)); 
#endif
 if (!(make_children(node)))
   return 1;
 switch (current_dataset->features[node->featureno].type)
  {
   case INTEGER:
   case REAL   :create_ldtchildren(node->left, p);
                create_ldtchildren(node->right, p);
                break;
   case STRING :count = current_dataset->features[node->featureno].valuecount;
                for (i = 0; i < count; i++)
                  create_ldtchildren(&(node->string[i]), p);
                break;
  }
 return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, 0x98(%rax)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x29340
cmpl $0x0, %eax
jne 0xdf85c
movl $0x1, -0x4(%rbp)
jmp 0xdf962
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
callq 0xdf1b0
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x10(%rbp), %rdi
callq 0xdcde0
cmpl $0x0, %eax
jne 0xdf894
movl $0x1, -0x4(%rbp)
jmp 0xdf962
leaq 0x25fa5(%rip), %rax     # 0x105840
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movslq 0x30(%rcx), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
movl 0x30f08(%rax,%rcx), %eax
movl %eax, -0x24(%rbp)
testl %eax, %eax
je 0xdf8d5
jmp 0xdf8bd
movl -0x24(%rbp), %eax
subl $0x1, %eax
je 0xdf8f8
jmp 0xdf8c7
movl -0x24(%rbp), %eax
subl $0x2, %eax
jne 0xdf95b
jmp 0xdf8d5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0xdf820
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x18(%rbp), %rsi
callq 0xdf820
jmp 0xdf95b
leaq 0x25f41(%rip), %rax     # 0x105840
movq (%rax), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movq -0x10(%rbp), %rcx
movslq 0x30(%rcx), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movl 0x18(%rax), %eax
movl %eax, -0x1c(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0xdf959
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movslq -0x20(%rbp), %rax
imulq $0x160, %rax, %rax      # imm = 0x160
addq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0xdf820
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0xdf927
jmp 0xdf95b
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)