// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::rtl::vecops::iota<double>::operator()(unsigned long const&, exprtk::type_store<double>::parameter_list)
inline T operator() (const std::size_t& ps_index, parameter_list_t parameters) exprtk_override
      {
         vector_t vec(parameters[0]);

         const T start_value = (ps_index <= 1) ?
                               scalar_t(parameters[1]) :
                               scalar_t(parameters[3]) ;

         const T step_size = ((0 == ps_index) || (2 == ps_index)) ?
                             scalar_t(parameters.back())() :
                             T(1) ;

         std::size_t r0 = 0;
         std::size_t r1 = vec.size() - 1;

         if (
              ((ps_index == 2) || (ps_index == 3)) &&
              !helper::load_vector_range<T>::process(parameters, r0, r1, 1, 2, 0)
            )
         {
            return T(0);
         }

         for (std::size_t i = r0; i <= r1; ++i)
         {
            vec[i] = start_value + ((i - r0) * step_size);
         }

         return T(1);
      }

// Assembly:
subq $0xa8, %rsp
movq %rdx, 0x98(%rsp)
movq %rdi, 0x90(%rsp)
movq %rsi, 0x88(%rsp)
movq $0x0, 0x70(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x572de0
movq %rax, %rsi
leaq 0x78(%rsp), %rdi
callq 0x572e40
movq 0x88(%rsp), %rax
cmpq $0x1, (%rax)
ja 0x577b2f
movq $0x1, 0x58(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x572de0
movq %rax, %rsi
leaq 0x60(%rsp), %rdi
callq 0x572e10
jmp 0x577b57
movq $0x3, 0x50(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x572de0
movq %rax, %rsi
leaq 0x60(%rsp), %rdi
callq 0x572e10
leaq 0x60(%rsp), %rdi
callq 0x5779a0
movsd %xmm0, 0x68(%rsp)
movq 0x88(%rsp), %rcx
xorl %eax, %eax
cmpq (%rcx), %rax
je 0x577b88
movq 0x88(%rsp), %rcx
movl $0x2, %eax
cmpq (%rcx), %rax
jne 0x577bb8
leaq 0x98(%rsp), %rdi
callq 0x5779c0
movq %rax, %rsi
leaq 0x40(%rsp), %rdi
callq 0x572e10
leaq 0x40(%rsp), %rdi
callq 0x572e30
movsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
jmp 0x577bc8
movsd 0x23480(%rip), %xmm0    # 0x59b040
movsd %xmm0, 0x10(%rsp)
jmp 0x577bc8
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movq $0x0, 0x38(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x572e70
subq $0x1, %rax
movq %rax, 0x30(%rsp)
movq 0x88(%rsp), %rax
cmpq $0x2, (%rax)
je 0x577c12
movq 0x88(%rsp), %rcx
xorl %eax, %eax
cmpq $0x3, (%rcx)
movb %al, 0xf(%rsp)
jne 0x577c50
movq $0x1, 0x28(%rsp)
movq $0x2, 0x20(%rsp)
leaq 0x98(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x30(%rsp), %rdx
leaq 0x28(%rsp), %rcx
leaq 0x20(%rsp), %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0x572e90
xorb $-0x1, %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x577c5a
jmp 0x577c6b
xorps %xmm0, %xmm0
movsd %xmm0, 0xa0(%rsp)
jmp 0x577d0a
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x30(%rsp), %rax
ja 0x577cf9
movsd 0x68(%rsp), %xmm1
movq 0x18(%rsp), %rax
movq 0x38(%rsp), %rcx
subq %rcx, %rax
movq %rax, %xmm0
movaps 0x23500(%rip), %xmm2    # 0x59b1a0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
movapd 0x23504(%rip), %xmm2    # 0x59b1b0
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
movsd 0x48(%rsp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rsp)
leaq 0x78(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x574b60
movsd (%rsp), %xmm0
movsd %xmm0, (%rax)
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x577c75
movsd 0x2333f(%rip), %xmm0    # 0x59b040
movsd %xmm0, 0xa0(%rsp)
movsd 0xa0(%rsp), %xmm0
addq $0xa8, %rsp
retq
nopl (%rax,%rax)