// File: /workspace/github_cpp_makefile_star2_O1/PeterDenton[P]Nu-Pert/src/Figures.cpp
// Function: Figures::Eigenvalue_Precision()
void Eigenvalue_Precision()
{
	double a;
	std::ofstream data[2];
	data[0].open("data/Eigenvalue_Precision_NO.txt");
	data[1].open("data/Eigenvalue_Precision_IO.txt");

	double l10, l20, l30;
	double l12, l22, l32;
	double M1sq, M2sq, M3sq;
	int order;
	for (int i = 0; i < 1; i++) // only NO for now
	{
		set_ordering(i == 0);
		for (double Y = -40; Y <= 40; Y += 0.011)
		{
			a = Y * Y_to_a;

			order = 0;
			l10 = Check::l1(a, order);
			l20 = Check::l2(a, order);
			l30 = Check::l3(a, order);

			order = 2;
			l12 = Check::l1(a, order);
			l22 = Check::l2(a, order);
			l32 = Check::l3(a, order);

			M1sq = Exact::M1sq(a);
			M2sq = Exact::M2sq(a);
			M3sq = Exact::M3sq(a);

			data[i] << Y;
			data[i] << " " << std::abs(1 - l10 / M1sq);
			data[i] << " " << std::abs(1 - l20 / M2sq);
			data[i] << " " << std::abs(1 - l30 / M3sq);
			data[i] << " " << std::abs(1 - l12 / M1sq);
			data[i] << " " << std::abs(1 - l22 / M2sq);
			data[i] << " " << std::abs(1 - l32 / M3sq);
			data[i] << std::endl;
		}
		data[i].close();
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x460, %rsp            # imm = 0x460
xorl %r14d, %r14d
leaq (%rsp,%r14), %rdi
addq $0x60, %rdi
callq 0x2280
addq $0x200, %r14            # imm = 0x200
cmpq $0x400, %r14            # imm = 0x400
jne 0xe48b
leaq 0x1b14(%rip), %rsi      # 0xffc3
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
movl $0x10, %edx
callq 0x2050
leaq 0x260(%rsp), %rdi
leaq 0x1b14(%rip), %rsi      # 0xffe4
movl $0x10, %edx
callq 0x2050
movl $0x1, %edi
callq 0x3a4b
leaq 0xe45(%rip), %rax       # 0xf330
movsd (%rax), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x195b(%rip), %xmm0     # 0xfe58
leaq 0x175a(%rip), %r14      # 0xfc5e
movsd %xmm0, 0x20(%rsp)
mulsd 0x28(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
xorl %edi, %edi
callq 0x253c
movsd %xmm0, 0x58(%rsp)
movsd 0x8(%rsp), %xmm0
xorl %edi, %edi
callq 0x2706
movsd %xmm0, 0x50(%rsp)
movsd 0x8(%rsp), %xmm0
xorl %edi, %edi
callq 0x28d0
movsd %xmm0, 0x48(%rsp)
movsd 0x8(%rsp), %xmm0
movl $0x2, %edi
callq 0x253c
movsd %xmm0, 0x40(%rsp)
movsd 0x8(%rsp), %xmm0
movl $0x2, %edi
callq 0x2706
movsd %xmm0, 0x38(%rsp)
movsd 0x8(%rsp), %xmm0
movl $0x2, %edi
callq 0x28d0
movsd %xmm0, 0x30(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x45d0
movsd %xmm0, 0x18(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x45e5
movsd %xmm0, 0x10(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x45fa
movsd %xmm0, 0x8(%rsp)
movq %rbx, %rdi
movsd 0x20(%rsp), %xmm0
callq 0x2260
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21c0
movsd 0x58(%rsp), %xmm1
divsd 0x18(%rsp), %xmm1
movsd 0xa28(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0xec4(%rip), %xmm0      # 0xf4c0
movq %rbx, %rdi
callq 0x2260
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21c0
movsd 0x50(%rsp), %xmm1
divsd 0x10(%rsp), %xmm1
movsd 0x9f0(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0xe8c(%rip), %xmm0      # 0xf4c0
movq %rbx, %rdi
callq 0x2260
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21c0
movsd 0x48(%rsp), %xmm1
divsd 0x8(%rsp), %xmm1
movsd 0x9b8(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0xe54(%rip), %xmm0      # 0xf4c0
movq %rbx, %rdi
callq 0x2260
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21c0
movsd 0x40(%rsp), %xmm1
divsd 0x18(%rsp), %xmm1
movsd 0x980(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0xe1c(%rip), %xmm0      # 0xf4c0
movq %rbx, %rdi
callq 0x2260
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21c0
movsd 0x38(%rsp), %xmm1
divsd 0x10(%rsp), %xmm1
movsd 0x948(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0xde4(%rip), %xmm0      # 0xf4c0
movq %rbx, %rdi
callq 0x2260
movl $0x1, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x21c0
movsd 0x30(%rsp), %xmm1
divsd 0x8(%rsp), %xmm1
movsd 0x910(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0xdac(%rip), %xmm0      # 0xf4c0
movq %rbx, %rdi
callq 0x2260
movq 0x60(%rsp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2100
movsd 0x20(%rsp), %xmm0
addsd 0x173d(%rip), %xmm0     # 0xfe90
movsd 0x170d(%rip), %xmm1     # 0xfe68
ucomisd %xmm0, %xmm1
jae 0xe504
leaq 0x60(%rsp), %rdi
callq 0x2210
movq 0x5852(%rip), %rax      # 0x13fc8
movq (%rax), %r14
movq 0x18(%rax), %r15
movq $-0x400, %r12           # imm = 0xFC00
leaq 0x358(%rsp), %rbx
movq %r14, -0xf8(%rbx)
movq -0x18(%r14), %rax
movq %r15, -0xf8(%rbx,%rax)
leaq -0xf0(%rbx), %rdi
callq 0x2150
movq %rbx, %rdi
callq 0x20a0
addq $-0x200, %rbx           # imm = 0xFE00
addq $0x200, %r12            # imm = 0x200
jne 0xe78c
addq $0x460, %rsp            # imm = 0x460
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0xe7fc
jmp 0xe7fc
movq %rax, %rbx
testq %r14, %r14
je 0xe853
leaq -0x1a0(%rsp), %r15
leaq (%r15,%r14), %rdi
callq 0x2220
addq $-0x200, %r14           # imm = 0xFE00
jne 0xe7e8
jmp 0xe853
movq %rax, %rbx
movq 0x57c2(%rip), %rax      # 0x13fc8
movq (%rax), %r15
movq 0x18(%rax), %r12
movq $-0x400, %r13           # imm = 0xFC00
leaq 0x358(%rsp), %r14
movq %r15, -0xf8(%r14)
movq -0x18(%r15), %rax
movq %r12, -0xf8(%r14,%rax)
leaq -0xf0(%r14), %rdi
callq 0x2150
movq %r14, %rdi
callq 0x20a0
addq $-0x200, %r14           # imm = 0xFE00
addq $0x200, %r13            # imm = 0x200
jne 0xe81c
movq %rbx, %rdi
callq 0x22b0