// File: /workspace/github_c_makefile_star2_O2/PoulinV[P]AxiCLASS/build/../source/output.c
// Function: output_one_line_of_cl
int output_one_line_of_cl(
                          struct background * pba,
                          struct harmonic * phr,
                          struct output * pop,
                          FILE * clfile,
                          double l,
                          double * cl, /* array with argument cl[index_ct] */
                          int ct_size
                          ) {
  int index_ct, index_ct_rest;
  double factor;

  factor = l*(l+1)/2./_PI_;

  fprintf(clfile," ");

  if (0==1){
    class_fprintf_int(clfile, (int)l, _TRUE_);
  }
  else{
    fprintf(clfile,"%4d ",(int)l);
  }

  if (pop->output_format == class_format) {

    for (index_ct=0; index_ct < ct_size; index_ct++) {
      class_fprintf_double(clfile, factor*cl[index_ct], _TRUE_);
    }
    fprintf(clfile,"\n");
  }

  if (pop->output_format == camb_format) {
    class_fprintf_double(clfile, factor*pow(pba->T_cmb*1.e6,2)*cl[phr->index_ct_tt], phr->has_tt);
    class_fprintf_double(clfile, factor*pow(pba->T_cmb*1.e6,2)*cl[phr->index_ct_ee], phr->has_ee);
    class_fprintf_double(clfile, factor*pow(pba->T_cmb*1.e6,2)*cl[phr->index_ct_bb], phr->has_bb);
    class_fprintf_double(clfile, factor*pow(pba->T_cmb*1.e6,2)*cl[phr->index_ct_te], phr->has_te);
    class_fprintf_double(clfile, l*(l+1)*factor*cl[phr->index_ct_pp], phr->has_pp);
    class_fprintf_double(clfile, sqrt(l*(l+1))*factor*pba->T_cmb*1.e6*cl[phr->index_ct_tp], phr->has_tp);
    class_fprintf_double(clfile, sqrt(l*(l+1))*factor*pba->T_cmb*1.e6*cl[phr->index_ct_ep], phr->has_ep);
    index_ct_rest = 0;
    if (phr->has_tt == _TRUE_)
      index_ct_rest++;
    if (phr->has_ee == _TRUE_)
      index_ct_rest++;
    if (phr->has_bb == _TRUE_)
      index_ct_rest++;
    if (phr->has_te == _TRUE_)
      index_ct_rest++;
    if (phr->has_pp == _TRUE_)
      index_ct_rest++;
    if (phr->has_tp == _TRUE_)
      index_ct_rest++;
    if (phr->has_ep == _TRUE_)
      index_ct_rest++;
    /* Now print the remaining (if any) entries:*/
    for (index_ct=index_ct_rest; index_ct < ct_size; index_ct++) {
      class_fprintf_double(clfile, factor*cl[index_ct], _TRUE_);
    }

    fprintf(clfile,"\n");

  }
  return _SUCCESS_;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %r9d, %ebp
movq %r8, 0x8(%rsp)
movsd %xmm0, 0x18(%rsp)
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %r15
movsd 0xe8a(%rip), %xmm1      # 0xe5260
addsd %xmm0, %xmm1
mulsd %xmm0, %xmm1
movsd 0x18ca(%rip), %xmm0     # 0xe5cb0
movsd %xmm1, 0x10(%rsp)
mulsd %xmm1, %xmm0
divsd 0x3ba0(%rip), %xmm0     # 0xe7f98
movsd %xmm0, (%rsp)
pushq $0x20
popq %rdi
movq %rcx, %rsi
callq 0x8460
cvttsd2si 0x18(%rsp), %edx
leaq 0x43692(%rip), %rsi     # 0x127aa7
xorl %r13d, %r13d
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8510
movl 0x40c(%r12), %eax
testl %eax, %eax
jne 0xe44ad
movq %r12, 0x20(%rsp)
movq %r15, 0x28(%rsp)
movq %r14, 0x30(%rsp)
testl %ebp, %ebp
movl $0x0, %r14d
movl %ebp, 0x18(%rsp)
cmovgl %ebp, %r14d
leaq 0x43316(%rip), %rbp     # 0x12776a
pushq $0x18
popq %r12
pushq $0xc
popq %r15
cmpq %r13, %r14
je 0xe4489
movq 0x8(%rsp), %rax
movsd (%rax,%r13,8), %xmm0
mulsd (%rsp), %xmm0
movq %rbx, %rdi
movq %rbp, %rsi
movl %r12d, %edx
movl %r15d, %ecx
movb $0x1, %al
callq 0x8510
incq %r13
jmp 0xe445c
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x8460
movq 0x20(%rsp), %rax
movl 0x40c(%rax), %eax
movl 0x18(%rsp), %ebp
movq 0x30(%rsp), %r14
movq 0x28(%rsp), %r15
cmpl $0x1, %eax
jne 0xe474c
cmpl $0x1, 0x30(%r14)
jne 0xe44f9
movsd 0x18(%r15), %xmm0
mulsd 0x5545(%rip), %xmm0     # 0xe9a10
mulsd %xmm0, %xmm0
mulsd (%rsp), %xmm0
movslq 0x64(%r14), %rax
movq 0x8(%rsp), %rcx
mulsd (%rcx,%rax,8), %xmm0
leaq 0x43281(%rip), %rsi     # 0x12776a
pushq $0x18
popq %rdx
pushq $0xc
popq %rcx
movq %rbx, %rdi
movb $0x1, %al
callq 0x8510
cmpl $0x1, 0x34(%r14)
jne 0xe453c
movsd 0x18(%r15), %xmm0
mulsd 0x5502(%rip), %xmm0     # 0xe9a10
mulsd %xmm0, %xmm0
mulsd (%rsp), %xmm0
movslq 0x68(%r14), %rax
movq 0x8(%rsp), %rcx
mulsd (%rcx,%rax,8), %xmm0
leaq 0x4323e(%rip), %rsi     # 0x12776a
pushq $0x18
popq %rdx
pushq $0xc
popq %rcx
movq %rbx, %rdi
movb $0x1, %al
callq 0x8510
cmpl $0x1, 0x3c(%r14)
jne 0xe457f
movsd 0x18(%r15), %xmm0
mulsd 0x54bf(%rip), %xmm0     # 0xe9a10
mulsd %xmm0, %xmm0
mulsd (%rsp), %xmm0
movslq 0x70(%r14), %rax
movq 0x8(%rsp), %rcx
mulsd (%rcx,%rax,8), %xmm0
leaq 0x431fb(%rip), %rsi     # 0x12776a
pushq $0x18
popq %rdx
pushq $0xc
popq %rcx
movq %rbx, %rdi
movb $0x1, %al
callq 0x8510
cmpl $0x1, 0x38(%r14)
jne 0xe45c2
movsd 0x18(%r15), %xmm0
mulsd 0x547c(%rip), %xmm0     # 0xe9a10
mulsd %xmm0, %xmm0
mulsd (%rsp), %xmm0
movslq 0x6c(%r14), %rax
movq 0x8(%rsp), %rcx
mulsd (%rcx,%rax,8), %xmm0
leaq 0x431b8(%rip), %rsi     # 0x12776a
pushq $0x18
popq %rdx
pushq $0xc
popq %rcx
movq %rbx, %rdi
movb $0x1, %al
callq 0x8510
cmpl $0x1, 0x40(%r14)
jne 0xe45f9
movsd 0x10(%rsp), %xmm0
mulsd (%rsp), %xmm0
movslq 0x74(%r14), %rax
movq 0x8(%rsp), %rcx
mulsd (%rcx,%rax,8), %xmm0
leaq 0x43181(%rip), %rsi     # 0x12776a
pushq $0x18
popq %rdx
pushq $0xc
popq %rcx
movq %rbx, %rdi
movb $0x1, %al
callq 0x8510
cmpl $0x1, 0x44(%r14)
jne 0xe4657
xorpd %xmm0, %xmm0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
movapd %xmm1, %xmm0
jb 0xe461a
sqrtsd %xmm0, %xmm0
jmp 0xe461f
callq 0x82d0
mulsd (%rsp), %xmm0
mulsd 0x18(%r15), %xmm0
mulsd 0x53de(%rip), %xmm0     # 0xe9a10
movslq 0x78(%r14), %rax
movq 0x8(%rsp), %rcx
mulsd (%rcx,%rax,8), %xmm0
leaq 0x43123(%rip), %rsi     # 0x12776a
pushq $0x18
popq %rdx
pushq $0xc
popq %rcx
movq %rbx, %rdi
movb $0x1, %al
callq 0x8510
cmpl $0x1, 0x48(%r14)
jne 0xe4678
xorpd %xmm0, %xmm0
movsd 0x10(%rsp), %xmm1
ucomisd %xmm0, %xmm1
movapd %xmm1, %xmm0
jb 0xe467c
sqrtsd %xmm0, %xmm0
jmp 0xe4681
xorl %eax, %eax
jmp 0xe46c3
callq 0x82d0
mulsd (%rsp), %xmm0
mulsd 0x18(%r15), %xmm0
mulsd 0x537c(%rip), %xmm0     # 0xe9a10
movslq 0x7c(%r14), %rax
movq 0x8(%rsp), %rcx
mulsd (%rcx,%rax,8), %xmm0
leaq 0x430c1(%rip), %rsi     # 0x12776a
pushq $0x18
popq %rdx
pushq $0xc
popq %rcx
movq %rbx, %rdi
movb $0x1, %al
callq 0x8510
xorl %eax, %eax
cmpl $0x1, 0x48(%r14)
sete %al
xorl %ecx, %ecx
cmpl $0x1, 0x30(%r14)
sete %cl
leaq 0x1(%rcx), %r13
cmpl $0x1, 0x34(%r14)
cmovneq %rcx, %r13
movdqu 0x38(%r14), %xmm0
pcmpeqd 0x50e8(%rip), %xmm0     # 0xe97d0
movmskps %xmm0, %ecx
shll $0x2, %ecx
movabsq $0x4332322132212110, %rdx # imm = 0x4332322132212110
shrq %cl, %rdx
andl $0x7, %edx
addq %rax, %r13
addq %rdx, %r13
movslq %ebp, %r14
leaq 0x4305c(%rip), %r15     # 0x12776a
pushq $0x18
popq %rbp
pushq $0xc
popq %r12
cmpq %r14, %r13
jge 0xe4741
movq 0x8(%rsp), %rax
movsd (%rax,%r13,8), %xmm0
mulsd (%rsp), %xmm0
movq %rbx, %rdi
movq %r15, %rsi
movl %ebp, %edx
movl %r12d, %ecx
movb $0x1, %al
callq 0x8510
incq %r13
jmp 0xe4715
pushq $0xa
popq %rdi
movq %rbx, %rsi
callq 0x8460
xorl %eax, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq