// File: /workspace/github_cpp_makefile_star2_O3/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 $0x48, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq (%rdx), %rax
movq (%rax), %rsi
leaq 0x38(%rsp), %r12
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r12, -0x10(%r12)
leaq 0x28(%rsp), %r15
movq %r15, %rdi
callq 0x11fa26
pxor %xmm0, %xmm0
cmpq $0x0, 0x8(%r15)
je 0x183efa
movq (%r14), %rax
cmpq $0x1, %rax
jne 0x183e10
movq (%rbx), %rax
movq 0x20(%rax), %rdx
testq %rdx, %rdx
jne 0x183e1c
jmp 0x183efa
testq %rax, %rax
je 0x183e38
movq (%rbx), %rax
movq 0x20(%rax), %rdx
movq 0x18(%rax), %rsi
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0x11fa26
jmp 0x183e59
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x142a45(%rip), %rsi    # 0x2c688d
leaq 0x142a3f(%rip), %rdx    # 0x2c688e
leaq 0x8(%rsp), %rdi
callq 0x11fa26
movl $0x30, %edi
callq 0x11c100
movq %rax, %rbx
movq $0x0, (%rax)
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x1840a2
movl %eax, 0x8(%rbx)
leaq 0x10(%rbx), %r14
leaq 0x20(%rbx), %r15
movq %r15, 0x10(%rbx)
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x2bf986
movq %rbx, %rdi
callq 0x183fc6
testb %al, %al
je 0x183eb1
movq %rbx, %xmm0
jmp 0x183ed5
movq (%r14), %rdi
cmpq %r15, %rdi
je 0x183ec4
movq (%r15), %rsi
incq %rsi
callq 0x11c0d0
movl $0x30, %esi
movq %rbx, %rdi
callq 0x11c0d0
pxor %xmm0, %xmm0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x183efa
movq 0x18(%rsp), %rsi
incq %rsi
movq %xmm0, (%rsp)
callq 0x11c0d0
movq (%rsp), %xmm0
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x183f1b
movq 0x38(%rsp), %rsi
incq %rsi
movq %xmm0, (%rsp)
callq 0x11c0d0
movq (%rsp), %xmm0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x183f29
movq %rax, %r14
jmp 0x183f5e
movq %rax, %r14
movl $0x30, %esi
movq %rbx, %rdi
callq 0x11c0d0
jmp 0x183f43
movq %rax, %r14
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x183f5e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
je 0x183f75
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x11c0d0
movq %r14, %rdi
callq 0x11c3c0
nop