// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x38a8, %rsp           # imm = 0x38A8
movq 0x38b0(%rsp), %rax
movq %rdi, 0x3898(%rsp)
movq %rsi, 0x3890(%rsp)
movq %rdx, 0x3888(%rsp)
movl %ecx, 0x3884(%rsp)
movl %r8d, 0x3880(%rsp)
movsd %xmm0, 0x3878(%rsp)
movl %r9d, 0x3874(%rsp)
movsd %xmm1, 0x3868(%rsp)
movl 0x3880(%rsp), %ecx
movq 0x3888(%rsp), %rax
movl %ecx, 0x78(%rax)
movq 0x3898(%rsp), %rax
movl 0x908(%rax), %ecx
movq 0x3888(%rsp), %rax
movl %ecx, 0x70(%rax)
movq 0x3888(%rsp), %rax
movl $0x0, 0x60(%rax)
movq 0x38b0(%rsp), %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0x68(%rax)
movsd 0x3878(%rsp), %xmm0
movq 0x3888(%rsp), %rax
movsd %xmm0, 0xb8(%rax)
movl 0x3874(%rsp), %ecx
movq 0x3888(%rsp), %rax
movl %ecx, 0xc0(%rax)
movsd 0x3868(%rsp), %xmm0
movq 0x3888(%rsp), %rax
movsd %xmm0, 0xc8(%rax)
movq 0x3888(%rsp), %rax
movw $0x0, 0xd0(%rax)
movslq 0x3884(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0x80(%rax)
movq 0x3888(%rsp), %rax
cmpq $0x0, 0x80(%rax)
jne 0x147833
movslq 0x3884(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x3864(%rsp)
leaq 0x3060(%rsp), %rdi
movl 0x3864(%rsp), %ecx
leaq 0x8a820(%rip), %rsi     # 0x1d2004
leaq 0xbd6a9(%rip), %rdx     # 0x204e94
movb $0x0, %al
callq 0x5b9c0
movq 0x3898(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x3060(%rsp), %r8
leaq 0x8a824(%rip), %rsi     # 0x1d2034
leaq 0xbd697(%rip), %rdx     # 0x204eae
movl $0x11ad, %ecx           # imm = 0x11AD
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x38a4(%rsp)
jmp 0x147c3f
movslq 0x3880(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0x88(%rax)
movq 0x3888(%rsp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x1478e0
movslq 0x3880(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x305c(%rsp)
leaq 0x2850(%rsp), %rdi
movl 0x305c(%rsp), %ecx
leaq 0x8a773(%rip), %rsi     # 0x1d2004
leaq 0xbd62e(%rip), %rdx     # 0x204ec6
movb $0x0, %al
callq 0x5b9c0
movq 0x3898(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x2850(%rsp), %r8
leaq 0x8a777(%rip), %rsi     # 0x1d2034
leaq 0xbd5ea(%rip), %rdx     # 0x204eae
movl $0x11ae, %ecx           # imm = 0x11AE
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x38a4(%rsp)
jmp 0x147c3f
movslq 0x3880(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0x90(%rax)
movq 0x3888(%rsp), %rax
cmpq $0x0, 0x90(%rax)
jne 0x14798d
movslq 0x3880(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x284c(%rsp)
leaq 0x2040(%rsp), %rdi
movl 0x284c(%rsp), %ecx
leaq 0x8a6c6(%rip), %rsi     # 0x1d2004
leaq 0xbd58e(%rip), %rdx     # 0x204ed3
movb $0x0, %al
callq 0x5b9c0
movq 0x3898(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x2040(%rsp), %r8
leaq 0x8a6ca(%rip), %rsi     # 0x1d2034
leaq 0xbd53d(%rip), %rdx     # 0x204eae
movl $0x11af, %ecx           # imm = 0x11AF
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x38a4(%rsp)
jmp 0x147c3f
movslq 0x3880(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0x98(%rax)
movq 0x3888(%rsp), %rax
cmpq $0x0, 0x98(%rax)
jne 0x147a3a
movslq 0x3880(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x203c(%rsp)
leaq 0x1830(%rsp), %rdi
movl 0x203c(%rsp), %ecx
leaq 0x8a619(%rip), %rsi     # 0x1d2004
leaq 0xbd4f5(%rip), %rdx     # 0x204ee7
movb $0x0, %al
callq 0x5b9c0
movq 0x3898(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x1830(%rsp), %r8
leaq 0x8a61d(%rip), %rsi     # 0x1d2034
leaq 0xbd490(%rip), %rdx     # 0x204eae
movl $0x11b0, %ecx           # imm = 0x11B0
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x38a4(%rsp)
jmp 0x147c3f
movslq 0x3880(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0xa0(%rax)
movq 0x3888(%rsp), %rax
cmpq $0x0, 0xa0(%rax)
jne 0x147ae7
movslq 0x3880(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x182c(%rsp)
leaq 0x1020(%rsp), %rdi
movl 0x182c(%rsp), %ecx
leaq 0x8a56c(%rip), %rsi     # 0x1d2004
leaq 0xbd455(%rip), %rdx     # 0x204ef4
movb $0x0, %al
callq 0x5b9c0
movq 0x3898(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x1020(%rsp), %r8
leaq 0x8a570(%rip), %rsi     # 0x1d2034
leaq 0xbd3e3(%rip), %rdx     # 0x204eae
movl $0x11b1, %ecx           # imm = 0x11B1
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x38a4(%rsp)
jmp 0x147c3f
movslq 0x3880(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0xa8(%rax)
movq 0x3888(%rsp), %rax
cmpq $0x0, 0xa8(%rax)
jne 0x147b94
movslq 0x3880(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x101c(%rsp)
leaq 0x810(%rsp), %rdi
movl 0x101c(%rsp), %ecx
leaq 0x8a4bf(%rip), %rsi     # 0x1d2004
leaq 0xbd3b1(%rip), %rdx     # 0x204efd
movb $0x0, %al
callq 0x5b9c0
movq 0x3898(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
leaq 0x810(%rsp), %r8
leaq 0x8a4c3(%rip), %rsi     # 0x1d2034
leaq 0xbd336(%rip), %rdx     # 0x204eae
movl $0x11b2, %ecx           # imm = 0x11B2
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x38a4(%rsp)
jmp 0x147c3f
movslq 0x3880(%rsp), %rdi
shlq $0x3, %rdi
callq 0x8460
movq %rax, %rcx
movq 0x3888(%rsp), %rax
movq %rcx, 0xb0(%rax)
movq 0x3888(%rsp), %rax
cmpq $0x0, 0xb0(%rax)
jne 0x147c34
movslq 0x3880(%rsp), %rax
shlq $0x3, %rax
movl %eax, 0x80c(%rsp)
movq %rsp, %rdi
movl 0x80c(%rsp), %ecx
leaq 0x8a417(%rip), %rsi     # 0x1d2004
leaq 0xbd316(%rip), %rdx     # 0x204f0a
movb $0x0, %al
callq 0x5b9c0
movq 0x3898(%rsp), %rdi
addq $0x96a, %rdi            # imm = 0x96A
movq %rsp, %r8
leaq 0x8a420(%rip), %rsi     # 0x1d2034
leaq 0xbd293(%rip), %rdx     # 0x204eae
movl $0x11b3, %ecx           # imm = 0x11B3
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x38a4(%rsp)
jmp 0x147c3f
movl $0x0, 0x38a4(%rsp)
movl 0x38a4(%rsp), %eax
addq $0x38a8, %rsp           # imm = 0x38A8
retq
nop