// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/dataset.c
// Function: save_definitions_of_dataset_as_xml
void save_definitions_of_dataset_as_xml(FILE* outfile, Datasetptr d)
{
 int i, j;
 char filetype[11];
 switch (d->storetype)
  {
   case         STORE_DB:strcpy(filetype, "database");
                         break;
   case       STORE_TEXT:strcpy(filetype, "text");
                         break;
   case STORE_SEQUENTIAL:strcpy(filetype, "sequential");
                         break;
   case     STORE_KERNEL:strcpy(filetype, "kernel");
                         break;
   case STORE_MULTILABEL:strcpy(filetype, "multilabel");
                         break;
  }
 if (d->classno != 0)
  {
   if (d->storetype == STORE_KERNEL)
    {
     fprintf(outfile, "\t<dataset name=\"%s\" task=\"classification\" size=\"%d\" directory=\"%s\" filetype=\"%s\" separator=\"%c\" filename=\"%s\" kernelcount=\"%d\" sigma=\"%.6f\">\n", d->name, d->datacount, d->directory, filetype, d->separator, d->file, d->kernelcount, d->sigma);
     fprintf(outfile, "\t\t<kernels>\n");
     for (i = 0; i < d->kernelcount; i++)
       fprintf(outfile, "\t\t\t<kernel value=\"%s\"/>\n", d->kernelfiles[i]);
     fprintf(outfile, "\t\t</kernels>\n");
    }
   else
     if (d->storetype == STORE_MULTILABEL)
       fprintf(outfile, "\t<dataset name=\"%s\" task=\"classification\" size=\"%d\" directory=\"%s\" filetype=\"%s\" separator=\"%c\" filename=\"%s\" classcount=\"%d\" classlabelstart=\"%d\" sigma=\"%.6f\">\n", d->name, d->datacount, d->directory, filetype, d->separator, d->file, d->classno, d->classdefno, d->sigma);
     else
       fprintf(outfile, "\t<dataset name=\"%s\" task=\"classification\" size=\"%d\" directory=\"%s\" filetype=\"%s\" separator=\"%c\" filename=\"%s\" sigma=\"%.6f\">\n", d->name, d->datacount, d->directory, filetype, d->separator, d->file, d->sigma);
   if (d->storetype != STORE_MULTILABEL)
    {
     fprintf(outfile, "\t\t<classes>\n");
     for (i = 0; i < d->classno; i++)
       fprintf(outfile, "\t\t\t<class value=\"%s\" size=\"%d\"/>\n", d->classes[i], d->classcounts[i]);
     fprintf(outfile, "\t\t</classes>\n");
    }
  }
 else
  {
   if (d->storetype == STORE_KERNEL)
    {
     fprintf(outfile, "\t<dataset name=\"%s\" task=\"regression\" size=\"%d\" directory=\"%s\" filetype=\"%s\" separator=\"%c\" filename=\"%s\" kernelcount=\"%d\" sigma=\"%.6f\">\n", d->name, d->datacount, d->directory, filetype, d->separator, d->file, d->kernelcount, d->sigma);
     fprintf(outfile, "\t\t<kernels>\n");
     for (i = 0; i < d->kernelcount; i++)
       fprintf(outfile, "\t\t\t<kernel value=\"%s\"/>\n", d->kernelfiles[i]);
     fprintf(outfile, "\t\t</kernels>\n");
    }
   else
     fprintf(outfile, "\t<dataset name=\"%s\" task=\"regression\" size=\"%d\" directory=\"%s\" filetype=\"%s\" separator=\"%c\" filename=\"%s\" sigma=\"%.6f\">\n", d->name, d->datacount, d->directory, filetype, d->separator, d->file, d->sigma);
  }
 fprintf(outfile, "\t\t<attributes>\n");
 for (i = 0; i < d->featurecount; i++)
   switch (d->features[i].type){
     case    INTEGER:fprintf(outfile, "\t\t\t<attribute type=\"Integer\" available=\"True\" min=\"%d\" max=\"%d\"/>\n", d->features[i].min.intvalue, d->features[i].max.intvalue);
                     break;
     case       REAL:fprintf(outfile, "\t\t\t<attribute type=\"Real\" available=\"True\" min=\"%.6f\" max=\"%.6f\"/>\n", d->features[i].min.floatvalue, d->features[i].max.floatvalue);
                     break;
     case     STRING:fprintf(outfile, "\t\t\t<attribute type=\"String\" available=\"True\">\n");
                     for (j = 0; j < d->features[i].valuecount; j++)
                       fprintf(outfile, "\t\t\t\t<value>%s</value>\n", d->features[i].strings[j]);
                     fprintf(outfile, "\t\t\t</attribute>\n");
                     break;
     case   CLASSDEF:fprintf(outfile, "\t\t\t<attribute type=\"Output\" available=\"True\">\n");
                     for (j = 0; j < d->features[i].valuecount; j++)
                       fprintf(outfile, "\t\t\t\t<value>%s</value>\n", d->features[i].strings[j]);
                     fprintf(outfile, "\t\t\t</attribute>\n");
                     break;
     case     REGDEF:fprintf(outfile, "\t\t\t<attribute type=\"Output\" available=\"True\" min=\"%.6f\" max=\"%.6f\"/>\n", d->features[i].min.floatvalue, d->features[i].max.floatvalue);
                     break;
    }
 fprintf(outfile, "\t\t</attributes>\n");
 fprintf(outfile, "\t</dataset>\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x58, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl 0x140713c(%rax), %eax
movq %rax, -0x38(%rbp)
subq $0x4, %rax
ja 0x203b1
movq -0x38(%rbp), %rax
leaq 0xc2d9c(%rip), %rcx     # 0xe30ec
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq -0x2b(%rbp), %rdi
leaq 0xc3229(%rip), %rsi     # 0xe358d
callq 0x4220
jmp 0x203b1
leaq -0x2b(%rbp), %rdi
leaq 0xc3220(%rip), %rsi     # 0xe3596
callq 0x4220
jmp 0x203b1
leaq -0x2b(%rbp), %rdi
leaq 0xc3213(%rip), %rsi     # 0xe359b
callq 0x4220
jmp 0x203b1
leaq -0x2b(%rbp), %rdi
leaq 0xcddfe(%rip), %rsi     # 0xee198
callq 0x4220
jmp 0x203b1
leaq -0x2b(%rbp), %rdi
leaq 0xc31fa(%rip), %rsi     # 0xe35a6
callq 0x4220
movq -0x18(%rbp), %rax
cmpl $0x0, 0x10(%rax)
je 0x20613
movq -0x18(%rbp), %rax
cmpl $0x3, 0x140713c(%rax)
jne 0x204a9
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x18(%rbp), %rax
movl 0x1407120(%rax), %ecx
movq -0x18(%rbp), %rax
movq 0x1407118(%rax), %r8
leaq -0x2b(%rbp), %r9
movq -0x18(%rbp), %rax
movsbl 0x1a8(%rax), %r11d
movq -0x18(%rbp), %rax
movq 0x1b0(%rax), %r10
movq -0x18(%rbp), %rax
movl 0x1407268(%rax), %eax
movq -0x18(%rbp), %rsi
movsd 0x1407130(%rsi), %xmm0
leaq 0xc3188(%rip), %rsi     # 0xe35b1
movl %r11d, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x1, %al
callq 0x4280
movq -0x10(%rbp), %rdi
leaq 0xc31f7(%rip), %rsi     # 0xe363f
movb $0x0, %al
callq 0x4280
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1407268(%rcx), %eax
jge 0x20492
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq 0x1407218(%rax,%rcx,8), %rdx
leaq 0xc31cc(%rip), %rsi     # 0xe364c
movb $0x0, %al
callq 0x4280
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x20456
movq -0x10(%rbp), %rdi
leaq 0xc31c8(%rip), %rsi     # 0xe3665
movb $0x0, %al
callq 0x4280
jmp 0x20591
movq -0x18(%rbp), %rax
cmpl $0x4, 0x140713c(%rax)
jne 0x20530
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x18(%rbp), %rax
movl 0x1407120(%rax), %ecx
movq -0x18(%rbp), %rax
movq 0x1407118(%rax), %r8
leaq -0x2b(%rbp), %r9
movq -0x18(%rbp), %rax
movsbl 0x1a8(%rax), %ebx
movq -0x18(%rbp), %rax
movq 0x1b0(%rax), %r11
movq -0x18(%rbp), %rax
movl 0x10(%rax), %r10d
movq -0x18(%rbp), %rax
movl 0x1407128(%rax), %eax
movq -0x18(%rbp), %rsi
movsd 0x1407130(%rsi), %xmm0
leaq 0xc315d(%rip), %rsi     # 0xe3673
movl %ebx, (%rsp)
movq %r11, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x1, %al
callq 0x4280
jmp 0x2058f
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x18(%rbp), %rax
movl 0x1407120(%rax), %ecx
movq -0x18(%rbp), %rax
movq 0x1407118(%rax), %r8
leaq -0x2b(%rbp), %r9
movq -0x18(%rbp), %rax
movsbl 0x1a8(%rax), %r10d
movq -0x18(%rbp), %rax
movq 0x1b0(%rax), %rax
movq -0x18(%rbp), %rsi
movsd 0x1407130(%rsi), %xmm0
leaq 0xc3196(%rip), %rsi     # 0xe3715
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x1, %al
callq 0x4280
jmp 0x20591
movq -0x18(%rbp), %rax
cmpl $0x4, 0x140713c(%rax)
je 0x2060e
movq -0x10(%rbp), %rdi
leaq 0xc31e9(%rip), %rsi     # 0xe3792
movb $0x0, %al
callq 0x4280
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jge 0x205fc
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rdx
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movl 0x1407140(%rax,%rcx,4), %ecx
leaq 0xc31b5(%rip), %rsi     # 0xe379f
movb $0x0, %al
callq 0x4280
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x205b7
movq -0x10(%rbp), %rdi
leaq 0xc31ba(%rip), %rsi     # 0xe37c1
movb $0x0, %al
callq 0x4280
jmp 0x2075b
movq -0x18(%rbp), %rax
cmpl $0x3, 0x140713c(%rax)
jne 0x206fa
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x18(%rbp), %rax
movl 0x1407120(%rax), %ecx
movq -0x18(%rbp), %rax
movq 0x1407118(%rax), %r8
leaq -0x2b(%rbp), %r9
movq -0x18(%rbp), %rax
movsbl 0x1a8(%rax), %r11d
movq -0x18(%rbp), %rax
movq 0x1b0(%rax), %r10
movq -0x18(%rbp), %rax
movl 0x1407268(%rax), %eax
movq -0x18(%rbp), %rsi
movsd 0x1407130(%rsi), %xmm0
leaq 0xc3152(%rip), %rsi     # 0xe37cf
movl %r11d, (%rsp)
movq %r10, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x1, %al
callq 0x4280
movq -0x10(%rbp), %rdi
leaq 0xc2fa3(%rip), %rsi     # 0xe363f
movb $0x0, %al
callq 0x4280
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1407268(%rcx), %eax
jge 0x206e6
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq 0x1407218(%rax,%rcx,8), %rdx
leaq 0xc2f78(%rip), %rsi     # 0xe364c
movb $0x0, %al
callq 0x4280
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x206aa
movq -0x10(%rbp), %rdi
leaq 0xc2f74(%rip), %rsi     # 0xe3665
movb $0x0, %al
callq 0x4280
jmp 0x20759
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x18(%rbp), %rax
movl 0x1407120(%rax), %ecx
movq -0x18(%rbp), %rax
movq 0x1407118(%rax), %r8
leaq -0x2b(%rbp), %r9
movq -0x18(%rbp), %rax
movsbl 0x1a8(%rax), %r10d
movq -0x18(%rbp), %rax
movq 0x1b0(%rax), %rax
movq -0x18(%rbp), %rsi
movsd 0x1407130(%rsi), %xmm0
leaq 0xc3110(%rip), %rsi     # 0xe3859
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x1, %al
callq 0x4280
jmp 0x2075b
movq -0x10(%rbp), %rdi
leaq 0xc316c(%rip), %rsi     # 0xe38d2
movb $0x0, %al
callq 0x4280
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x1bc(%rcx), %eax
jge 0x209d4
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
movl 0x30f08(%rax,%rcx), %eax
movq %rax, -0x40(%rbp)
subq $0x4, %rax
ja 0x209c4
movq -0x40(%rbp), %rax
leaq 0xc294a(%rip), %rcx     # 0xe3100
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movl 0x8(%rax), %edx
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movl 0x10(%rax), %ecx
leaq 0xc30e2(%rip), %rsi     # 0xe38e2
movb $0x0, %al
callq 0x4280
jmp 0x209c4
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movsd 0x10(%rax), %xmm1
leaq 0xc30d4(%rip), %rsi     # 0xe3925
movb $0x2, %al
callq 0x4280
jmp 0x209c4
movq -0x10(%rbp), %rdi
leaq 0xc3101(%rip), %rsi     # 0xe3969
movb $0x0, %al
callq 0x4280
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x18(%rbp), %rcx
addq $0x30f08, %rcx          # imm = 0x30F08
movslq -0x1c(%rbp), %rdx
imulq $0x340, %rdx, %rdx      # imm = 0x340
addq %rdx, %rcx
cmpl 0x18(%rcx), %eax
jge 0x208d5
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movslq -0x20(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rdx
leaq 0xc30d5(%rip), %rsi     # 0xe3998
movb $0x0, %al
callq 0x4280
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x20876
movq -0x10(%rbp), %rdi
leaq 0xc30cf(%rip), %rsi     # 0xe39af
movb $0x0, %al
callq 0x4280
jmp 0x209c4
movq -0x10(%rbp), %rdi
leaq 0xc30c9(%rip), %rsi     # 0xe39c0
movb $0x0, %al
callq 0x4280
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
movq -0x18(%rbp), %rcx
addq $0x30f08, %rcx          # imm = 0x30F08
movslq -0x1c(%rbp), %rdx
imulq $0x340, %rdx, %rdx      # imm = 0x340
addq %rdx, %rcx
cmpl 0x18(%rcx), %eax
jge 0x20964
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movslq -0x20(%rbp), %rcx
movq 0x20(%rax,%rcx,8), %rdx
leaq 0xc3046(%rip), %rsi     # 0xe3998
movb $0x0, %al
callq 0x4280
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x20905
movq -0x10(%rbp), %rdi
leaq 0xc3040(%rip), %rsi     # 0xe39af
movb $0x0, %al
callq 0x4280
jmp 0x209c4
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movsd 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
addq $0x30f08, %rax          # imm = 0x30F08
movslq -0x1c(%rbp), %rcx
imulq $0x340, %rcx, %rcx      # imm = 0x340
addq %rcx, %rax
movsd 0x10(%rax), %xmm1
leaq 0xc3032(%rip), %rsi     # 0xe39ef
movb $0x2, %al
callq 0x4280
jmp 0x209c6
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x20774
movq -0x10(%rbp), %rdi
leaq 0xc3056(%rip), %rsi     # 0xe3a35
movb $0x0, %al
callq 0x4280
movq -0x10(%rbp), %rdi
leaq 0xc3055(%rip), %rsi     # 0xe3a46
movb $0x0, %al
callq 0x4280
addq $0x58, %rsp
popq %rbx
popq %rbp
retq
nop