// File: GenisGE[P]evalAdmix/alloc.cpp
// Function: printFunctionPars(functionPars const*)
void printFunctionPars(const functionPars *pars){
  printf("----------------------------------------\n");
  if(pars!=NULL){
    printf("\tWill start HMMld with following parameters\n");
    printf("\tdoParameter=%d,\tpair[0]=%d,\tpair[1]=%d,\n",pars->doPar,pars->pair->array[0],pars->pair->array[1]);
    printf("\tdoAllpairs=%d,",pars->doAllPairs);
    if(pars->doPar!=0)
      printf("\tdoParameter calulation with values (%f\t,%f\t,%f)\n",pars->par->array[0],pars->par->array[1],pars->par->array[2]);
    printf("\talim=[%.3f,\t%.3f],\n",pars->alim->array[0],pars->alim->array[1]);
    printf("\tfixK2=%d,\tfixA=%d,\t\tcalcA=%d,\n",pars->fixK,pars->fixA,pars->calcA);
    printf("\tfixK_val=%.3f,\tfixA_value=%.3f,\n",pars->fixK_val,pars->fixA_val);
    printf("\tdoPrune=%d,\tprune_val=%.3f,\n",pars->doPrune,pars->prune_val);
    printf("\tmin=%.3f,\teps=%.3f,\tphi=%.3f,\tconvTol=%.3f\n",pars->min,pars->epsilon,pars->phi,pars->convTol);
    printf("\tdouble_recom=%d\t,LD=%d\t,ld_adj=%d,\tback=%d,\tback2=%d\n",pars->double_recom,pars->LD,pars->ld_adj,pars->back,pars->back2);
    printf("\ttimesToConverge=%d\t,timesToRun=%d\n",pars->timesToConverge,pars->timesToRun);
    //printf("\tdoChromo:%d\tdoMoment:%d\n",pars->doChromo,pars->moment);
    printf("\tpost_file_output:%s \t k_file_output:%s \n",pars->postFilename.c_str(),pars->kFilename.c_str());
    printf("\tWill print results: %d\n",pars->print_results);
  }
  printf("----------------------------------------\n");
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
leaq 0x4610(%rip), %rdi      # 0x19550
movb $0x0, %al
callq 0x3040
cmpq $0x0, 0x10(%rsp)
je 0x1519f
leaq 0x4620(%rip), %rdi      # 0x1957a
movb $0x0, %al
callq 0x3040
movq 0x10(%rsp), %rax
movl 0x74(%rax), %esi
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl (%rax), %edx
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %ecx
leaq 0x4618(%rip), %rdi      # 0x195a7
movb $0x0, %al
callq 0x3040
movq 0x10(%rsp), %rax
movl 0x70(%rax), %esi
leaq 0x462c(%rip), %rdi      # 0x195d1
movb $0x0, %al
callq 0x3040
movq 0x10(%rsp), %rax
cmpl $0x0, 0x74(%rax)
je 0x14ffa
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movsd (%rax), %xmm0
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm1
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x10(%rax), %xmm2
leaq 0x45ee(%rip), %rdi      # 0x195e1
movb $0x3, %al
callq 0x3040
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movsd (%rax), %xmm0
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm1
leaq 0x45ef(%rip), %rdi      # 0x19613
movb $0x2, %al
callq 0x3040
movq 0x10(%rsp), %rax
movl 0x84(%rax), %esi
movq 0x10(%rsp), %rax
movl 0x80(%rax), %edx
movq 0x10(%rsp), %rax
movl 0x88(%rax), %ecx
leaq 0x45d5(%rip), %rdi      # 0x19628
movb $0x0, %al
callq 0x3040
movq 0x10(%rsp), %rax
movsd 0xe0(%rax), %xmm0
movq 0x10(%rsp), %rax
movsd 0xd8(%rax), %xmm1
leaq 0x45cd(%rip), %rdi      # 0x19648
movb $0x2, %al
callq 0x3040
movq 0x10(%rsp), %rax
movl 0x78(%rax), %esi
movq 0x10(%rsp), %rax
movsd 0xd0(%rax), %xmm0
leaq 0x45cc(%rip), %rdi      # 0x1966a
movb $0x1, %al
callq 0x3040
movq 0x10(%rsp), %rax
movsd 0xb0(%rax), %xmm0
movq 0x10(%rsp), %rax
movsd 0xb8(%rax), %xmm1
movq 0x10(%rsp), %rax
movsd 0xa0(%rax), %xmm2
movq 0x10(%rsp), %rax
movsd 0xe8(%rax), %xmm3
leaq 0x45a8(%rip), %rdi      # 0x19688
movb $0x4, %al
callq 0x3040
movq 0x10(%rsp), %rax
movl 0x8c(%rax), %esi
movq 0x10(%rsp), %rax
movl 0x90(%rax), %edx
movq 0x10(%rsp), %rax
movl 0x94(%rax), %ecx
movq 0x10(%rsp), %rax
movl 0xc0(%rax), %r8d
movq 0x10(%rsp), %rax
movl 0x7c(%rax), %r9d
leaq 0x4591(%rip), %rdi      # 0x196b5
movb $0x0, %al
callq 0x3040
movq 0x10(%rsp), %rax
movl 0xc8(%rax), %esi
movq 0x10(%rsp), %rax
movl 0xc4(%rax), %edx
leaq 0x45a4(%rip), %rdi      # 0x196ec
movb $0x0, %al
callq 0x3040
movq 0x10(%rsp), %rdi
addq $0x30, %rdi
callq 0x30f0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
addq $0x50, %rdi
callq 0x30f0
movq 0x8(%rsp), %rsi
movq %rax, %rdx
leaq 0x4591(%rip), %rdi      # 0x19710
movb $0x0, %al
callq 0x3040
movq 0x10(%rsp), %rax
movl 0x98(%rax), %esi
leaq 0x45a2(%rip), %rdi      # 0x1973a
movb $0x0, %al
callq 0x3040
leaq 0x43aa(%rip), %rdi      # 0x19550
movb $0x0, %al
callq 0x3040
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)