// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: bool exprtk::parser<double>::expression_generator<double>::synthesize_sf4ext_expression::compile_right<double const&>(exprtk::parser<double>::expression_generator<double>&, double const&, exprtk::details::operator_type const&, exprtk::details::expression_node<double>*&, exprtk::details::expression_node<double>*&)
static inline bool compile_right(expression_generator<Type>& expr_gen,
                                             ExternalType t,
                                             const details::operator_type& operation,
                                             expression_node_ptr& sf3node,
                                             expression_node_ptr& result)
            {
               if (!details::is_sf3ext_node(sf3node))
                  return false;

               typedef details::T0oT1oT2_base_node<Type>* sf3ext_base_ptr;

               sf3ext_base_ptr n = static_cast<sf3ext_base_ptr>(sf3node);
               const std::string id = "t" + expr_gen.to_str(operation) + "(" + n->type_id() + ")";

               switch (n->type())
               {
                  case details::expression_node<Type>::e_covoc : return compile_right_impl
                                                                    <typename covoc_t::sf3_type_node,ExternalType, ctype, vtype, ctype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_covov : return compile_right_impl
                                                                    <typename covov_t::sf3_type_node,ExternalType, ctype, vtype, vtype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_vocov : return compile_right_impl
                                                                    <typename vocov_t::sf3_type_node,ExternalType, vtype, ctype, vtype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_vovoc : return compile_right_impl
                                                                    <typename vovoc_t::sf3_type_node,ExternalType, vtype, vtype, ctype>
                                                                       (expr_gen, id, t, sf3node, result);

                  case details::expression_node<Type>::e_vovov : return compile_right_impl
                                                                    <typename vovov_t::sf3_type_node,ExternalType, vtype, vtype, vtype>
                                                                       (expr_gen, id, t, sf3node, result);

                  default                                      : return false;
               }
            }

// Assembly:
subq $0x138, %rsp            # imm = 0x138
movq %rdi, 0x128(%rsp)
movq %rsi, 0x120(%rsp)
movq %rdx, 0x118(%rsp)
movq %rcx, 0x110(%rsp)
movq %r8, 0x108(%rsp)
movq 0x110(%rsp), %rax
movq (%rax), %rdi
callq 0x4858f0
testb $0x1, %al
jne 0x4859b0
movb $0x0, 0x137(%rsp)
jmp 0x485d31
movq 0x110(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x100(%rsp)
movq 0x128(%rsp), %rsi
movq 0x118(%rsp), %rdx
leaq 0x60(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x29cc80
movq 0x20(%rsp), %rdx
leaq 0x12cbee(%rip), %rsi    # 0x5b25dc
leaq 0x80(%rsp), %rdi
callq 0x29dd70
jmp 0x4859fd
leaq 0x1214e9(%rip), %rdx    # 0x5a6eed
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x29dc30
jmp 0x485a1b
movq 0x100(%rsp), %rsi
movq (%rsi), %rax
movq 0x38(%rax), %rax
leaq 0x30(%rsp), %rdi
callq *%rax
jmp 0x485a33
leaq 0xc0(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x29dc80
jmp 0x485a4f
leaq 0x12fba8(%rip), %rdx    # 0x5b55fe
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
callq 0x29dc30
jmp 0x485a6d
leaq 0xc0(%rsp), %rdi
callq 0x11b838
leaq 0x30(%rsp), %rdi
callq 0x11b838
leaq 0xa0(%rsp), %rdi
callq 0x11b838
leaq 0x80(%rsp), %rdi
callq 0x11b838
leaq 0x60(%rsp), %rdi
callq 0x11b838
movq 0x100(%rsp), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
callq *%rax
movl %eax, 0x1c(%rsp)
jmp 0x485abf
movl 0x1c(%rsp), %eax
addl $-0x6a, %eax
movl %eax, %ecx
movq %rcx, 0x10(%rsp)
subl $0x4, %eax
ja 0x485d14
movq 0x10(%rsp), %rax
leaq 0x11a306(%rip), %rcx    # 0x59fde8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x485b6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x485b5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x485b50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
jmp 0x485b46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x11b838
leaq 0x30(%rsp), %rdi
callq 0x11b838
leaq 0xa0(%rsp), %rdi
callq 0x11b838
leaq 0x80(%rsp), %rdi
callq 0x11b838
leaq 0x60(%rsp), %rdi
callq 0x11b838
jmp 0x485d42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x58(%rsp)
movl %eax, 0x54(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x11b838
jmp 0x485d42
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x486770
movb %al, 0xf(%rsp)
jmp 0x485bcc
movb 0xf(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x485d24
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x486860
movb %al, 0xe(%rsp)
jmp 0x485c19
movb 0xe(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x485d24
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x486940
movb %al, 0xd(%rsp)
jmp 0x485c66
movb 0xd(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x485d24
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x486a20
movb %al, 0xc(%rsp)
jmp 0x485cb3
movb 0xc(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x485d24
movq 0x128(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq 0x110(%rsp), %rcx
movq 0x108(%rsp), %r8
leaq 0xe0(%rsp), %rsi
callq 0x486b00
movb %al, 0xb(%rsp)
jmp 0x485cfd
movb 0xb(%rsp), %al
andb $0x1, %al
movb %al, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
jmp 0x485d24
movb $0x0, 0x137(%rsp)
movl $0x1, 0x2c(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x11b838
movb 0x137(%rsp), %al
andb $0x1, %al
addq $0x138, %rsp            # imm = 0x138
retq
movq 0x58(%rsp), %rdi
callq 0x11b4e0
nopl (%rax)