// File: /workspace/github_cpp_makefile_star2_O1/ArashPartow[P]exprtk-extras/./exprtk.hpp
// Function: exprtk::rtl::io::file::open<double>::operator()(unsigned long const&, exprtk::type_store<double>::parameter_list)
inline T operator() (const std::size_t& ps_index, parameter_list_t parameters) exprtk_override
      {
         const std::string file_name = to_str(string_t(parameters[0]));

         if (file_name.empty())
         {
            return T(0);
         }

         if ((1 == ps_index) && (0 == string_t(parameters[1]).size()))
         {
            return T(0);
         }

         const std::string access =
            (0 == ps_index) ? "r" : to_str(string_t(parameters[1]));

         details::file_descriptor* fd = new details::file_descriptor(file_name,access);

         if (fd->open())
         {
            T t = T(0);

            const std::size_t fd_size = sizeof(details::file_descriptor*);

            std::memcpy(reinterpret_cast<char*>(&t ),
                        reinterpret_cast<char*>(&fd),
                        fd_size);
            return t;
         }
         else
         {
            delete fd;
            return T(0);
         }
      }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq (%rdx), %rax
movq (%rax), %rsi
leaq 0x48(%rsp), %r12
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r12, -0x10(%r12)
leaq 0x38(%rsp), %r15
movq %r15, %rdi
callq 0x121a7e
xorps %xmm0, %xmm0
cmpq $0x0, 0x8(%r15)
je 0x19c96e
movq (%r14), %rax
cmpq $0x1, %rax
jne 0x19c87a
movq (%rbx), %rcx
cmpq $0x0, 0x20(%rcx)
je 0x19c96e
testq %rax, %rax
je 0x19c8a2
movq (%rbx), %rax
movq 0x18(%rax), %rsi
leaq 0x20(%rsp), %rcx
movq 0x20(%rax), %rdx
addq %rsi, %rdx
movq %rcx, -0x10(%rcx)
leaq 0x10(%rsp), %rdi
callq 0x121a7e
jmp 0x19c8c3
leaq 0x20(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x14df73(%rip), %rsi    # 0x2ea825
leaq 0x14df6d(%rip), %rdx    # 0x2ea826
leaq 0x10(%rsp), %rdi
callq 0x121a7e
movl $0x30, %edi
callq 0x11e100
movq %rax, %rbx
movq $0x0, (%rax)
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
callq 0x19cb1c
movl %eax, 0x8(%rbx)
leaq 0x10(%rbx), %r14
movq %rbx, %r15
addq $0x20, %r15
movq %r15, 0x10(%rbx)
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x2e41d0
movq %rbx, 0x30(%rsp)
movq %rbx, %rdi
callq 0x19ca3c
testb %al, %al
je 0x19c924
movsd 0x30(%rsp), %xmm0
jmp 0x19c947
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x19c937
movq (%r15), %rsi
incq %rsi
callq 0x11e0d0
movl $0x30, %esi
movq %rbx, %rdi
callq 0x11e0d0
xorps %xmm0, %xmm0
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19c96e
movq 0x20(%rsp), %rsi
incq %rsi
movsd %xmm0, 0x8(%rsp)
callq 0x11e0d0
movsd 0x8(%rsp), %xmm0
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x19c991
movq 0x48(%rsp), %rsi
incq %rsi
movsd %xmm0, 0x8(%rsp)
callq 0x11e0d0
movsd 0x8(%rsp), %xmm0
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x19c99f
movq %rax, %r14
jmp 0x19c9d4
movq %rax, %r14
movl $0x30, %esi
movq %rbx, %rdi
callq 0x11e0d0
jmp 0x19c9b9
movq %rax, %r14
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x19c9d4
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x11e0d0
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x19c9eb
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x11e0d0
movq %r14, %rdi
callq 0x11e3c0
nop