// File: /workspace/github_cpp_makefile_star2_O1/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::rtl::vecops::sort<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]);

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

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

         bool ascending = true;

         if ((2 == ps_index) || (3 == ps_index))
         {
            if (exprtk::details::imatch(to_str(string_t(parameters[1])),"ascending"))
               ascending = true;
            else if (exprtk::details::imatch(to_str(string_t(parameters[1])),"descending"))
               ascending = false;
            else
               return T(0);
         }

         if (ascending)
            std::sort(
               vec.begin() + r0,
               vec.begin() + r1 + 1,
               std::less<T>());
         else
            std::sort(
               vec.begin() + r0,
               vec.begin() + r1 + 1,
               std::greater<T>());

         return T(1);
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq (%rdx), %rax
movq (%rax), %r12
movq 0x8(%rax), %r13
decq %r13
cmpq $0x1, (%rsi)
jne 0x3a3175
movq 0x8(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq $0x3, %rdx
jb 0x3a3179
movq 0x18(%rax), %r15
movsd (%r15), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x3a3179
movsd 0xef5d(%rip), %xmm1     # 0x3b2020
callq 0x120460
ucomisd 0xf128(%rip), %xmm0     # 0x3b21f8
jne 0x3a3179
jp 0x3a3179
movsd (%r15), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subsd 0xf193(%rip), %xmm0     # 0x3b2288
cvttsd2si %xmm0, %rbp
andq %rcx, %rbp
orq %rax, %rbp
movq (%rbx), %rax
movq 0x30(%rax), %r15
movsd (%r15), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x3a317b
movsd 0xef02(%rip), %xmm1     # 0x3b2020
callq 0x120460
ucomisd 0xf0cd(%rip), %xmm0     # 0x3b21f8
jne 0x3a317b
jp 0x3a317b
movsd (%r15), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subsd 0xf140(%rip), %xmm0     # 0x3b2288
cvttsd2si %xmm0, %r13
andq %rcx, %r13
orq %rax, %r13
movq (%rbx), %rax
movq 0x8(%rax), %rax
decq %rax
cmpq %rbp, %rax
setae %cl
cmpq %r13, %rax
setae %dl
andb %cl, %dl
cmpq %r13, %rbp
setbe %al
andb %dl, %al
jmp 0x3a317d
xorl %ebp, %ebp
jmp 0x3a3189
xorl %ebp, %ebp
xorl %eax, %eax
xorpd %xmm0, %xmm0
testb %al, %al
je 0x3a3404
cmpq $0x3, (%r14)
jne 0x3a3298
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
movabsq $-0x5555555555555555, %rdx # imm = 0xAAAAAAAAAAAAAAAB
imulq %rcx, %rdx
cmpq $0x4, %rdx
jb 0x3a328a
movq 0x30(%rax), %r15
movsd (%r15), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x3a328a
movsd 0xee48(%rip), %xmm1     # 0x3b2020
callq 0x120460
ucomisd 0xf013(%rip), %xmm0     # 0x3b21f8
jne 0x3a328a
jp 0x3a328a
movsd (%r15), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subsd 0xf07e(%rip), %xmm0     # 0x3b2288
cvttsd2si %xmm0, %rbp
andq %rcx, %rbp
orq %rax, %rbp
movq (%rbx), %rax
movq 0x48(%rax), %r15
movsd (%r15), %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm0, %xmm1
ja 0x3a328a
movsd 0xeded(%rip), %xmm1     # 0x3b2020
callq 0x120460
ucomisd 0xefb8(%rip), %xmm0     # 0x3b21f8
jne 0x3a328a
jp 0x3a328a
movsd (%r15), %xmm0
cvttsd2si %xmm0, %rax
movq %rax, %rcx
sarq $0x3f, %rcx
subsd 0xf02b(%rip), %xmm0     # 0x3b2288
cvttsd2si %xmm0, %r13
andq %rcx, %r13
orq %rax, %r13
movq (%rbx), %rax
movq 0x8(%rax), %rax
decq %rax
cmpq %rbp, %rax
setae %cl
cmpq %r13, %rax
setae %dl
andb %cl, %dl
cmpq %r13, %rbp
setbe %al
andb %dl, %al
jmp 0x3a328c
xorl %eax, %eax
xorpd %xmm0, %xmm0
testb %al, %al
je 0x3a3404
movq (%r14), %rax
andq $-0x2, %rax
cmpq $0x2, %rax
jne 0x3a33b6
movq (%rbx), %rax
movq 0x18(%rax), %rsi
leaq 0x10(%rsp), %r15
movq 0x20(%rax), %rdx
addq %rsi, %rdx
movq %r15, -0x10(%r15)
movq %rsp, %rdi
callq 0x1eabb8
leaq 0x40(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x33f40(%rip), %rsi     # 0x3d7218
leaq 0x33f42(%rip), %rdx     # 0x3d7221
leaq 0x30(%rsp), %rdi
callq 0x1eabb8
movq %rbp, 0x28(%rsp)
movq 0x8(%rsp), %r14
cmpq 0x38(%rsp), %r14
jne 0x3a336a
testq %r14, %r14
sete %bpl
je 0x3a337a
movq %r13, 0x50(%rsp)
movq (%rsp), %r15
movq 0x30(%rsp), %r13
movsbl (%r15), %edi
callq 0x120450
movl %eax, %ebp
movsbl (%r13), %edi
callq 0x120450
cmpl %eax, %ebp
jne 0x3a336e
movq %r12, 0x20(%rsp)
movl $0x1, %ecx
movq %rcx, %r12
cmpq %rcx, %r14
je 0x3a335c
movsbl (%r15,%r12), %edi
callq 0x120450
movl %eax, %ebp
movsbl (%r13,%r12), %edi
callq 0x120450
leaq 0x1(%r12), %rcx
cmpl %eax, %ebp
je 0x3a3334
cmpq %r14, %r12
setae %bpl
movq 0x20(%rsp), %r12
jmp 0x3a3370
xorl %ebp, %ebp
jmp 0x3a337a
xorl %ebp, %ebp
movq 0x50(%rsp), %r13
leaq 0x10(%rsp), %r15
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x3a3396
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x1200c0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x3a33ac
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1200c0
testb %bpl, %bpl
movq 0x28(%rsp), %rbp
je 0x3a3413
leaq (%r12,%rbp,8), %rbx
leaq (%r12,%r13,8), %r14
addq $0x8, %r14
movsd 0xec56(%rip), %xmm0     # 0x3b2020
cmpq %r14, %rbx
je 0x3a3404
movq %r14, %rax
subq %rbx, %rax
sarq $0x3, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a3587
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a367e
movsd 0xec1c(%rip), %xmm0     # 0x3b2020
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%rbx), %rax
movq 0x18(%rax), %rsi
movq 0x20(%rax), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
movq %r15, (%rdi)
callq 0x1eabb8
leaq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
movq %rax, (%rdi)
leaq 0x33de2(%rip), %rsi     # 0x3d7222
leaq 0x33de5(%rip), %rdx     # 0x3d722c
callq 0x1eabb8
movq 0x8(%rsp), %r14
cmpq 0x38(%rsp), %r14
jne 0x3a34c4
testq %r14, %r14
sete %bl
je 0x3a34d7
movq %r13, %rbp
movq (%rsp), %r15
movq 0x30(%rsp), %r13
movsbl (%r15), %edi
callq 0x120450
movl %eax, %ebx
movsbl (%r13), %edi
callq 0x120450
cmpl %eax, %ebx
jne 0x3a34c8
movq %r12, 0x20(%rsp)
movl $0x1, %ecx
movq %rcx, %r12
cmpq %rcx, %r14
je 0x3a34b7
movsbl (%r15,%r12), %edi
callq 0x120450
movl %eax, %ebx
movsbl (%r13,%r12), %edi
callq 0x120450
leaq 0x1(%r12), %rcx
cmpl %eax, %ebx
je 0x3a348f
cmpq %r14, %r12
setae %bl
movq 0x20(%rsp), %r12
jmp 0x3a34ca
xorl %ebx, %ebx
jmp 0x3a34d7
xorl %ebx, %ebx
movq %rbp, %r13
movq 0x28(%rsp), %rbp
leaq 0x10(%rsp), %r15
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x3a34f3
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x1200c0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x3a3509
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1200c0
xorpd %xmm0, %xmm0
testb %bl, %bl
je 0x3a3404
leaq (%r12,%rbp,8), %rbx
leaq (%r12,%r13,8), %r14
addq $0x8, %r14
movsd 0xeaf7(%rip), %xmm0     # 0x3b2020
cmpq %r14, %rbx
je 0x3a3404
movq %r14, %rax
subq %rbx, %rax
sarq $0x3, %rax
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a3955
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3a3a4c
jmp 0x3a33fc
jmp 0x3a3566
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x3a357f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x1200c0
movq %rbx, %rdi
callq 0x120330