// File: 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
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, %rsi
movq %rsi, -0x160(%rbp)
movq %rsi, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3180
movq -0x160(%rbp), %rdi
xorps %xmm0, %xmm0
movsd %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x48(%rbp)
movl $0x2b, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $-0x1, %rax
je 0xfa7c
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x168(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x170(%rbp)
movl $0x2b, %esi
callq 0x34d0
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
movq %rax, %rcx
incq %rcx
leaq -0x68(%rbp), %rdi
callq 0x33e0
jmp 0xf9e0
leaq -0x68(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x3170
movq %rax, %rdi
callq 0x3470
movq -0x180(%rbp), %rdi
movsd %xmm0, -0x40(%rbp)
callq 0x3270
xorl %eax, %eax
movl %eax, %edx
leaq -0x38(%rbp), %rdi
movq %rdi, -0x178(%rbp)
movl $0x2b, %esi
callq 0x34d0
movq -0x178(%rbp), %rsi
movq %rax, %rdx
leaq -0x98(%rbp), %rdi
movq $-0x1, %rcx
callq 0x33e0
jmp 0xfa41
leaq -0x38(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x3450
leaq -0x98(%rbp), %rdi
callq 0x3270
jmp 0xfb5c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x3270
jmp 0xfeb1
leaq -0x38(%rbp), %rdi
movl $0x2d, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $-0x1, %rax
je 0xfb5a
xorl %eax, %eax
movl %eax, %edx
movq %rdx, -0x188(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x190(%rbp)
movl $0x2d, %esi
callq 0x34d0
movq -0x190(%rbp), %rsi
movq -0x188(%rbp), %rdx
movq %rax, %rcx
incq %rcx
leaq -0xb8(%rbp), %rdi
callq 0x33e0
jmp 0xfada
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x3170
movq %rax, %rdi
callq 0x3470
movq -0x1a0(%rbp), %rdi
movsd %xmm0, -0x40(%rbp)
callq 0x3270
xorl %eax, %eax
movl %eax, %edx
leaq -0x38(%rbp), %rdi
movq %rdi, -0x198(%rbp)
movl $0x2d, %esi
callq 0x34d0
movq -0x198(%rbp), %rsi
movq %rax, %rdx
leaq -0xd8(%rbp), %rdi
movq $-0x1, %rcx
callq 0x33e0
jmp 0xfb3e
leaq -0x38(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3450
leaq -0xd8(%rbp), %rdi
callq 0x3270
jmp 0xfb5c
leaq -0x38(%rbp), %rdi
movl $0x69, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $-0x1, %rax
je 0xfce2
leaq -0x38(%rbp), %rdi
movl $0x69, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $0x1, %rax
jne 0xfc53
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x3720
movq %rax, -0x1a8(%rbp)
jmp 0xfbaa
movq -0x1a8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
jne 0xfbcb
movsd 0xb7bf(%rip), %xmm0     # 0x1b380
movsd %xmm0, -0x48(%rbp)
jmp 0xfc4e
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x3720
movq %rax, -0x1b0(%rbp)
jmp 0xfbe1
movq -0x1b0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0xfbff
movsd 0xb790(%rip), %xmm0     # 0x1b388
movsd %xmm0, -0x48(%rbp)
jmp 0xfc4c
xorl %eax, %eax
movl %eax, %edx
leaq -0xf8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x1, %ecx
callq 0x33e0
jmp 0xfc1a
leaq -0x38(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x3450
leaq -0xf8(%rbp), %rdi
callq 0x3270
leaq -0x38(%rbp), %rdi
callq 0x3170
movq %rax, %rdi
callq 0x3470
movsd %xmm0, -0x48(%rbp)
jmp 0xfc4e
jmp 0xfcdd
leaq -0x38(%rbp), %rdi
movl $0x69, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $0x0, %rax
jne 0xfc7a
movsd 0xb70d(%rip), %xmm0     # 0x1b380
movsd %xmm0, -0x48(%rbp)
jmp 0xfcdb
leaq -0x38(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x3550
movq -0x1b8(%rbp), %rsi
movq %rax, %rcx
decq %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x118(%rbp), %rdi
callq 0x33e0
jmp 0xfca9
leaq -0x38(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3450
leaq -0x118(%rbp), %rdi
callq 0x3270
leaq -0x38(%rbp), %rdi
callq 0x3170
movq %rax, %rdi
callq 0x3470
movsd %xmm0, -0x48(%rbp)
jmp 0xfcdd
jmp 0xfe80
leaq -0x38(%rbp), %rdi
movl $0x49, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $-0x1, %rax
je 0xfe65
leaq -0x38(%rbp), %rdi
movl $0x49, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $0x1, %rax
jne 0xfdd9
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x3720
movq %rax, -0x1c0(%rbp)
jmp 0xfd30
movq -0x1c0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2b, %eax
jne 0xfd51
movsd 0xb639(%rip), %xmm0     # 0x1b380
movsd %xmm0, -0x48(%rbp)
jmp 0xfdd4
xorl %eax, %eax
movl %eax, %esi
leaq -0x38(%rbp), %rdi
callq 0x3720
movq %rax, -0x1c8(%rbp)
jmp 0xfd67
movq -0x1c8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0xfd85
movsd 0xb60a(%rip), %xmm0     # 0x1b388
movsd %xmm0, -0x48(%rbp)
jmp 0xfdd2
xorl %eax, %eax
movl %eax, %edx
leaq -0x138(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x1, %ecx
callq 0x33e0
jmp 0xfda0
leaq -0x38(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x3450
leaq -0x138(%rbp), %rdi
callq 0x3270
leaq -0x38(%rbp), %rdi
callq 0x3170
movq %rax, %rdi
callq 0x3470
movsd %xmm0, -0x48(%rbp)
jmp 0xfdd4
jmp 0xfe63
leaq -0x38(%rbp), %rdi
movl $0x49, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x34d0
cmpq $0x0, %rax
jne 0xfe00
movsd 0xb587(%rip), %xmm0     # 0x1b380
movsd %xmm0, -0x48(%rbp)
jmp 0xfe61
leaq -0x38(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x3550
movq -0x1d0(%rbp), %rsi
movq %rax, %rcx
decq %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x158(%rbp), %rdi
callq 0x33e0
jmp 0xfe2f
leaq -0x38(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3450
leaq -0x158(%rbp), %rdi
callq 0x3270
leaq -0x38(%rbp), %rdi
callq 0x3170
movq %rax, %rdi
callq 0x3470
movsd %xmm0, -0x48(%rbp)
jmp 0xfe63
jmp 0xfe7e
movq -0x160(%rbp), %rdi
callq 0x3170
movq %rax, %rdi
callq 0x3470
movsd %xmm0, -0x40(%rbp)
jmp 0xfe80
movsd -0x40(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
leaq -0x10(%rbp), %rdi
callq 0x19810
jmp 0xfe95
leaq -0x38(%rbp), %rdi
callq 0x3270
movsd -0x10(%rbp), %xmm0
movsd -0x8(%rbp), %xmm1
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0x3630
nopw (%rax,%rax)