// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::lexer::helper::commutative_inserter::insert(exprtk::lexer::token const&, exprtk::lexer::token const&, exprtk::lexer::token&)
inline int insert(const lexer::token& t0, const lexer::token& t1, lexer::token& new_token) exprtk_override
            {
               bool match         = false;
               new_token.type     = lexer::token::e_mul;
               new_token.value    = "*";
               new_token.position = t1.position;

               if (t0.type == lexer::token::e_symbol)
               {
                  if (ignore_set_.end() != ignore_set_.find(t0.value))
                  {
                     return -1;
                  }
                  else if (!t0.value.empty() && ('$' == t0.value[0]))
                  {
                     return -1;
                  }
               }

               if (t1.type == lexer::token::e_symbol)
               {
                  if (ignore_set_.end() != ignore_set_.find(t1.value))
                  {
                     return -1;
                  }
               }
               if      ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_lbracket   )) match = true;
               else if ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_lcrlbracket)) match = true;
               else if ((t0.type == lexer::token::e_number     ) && (t1.type == lexer::token::e_lsqrbracket)) match = true;
               else if ((t0.type == lexer::token::e_symbol     ) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rbracket   ) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rcrlbracket) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rsqrbracket) && (t1.type == lexer::token::e_number     )) match = true;
               else if ((t0.type == lexer::token::e_rbracket   ) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_rcrlbracket) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_rsqrbracket) && (t1.type == lexer::token::e_symbol     )) match = true;
               else if ((t0.type == lexer::token::e_symbol     ) && (t1.type == lexer::token::e_symbol     )) match = true;

               return (match) ? 1 : -1;
            }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %r12
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, %r15
movl $0x2a, (%rcx)
leaq 0x8(%rcx), %rdi
movq 0x10(%rcx), %rdx
leaq 0x1af0c1(%rip), %rcx    # 0x3a22f1
movl $0x1, %r8d
xorl %esi, %esi
callq 0x11e290
movq 0x28(%r14), %rax
movq %rax, 0x28(%r12)
cmpl $0x8, (%rbx)
jne 0x1f3284
leaq 0x10(%r15), %rdi
leaq 0x18(%r15), %r13
leaq 0x8(%rbx), %r12
movq %r12, %rsi
callq 0x1f3944
movq %rax, %rcx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rcx, %r13
jne 0x1f3351
cmpq $0x0, 0x10(%rbx)
je 0x1f3284
movq (%r12), %rcx
cmpb $0x24, (%rcx)
je 0x1f3351
movl (%r14), %ecx
cmpl $0x8, %ecx
jne 0x1f32b1
leaq 0x10(%r15), %rdi
addq $0x18, %r15
leaq 0x8(%r14), %rsi
callq 0x1f3944
movq %rax, %rcx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rcx, %r15
jne 0x1f3351
movl (%r14), %ecx
movl (%rbx), %esi
cmpl $0x8, %ecx
sete %dl
cmpl $0x28, %ecx
sete %dil
movl %ecx, %eax
andl $-0x21, %eax
cmpl $0x5b, %eax
sete %r8b
movl $0x1, %eax
cmpl $0x7, %esi
jne 0x1f32de
orb %dil, %dl
orb %r8b, %dl
jne 0x1f3351
movl %esi, %edx
xorl $0x8, %edx
movl %ecx, %edi
xorl $0x7, %edi
movl %edx, %r8d
orl %edi, %r8d
je 0x1f3351
movl %esi, %r8d
xorl $0x29, %r8d
orl %edi, %r8d
je 0x1f3351
movl %esi, %r8d
xorl $0x7d, %r8d
orl %edi, %r8d
je 0x1f3351
cmpl $0x7d, %esi
sete %dil
cmpl $0x29, %esi
sete %r8b
cmpl $0x7, %ecx
sete %r9b
cmpl $0x8, %ecx
sete %r10b
cmpl $0x5d, %esi
sete %sil
andb %sil, %r9b
andb %r10b, %r8b
orb %r9b, %r8b
andb %r10b, %dil
andb %r10b, %sil
orb %dil, %sil
orb %r8b, %sil
jne 0x1f3351
xorl $0x8, %ecx
xorl %eax, %eax
orl %ecx, %edx
sete %al
decl %eax
orl $0x1, %eax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
nop