// File: /workspace/github_c_makefile_star2_O2/PoulinV[P]AxiCLASS/build/../source/input.c
// Function: input_read_parameters_lensing
int input_read_parameters_lensing(struct file_content * pfc,
                                  struct precision * ppr,
                                  struct perturbations * ppt,
                                  struct transfer * ptr,
                                  struct lensing *ple,
                                  ErrorMsg errmsg){

  /** Summary: */

  /** Define local variables */
  int flag1,flag2;
  double param1,param2;
  char string1[_ARGUMENT_LENGTH_MAX_];

  /** 1) Lensed spectra? */
  /* Read */
  class_call(parser_read_string(pfc,"lensing",&string1,&flag1,errmsg),
             errmsg,
             errmsg);
  /* Complete set of parameters */
  if ((flag1 == _TRUE_) && (string_begins_with(string1,'y') || string_begins_with(string1,'Y'))){
    if ((ppt->has_scalars == _TRUE_) && ((ppt->has_cl_cmb_temperature == _TRUE_) || (ppt->has_cl_cmb_polarization == _TRUE_)) && (ppt->has_cl_cmb_lensing_potential == _TRUE_)){
      ple->has_lensed_cls = _TRUE_;
      /* Slightly increase precision by delta_l_max for more precise lensed Cl's*/
      ppt->l_scalar_max += ppr->delta_l_max;
    }
    else {
      class_stop(errmsg,"you asked for lensed CMB Cls, but this requires a minimal number of options: 'modes' should include 's', 'output' should include 'tCl' and/or 'pCl', and also, importantly, 'lCl', the CMB lensing potential spectrum.");
    }
  }


  /** 2) Should the lensed spectra be rescaled (either with just A_L, or otherwise with amplitude, and tilt and pivot scale in k space) */
  /* Read */
  if ((ppt->has_scalars == _TRUE_) && (ppt->has_cl_cmb_lensing_potential == _TRUE_)) {

   class_call(parser_read_double(pfc,"A_L",&param1,&flag1,errmsg),
               errmsg,
               errmsg);
    class_call(parser_read_double(pfc,"lcmb_rescale",&param2,&flag2,errmsg),
               errmsg,
               errmsg);

    if ((flag1 == _TRUE_) && (flag2 == _TRUE_)) {
      class_stop(errmsg,"You cannot pass both A_l and lcdmb_rescale, choose one");
    }
    else {
      if (flag1 == _TRUE_) {
        ptr->lcmb_rescale = sqrt(param1);
      }
      if (flag2 == _TRUE_) {
        ptr->lcmb_rescale = param2;
      }
    }
    class_read_double("lcmb_tilt",ptr->lcmb_tilt);
    class_read_double("lcmb_pivot",ptr->lcmb_pivot);
    /* only rescale in TTTEEE, not in lensing*/
    class_read_double("A_lens_TTTEEE",ple->A_lens_TTTEEE);


  }

  /** 3) In general, do we want to use the full Limber scheme introduced in v3.2.2? With this full Limber scheme, the calculation of the CMB lensing potential spectrum C_l^phiphi for l > ppr->l_switch_limber is based on a new integration scheme. Compared to the previous scheme, which can be recovered by switching this parameter to _FALSE_, the new scheme uses a larger k_max and a coarser k-grid (or q-grid) than the CMB transfer function. The new scheme is used by default, because the old one is inaccurate at large l due to the too small k_max. */

  class_read_flag("want_lcmb_full_limber",ppt->want_lcmb_full_limber);

  return _SUCCESS_;

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1828, %rsp           # imm = 0x1828
movq %r9, %rbx
movq %r8, %r12
movq %rcx, %r13
movq %rdx, %r14
movq %rsi, %rbp
movq %rdi, %r15
leaq 0x9b1a4(%rip), %rsi     # 0xf062b
leaq 0x1420(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movq %r9, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x554e2
leaq 0x8ff48(%rip), %rsi     # 0xe53f0
leaq 0xa9599(%rip), %rdx     # 0xfea48
leaq 0x420(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8fb69(%rip), %rsi     # 0xe5034
leaq 0xa95af(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1aca, %ecx           # imm = 0x1ACA
movq %r14, %r8
jmp 0x55617
cmpl $0x1, 0x4(%rsp)
jne 0x5554e
leaq 0x1420(%rsp), %rdi
pushq $0x79
popq %rsi
callq 0x2e1bc
testl %eax, %eax
jne 0x55511
leaq 0x1420(%rsp), %rdi
pushq $0x59
popq %rsi
callq 0x2e1bc
testl %eax, %eax
je 0x5554e
cmpw $0x1, 0xe(%r14)
jne 0x555c9
cmpw $0x1, 0x28(%r14)
je 0x55531
cmpw $0x1, 0x2a(%r14)
jne 0x555c9
cmpw $0x1, 0x2c(%r14)
jne 0x555c9
movw $0x1, (%r12)
movl 0x8e0(%rbp), %eax
addl %eax, 0x48(%r14)
cmpw $0x1, 0xe(%r14)
jne 0x5589f
cmpw $0x1, 0x2c(%r14)
jne 0x5589f
leaq 0xa9609(%rip), %rsi     # 0xfeb76
leaq 0x18(%rsp), %rdx
leaq 0x4(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x55633
leaq 0x8fe5e(%rip), %rsi     # 0xe53f0
leaq 0xa95e1(%rip), %rdx     # 0xfeb7a
leaq 0x420(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8fa7f(%rip), %rsi     # 0xe5034
leaq 0xa94c5(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1ade, %ecx           # imm = 0x1ADE
jmp 0x554da
leaq 0xa94cf(%rip), %rsi     # 0xfea9f
leaq 0x420(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x8ff9c(%rip), %rsi     # 0xe5585
leaq 0xc20(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x8fa2f(%rip), %rsi     # 0xe5034
leaq 0xa9475(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1ad3, %ecx           # imm = 0x1AD3
movq %r15, %r8
xorl %eax, %eax
callq 0x2e014
pushq $0x1
popq %rax
addq $0x1828, %rsp           # imm = 0x1828
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xa9574(%rip), %rsi     # 0xfebae
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x55692
leaq 0x8fd95(%rip), %rsi     # 0xe53f0
leaq 0xa9559(%rip), %rdx     # 0xfebbb
leaq 0x420(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8f9b6(%rip), %rsi     # 0xe5034
leaq 0xa93fc(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1ae1, %ecx           # imm = 0x1AE1
jmp 0x554da
movl 0x4(%rsp), %ecx
movl %ecx, %edx
xorl $0x1, %edx
movl 0x8(%rsp), %eax
movl %eax, %esi
xorl $0x1, %esi
orl %edx, %esi
jne 0x556f8
leaq 0xa9549(%rip), %rsi     # 0xfebf8
leaq 0x420(%rsp), %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x8febd(%rip), %rsi     # 0xe5585
leaq 0xc20(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x8f950(%rip), %rsi     # 0xe5034
leaq 0xa9396(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1ae4, %ecx           # imm = 0x1AE4
jmp 0x55614
cmpl $0x1, %ecx
jne 0x55722
movsd 0x18(%rsp), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x55713
sqrtsd %xmm0, %xmm0
jmp 0x55718
callq 0x82d0
movsd %xmm0, (%r13)
movl 0x8(%rsp), %eax
cmpl $0x1, %eax
jne 0x55733
movsd 0x10(%rsp), %xmm0
movsd %xmm0, (%r13)
leaq 0xa94f5(%rip), %rsi     # 0xfec2f
leaq 0xc20(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x55795
leaq 0x8fc92(%rip), %rsi     # 0xe53f0
leaq 0xa94d4(%rip), %rdx     # 0xfec39
leaq 0x420(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8f8b3(%rip), %rsi     # 0xe5034
leaq 0xa92f9(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1aee, %ecx           # imm = 0x1AEE
jmp 0x554da
cmpl $0x1, 0x20(%rsp)
jne 0x557ab
movsd 0xc20(%rsp), %xmm0
movsd %xmm0, 0x8(%r13)
leaq 0xa94c9(%rip), %rsi     # 0xfec7b
leaq 0xc20(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x5580d
leaq 0x8fc1a(%rip), %rsi     # 0xe53f0
leaq 0xa94a9(%rip), %rdx     # 0xfec86
leaq 0x420(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8f83b(%rip), %rsi     # 0xe5034
leaq 0xa9281(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1aef, %ecx           # imm = 0x1AEF
jmp 0x554da
cmpl $0x1, 0x20(%rsp)
jne 0x55823
movsd 0xc20(%rsp), %xmm0
movsd %xmm0, 0x10(%r13)
leaq 0xa949f(%rip), %rsi     # 0xfecc9
leaq 0xc20(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1c775
cmpl $0x1, %eax
jne 0x55885
leaq 0x8fba2(%rip), %rsi     # 0xe53f0
leaq 0xa9482(%rip), %rdx     # 0xfecd7
leaq 0x420(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8f7c3(%rip), %rsi     # 0xe5034
leaq 0xa9209(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1af1, %ecx           # imm = 0x1AF1
jmp 0x554da
cmpl $0x1, 0x20(%rsp)
jne 0x5589f
movsd 0xc20(%rsp), %xmm0
movsd %xmm0, 0x88(%r12)
leaq 0xa9477(%rip), %rsi     # 0xfed1d
leaq 0x20(%rsp), %rdx
leaq 0xc(%rsp), %rcx
movq %r15, %rdi
movq %rbx, %r8
callq 0x1caf9
cmpl $0x1, %eax
jne 0x558fe
leaq 0x8fb29(%rip), %rsi     # 0xe53f0
leaq 0xa9465(%rip), %rdx     # 0xfed33
leaq 0x420(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x2e014
leaq 0x8f74a(%rip), %rsi     # 0xe5034
leaq 0xa9190(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1af8, %ecx           # imm = 0x1AF8
jmp 0x554da
cmpl $0x1, 0xc(%rsp)
jne 0x55954
leaq 0x20(%rsp), %rdi
pushq $0x79
popq %rsi
callq 0x2e1bc
movw $0x1, %bp
testl %eax, %eax
jne 0x5594f
leaq 0x20(%rsp), %rdi
pushq $0x59
popq %rsi
callq 0x2e1bc
testl %eax, %eax
jne 0x5594f
leaq 0x20(%rsp), %rdi
pushq $0x6e
popq %rsi
callq 0x2e1bc
testl %eax, %eax
jne 0x5594d
leaq 0x20(%rsp), %rdi
pushq $0x4e
popq %rsi
callq 0x2e1bc
testl %eax, %eax
je 0x5595b
xorl %ebp, %ebp
movw %bp, 0x60(%r14)
xorl %eax, %eax
jmp 0x55621
leaq 0x946ea(%rip), %rsi     # 0xea04c
leaq 0xa93b4(%rip), %rcx     # 0xfed1d
leaq 0x420(%rsp), %r14
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
xorl %eax, %eax
callq 0x2e014
leaq 0x8fbfe(%rip), %rsi     # 0xe5585
leaq 0xc20(%rsp), %r15
movq %r15, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x2e014
leaq 0x8f691(%rip), %rsi     # 0xe5034
leaq 0xa90d7(%rip), %rdx     # 0xfea81
movq %rbx, %rdi
movl $0x1af8, %ecx           # imm = 0x1AF8
jmp 0x55614