// File: /workspace/github_c_makefile_star2_O3/PoulinV[P]AxiCLASS/build/../source/transfer.c
// Function: transfer_workspace_init
int transfer_workspace_init(
                            struct transfer * ptr,
                            struct precision * ppr,
                            struct transfer_workspace *ptw,
                            int perturbations_tau_size,
                            int tau_size_max,
                            double K,
                            int sgnK,
                            double tau0_minus_tau_cut,
                            HyperInterpStruct * pBIS){

  ptw->tau_size_max = tau_size_max;
  ptw->l_size = ptr->l_size_max;
  ptw->HIS_allocated=_FALSE_;
  ptw->pBIS = pBIS;
  ptw->K = K;
  ptw->sgnK = sgnK;
  ptw->tau0_minus_tau_cut = tau0_minus_tau_cut;
  ptw->neglect_late_source = _FALSE_;

  class_alloc(ptw->interpolated_sources,perturbations_tau_size*sizeof(double),ptr->error_message);
  class_alloc(ptw->sources,tau_size_max*sizeof(double),ptr->error_message);
  class_alloc(ptw->tau0_minus_tau,tau_size_max*sizeof(double),ptr->error_message);
  class_alloc(ptw->w_trapz,tau_size_max*sizeof(double),ptr->error_message);
  class_alloc(ptw->chi,tau_size_max*sizeof(double),ptr->error_message);
  class_alloc(ptw->cscKgen,tau_size_max*sizeof(double),ptr->error_message);
  class_alloc(ptw->cotKgen,tau_size_max*sizeof(double),ptr->error_message);

  return _SUCCESS_;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x808, %rsp            # imm = 0x808
movl %r8d, %ebp
movq %rdx, %r15
movq %rdi, %rbx
movq 0x830(%rsp), %rax
movl %r8d, 0x78(%rdx)
movl 0x908(%rdi), %edx
movl %edx, 0x70(%r15)
movl $0x0, 0x60(%r15)
movq %rax, 0x68(%r15)
movsd %xmm0, 0xb8(%r15)
movl %r9d, 0xc0(%r15)
movsd %xmm1, 0xc8(%r15)
movw $0x0, 0xd0(%r15)
movslq %ecx, %r14
shlq $0x3, %r14
movq %r14, %rdi
callq 0x8460
movq %rax, 0x80(%r15)
testq %rax, %rax
je 0xb09fa
movslq %ebp, %r14
shlq $0x3, %r14
movq %r14, %rdi
callq 0x8460
movq %rax, 0x88(%r15)
testq %rax, %rax
je 0xb0a3a
movq %r14, %rdi
callq 0x8460
movq %rax, 0x90(%r15)
testq %rax, %rax
je 0xb0a7a
movq %r14, %rdi
callq 0x8460
movq %rax, 0x98(%r15)
testq %rax, %rax
je 0xb0aba
movq %r14, %rdi
callq 0x8460
movq %rax, 0xa0(%r15)
testq %rax, %rax
je 0xb0af7
movq %r14, %rdi
callq 0x8460
movq %rax, 0xa8(%r15)
testq %rax, %rax
je 0xb0b34
movq %r14, %rdi
callq 0x8460
movq %rax, %rcx
movq %rax, 0xb0(%r15)
xorl %eax, %eax
testq %rcx, %rcx
jne 0xb0b7e
leaq 0x3d643(%rip), %rsi     # 0xee004
leaq 0x6ff80(%rip), %rdx     # 0x120948
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d64e(%rip), %rsi     # 0xee034
leaq 0x6feff(%rip), %rdx     # 0x1208ec
movq %rbx, %rdi
movl $0x11b3, %ecx           # imm = 0x11B3
jmp 0xb0b6f
leaq 0x3d603(%rip), %rsi     # 0xee004
leaq 0x6feca(%rip), %rdx     # 0x1208d2
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d60e(%rip), %rsi     # 0xee034
leaq 0x6febf(%rip), %rdx     # 0x1208ec
movq %rbx, %rdi
movl $0x11ad, %ecx           # imm = 0x11AD
jmp 0xb0b6f
leaq 0x3d5c3(%rip), %rsi     # 0xee004
leaq 0x6febc(%rip), %rdx     # 0x120904
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d5ce(%rip), %rsi     # 0xee034
leaq 0x6fe7f(%rip), %rdx     # 0x1208ec
movq %rbx, %rdi
movl $0x11ae, %ecx           # imm = 0x11AE
jmp 0xb0b6f
leaq 0x3d583(%rip), %rsi     # 0xee004
leaq 0x6fe89(%rip), %rdx     # 0x120911
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d58e(%rip), %rsi     # 0xee034
leaq 0x6fe3f(%rip), %rdx     # 0x1208ec
movq %rbx, %rdi
movl $0x11af, %ecx           # imm = 0x11AF
jmp 0xb0b6f
leaq 0x3d543(%rip), %rsi     # 0xee004
leaq 0x6fe5d(%rip), %rdx     # 0x120925
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d54e(%rip), %rsi     # 0xee034
leaq 0x6fdff(%rip), %rdx     # 0x1208ec
movq %rbx, %rdi
movl $0x11b0, %ecx           # imm = 0x11B0
jmp 0xb0b6f
leaq 0x3d506(%rip), %rsi     # 0xee004
leaq 0x6fe2d(%rip), %rdx     # 0x120932
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d511(%rip), %rsi     # 0xee034
leaq 0x6fdc2(%rip), %rdx     # 0x1208ec
movq %rbx, %rdi
movl $0x11b1, %ecx           # imm = 0x11B1
jmp 0xb0b6f
leaq 0x3d4c9(%rip), %rsi     # 0xee004
leaq 0x6fdf9(%rip), %rdx     # 0x12093b
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30af0
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d4d4(%rip), %rsi     # 0xee034
leaq 0x6fd85(%rip), %rdx     # 0x1208ec
movq %rbx, %rdi
movl $0x11b2, %ecx           # imm = 0x11B2
movq %r15, %r8
xorl %eax, %eax
callq 0x30af0
movl $0x1, %eax
addq $0x808, %rsp            # imm = 0x808
popq %rbx
popq %r14
popq %r15
popq %rbp
retq