// File: /workspace/github_cpp_makefile_star2_O3/ArashPartow[P]exprtk/./exprtk.hpp
// Function: double exprtk::details::vararg_add_op<double>::process<std::pair<exprtk::details::expression_node<double>*, bool>, std::allocator<std::pair<exprtk::details::expression_node<double>*, bool>>, std::vector>(std::vector<std::pair<exprtk::details::expression_node<double>*, bool>, std::allocator<std::pair<exprtk::details::expression_node<double>*, bool>>> const&)
static inline T process(const Sequence<Type,Allocator>& arg_list)
         {
            switch (arg_list.size())
            {
               case 0  : return T(0);
               case 1  : return process_1(arg_list);
               case 2  : return process_2(arg_list);
               case 3  : return process_3(arg_list);
               case 4  : return process_4(arg_list);
               case 5  : return process_5(arg_list);
               default :
                         {
                            T result = T(0);

                            for (std::size_t i = 0; i < arg_list.size(); ++i)
                            {
                               result += value(arg_list[i]);
                            }

                            return result;
                         }
            }
         }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
movq 0x8(%rdi), %rcx
movq %rcx, %rdx
subq %rax, %rdx
sarq $0x4, %rdx
xorpd %xmm0, %xmm0
cmpq $0x5, %rdx
ja 0x278c03
leaq 0x111e5c(%rip), %rcx    # 0x38a934
movslq (%rcx,%rdx,4), %rdx
addq %rcx, %rdx
jmpq *%rdx
movq (%rax), %rdi
movq (%rdi), %rax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
jmpq *0x18(%rax)
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x10(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
addsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x20(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
addsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x30(%rax), %rdi
jmp 0x278bed
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x10(%rax), %rdi
jmp 0x278bed
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x10(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
addsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x20(%rax), %rdi
jmp 0x278bed
movq (%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x10(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
addsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x20(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
addsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x30(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
addsd 0x8(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movq (%rbx), %rax
movq 0x40(%rax), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
addsd 0x8(%rsp), %xmm0
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
cmpq %rax, %rcx
je 0x278bf9
xorl %r14d, %r14d
xorl %r15d, %r15d
movsd %xmm0, 0x8(%rsp)
movq (%rax,%r14), %rdi
movq (%rdi), %rax
callq *0x18(%rax)
movsd 0x8(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x8(%rsp)
movsd 0x8(%rsp), %xmm0
incq %r15
movq (%rbx), %rax
movq 0x8(%rbx), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
addq $0x10, %r14
cmpq %rcx, %r15
jb 0x278c0e
jmp 0x278bf9