// File: /workspace/github_cpp_makefile_star2_O1/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 0xf1276(%rip), %xmm4    # 0x3b2210
leal -0x2(%rdi), %eax
cmpl $0x36, %eax
ja 0x2c0fbb
leaq 0xf3a53(%rip), %rcx     # 0x3b49fc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
addsd %xmm5, %xmm3
jmp 0x2c1305
cmpl $0x4a, %edi
jne 0x2c1360
mulsd %xmm5, %xmm5
mulsd %xmm3, %xmm3
addsd %xmm5, %xmm3
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm3
jb 0x2c139f
xorps %xmm4, %xmm4
sqrtsd %xmm3, %xmm4
jmp 0x2c1360
cvttsd2si %xmm5, %edi
movsd 0xf102a(%rip), %xmm0    # 0x3b2020
movapd %xmm3, (%rsp)
callq 0x120520
movapd %xmm0, %xmm4
jmp 0x2c116f
movapd %xmm3, %xmm0
movapd %xmm5, 0x10(%rsp)
callq 0x120120
movapd %xmm0, (%rsp)
movapd 0x10(%rsp), %xmm0
callq 0x120120
movapd (%rsp), %xmm4
divsd %xmm0, %xmm4
jmp 0x2c1360
movapd %xmm5, %xmm0
movapd %xmm3, (%rsp)
callq 0x1200d0
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 0x14817a(%rip), %rcx    # 0x4091e0
movsd (%rcx,%rax,8), %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm1, %xmm0
movsd %xmm2, 0x10(%rsp)
mulsd %xmm2, %xmm1
jbe 0x2c1369
addsd 0xf11ad(%rip), %xmm1    # 0x3b2238
movapd %xmm1, %xmm0
callq 0x120570
jmp 0x2c137a
xorpd %xmm0, %xmm0
ucomisd %xmm3, %xmm0
jbe 0x2c1386
movapd %xmm3, (%rsp)
movapd %xmm5, %xmm0
movapd %xmm5, 0x10(%rsp)
callq 0x120390
movapd 0x10(%rsp), %xmm2
ucomisd %xmm2, %xmm0
jne 0x2c13ac
jp 0x2c13ac
movsd 0xf0f6f(%rip), %xmm1    # 0x3b2048
movapd %xmm2, %xmm0
callq 0x120460
movapd 0x10(%rsp), %xmm2
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movapd (%rsp), %xmm0
movsd 0xf1113(%rip), %xmm4    # 0x3b2210
jne 0x2c1105
jnp 0x2c1360
xorpd 0xf1333(%rip), %xmm0    # 0x3b2440
movsd 0xf0f0b(%rip), %xmm1    # 0x3b2020
divsd %xmm2, %xmm1
callq 0x1201b0
movapd %xmm0, %xmm4
xorpd 0xf1316(%rip), %xmm4    # 0x3b2440
jmp 0x2c1360
cmpltsd %xmm3, %xmm5
jmp 0x2c1334
cmpeqsd %xmm5, %xmm3
jmp 0x2c11f2
cmplesd %xmm5, %xmm3
jmp 0x2c11f2
cvttsd2si %xmm5, %edi
movsd 0xf0ec7(%rip), %xmm0    # 0x3b2020
movapd %xmm3, (%rsp)
callq 0x120520
movsd 0xf0eb5(%rip), %xmm4    # 0x3b2020
divsd %xmm0, %xmm4
mulsd (%rsp), %xmm4
jmp 0x2c1360
movapd %xmm3, %xmm0
subsd %xmm5, %xmm0
movapd 0xf12b7(%rip), %xmm1    # 0x3b2440
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 0xf0e6b(%rip), %xmm1    # 0x3b2020
maxsd %xmm1, %xmm0
mulsd 0xf0e97(%rip), %xmm0    # 0x3b2058
cmplesd %xmm0, %xmm4
andpd %xmm1, %xmm4
jmp 0x2c1360
movapd %xmm3, %xmm0
movapd %xmm5, %xmm1
addq $0x28, %rsp
jmp 0x120170
cmpltsd %xmm5, %xmm3
jmp 0x2c11f2
maxsd %xmm3, %xmm5
jmp 0x2c1203
cmpneqsd %xmm5, %xmm3
movsd 0xf0e26(%rip), %xmm4    # 0x3b2020
jmp 0x2c135c
minsd %xmm3, %xmm5
movapd %xmm5, %xmm4
jmp 0x2c1360
xorpd %xmm0, %xmm0
cmpeqsd %xmm0, %xmm3
cmpeqsd %xmm0, %xmm5
jmp 0x2c12c6
xorpd %xmm4, %xmm4
cmpneqpd %xmm4, %xmm5
cmpneqpd %xmm4, %xmm3
xorpd %xmm5, %xmm3
movd %xmm3, %eax
testb $0x1, %al
je 0x2c1325
jmp 0x2c1360
movapd %xmm3, %xmm0
movapd %xmm5, %xmm1
jmp 0x2c1396
movapd %xmm3, %xmm0
subsd %xmm5, %xmm0
movapd 0xf11e1(%rip), %xmm1    # 0x3b2440
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 0xf0d95(%rip), %xmm0    # 0x3b2020
maxsd %xmm0, %xmm4
mulsd 0xf0dc1(%rip), %xmm4    # 0x3b2058
cmpltsd %xmm2, %xmm4
andpd %xmm0, %xmm4
jmp 0x2c1360
xorpd %xmm0, %xmm0
cmpeqsd %xmm0, %xmm3
cmpeqsd %xmm0, %xmm5
jmp 0x2c1350
xorpd %xmm0, %xmm0
cmpneqsd %xmm0, %xmm3
cmpneqsd %xmm0, %xmm5
movsd 0xf0d52(%rip), %xmm0    # 0x3b2020
andpd %xmm0, %xmm5
movapd %xmm3, %xmm1
andnpd %xmm5, %xmm1
andpd %xmm0, %xmm3
orpd %xmm1, %xmm3
jmp 0x2c1305
divsd %xmm5, %xmm3
jmp 0x2c1305
subsd %xmm5, %xmm3
jmp 0x2c1305
movapd %xmm3, %xmm0
movapd %xmm5, %xmm1
addq $0x28, %rsp
jmp 0x120460
mulsd %xmm5, %xmm3
movapd %xmm3, %xmm4
jmp 0x2c1360
xorpd %xmm4, %xmm4
cmpeqpd %xmm4, %xmm5
cmpeqpd %xmm4, %xmm3
xorpd %xmm5, %xmm3
movd %xmm3, %eax
testb $0x1, %al
je 0x2c1360
movsd 0xf0cf3(%rip), %xmm4    # 0x3b2020
jmp 0x2c1360
cmplesd %xmm3, %xmm5
movsd 0xf0ce4(%rip), %xmm4    # 0x3b2020
andpd %xmm5, %xmm4
jmp 0x2c1360
xorpd %xmm0, %xmm0
cmpneqsd %xmm0, %xmm3
cmpneqsd %xmm0, %xmm5
movsd 0xf0cc8(%rip), %xmm4    # 0x3b2020
andpd %xmm5, %xmm4
andpd %xmm3, %xmm4
movapd %xmm4, %xmm0
addq $0x28, %rsp
retq
addsd 0xf0d17(%rip), %xmm1    # 0x3b2088
movapd %xmm1, %xmm0
callq 0x1200d0
movapd %xmm0, %xmm4
divsd 0x10(%rsp), %xmm4
jmp 0x2c1360
movsd 0xf0c92(%rip), %xmm1    # 0x3b2020
divsd %xmm5, %xmm1
movapd %xmm3, %xmm0
addq $0x28, %rsp
jmp 0x1201b0
movapd %xmm3, %xmm0
addq $0x28, %rsp
jmp 0x120260
movsd 0xf0e5c(%rip), %xmm4    # 0x3b2210
jmp 0x2c1360