// File: ArashPartow[P]exprtk/./exprtk.hpp
// Function: exprtk::details::vector_initialisation_node<double>::vector_initialisation_node(double*, unsigned long const&, std::vector<exprtk::details::expression_node<double>*, std::allocator<exprtk::details::expression_node<double>*>> const&, bool)
vector_initialisation_node(T* vector_base,
                                    const std::size_t& size,
                                    const std::vector<expression_ptr>& initialiser_list,
                                    const bool single_value_initialse)
         : vector_base_(vector_base)
         , initialiser_list_(initialiser_list)
         , size_(size)
         , single_value_initialse_(single_value_initialse)
         , zero_value_initialse_(false)
         , const_nonzero_literal_value_initialse_(false)
         , single_initialiser_value_(T(0))
         {
            if (single_value_initialse_)
            {
               if (initialiser_list_.empty())
                  zero_value_initialse_ = true;
               else if (
                         (initialiser_list_.size() == 1) &&
                         details::is_constant_node(initialiser_list_[0]) &&
                         (T(0) == initialiser_list_[0]->value())
                       )
               {
                  zero_value_initialse_ = true;
               }
               else
               {
                  assert(initialiser_list_.size() == 1);

                  if (details::is_constant_node(initialiser_list_[0]))
                  {
                     const_nonzero_literal_value_initialse_ = true;
                     single_initialiser_value_ = initialiser_list_[0]->value();
                     assert(T(0) != single_initialiser_value_);
                  }
               }
            }
         }

// Assembly:
subq $0x68, %rsp
movb %r8b, %al
movq %rdi, 0x60(%rsp)
movq %rsi, 0x58(%rsp)
movq %rdx, 0x50(%rsp)
movq %rcx, 0x48(%rsp)
andb $0x1, %al
movb %al, 0x47(%rsp)
movq 0x60(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x235e40
movq 0x20(%rsp), %rdi
leaq 0x2b7dbc(%rip), %rax    # 0x7cdf98
movq %rax, (%rdi)
leaq 0x2b7e02(%rip), %rax    # 0x7cdfe8
movq %rax, 0x8(%rdi)
movq 0x58(%rsp), %rax
movq %rax, 0x20(%rdi)
addq $0x28, %rdi
movq %rdi, 0x28(%rsp)
movq 0x48(%rsp), %rsi
callq 0x514520
jmp 0x516208
movq 0x20(%rsp), %rax
movq 0x50(%rsp), %rcx
movq (%rcx), %rcx
movq %rcx, 0x40(%rax)
movb 0x47(%rsp), %cl
andb $0x1, %cl
movb %cl, 0x48(%rax)
movb $0x0, 0x49(%rax)
movb $0x0, 0x4a(%rax)
xorps %xmm0, %xmm0
movsd %xmm0, 0x50(%rax)
testb $0x1, 0x48(%rax)
je 0x516378
movq 0x20(%rsp), %rdi
addq $0x28, %rdi
callq 0x37d750
testb $0x1, %al
jne 0x516251
jmp 0x516272
movq 0x20(%rsp), %rax
movb $0x1, 0x49(%rax)
jmp 0x516376
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x38(%rsp)
movl %eax, 0x34(%rsp)
jmp 0x51637d
movq 0x20(%rsp), %rdi
addq $0x28, %rdi
callq 0x39d0d0
cmpq $0x1, %rax
jne 0x516310
movq 0x20(%rsp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq (%rax), %rdi
callq 0x39cbf0
movb %al, 0x1f(%rsp)
jmp 0x5162aa
movb 0x1f(%rsp), %al
testb $0x1, %al
jne 0x5162b4
jmp 0x516310
movq 0x20(%rsp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movsd %xmm0, 0x10(%rsp)
jmp 0x5162da
movsd 0x10(%rsp), %xmm1
xorps %xmm0, %xmm0
ucomisd %xmm1, %xmm0
jne 0x516310
jp 0x516310
movq 0x20(%rsp), %rax
movb $0x1, 0x49(%rax)
jmp 0x516374
movq 0x28(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x38(%rsp)
movl %eax, 0x34(%rsp)
callq 0x37df90
jmp 0x51637d
movq 0x20(%rsp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq (%rax), %rdi
callq 0x39cbf0
movb %al, 0xf(%rsp)
jmp 0x516330
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x51633a
jmp 0x516372
movq 0x20(%rsp), %rdi
movb $0x1, 0x4a(%rdi)
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x39d110
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
movsd %xmm0, (%rsp)
jmp 0x516363
movq 0x20(%rsp), %rax
movsd (%rsp), %xmm0
movsd %xmm0, 0x50(%rax)
jmp 0x516374
jmp 0x516376
jmp 0x516378
addq $0x68, %rsp
retq
movq 0x20(%rsp), %rdi
callq 0x236080
movq 0x38(%rsp), %rdi
callq 0x11b4e0
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)