// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/./exprtk.hpp
// Function: double exprtk::details::numeric::details::process_impl<double>(exprtk::details::operator_type, double, double)
inline T process_impl(const operator_type operation, const T arg0, const T arg1)
            {
               switch (operation)
               {
                  case e_add    : return (arg0 + arg1);
                  case e_sub    : return (arg0 - arg1);
                  case e_mul    : return (arg0 * arg1);
                  case e_div    : return (arg0 / arg1);
                  case e_mod    : return modulus<T>(arg0,arg1);
                  case e_pow    : return pow<T>(arg0,arg1);
                  case e_atan2  : return atan2<T>(arg0,arg1);
                  case e_min    : return std::min<T>(arg0,arg1);
                  case e_max    : return std::max<T>(arg0,arg1);
                  case e_logn   : return logn<T>(arg0,arg1);
                  case e_lt     : return (arg0 <  arg1) ? T(1) : T(0);
                  case e_lte    : return (arg0 <= arg1) ? T(1) : T(0);
                  case e_eq     : return std::equal_to<T>()(arg0,arg1) ? T(1) : T(0);
                  case e_ne     : return std::not_equal_to<T>()(arg0,arg1) ? T(1) : T(0);
                  case e_gte    : return (arg0 >= arg1) ? T(1) : T(0);
                  case e_gt     : return (arg0 >  arg1) ? T(1) : T(0);
                  case e_and    : return and_opr <T>(arg0,arg1);
                  case e_nand   : return nand_opr<T>(arg0,arg1);
                  case e_or     : return or_opr  <T>(arg0,arg1);
                  case e_nor    : return nor_opr <T>(arg0,arg1);
                  case e_xor    : return xor_opr <T>(arg0,arg1);
                  case e_xnor   : return xnor_opr<T>(arg0,arg1);
                  case e_root   : return root    <T>(arg0,arg1);
                  case e_roundn : return roundn  <T>(arg0,arg1);
                  case e_equal  : return equal   <T>(arg0,arg1);
                  case e_nequal : return nequal  <T>(arg0,arg1);
                  case e_hypot  : return hypot   <T>(arg0,arg1);
                  case e_shr    : return shr     <T>(arg0,arg1);
                  case e_shl    : return shl     <T>(arg0,arg1);

                  default       : exprtk_debug(("numeric::details::process_impl<T> - Invalid binary operation.\n"));
                                  return std::numeric_limits<T>::quiet_NaN();
               }
            }

// Assembly:
subq $0x28, %rsp
movapd %xmm1, %xmm5
movapd %xmm0, %xmm3
movsd 0xe53a0(%rip), %xmm4    # 0x389208
leal -0x2(%rdi), %eax
cmpl $0x36, %eax
ja 0x2a3e89
leaq 0xe7bfd(%rip), %rcx     # 0x38ba74
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
addsd %xmm5, %xmm3
jmp 0x2a41c5
cmpl $0x4a, %edi
jne 0x2a4220
mulsd %xmm5, %xmm5
mulsd %xmm3, %xmm3
addsd %xmm5, %xmm3
xorps %xmm0, %xmm0
sqrtsd %xmm3, %xmm0
jmp 0x2a4224
cvttsd2si %xmm5, %edi
movsd 0xe516a(%rip), %xmm0    # 0x389020
movapd %xmm3, (%rsp)
callq 0x11e520
movapd %xmm0, %xmm4
jmp 0x2a402f
movapd %xmm3, %xmm0
movapd %xmm5, 0x10(%rsp)
callq 0x11e120
movapd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
callq 0x11e120
movapd (%rsp), %xmm4
divsd %xmm0, %xmm4
jmp 0x2a4220
movapd %xmm5, %xmm0
movapd %xmm3, (%rsp)
callq 0x11e0d0
movapd (%rsp), %xmm1
cvttsd2si %xmm0, %eax
cmpl $0x10, %eax
movl $0x10, %ecx
cmovll %eax, %ecx
xorl %eax, %eax
testl %ecx, %ecx
cmovgl %ecx, %eax
leaq 0x13c2ba(%rip), %rcx    # 0x3e01e0
movsd (%rcx,%rax,8), %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
movsd %xmm2, 0x10(%rsp)
mulsd %xmm2, %xmm1
jbe 0x2a4229
addsd 0xe52e5(%rip), %xmm1    # 0x389230
movapd %xmm1, %xmm0
callq 0x11e570
jmp 0x2a423a
xorpd %xmm0, %xmm0
ucomisd %xmm3, %xmm0
jbe 0x2a4246
movapd %xmm3, (%rsp)
movapd %xmm5, %xmm0
movapd %xmm5, 0x10(%rsp)
callq 0x11e390
movapd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
jne 0x2a425f
jp 0x2a425f
movsd 0xe50af(%rip), %xmm1    # 0x389048
movapd %xmm2, %xmm0
callq 0x11e460
movapd 0x10(%rsp), %xmm2
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movapd (%rsp), %xmm0
movsd 0xe524b(%rip), %xmm4    # 0x389208
jne 0x2a3fc5
jnp 0x2a4220
xorpd 0xe5463(%rip), %xmm0    # 0x389430
movsd 0xe504b(%rip), %xmm1    # 0x389020
divsd %xmm2, %xmm1
callq 0x11e1b0
movapd %xmm0, %xmm4
xorpd 0xe5446(%rip), %xmm4    # 0x389430
jmp 0x2a4220
cmpltsd %xmm3, %xmm5
jmp 0x2a41f4
cmpeqsd %xmm5, %xmm3
jmp 0x2a40b2
cmplesd %xmm5, %xmm3
jmp 0x2a40b2
cvttsd2si %xmm5, %edi
movsd 0xe5007(%rip), %xmm0    # 0x389020
movapd %xmm3, (%rsp)
callq 0x11e520
movsd 0xe4ff5(%rip), %xmm4    # 0x389020
divsd %xmm0, %xmm4
mulsd (%rsp), %xmm4
jmp 0x2a4220
movapd %xmm3, %xmm0
subsd %xmm5, %xmm0
movapd 0xe53e7(%rip), %xmm1    # 0x389430
movapd %xmm0, %xmm4
xorpd %xmm1, %xmm4
maxsd %xmm0, %xmm4
unpcklpd %xmm5, %xmm3            # xmm3 = xmm3[0],xmm5[0]
xorpd %xmm3, %xmm1
maxpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
maxsd %xmm1, %xmm0
movsd 0xe4fab(%rip), %xmm1    # 0x389020
maxsd %xmm1, %xmm0
mulsd 0xe4fd7(%rip), %xmm0    # 0x389058
cmplesd %xmm0, %xmm4
andpd %xmm1, %xmm4
jmp 0x2a4220
movapd %xmm3, %xmm0
movapd %xmm5, %xmm1
addq $0x28, %rsp
jmp 0x11e170
cmpltsd %xmm5, %xmm3
jmp 0x2a40b2
maxsd %xmm3, %xmm5
jmp 0x2a40c3
cmpneqsd %xmm5, %xmm3
movsd 0xe4f66(%rip), %xmm4    # 0x389020
jmp 0x2a421c
minsd %xmm3, %xmm5
movapd %xmm5, %xmm4
jmp 0x2a4220
xorpd %xmm0, %xmm0
cmpeqsd %xmm0, %xmm3
cmpeqsd %xmm0, %xmm5
jmp 0x2a4186
xorpd %xmm4, %xmm4
cmpneqpd %xmm4, %xmm5
cmpneqpd %xmm4, %xmm3
xorpd %xmm5, %xmm3
movd %xmm3, %eax
testb $0x1, %al
je 0x2a41e5
jmp 0x2a4220
movapd %xmm3, %xmm0
movapd %xmm5, %xmm1
jmp 0x2a4256
movapd %xmm3, %xmm0
subsd %xmm5, %xmm0
movapd 0xe5311(%rip), %xmm1    # 0x389430
movapd %xmm0, %xmm2
xorpd %xmm1, %xmm2
maxsd %xmm0, %xmm2
unpcklpd %xmm5, %xmm3            # xmm3 = xmm3[0],xmm5[0]
xorpd %xmm3, %xmm1
maxpd %xmm3, %xmm1
movapd %xmm1, %xmm4
unpckhpd %xmm1, %xmm4            # xmm4 = xmm4[1],xmm1[1]
maxsd %xmm1, %xmm4
movsd 0xe4ed5(%rip), %xmm0    # 0x389020
maxsd %xmm0, %xmm4
mulsd 0xe4f01(%rip), %xmm4    # 0x389058
cmpltsd %xmm2, %xmm4
andpd %xmm0, %xmm4
jmp 0x2a4220
xorpd %xmm0, %xmm0
cmpeqsd %xmm0, %xmm3
cmpeqsd %xmm0, %xmm5
jmp 0x2a4210
xorpd %xmm0, %xmm0
cmpneqsd %xmm0, %xmm3
cmpneqsd %xmm0, %xmm5
movsd 0xe4e92(%rip), %xmm0    # 0x389020
andpd %xmm0, %xmm5
movapd %xmm3, %xmm1
andnpd %xmm5, %xmm1
andpd %xmm0, %xmm3
orpd %xmm1, %xmm3
jmp 0x2a41c5
divsd %xmm5, %xmm3
jmp 0x2a41c5
subsd %xmm5, %xmm3
jmp 0x2a41c5
movapd %xmm3, %xmm0
movapd %xmm5, %xmm1
addq $0x28, %rsp
jmp 0x11e460
mulsd %xmm5, %xmm3
movapd %xmm3, %xmm4
jmp 0x2a4220
xorpd %xmm4, %xmm4
cmpeqpd %xmm4, %xmm5
cmpeqpd %xmm4, %xmm3
xorpd %xmm5, %xmm3
movd %xmm3, %eax
testb $0x1, %al
je 0x2a4220
movsd 0xe4e33(%rip), %xmm4    # 0x389020
jmp 0x2a4220
cmplesd %xmm3, %xmm5
movsd 0xe4e24(%rip), %xmm4    # 0x389020
andpd %xmm5, %xmm4
jmp 0x2a4220
xorpd %xmm0, %xmm0
cmpneqsd %xmm0, %xmm3
cmpneqsd %xmm0, %xmm5
movsd 0xe4e08(%rip), %xmm4    # 0x389020
andpd %xmm5, %xmm4
andpd %xmm3, %xmm4
movapd %xmm4, %xmm0
addq $0x28, %rsp
retq
addsd 0xe4e57(%rip), %xmm1    # 0x389088
movapd %xmm1, %xmm0
callq 0x11e0d0
movapd %xmm0, %xmm4
divsd 0x10(%rsp), %xmm4
jmp 0x2a4220
movsd 0xe4dd2(%rip), %xmm1    # 0x389020
divsd %xmm5, %xmm1
movapd %xmm3, %xmm0
addq $0x28, %rsp
jmp 0x11e1b0
movsd 0xe4fa1(%rip), %xmm4    # 0x389208
jmp 0x2a4220
nop