// File: /workspace/github_c_makefile_star2_O2/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
movl %r8d, 0x78(%rdx)
movl 0x908(%rdi), %eax
movl %eax, 0x70(%rdx)
andl $0x0, 0x60(%rdx)
movq 0x830(%rsp), %rax
movq %rax, 0x68(%rdx)
movsd %xmm0, 0xb8(%rdx)
movl %r9d, 0xc0(%rdx)
movsd %xmm1, 0xc8(%rdx)
andw $0x0, 0xd0(%rdx)
movslq %ecx, %r14
shlq $0x3, %r14
movq %r14, %rdi
callq 0x8490
movq %rax, 0x80(%r15)
testq %rax, %rax
je 0xab1b3
movslq %ebp, %r14
shlq $0x3, %r14
movq %r14, %rdi
callq 0x8490
movq %rax, 0x88(%r15)
testq %rax, %rax
je 0xab1f3
movq %r14, %rdi
callq 0x8490
movq %rax, 0x90(%r15)
testq %rax, %rax
je 0xab233
movq %r14, %rdi
callq 0x8490
movq %rax, 0x98(%r15)
testq %rax, %rax
je 0xab273
movq %r14, %rdi
callq 0x8490
movq %rax, 0xa0(%r15)
testq %rax, %rax
je 0xab2b0
movq %r14, %rdi
callq 0x8490
movq %rax, 0xa8(%r15)
testq %rax, %rax
je 0xab2ed
movq %r14, %rdi
callq 0x8490
movq %rax, %rcx
movq %rax, 0xb0(%r15)
xorl %eax, %eax
testq %rcx, %rcx
jne 0xab335
leaq 0x39e8a(%rip), %rsi     # 0xe5004
leaq 0x6c657(%rip), %rdx     # 0x1177d8
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x39e95(%rip), %rsi     # 0xe5034
leaq 0x6c5d6(%rip), %rdx     # 0x11777c
movq %rbx, %rdi
movl $0x11b3, %ecx           # imm = 0x11B3
jmp 0xab328
leaq 0x39e4a(%rip), %rsi     # 0xe5004
leaq 0x6c5a1(%rip), %rdx     # 0x117762
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x39e55(%rip), %rsi     # 0xe5034
leaq 0x6c596(%rip), %rdx     # 0x11777c
movq %rbx, %rdi
movl $0x11ad, %ecx           # imm = 0x11AD
jmp 0xab328
leaq 0x39e0a(%rip), %rsi     # 0xe5004
leaq 0x6c593(%rip), %rdx     # 0x117794
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x39e15(%rip), %rsi     # 0xe5034
leaq 0x6c556(%rip), %rdx     # 0x11777c
movq %rbx, %rdi
movl $0x11ae, %ecx           # imm = 0x11AE
jmp 0xab328
leaq 0x39dca(%rip), %rsi     # 0xe5004
leaq 0x6c560(%rip), %rdx     # 0x1177a1
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x39dd5(%rip), %rsi     # 0xe5034
leaq 0x6c516(%rip), %rdx     # 0x11777c
movq %rbx, %rdi
movl $0x11af, %ecx           # imm = 0x11AF
jmp 0xab328
leaq 0x39d8a(%rip), %rsi     # 0xe5004
leaq 0x6c534(%rip), %rdx     # 0x1177b5
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x39d95(%rip), %rsi     # 0xe5034
leaq 0x6c4d6(%rip), %rdx     # 0x11777c
movq %rbx, %rdi
movl $0x11b0, %ecx           # imm = 0x11B0
jmp 0xab328
leaq 0x39d4d(%rip), %rsi     # 0xe5004
leaq 0x6c504(%rip), %rdx     # 0x1177c2
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x39d58(%rip), %rsi     # 0xe5034
leaq 0x6c499(%rip), %rdx     # 0x11777c
movq %rbx, %rdi
movl $0x11b1, %ecx           # imm = 0x11B1
jmp 0xab328
leaq 0x39d10(%rip), %rsi     # 0xe5004
leaq 0x6c4d0(%rip), %rdx     # 0x1177cb
movq %rsp, %r15
movq %r15, %rdi
movl %r14d, %ecx
xorl %eax, %eax
callq 0x2e014
addq $0x96a, %rbx            # imm = 0x96A
leaq 0x39d1b(%rip), %rsi     # 0xe5034
leaq 0x6c45c(%rip), %rdx     # 0x11777c
movq %rbx, %rdi
movl $0x11b2, %ecx           # imm = 0x11B2
movq %r15, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rax
addq $0x808, %rsp            # imm = 0x808
popq %rbx
popq %r14
popq %r15
popq %rbp
retq