// File: /workspace/github_cpp_makefile_star2_O1/syusui-s[P]old_rpn_language/./element.h
// Function: calc_elements(Element**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
Element* calc_elements(Element** elementarray, std::string op){
	Element* rtn;
	if(op=="+") rtn = op_plus(elementarray[0],elementarray[1]);
	else if(op=="-") rtn = op_minus(elementarray[0],elementarray[1]);
	else if(op=="*") rtn = op_multiply(elementarray[0],elementarray[1]);
	else if(op=="/") rtn = op_divide(elementarray[0],elementarray[1]);
	else if(op=="mod") rtn = op_modulo(elementarray[0],elementarray[1]);
	else if(op=="abs") rtn = fn_absolute(elementarray[0]);
	else if(op=="pm") rtn = fn_pm(elementarray[0]);
	else if(op=="1/x" || op=="inv") rtn = fn_inverse(elementarray[0]);
	else if(op=="pow") rtn = fn_pow(elementarray[0],elementarray[1]);
	else if(op=="^2") rtn = fn_square(elementarray[0]);
	else if(op=="^3") rtn = fn_cube(elementarray[0]);
	else if(op=="sqrt") rtn = fn_sqrt(elementarray[0]);
	else if(op=="cbrt") rtn = fn_cbrt(elementarray[0]);
	else if(op=="print") rtn = fn_print(elementarray[0]);
	else throw((std::string)"この演算子、もしくは関数はまだ定義されていません。");

	return rtn;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x1c96(%rip), %rsi      # 0x70f7
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x55bf
leaq 0x1c81(%rip), %rsi      # 0x70f9
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x55cf
leaq 0x1c6c(%rip), %rsi      # 0x70fb
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x55df
leaq 0x1c57(%rip), %rsi      # 0x70fd
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x55ef
leaq 0x1c42(%rip), %rsi      # 0x70ff
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x55ff
leaq 0x1c2f(%rip), %rsi      # 0x7103
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x560f
leaq 0x1c1c(%rip), %rsi      # 0x7107
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x5627
leaq 0x1c08(%rip), %rsi      # 0x710a
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x561b
leaq 0x1bf5(%rip), %rsi      # 0x710e
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x561b
leaq 0x1be2(%rip), %rsi      # 0x7112
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x5633
leaq 0x1bcf(%rip), %rsi      # 0x7116
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x5643
leaq 0x1bbb(%rip), %rsi      # 0x7119
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x564f
leaq 0x1ba7(%rip), %rsi      # 0x711c
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x565b
leaq 0x1b95(%rip), %rsi      # 0x7121
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0x5667
leaq 0x1ba5(%rip), %rsi      # 0x7148
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
jne 0x5673
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x5315
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x3a27
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x3dbe
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x4155
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x44ed
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x463a
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x49c8
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x4dba
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x4bca
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x4e95
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x4fd9
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x50b0
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x518d
movq (%rbx), %rdi
popq %rbx
popq %r14
popq %rbp
jmp 0x5274
movl $0x20, %edi
callq 0x20c0
movq %rax, %rbx
addq $0x10, %rax
movq %rax, (%rbx)
movb $0x1, %bpl
leaq 0x1b5f(%rip), %rsi      # 0x71f0
leaq 0x1ba3(%rip), %rdx      # 0x723b
movq %rbx, %rdi
callq 0x6256
xorl %ebp, %ebp
leaq 0x46df(%rip), %rsi      # 0x9d88
movq 0x4908(%rip), %rdx      # 0x9fb8
movq %rbx, %rdi
callq 0x2280
movq %rax, %r14
testb %bpl, %bpl
je 0x56c8
movq %rbx, %rdi
callq 0x2110
movq %r14, %rdi
callq 0x22b0