// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x7098, %rsp           # imm = 0x7098
movq %rdi, 0x7088(%rsp)
movq %rsi, 0x7080(%rsp)
movq %rdx, 0x7078(%rsp)
movq %rcx, 0x7070(%rsp)
movq %r8, 0x7068(%rsp)
movq %r9, 0x7060(%rsp)
movq 0x7088(%rsp), %rdi
movq 0x7060(%rsp), %r8
leaq 0x143986(%rip), %rsi    # 0x1dd494
leaq 0x6c40(%rsp), %rdx
leaq 0x705c(%rsp), %rcx
callq 0x38b80
cmpl $0x1, %eax
jne 0x99b87
leaq 0x6440(%rsp), %rdi
movq 0x7060(%rsp), %rcx
leaq 0x138899(%rip), %rsi    # 0x1d23d8
leaq 0x152156(%rip), %rdx    # 0x1ebc9c
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x6440(%rsp), %r8
leaq 0x1384d0(%rip), %rsi    # 0x1d2034
leaq 0x15216a(%rip), %rdx    # 0x1ebcd5
movl $0x1aca, %ecx           # imm = 0x1ACA
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
cmpl $0x1, 0x705c(%rsp)
jne 0x99ca6
leaq 0x6c40(%rsp), %rdi
movl $0x79, %esi
callq 0x5bcd0
cmpl $0x0, %eax
jne 0x99bc7
leaq 0x6c40(%rsp), %rdi
movl $0x59, %esi
callq 0x5bcd0
cmpl $0x0, %eax
je 0x99ca6
movq 0x7078(%rsp), %rax
movswl 0xe(%rax), %eax
cmpl $0x1, %eax
jne 0x99c36
movq 0x7078(%rsp), %rax
movswl 0x28(%rax), %eax
cmpl $0x1, %eax
je 0x99bfa
movq 0x7078(%rsp), %rax
movswl 0x2a(%rax), %eax
cmpl $0x1, %eax
jne 0x99c36
movq 0x7078(%rsp), %rax
movswl 0x2c(%rax), %eax
cmpl $0x1, %eax
jne 0x99c36
movq 0x7068(%rsp), %rax
movw $0x1, (%rax)
movq 0x7080(%rsp), %rax
movl 0x8e0(%rax), %ecx
movq 0x7078(%rsp), %rax
addl 0x48(%rax), %ecx
movl %ecx, 0x48(%rax)
jmp 0x99ca4
leaq 0x5c40(%rsp), %rdi
leaq 0x1520ae(%rip), %rsi    # 0x1ebcf3
movb $0x0, %al
callq 0x5b9c0
leaq 0x5440(%rsp), %rdi
leaq 0x5c40(%rsp), %rdx
leaq 0x13890a(%rip), %rsi    # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x5440(%rsp), %r8
leaq 0x1383b3(%rip), %rsi    # 0x1d2034
leaq 0x15204d(%rip), %rdx    # 0x1ebcd5
movl $0x1ad3, %ecx           # imm = 0x1AD3
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
jmp 0x99ca6
movq 0x7078(%rsp), %rax
movswl 0xe(%rax), %eax
cmpl $0x1, %eax
jne 0x9a0d8
movq 0x7078(%rsp), %rax
movswl 0x2c(%rax), %eax
cmpl $0x1, %eax
jne 0x9a0d8
movq 0x7088(%rsp), %rdi
movq 0x7060(%rsp), %r8
leaq 0x1520e3(%rip), %rsi    # 0x1ebdca
leaq 0x7050(%rsp), %rdx
leaq 0x705c(%rsp), %rcx
callq 0x385d0
cmpl $0x1, %eax
jne 0x99d60
leaq 0x4c40(%rsp), %rdi
movq 0x7060(%rsp), %rcx
leaq 0x1386c0(%rip), %rsi    # 0x1d23d8
leaq 0x1520af(%rip), %rdx    # 0x1ebdce
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x4c40(%rsp), %r8
leaq 0x1382f7(%rip), %rsi    # 0x1d2034
leaq 0x151f91(%rip), %rdx    # 0x1ebcd5
movl $0x1ade, %ecx           # imm = 0x1ADE
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
movq 0x7088(%rsp), %rdi
movq 0x7060(%rsp), %r8
leaq 0x15208b(%rip), %rsi    # 0x1ebe02
leaq 0x7048(%rsp), %rdx
leaq 0x7058(%rsp), %rcx
callq 0x385d0
cmpl $0x1, %eax
jne 0x99df0
leaq 0x4440(%rsp), %rdi
movq 0x7060(%rsp), %rcx
leaq 0x138630(%rip), %rsi    # 0x1d23d8
leaq 0x152060(%rip), %rdx    # 0x1ebe0f
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x4440(%rsp), %r8
leaq 0x138267(%rip), %rsi    # 0x1d2034
leaq 0x151f01(%rip), %rdx    # 0x1ebcd5
movl $0x1ae1, %ecx           # imm = 0x1AE1
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
cmpl $0x1, 0x705c(%rsp)
jne 0x99e72
cmpl $0x1, 0x7058(%rsp)
jne 0x99e72
leaq 0x3c40(%rsp), %rdi
leaq 0x152039(%rip), %rsi    # 0x1ebe4c
movb $0x0, %al
callq 0x5b9c0
leaq 0x3440(%rsp), %rdi
leaq 0x3c40(%rsp), %rdx
leaq 0x13873c(%rip), %rsi    # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x3440(%rsp), %r8
leaq 0x1381e5(%rip), %rsi    # 0x1d2034
leaq 0x151e7f(%rip), %rdx    # 0x1ebcd5
movl $0x1ae4, %ecx           # imm = 0x1AE4
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
cmpl $0x1, 0x705c(%rsp)
jne 0x99e96
movsd 0x7050(%rsp), %xmm0
callq 0x82e0
movq 0x7070(%rsp), %rax
movsd %xmm0, (%rax)
cmpl $0x1, 0x7058(%rsp)
jne 0x99eb5
movsd 0x7048(%rsp), %xmm0
movq 0x7070(%rsp), %rax
movsd %xmm0, (%rax)
jmp 0x99eb7
jmp 0x99eb9
movq 0x7088(%rsp), %rdi
movq 0x7060(%rsp), %r8
leaq 0x151fb3(%rip), %rsi    # 0x1ebe83
leaq 0x3438(%rsp), %rdx
leaq 0x3434(%rsp), %rcx
callq 0x385d0
cmpl $0x1, %eax
jne 0x99f49
leaq 0x2c30(%rsp), %rdi
movq 0x7060(%rsp), %rcx
leaq 0x1384d7(%rip), %rsi    # 0x1d23d8
leaq 0x151f85(%rip), %rdx    # 0x1ebe8d
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x2c30(%rsp), %r8
leaq 0x13810e(%rip), %rsi    # 0x1d2034
leaq 0x151da8(%rip), %rdx    # 0x1ebcd5
movl $0x1aee, %ecx           # imm = 0x1AEE
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
cmpl $0x1, 0x3434(%rsp)
jne 0x99f69
movsd 0x3438(%rsp), %xmm0
movq 0x7070(%rsp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x99f6b
jmp 0x99f6d
movq 0x7088(%rsp), %rdi
movq 0x7060(%rsp), %r8
leaq 0x151f4b(%rip), %rsi    # 0x1ebecf
leaq 0x2c28(%rsp), %rdx
leaq 0x2c24(%rsp), %rcx
callq 0x385d0
cmpl $0x1, %eax
jne 0x99ffd
leaq 0x2420(%rsp), %rdi
movq 0x7060(%rsp), %rcx
leaq 0x138423(%rip), %rsi    # 0x1d23d8
leaq 0x151f1e(%rip), %rdx    # 0x1ebeda
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x2420(%rsp), %r8
leaq 0x13805a(%rip), %rsi    # 0x1d2034
leaq 0x151cf4(%rip), %rdx    # 0x1ebcd5
movl $0x1aef, %ecx           # imm = 0x1AEF
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
cmpl $0x1, 0x2c24(%rsp)
jne 0x9a01d
movsd 0x2c28(%rsp), %xmm0
movq 0x7070(%rsp), %rax
movsd %xmm0, 0x10(%rax)
jmp 0x9a01f
jmp 0x9a021
movq 0x7088(%rsp), %rdi
movq 0x7060(%rsp), %r8
leaq 0x151ee5(%rip), %rsi    # 0x1ebf1d
leaq 0x2418(%rsp), %rdx
leaq 0x2414(%rsp), %rcx
callq 0x385d0
cmpl $0x1, %eax
jne 0x9a0b1
leaq 0x1c10(%rsp), %rdi
movq 0x7060(%rsp), %rcx
leaq 0x13836f(%rip), %rsi    # 0x1d23d8
leaq 0x151ebb(%rip), %rdx    # 0x1ebf2b
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x1c10(%rsp), %r8
leaq 0x137fa6(%rip), %rsi    # 0x1d2034
leaq 0x151c40(%rip), %rdx    # 0x1ebcd5
movl $0x1af1, %ecx           # imm = 0x1AF1
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
cmpl $0x1, 0x2414(%rsp)
jne 0x9a0d4
movsd 0x2418(%rsp), %xmm0
movq 0x7068(%rsp), %rax
movsd %xmm0, 0x88(%rax)
jmp 0x9a0d6
jmp 0x9a0d8
jmp 0x9a0da
movq 0x7088(%rsp), %rdi
movq 0x7060(%rsp), %r8
leaq 0x151e80(%rip), %rsi    # 0x1ebf71
leaq 0x1810(%rsp), %rdx
leaq 0x180c(%rsp), %rcx
callq 0x38b80
cmpl $0x1, %eax
jne 0x9a16a
leaq 0x1000(%rsp), %rdi
movq 0x7060(%rsp), %rcx
leaq 0x1382b6(%rip), %rsi    # 0x1d23d8
leaq 0x151e5e(%rip), %rdx    # 0x1ebf87
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
leaq 0x1000(%rsp), %r8
leaq 0x137eed(%rip), %rsi    # 0x1d2034
leaq 0x151b87(%rip), %rdx    # 0x1ebcd5
movl $0x1af8, %ecx           # imm = 0x1AF8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
cmpl $0x1, 0x180c(%rsp)
jne 0x9a26b
leaq 0x1810(%rsp), %rdi
movl $0x79, %esi
callq 0x5bcd0
cmpl $0x0, %eax
jne 0x9a1a6
leaq 0x1810(%rsp), %rdi
movl $0x59, %esi
callq 0x5bcd0
cmpl $0x0, %eax
je 0x9a1b9
movq 0x7078(%rsp), %rax
movw $0x1, 0x60(%rax)
jmp 0x9a269
leaq 0x1810(%rsp), %rdi
movl $0x6e, %esi
callq 0x5bcd0
cmpl $0x0, %eax
jne 0x9a1e7
leaq 0x1810(%rsp), %rdi
movl $0x4e, %esi
callq 0x5bcd0
cmpl $0x0, %eax
je 0x9a1f7
movq 0x7078(%rsp), %rax
movw $0x0, 0x60(%rax)
jmp 0x9a267
leaq 0x800(%rsp), %rdi
leaq 0x1810(%rsp), %rdx
leaq 0x13ca7e(%rip), %rsi    # 0x1d6c8c
leaq 0x151d5c(%rip), %rcx    # 0x1ebf71
movb $0x0, %al
callq 0x5b9c0
movq %rsp, %rdi
leaq 0x800(%rsp), %rdx
leaq 0x13833f(%rip), %rsi    # 0x1d256d
movb $0x0, %al
callq 0x5b9c0
movq 0x7060(%rsp), %rdi
movq %rsp, %r8
leaq 0x137ded(%rip), %rsi    # 0x1d2034
leaq 0x151a87(%rip), %rdx    # 0x1ebcd5
movl $0x1af8, %ecx           # imm = 0x1AF8
movb $0x0, %al
callq 0x5b9c0
movl $0x1, 0x7094(%rsp)
jmp 0x9a278
jmp 0x9a269
jmp 0x9a26b
jmp 0x9a26d
movl $0x0, 0x7094(%rsp)
movl 0x7094(%rsp), %eax
addq $0x7098, %rsp           # imm = 0x7098
retq
nopw (%rax,%rax)