// File: /workspace/github_cpp_makefile_star2_O1/ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::parser<double>::expression_generator<double>::operator()(exprtk::details::operator_type const&, exprtk::details::expression_node<double>* (&) [1])
inline expression_node_ptr operator() (const details::operator_type& operation, expression_node_ptr (&branch)[1])
         {
            if (0 == branch[0])
            {
               return error_node();
            }
            else if (details::is_null_node(branch[0]))
            {
               return branch[0];
            }
            else if (details::is_break_node(branch[0]))
            {
               return error_node();
            }
            else if (details::is_continue_node(branch[0]))
            {
               return error_node();
            }
            else if (details::is_constant_node(branch[0]))
            {
               return synthesize_expression<unary_node_t,1>(operation,branch);
            }
            else if (unary_optimisable(operation) && details::is_variable_node(branch[0]))
            {
               return synthesize_uv_expression(operation,branch);
            }
            else if (unary_optimisable(operation) && details::is_ivector_node(branch[0]))
            {
               return synthesize_uvec_expression(operation,branch);
            }
            else
               return synthesize_unary_expression(operation,branch);
         }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
movq (%rdx), %rdi
testq %rdi, %rdi
je 0x29b3df
movq %rdx, %rbx
movq %rsi, %r14
movq (%rdi), %rax
callq *0x28(%rax)
movl %eax, %ecx
movq (%rbx), %rax
cmpl $0x1, %ecx
je 0x29b3e1
testq %rax, %rax
je 0x29b3ca
movq (%rax), %rcx
movq %rax, %rdi
callq *0x28(%rcx)
cmpl $0x95, %eax
je 0x29b3df
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x29b3ed
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x96, %eax
jne 0x29b3ed
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq (%rbx), %r12
testq %r12, %r12
je 0x29b42c
movq (%r12), %rax
movq %r12, %rdi
callq *0x28(%rax)
cmpl $0x2, %eax
je 0x29b413
movq (%r12), %rax
movq %r12, %rdi
callq *0x28(%rax)
cmpl $0x13, %eax
jne 0x29b42c
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x29d9bc
movl (%r14), %eax
addl $-0x22, %eax
movabsq $0x7ef8ff9dffff, %r12   # imm = 0x7EF8FF9DFFFF
cmpl $0x2e, %eax
ja 0x29b473
btq %rax, %r12
jae 0x29b473
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x29b473
movq (%rdi), %rax
callq *0x28(%rax)
cmpl $0x11, %eax
jne 0x29b473
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x29df2e
movl (%r14), %eax
addl $-0x22, %eax
cmpl $0x2e, %eax
ja 0x29b4bd
btq %rax, %r12
jae 0x29b4bd
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x29b4bd
movq (%rdi), %rax
callq *0x28(%rax)
addl $-0x7c, %eax
cmpl $0x18, %eax
ja 0x29b4bd
movl $0x1f17801, %ecx        # imm = 0x1F17801
btl %eax, %ecx
jae 0x29b4bd
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x29df96
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x29e52a