// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/fourier.c
// Function: fourier_get_tau_list
int fourier_get_tau_list(
                         struct perturbations * ppt,
                         struct fourier * pfo
                         ) {

  int index_tau;

  /** -> for linear calculations: only late times are considered, given the value z_max_pk inferred from the ionput */
  pfo->ln_tau_size = ppt->ln_tau_size;

  if (ppt->ln_tau_size > 1) {

    class_alloc(pfo->ln_tau,pfo->ln_tau_size*sizeof(double),pfo->error_message);

    for (index_tau=0; index_tau<pfo->ln_tau_size;index_tau++) {
      pfo->ln_tau[index_tau] = ppt->ln_tau[index_tau];
    }
  }

  /** -> for non-linear calculations: we wills store a correction factor for all times */
  if (pfo->method > nl_none) {

    pfo->tau_size = ppt->tau_size;

    class_alloc(pfo->tau,pfo->tau_size*sizeof(double),pfo->error_message);

    for (index_tau=0; index_tau<pfo->tau_size; index_tau++) {
      pfo->tau[index_tau] = ppt->tau_sampling[index_tau];
    }
  }
  return _SUCCESS_;
}

// Assembly:
subq $0x1038, %rsp           # imm = 0x1038
movq %rdi, 0x1028(%rsp)
movq %rsi, 0x1020(%rsp)
movq 0x1028(%rsp), %rax
movl 0xa60(%rax), %ecx
movq 0x1020(%rsp), %rax
movl %ecx, 0x90(%rax)
movq 0x1028(%rsp), %rax
cmpl $0x1, 0xa60(%rax)
jle 0x12f0f2
movq 0x1020(%rsp), %rax
movslq 0x90(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x1020(%rsp), %rax
movq %rcx, 0x88(%rax)
movq 0x1020(%rsp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x12f083
movq 0x1020(%rsp), %rax
movslq 0x90(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x1018(%rsp)
leaq 0x810(%rsp), %rdi
movl 0x1018(%rsp), %ecx
leaq 0xa2fd0(%rip), %rsi     # 0x1d2004
leaq 0xd2fea(%rip), %rdx     # 0x202025
movb $0x0, %al
callq 0x5b9c0
movq 0x1020(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
leaq 0x810(%rsp), %r8
leaq 0xa2fd4(%rip), %rsi     # 0x1d2034
leaq 0xd2fca(%rip), %rdx     # 0x202031
movl $0x8ac, %ecx            # imm = 0x8AC
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x1034(%rsp)
jmp 0x12f247
movl $0x0, 0x101c(%rsp)
movl 0x101c(%rsp), %eax
movq 0x1020(%rsp), %rcx
cmpl 0x90(%rcx), %eax
jge 0x12f0f0
movq 0x1028(%rsp), %rax
movq 0xa58(%rax), %rax
movslq 0x101c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1020(%rsp), %rax
movq 0x88(%rax), %rax
movslq 0x101c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x101c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x101c(%rsp)
jmp 0x12f08e
jmp 0x12f0f2
movq 0x1020(%rsp), %rax
cmpl $0x0, (%rax)
jbe 0x12f23c
movq 0x1028(%rsp), %rax
movl 0x9f8(%rax), %ecx
movq 0x1020(%rsp), %rax
movl %ecx, 0x140(%rax)
movq 0x1020(%rsp), %rax
movslq 0x140(%rax), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x1020(%rsp), %rax
movq %rcx, 0x148(%rax)
movq 0x1020(%rsp), %rax
cmpq $0x0, 0x148(%rax)
jne 0x12f1cd
movq 0x1020(%rsp), %rax
movslq 0x140(%rax), %rax
shlq $0x3, %rax
movl %eax, 0x80c(%rsp)
movq %rsp, %rdi
movl 0x80c(%rsp), %ecx
leaq 0xa2e7e(%rip), %rsi     # 0x1d2004
leaq 0xd2eb9(%rip), %rdx     # 0x202046
movb $0x0, %al
callq 0x5b9c0
movq 0x1020(%rsp), %rdi
addq $0x192, %rdi            # imm = 0x192
movq %rsp, %r8
leaq 0xa2e87(%rip), %rsi     # 0x1d2034
leaq 0xd2e7d(%rip), %rdx     # 0x202031
movl $0x8b8, %ecx            # imm = 0x8B8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x1034(%rsp)
jmp 0x12f247
movl $0x0, 0x101c(%rsp)
movl 0x101c(%rsp), %eax
movq 0x1020(%rsp), %rcx
cmpl 0x140(%rcx), %eax
jge 0x12f23a
movq 0x1028(%rsp), %rax
movq 0x9f0(%rax), %rax
movslq 0x101c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x1020(%rsp), %rax
movq 0x148(%rax), %rax
movslq 0x101c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x101c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x101c(%rsp)
jmp 0x12f1d8
jmp 0x12f23c
movl $0x0, 0x1034(%rsp)
movl 0x1034(%rsp), %eax
addq $0x1038, %rsp           # imm = 0x1038
retq
nopw %cs:(%rax,%rax)