// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::details::vec_add_op<double>::process(exprtk::details::vector_interface<double>*)
static inline T process(const ivector_ptr v)
         {
            const T* vec = v->vec()->vds().data();
            const std::size_t vec_size = v->size();

            loop_unroll::details lud(vec_size);

            if (vec_size <= static_cast<std::size_t>(lud.batch_size))
            {
               T result = T(0);
               int i    = 0;

               switch (vec_size)
               {
                  #define case_stmt(N,fall_through) \
                  case N : result += vec[i++];      \
                  fall_through                      \

                  #ifndef exprtk_disable_superscalar_unroll
                  case_stmt(16, exprtk_fallthrough) case_stmt(15, exprtk_fallthrough)
                  case_stmt(14, exprtk_fallthrough) case_stmt(13, exprtk_fallthrough)
                  case_stmt(12, exprtk_fallthrough) case_stmt(11, exprtk_fallthrough)
                  case_stmt(10, exprtk_fallthrough) case_stmt( 9, exprtk_fallthrough)
                  case_stmt( 8, exprtk_fallthrough) case_stmt( 7, exprtk_fallthrough)
                  case_stmt( 6, exprtk_fallthrough) case_stmt( 5, exprtk_fallthrough)

                  #endif
                  case_stmt( 4, exprtk_fallthrough) case_stmt( 3, exprtk_fallthrough)
                  case_stmt( 2, exprtk_fallthrough) case_stmt( 1, (void)0;)
               }

               #undef case_stmt

               return result;
            }

            T r[] = {
                      T(0), T(0), T(0), T(0), T(0), T(0), T(0), T(0),
                      T(0), T(0), T(0), T(0), T(0), T(0), T(0), T(0)
                    };

            const T* upper_bound = vec + lud.upper_bound;

            while (vec < upper_bound)
            {
               #define exprtk_loop(N) \
               r[N] += vec[N];        \

               exprtk_loop( 0) exprtk_loop( 1)
               exprtk_loop( 2) exprtk_loop( 3)
               #ifndef exprtk_disable_superscalar_unroll
               exprtk_loop( 4) exprtk_loop( 5)
               exprtk_loop( 6) exprtk_loop( 7)
               exprtk_loop( 8) exprtk_loop( 9)
               exprtk_loop(10) exprtk_loop(11)
               exprtk_loop(12) exprtk_loop(13)
               exprtk_loop(14) exprtk_loop(15)
               #endif

               vec += lud.batch_size;
            }

            int i = 0;

            switch (lud.remainder)
            {
               #define case_stmt(N,fall_through) \
               case N : r[0] += vec[i++];        \
               fall_through                      \

               #ifndef exprtk_disable_superscalar_unroll
               case_stmt(15, exprtk_fallthrough) case_stmt(14, exprtk_fallthrough)
               case_stmt(13, exprtk_fallthrough) case_stmt(12, exprtk_fallthrough)
               case_stmt(11, exprtk_fallthrough) case_stmt(10, exprtk_fallthrough)
               case_stmt( 9, exprtk_fallthrough) case_stmt( 8, exprtk_fallthrough)
               case_stmt( 7, exprtk_fallthrough) case_stmt( 6, exprtk_fallthrough)
               case_stmt( 5, exprtk_fallthrough) case_stmt( 4, exprtk_fallthrough)
               #endif
               case_stmt( 3, exprtk_fallthrough) case_stmt( 2, exprtk_fallthrough)
               case_stmt( 1, (void)0;)
            }

            #undef exprtk_loop
            #undef case_stmt

            return (r[ 0] + r[ 1] + r[ 2] + r[ 3])
                   #ifndef exprtk_disable_superscalar_unroll
                 + (r[ 4] + r[ 5] + r[ 6] + r[ 7])
                 + (r[ 8] + r[ 9] + r[10] + r[11])
                 + (r[12] + r[13] + r[14] + r[15])
                   #endif
                   ;
         }

// Assembly:
subq $0xe8, %rsp
movq %rdi, 0xd8(%rsp)
movq 0xd8(%rsp), %rdi
movq (%rdi), %rax
callq *0x28(%rax)
movq %rax, %rdi
callq 0x3a0c40
movq %rax, %rdi
callq 0x3a0c50
movq %rax, 0xd0(%rsp)
movq 0xd8(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
movq %rax, 0xc8(%rsp)
leaq 0xbc(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movl $0x10, %edx
callq 0x3a0c70
movq 0xc8(%rsp), %rax
movl 0xbc(%rsp), %ecx
cmpq %rcx, %rax
ja 0x3a06fa
movq $0x0, 0xb0(%rsp)
movl $0x0, 0xac(%rsp)
movq 0xc8(%rsp), %rax
decq %rax
movq %rax, 0x8(%rsp)
subq $0xf, %rax
ja 0x3a06e3
movq 0x8(%rsp), %rax
leaq 0x1fbcb6(%rip), %rcx    # 0x59c040
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movq 0xd0(%rsp), %rax
movl 0xac(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0xac(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xb0(%rsp)
movsd 0xb0(%rsp), %xmm0
movsd %xmm0, 0xe0(%rsp)
jmp 0x3a0c22
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
movl $0x80, %edx
callq 0x11b290
movq 0xd0(%rsp), %rax
movslq 0xc4(%rsp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, 0x18(%rsp)
movq 0xd0(%rsp), %rax
cmpq 0x18(%rsp), %rax
jae 0x3a0906
movq 0xd0(%rsp), %rax
movsd (%rax), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x8(%rax), %xmm0
addsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x10(%rax), %xmm0
addsd 0x30(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x18(%rax), %xmm0
addsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x38(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x20(%rax), %xmm0
addsd 0x40(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x28(%rax), %xmm0
addsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x30(%rax), %xmm0
addsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x38(%rax), %xmm0
addsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x58(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x40(%rax), %xmm0
addsd 0x60(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x48(%rax), %xmm0
addsd 0x68(%rsp), %xmm0
movsd %xmm0, 0x68(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x50(%rax), %xmm0
addsd 0x70(%rsp), %xmm0
movsd %xmm0, 0x70(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x58(%rax), %xmm0
addsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x78(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x60(%rax), %xmm0
addsd 0x80(%rsp), %xmm0
movsd %xmm0, 0x80(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x68(%rax), %xmm0
addsd 0x88(%rsp), %xmm0
movsd %xmm0, 0x88(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x70(%rax), %xmm0
addsd 0x90(%rsp), %xmm0
movsd %xmm0, 0x90(%rsp)
movq 0xd0(%rsp), %rax
movsd 0x78(%rax), %xmm0
addsd 0x98(%rsp), %xmm0
movsd %xmm0, 0x98(%rsp)
movl 0xbc(%rsp), %ecx
movq 0xd0(%rsp), %rax
movl %ecx, %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, 0xd0(%rsp)
jmp 0x3a0727
movl $0x0, 0x14(%rsp)
movl 0xc0(%rsp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, (%rsp)
subl $0xe, %eax
ja 0x3a0ba1
movq (%rsp), %rax
leaq 0x1fb6d3(%rip), %rcx    # 0x59c004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movq 0xd0(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, 0x14(%rsp)
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
addsd 0x20(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x20(%rsp), %xmm0
addsd 0x28(%rsp), %xmm0
addsd 0x30(%rsp), %xmm0
addsd 0x38(%rsp), %xmm0
movsd 0x40(%rsp), %xmm1
addsd 0x48(%rsp), %xmm1
addsd 0x50(%rsp), %xmm1
addsd 0x58(%rsp), %xmm1
addsd %xmm1, %xmm0
movsd 0x60(%rsp), %xmm1
addsd 0x68(%rsp), %xmm1
addsd 0x70(%rsp), %xmm1
addsd 0x78(%rsp), %xmm1
addsd %xmm1, %xmm0
movsd 0x80(%rsp), %xmm1
addsd 0x88(%rsp), %xmm1
addsd 0x90(%rsp), %xmm1
addsd 0x98(%rsp), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, 0xe0(%rsp)
movsd 0xe0(%rsp), %xmm0
addq $0xe8, %rsp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)