// File: /workspace/github_c_makefile_star2_O1/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 0xb3a76
movslq %ebp, %r14
shlq $0x3, %r14
movq %r14, %rdi
callq 0x8460
movq %rax, 0x88(%r15)
testq %rax, %rax
je 0xb3ab6
movq %r14, %rdi
callq 0x8460
movq %rax, 0x90(%r15)
testq %rax, %rax
je 0xb3af6
movq %r14, %rdi
callq 0x8460
movq %rax, 0x98(%r15)
testq %rax, %rax
je 0xb3b36
movq %r14, %rdi
callq 0x8460
movq %rax, 0xa0(%r15)
testq %rax, %rax
je 0xb3b73
movq %r14, %rdi
callq 0x8460
movq %rax, 0xa8(%r15)
testq %rax, %rax
je 0xb3bb0
movq %r14, %rdi
callq 0x8460
movq %rax, %rcx
movq %rax, 0xb0(%r15)
xorl %eax, %eax
testq %rcx, %rcx
jne 0xb3bfa
leaq 0x3d5c7(%rip), %rsi     # 0xf1004
leaq 0x6fec4(%rip), %rdx     # 0x123908
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d5d2(%rip), %rsi     # 0xf1034
leaq 0x6fe43(%rip), %rdx     # 0x1238ac
movq %rbx, %rdi
movl $0x11b3, %ecx           # imm = 0x11B3
jmp 0xb3beb
leaq 0x3d587(%rip), %rsi     # 0xf1004
leaq 0x6fe0e(%rip), %rdx     # 0x123892
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d592(%rip), %rsi     # 0xf1034
leaq 0x6fe03(%rip), %rdx     # 0x1238ac
movq %rbx, %rdi
movl $0x11ad, %ecx           # imm = 0x11AD
jmp 0xb3beb
leaq 0x3d547(%rip), %rsi     # 0xf1004
leaq 0x6fe00(%rip), %rdx     # 0x1238c4
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d552(%rip), %rsi     # 0xf1034
leaq 0x6fdc3(%rip), %rdx     # 0x1238ac
movq %rbx, %rdi
movl $0x11ae, %ecx           # imm = 0x11AE
jmp 0xb3beb
leaq 0x3d507(%rip), %rsi     # 0xf1004
leaq 0x6fdcd(%rip), %rdx     # 0x1238d1
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d512(%rip), %rsi     # 0xf1034
leaq 0x6fd83(%rip), %rdx     # 0x1238ac
movq %rbx, %rdi
movl $0x11af, %ecx           # imm = 0x11AF
jmp 0xb3beb
leaq 0x3d4c7(%rip), %rsi     # 0xf1004
leaq 0x6fda1(%rip), %rdx     # 0x1238e5
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d4d2(%rip), %rsi     # 0xf1034
leaq 0x6fd43(%rip), %rdx     # 0x1238ac
movq %rbx, %rdi
movl $0x11b0, %ecx           # imm = 0x11B0
jmp 0xb3beb
leaq 0x3d48a(%rip), %rsi     # 0xf1004
leaq 0x6fd71(%rip), %rdx     # 0x1238f2
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d495(%rip), %rsi     # 0xf1034
leaq 0x6fd06(%rip), %rdx     # 0x1238ac
movq %rbx, %rdi
movl $0x11b1, %ecx           # imm = 0x11B1
jmp 0xb3beb
leaq 0x3d44d(%rip), %rsi     # 0xf1004
leaq 0x6fd3d(%rip), %rdx     # 0x1238fb
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x30c2c
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x3d458(%rip), %rsi     # 0xf1034
leaq 0x6fcc9(%rip), %rdx     # 0x1238ac
movq %rbx, %rdi
movl $0x11b2, %ecx           # imm = 0x11B2
movq %r15, %r8
xorl %eax, %eax
callq 0x30c2c
movl $0x1, %eax
addq $0x808, %rsp            # imm = 0x808
popq %rbx
popq %r14
popq %r15
popq %rbp
retq