// File: /workspace/github_cpp_makefile_star2_O3/bothaynahazem[P]AsuMathLabG13/Matrix2017.cpp
// Function: Matrix::complex_parser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
complex<double> Matrix::complex_parser(const string cs){
			string x=cs;double R=0,I=0;
			 if(cs.find('+')!=-1){
				R=atof((x.substr(0,x.find('+')+1)).c_str());
				x=x.substr(x.find('+'));
			}
			else if(x.find('-')!=-1){
				R=atof((x.substr(0,x.find('-')+1)).c_str());
				x=x.substr(x.find('-'));
			}
			if(x.find('i')!=-1){
				if(x.find('i')==1){
					if(x[0]=='+')
					I=1;
					else if(x[0]=='-')
                    I=-1;
					else
					{
						x = x.substr(0, 1);
						I = atof(x.c_str());
					}
				}
                else if(x.find('i')==0)I=1;
				else {
				x=x.substr(0,x.length()-1);
				I=atof(x.c_str());
				}
			}
            else if(x.find('I')!=-1){
				if(x.find('I')==1){
					if(x[0]=='+')
					I=1;
					else if(x[0]=='-')
                    I=-1;
					else
					{
						x = x.substr(0, 1);
						I = atof(x.c_str());
					}
				}
				else if(x.find('I')==0)I=1;
				else {
				x=x.substr(0,x.length()-1);
				I=atof(x.c_str());
				}
			}
			else R=atof(cs.c_str());
			complex<double> c(R,I);
			return c;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rdi, %rbx
leaq -0x30(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rdi), %rsi
movq 0x8(%rdi), %rdx
addq %rsi, %rdx
leaq -0x40(%rbp), %rdi
callq 0x934c
movq %rbx, %rdi
movl $0x2b, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $-0x1, %rax
je 0xaecb
leaq -0x40(%rbp), %r14
movq %r14, %rdi
movl $0x2b, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rcx
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0x50(%rbp), %r12
movq -0x10(%r12), %r14
movq %r14, %rdi
callq 0x3370
movsd %xmm0, -0x68(%rbp)
cmpq %r12, %r14
je 0xae9d
movq -0x50(%rbp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x3300
leaq -0x40(%rbp), %r14
movq %r14, %rdi
movl $0x2b, %esi
xorl %edx, %edx
callq 0x33b0
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
movq %rax, %rdx
movq $-0x1, %rcx
callq 0x3320
jmp 0xaf5d
leaq -0x40(%rbp), %rdi
movl $0x2d, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $-0x1, %rax
je 0xaf83
leaq -0x40(%rbp), %r14
movq %r14, %rdi
movl $0x2d, %esi
xorl %edx, %edx
callq 0x33b0
leaq 0x1(%rax), %rcx
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x3320
leaq -0x50(%rbp), %r12
movq -0x10(%r12), %r14
movq %r14, %rdi
callq 0x3370
movsd %xmm0, -0x68(%rbp)
cmpq %r12, %r14
je 0xaf34
movq -0x50(%rbp), %rsi
incq %rsi
movq %r14, %rdi
callq 0x3300
leaq -0x40(%rbp), %r14
movq %r14, %rdi
movl $0x2d, %esi
xorl %edx, %edx
callq 0x33b0
leaq -0x60(%rbp), %rdi
movq %r14, %rsi
movq %rax, %rdx
movq $-0x1, %rcx
callq 0x3320
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %r14
movq %r14, %rsi
callq 0x3360
movq (%r14), %rdi
cmpq %r12, %rdi
je 0xaf8b
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x3300
jmp 0xaf8b
xorps %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
leaq -0x40(%rbp), %rdi
movl $0x69, %esi
xorl %edx, %edx
callq 0x33b0
leaq -0x40(%rbp), %rdi
cmpq $-0x1, %rax
je 0xafe5
movl $0x69, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $0x1, %rax
jne 0xb033
movq -0x40(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x2b, %eax
je 0xb09f
cmpl $0x2d, %eax
je 0xb026
leaq -0x60(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movl $0x1, %ecx
xorl %edx, %edx
callq 0x3320
jmp 0xb0bd
movl $0x49, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $-0x1, %rax
je 0xb060
leaq -0x40(%rbp), %rdi
movl $0x49, %esi
xorl %edx, %edx
callq 0x33b0
cmpq $0x1, %rax
jne 0xb072
movq -0x40(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x2b, %eax
je 0xb09f
cmpl $0x2d, %eax
jne 0xb0a9
movsd 0x6132(%rip), %xmm1     # 0x11160
jmp 0xb0f1
leaq -0x40(%rbp), %rdi
movl $0x69, %esi
xorl %edx, %edx
callq 0x33b0
testq %rax, %rax
je 0xb09f
leaq -0x40(%rbp), %rsi
movq 0x8(%rsi), %rcx
decq %rcx
leaq -0x60(%rbp), %rdi
xorl %edx, %edx
callq 0x3320
jmp 0xb0bd
movq (%rbx), %rdi
callq 0x3370
movsd %xmm0, -0x68(%rbp)
xorps %xmm1, %xmm1
jmp 0xb0f1
leaq -0x40(%rbp), %rdi
movl $0x49, %esi
xorl %edx, %edx
callq 0x33b0
testq %rax, %rax
je 0xb09f
leaq -0x40(%rbp), %rsi
movq 0x8(%rsi), %rcx
decq %rcx
leaq -0x60(%rbp), %rdi
xorl %edx, %edx
callq 0x3320
jmp 0xb0bd
movsd 0x60b1(%rip), %xmm1     # 0x11158
jmp 0xb0f1
leaq -0x60(%rbp), %rdi
leaq -0x40(%rbp), %rsi
movl $0x1, %ecx
xorl %edx, %edx
callq 0x3320
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %rbx
movq %rbx, %rsi
callq 0x3360
movq (%rbx), %rdi
leaq -0x50(%rbp), %rax
cmpq %rax, %rdi
je 0xb0e5
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x3300
movq -0x40(%rbp), %rdi
callq 0x3370
movaps %xmm0, %xmm1
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0xb110
movq -0x30(%rbp), %rsi
incq %rsi
movsd %xmm1, -0x70(%rbp)
callq 0x3300
movsd -0x70(%rbp), %xmm1
movsd -0x68(%rbp), %xmm0
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb130
jmp 0xb130
jmp 0xb130
jmp 0xb130
jmp 0xb130
jmp 0xb130
jmp 0xb130
movq %rax, %rbx
movq -0x40(%rbp), %rdi
cmpq %r15, %rdi
je 0xb148
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x3300
movq %rbx, %rdi
callq 0x3520