// File: /workspace/github_cpp_makefile_star2_O1/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::expression_generator<double>::synthesize_bov_expression::process(exprtk::parser<double>::expression_generator<double>&, exprtk::details::operator_type const&, exprtk::details::expression_node<double>* (&) [2])
static inline expression_node_ptr process(expression_generator<Type>& expr_gen,
                                                      const details::operator_type& operation,
                                                      expression_node_ptr (&branch)[2])
            {
               const Type& v = static_cast<details::variable_node<Type>*>(branch[1])->ref();

               #ifndef exprtk_disable_enhanced_features
               if (details::is_sf3ext_node(branch[0]))
               {
                  expression_node_ptr result = error_node();

                  const bool synthesis_result =
                     synthesize_sf4ext_expression::template compile_left<vtype>
                        (expr_gen, v, operation, branch[0], result);

                  if (synthesis_result)
                  {
                     details::free_node(*expr_gen.node_allocator_, branch[0]);

                     return result;
                  }
               }
               #endif

               if (
                    (details::e_add == operation) ||
                    (details::e_sub == operation) ||
                    (details::e_mul == operation) ||
                    (details::e_div == operation)
                  )
               {
                  if (details::is_uv_node(branch[0]))
                  {
                     typedef details::uv_base_node<Type>* uvbn_ptr_t;

                     details::operator_type o = static_cast<uvbn_ptr_t>(branch[0])->operation();

                     if (details::e_neg == o)
                     {
                        const Type& v0 = static_cast<uvbn_ptr_t>(branch[0])->v();

                        details::free_node(*expr_gen.node_allocator_,branch[0]);

                        switch (operation)
                        {
                           case details::e_add : return expr_gen.node_allocator_->
                                                    template allocate_rr<typename details::
                                                       vov_node<Type,details::sub_op<Type> > >(v,v0);

                           case details::e_sub : return expr_gen(details::e_neg,
                                                    expr_gen.node_allocator_->
                                                       template allocate_rr<typename details::
                                                          vov_node<Type,details::add_op<Type> > >(v0,v));

                           case details::e_mul : return expr_gen(details::e_neg,
                                                    expr_gen.node_allocator_->
                                                       template allocate_rr<typename details::
                                                          vov_node<Type,details::mul_op<Type> > >(v0,v));

                           case details::e_div : return expr_gen(details::e_neg,
                                                    expr_gen.node_allocator_->
                                                       template allocate_rr<typename details::
                                                          vov_node<Type,details::div_op<Type> > >(v0,v));
                           default : break;
                        }
                     }
                  }
               }

               switch (operation)
               {
                  #define case_stmt(op0, op1)                                                      \
                  case op0 : return expr_gen.node_allocator_->                                     \
                                template allocate_cr<typename details::bov_node<Type,op1<Type> > > \
                                   (branch[0], v);                                                 \

                  basic_opr_switch_statements
                  extended_opr_switch_statements
                  #undef case_stmt
                  default : return error_node();
               }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r13
movq (%rdx), %rdi
movq 0x8(%rdx), %rax
movq 0x28(%rax), %r14
movq (%rdi), %rax
callq *0x28(%rax)
addl $-0x6a, %eax
cmpl $0x4, %eax
ja 0x2ba17b
leaq 0x10(%rsp), %r8
movq $0x0, (%r8)
movq %r13, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %r15, %rcx
callq 0x31a564
movl %eax, %ebp
testb %al, %al
je 0x2ba172
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2ba16d
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x11, %eax
je 0x2ba16d
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2ba165
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x12, %eax
je 0x2ba16d
movq %r15, %rdi
callq 0x1f1690
movq 0x10(%rsp), %rbx
testb %bpl, %bpl
jne 0x2ba512
movl (%r12), %eax
addl $-0x2, %eax
cmpl $0x3, %eax
ja 0x2ba2b6
movq (%r15), %rbp
testq %rbp, %rbp
je 0x2ba2b6
leaq 0x255292(%rip), %rsi    # 0x50f430
leaq 0x287b23(%rip), %rdx    # 0x541cc8
movq %rbp, %rdi
xorl %ecx, %ecx
callq 0x1204f0
testq %rax, %rax
je 0x2ba2b6
movq (%rbp), %rax
movq %rbp, %rdi
callq *0x38(%rax)
movb $0x1, %bpl
cmpl $0x34, %eax
jne 0x2ba2ad
movq (%r15), %rdi
movq (%rdi), %rax
callq *0x40(%rax)
movq %rax, 0x8(%rsp)
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2ba20a
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x11, %eax
je 0x2ba20a
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2ba202
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x12, %eax
je 0x2ba20a
movq %r15, %rdi
callq 0x1f1690
movl (%r12), %eax
addl $-0x2, %eax
cmpl $0x3, %eax
ja 0x2ba2ad
leaq 0xfa5bb(%rip), %rcx     # 0x3b47dc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x8(%r13), %rdi
movq %r14, %rsi
movq 0x8(%rsp), %rdx
callq 0x20cd04
jmp 0x2ba2a8
leaq 0x4(%rsp), %rbx
movl $0x34, (%rbx)
movq 0x8(%r13), %rdi
movq 0x8(%rsp), %rsi
movq %r14, %rdx
callq 0x20cd4a
jmp 0x2ba295
leaq 0x4(%rsp), %rbx
movl $0x34, (%rbx)
movq 0x8(%r13), %rdi
movq 0x8(%rsp), %rsi
movq %r14, %rdx
callq 0x20cd90
jmp 0x2ba295
leaq 0x4(%rsp), %rbx
movl $0x34, (%rbx)
movq 0x8(%r13), %rdi
movq 0x8(%rsp), %rsi
movq %r14, %rdx
callq 0x20ccbe
leaq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x29b38c
movq %rax, %rbx
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x2ba512
movl (%r12), %eax
xorl %ebx, %ebx
addl $-0x2, %eax
cmpl $0x19, %eax
ja 0x2ba512
leaq 0xfa51d(%rip), %rcx     # 0x3b47ec
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31aca6
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31be0a
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b88a
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b1d8
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31bc9c
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31adf4
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b328
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b72c
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b08c
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31af40
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b478
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b5d2
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31bf7e
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31c0ee
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31bb42
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31b9e8
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31c3ca
jmp 0x2ba507
movl $0x38, %edi
callq 0x1200f0
movq %rax, %rbx
movq (%r15), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x31c258
leaq 0x8(%rbx), %rdi
movq 0x8(%rbx), %rax
callq *0x10(%rax)
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
jmp 0x2ba546
movq %rax, %r14
movl $0x38, %esi
movq %rbx, %rdi
callq 0x1200c0
movq %r14, %rdi
callq 0x120330