// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::details::expression_node<double>* exprtk::parser<double>::expression_generator<double>::vectorize_func<std::allocator<exprtk::details::expression_node<double>*>, std::vector>(exprtk::details::operator_type const&, std::vector<exprtk::details::expression_node<double>*, std::allocator<exprtk::details::expression_node<double>*>>&)
inline expression_node_ptr vectorize_func(const details::operator_type& operation,
                                                   Sequence<expression_node_ptr,Allocator>& arg_list)
         {
            if (1 == arg_list.size())
            {
               switch (operation)
               {
                  #define case_stmt(op0, op1)                                                     \
                  case op0 : return node_allocator_->                                             \
                                allocate<details::vectorize_node<Type,op1<Type> > >(arg_list[0]); \

                  case_stmt(details::e_sum  , details::vec_add_op)
                  case_stmt(details::e_prod , details::vec_mul_op)
                  case_stmt(details::e_avg  , details::vec_avg_op)
                  case_stmt(details::e_min  , details::vec_min_op)
                  case_stmt(details::e_max  , details::vec_max_op)
                  #undef case_stmt
                  default : return error_node();
               }
            }
            else
               return error_node();
         }

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x48(%rsp)
movq %rsi, 0x40(%rsp)
movq %rdx, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x38(%rsp), %rdi
callq 0x39d0d0
movq %rax, %rcx
movl $0x1, %eax
cmpq %rcx, %rax
jne 0x39f647
movq 0x40(%rsp), %rax
movl (%rax), %eax
addl $-0x9, %eax
movl %eax, %ecx
movq %rcx, 0x28(%rsp)
subl $0x4, %eax
ja 0x39f63b
movq 0x28(%rsp), %rax
leaq 0x1fcab2(%rip), %rcx    # 0x59bff0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x39fd90
movq %rax, 0x50(%rsp)
jmp 0x39f651
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x18(%rsp)
movq 0x38(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq 0x18(%rsp), %rdi
movq %rax, %rsi
callq 0x39fe10
movq %rax, 0x50(%rsp)
jmp 0x39f651
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x39fe90
movq %rax, 0x50(%rsp)
jmp 0x39f651
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x38(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x39ff10
movq %rax, 0x50(%rsp)
jmp 0x39f651
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
movq 0x38(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x39ff90
movq %rax, 0x50(%rsp)
jmp 0x39f651
callq 0x2821f0
movq %rax, 0x50(%rsp)
jmp 0x39f651
callq 0x2821f0
movq %rax, 0x50(%rsp)
movq 0x50(%rsp), %rax
addq $0x58, %rsp
retq
nopl (%rax,%rax)