// File: /workspace/github_cpp_makefile_star2_O3/bothaynahazem[P]AsuMathLabG13/Matrix2017.cpp
// Function: Matrix::getString[abi:cxx11]()
string Matrix::getString()
{
	string s="";
	for (int iR = 0; iR<nRows; iR++)
	{
		for (int iC = 0; iC<nColumns; iC++)
		{
			//cout << values[iR][iC] << " ";

			char buffer[50]="";
			if(this->type=="complex")
			{
				if (cvalues[iR][iC].imag()==0)
					snprintf(buffer, 50, "%g\t", cvalues[iR][iC].real());
				else if (cvalues[iR][iC].real()==0)
								if(cvalues[iR][iC].imag()==1)
									snprintf(buffer, 50, "i\t");
								else if(cvalues[iR][iC].imag()==-1)
										snprintf(buffer, 50, "-i\t");
								else
									snprintf(buffer, 50, "%gi\t", cvalues[iR][iC].imag());
				else if (cvalues[iR][iC].real()!=0 && cvalues[iR][iC].imag()<0)
							 if(cvalues[iR][iC].imag()==-1)
									snprintf(buffer, 50, "%g-i\t", cvalues[iR][iC].real());
						   else
							 snprintf(buffer, 50, "%g%gi\t", cvalues[iR][iC].real(),cvalues[iR][iC].imag());
				else
				 if(cvalues[iR][iC].imag()==1)
					snprintf(buffer, 50, "%g+i\t", cvalues[iR][iC].real());
				 else
					snprintf(buffer, 50, "%g+%gi\t", cvalues[iR][iC].real(),cvalues[iR][iC].imag());
      }else
			snprintf(buffer, 50, "%g\t", values[iR][iC]);
			s += buffer;
		}
		//cout << endl;
		s += "\n";
	}
	return s;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %r14
leaq 0x10(%rdi), %rax
movq %rax, -0x78(%rbp)
movq %rax, (%rdi)
leaq 0x5d5a(%rip), %rdx      # 0x11222
movq %rdi, -0x30(%rbp)
movq %rdx, %rsi
callq 0x93ea
cmpl $0x0, (%r14)
jle 0xb689
leaq 0x18(%r14), %rax
movq %rax, -0x80(%rbp)
xorl %r12d, %r12d
cmpl $0x0, 0x4(%r14)
jle 0xb66a
movl $0x8, %ebx
xorl %r13d, %r13d
xorps %xmm0, %xmm0
movaps %xmm0, -0x50(%rbp)
movaps %xmm0, -0x60(%rbp)
movaps %xmm0, -0x70(%rbp)
movw $0x0, -0x40(%rbp)
movq -0x80(%rbp), %rdi
leaq 0x5cd9(%rip), %rsi      # 0x111f5
callq 0x30e0
testl %eax, %eax
je 0xb535
movq 0x8(%r14), %rax
movq (%rax,%r12,8), %rax
movsd (%rax,%r13,8), %xmm0
jmp 0xb554
movq 0x10(%r14), %rax
movq (%rax,%r12,8), %rax
movsd -0x8(%rax,%rbx), %xmm0
movsd (%rax,%rbx), %xmm1
xorpd %xmm2, %xmm2
ucomisd %xmm2, %xmm1
jne 0xb593
jp 0xb593
movl $0x32, %esi
leaq -0x70(%rbp), %r15
movq %r15, %rdi
leaq 0x5cb8(%rip), %rdx      # 0x1121f
movb $0x1, %al
callq 0x3470
movq -0x30(%rbp), %rdi
movq %r15, %rsi
callq 0x3590
incq %r13
movslq 0x4(%r14), %rax
addq $0x10, %rbx
cmpq %rax, %r13
jl 0xb4fc
jmp 0xb66a
ucomisd %xmm2, %xmm0
jne 0xb5b3
jp 0xb5b3
ucomisd 0x5bb5(%rip), %xmm1     # 0x11158
jne 0xb5da
jp 0xb5da
movb $0x0, -0x6e(%rbp)
movw $0x969, -0x70(%rbp)     # imm = 0x969
jmp 0xb5ed
ucomisd %xmm1, %xmm2
jbe 0xb5f6
ucomisd 0x5b9f(%rip), %xmm1     # 0x11160
jne 0xb636
jp 0xb636
movl $0x32, %esi
leaq -0x70(%rbp), %r15
movq %r15, %rdi
leaq 0x5c4b(%rip), %rdx      # 0x11223
jmp 0xb567
ucomisd 0x5b7e(%rip), %xmm1     # 0x11160
jne 0xb61a
jp 0xb61a
movl $0x9692d, -0x70(%rbp)   # imm = 0x9692D
leaq -0x70(%rbp), %r15
jmp 0xb56e
ucomisd 0x5b5a(%rip), %xmm1     # 0x11158
jne 0xb64b
jp 0xb64b
movl $0x32, %esi
leaq -0x70(%rbp), %r15
movq %r15, %rdi
leaq 0x5c1b(%rip), %rdx      # 0x11230
jmp 0xb567
movl $0x32, %esi
leaq -0x70(%rbp), %r15
movq %r15, %rdi
leaq 0x5c0c(%rip), %rdx      # 0x11239
movapd %xmm1, %xmm0
jmp 0xb567
movl $0x32, %esi
leaq -0x70(%rbp), %r15
movq %r15, %rdi
leaq 0x5be0(%rip), %rdx      # 0x11229
jmp 0xb65e
movl $0x32, %esi
leaq -0x70(%rbp), %r15
movq %r15, %rdi
leaq 0x5bd8(%rip), %rdx      # 0x11236
movb $0x2, %al
callq 0x3470
jmp 0xb56e
movq -0x30(%rbp), %rdi
leaq 0x5b8a(%rip), %rsi      # 0x111ff
callq 0x3590
incq %r12
movslq (%r14), %rax
cmpq %rax, %r12
jl 0xb4e9
movq -0x30(%rbp), %rax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb69e
movq %rax, %r14
movq -0x30(%rbp), %rax
movq (%rax), %rdi
movq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0xb6bc
movq (%rax), %rsi
incq %rsi
callq 0x3300
movq %r14, %rdi
callq 0x3520