// File: /workspace/github_c_makefile_star2_O0/PoulinV[P]AxiCLASS/build/../source/transfer.c
// Function: transfer_radial_coordinates
int transfer_radial_coordinates(
                                struct transfer * ptr,
                                struct transfer_workspace * ptw,
                                int index_md,
                                int index_q
                                ) {

  int index_tau;
  double sqrt_absK=0.;

  switch (ptw->sgnK){
  case 1:
    sqrt_absK = sqrt(ptw->K);
    for (index_tau=0; index_tau < ptw->tau_size; index_tau++) {
      ptw->chi[index_tau] = sqrt_absK*ptw->tau0_minus_tau[index_tau];
      ptw->cscKgen[index_tau] = sqrt_absK/ptr->k[index_md][index_q]/sin(ptw->chi[index_tau]);
      ptw->cotKgen[index_tau] = ptw->cscKgen[index_tau]*cos(ptw->chi[index_tau]);
    }
    break;
  case 0:
    for (index_tau=0; index_tau < ptw->tau_size; index_tau++) {
      ptw->chi[index_tau] = ptr->k[index_md][index_q] * ptw->tau0_minus_tau[index_tau];
      ptw->cscKgen[index_tau] = 1.0/ptw->chi[index_tau];
      ptw->cotKgen[index_tau] = 1.0/ptw->chi[index_tau];
    }
    break;
  case -1:
    sqrt_absK = sqrt(-ptw->K);
    for (index_tau=0; index_tau < ptw->tau_size; index_tau++) {
      ptw->chi[index_tau] = sqrt_absK*ptw->tau0_minus_tau[index_tau];
      ptw->cscKgen[index_tau] = sqrt_absK/ptr->k[index_md][index_q]/sinh(ptw->chi[index_tau]);
      ptw->cotKgen[index_tau] = ptw->cscKgen[index_tau]*cosh(ptw->chi[index_tau]);
    }
    break;
  }

  return _SUCCESS_;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movl %edx, 0x44(%rsp)
movl %ecx, 0x40(%rsp)
movq $0x0, 0x30(%rsp)
movq 0x48(%rsp), %rax
movl 0xc0(%rax), %eax
movl %eax, 0x2c(%rsp)
subl $-0x1, %eax
je 0x140374
jmp 0x140139
movl 0x2c(%rsp), %eax
testl %eax, %eax
je 0x140292
jmp 0x140147
movl 0x2c(%rsp), %eax
subl $0x1, %eax
jne 0x1404c4
jmp 0x140156
movq 0x48(%rsp), %rax
movsd 0xb8(%rax), %xmm0
callq 0x82e0
movsd %xmm0, 0x30(%rsp)
movl $0x0, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movq 0x48(%rsp), %rcx
cmpl 0x74(%rcx), %eax
jge 0x14028d
movsd 0x30(%rsp), %xmm0
movq 0x48(%rsp), %rax
movq 0x90(%rax), %rax
movslq 0x3c(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x30(%rsp), %xmm0
movq 0x50(%rsp), %rax
movq 0x930(%rax), %rax
movslq 0x44(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x40(%rsp), %rcx
divsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x18(%rsp)
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x80a0
movaps %xmm0, %xmm1
movsd 0x18(%rsp), %xmm0
divsd %xmm1, %xmm0
movq 0x48(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x48(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x86a0
movaps %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x48(%rsp), %rax
movq 0xb0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x3c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rsp)
jmp 0x140176
jmp 0x1404c4
movl $0x0, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movq 0x48(%rsp), %rcx
cmpl 0x74(%rcx), %eax
jge 0x14036f
movq 0x50(%rsp), %rax
movq 0x930(%rax), %rax
movslq 0x44(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x40(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x48(%rsp), %rax
movq 0x90(%rax), %rax
movslq 0x3c(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd 0x91f38(%rip), %xmm0    # 0x1d2248
divsd (%rax,%rcx,8), %xmm0
movq 0x48(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd 0x91f04(%rip), %xmm0    # 0x1d2248
divsd (%rax,%rcx,8), %xmm0
movq 0x48(%rsp), %rax
movq 0xb0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x3c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rsp)
jmp 0x14029a
jmp 0x1404c4
movq 0x48(%rsp), %rax
movsd 0xb8(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x82e0
movsd %xmm0, 0x30(%rsp)
movl $0x0, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movq 0x48(%rsp), %rcx
cmpl 0x74(%rcx), %eax
jge 0x1404c2
movsd 0x30(%rsp), %xmm0
movq 0x48(%rsp), %rax
movq 0x90(%rax), %rax
movslq 0x3c(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm0
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movsd 0x30(%rsp), %xmm0
movq 0x50(%rsp), %rax
movq 0x930(%rax), %rax
movslq 0x44(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movslq 0x40(%rsp), %rcx
divsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x8(%rsp)
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x8390
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
divsd %xmm1, %xmm0
movq 0x48(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movq 0x48(%rsp), %rax
movq 0xa8(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0x10(%rsp)
movq 0x48(%rsp), %rax
movq 0xa0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm0
callq 0x84a0
movaps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
mulsd %xmm1, %xmm0
movq 0x48(%rsp), %rax
movq 0xb0(%rax), %rax
movslq 0x3c(%rsp), %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x3c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rsp)
jmp 0x1403ab
jmp 0x1404c4
xorl %eax, %eax
addq $0x58, %rsp
retq
nopl (%rax,%rax)