// File: /workspace/github_cpp_makefile_star2_O3/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
leaq 0x60(%rsp), %rdi
callq 0x2280
leaq 0x260(%rsp), %r14
movq %r14, %rdi
callq 0x2280
leaq 0x1f41(%rip), %rsi      # 0xffc3
leaq 0x60(%rsp), %rbx
movq %rbx, %rdi
movl $0x10, %edx
callq 0x2050
leaq 0x1f49(%rip), %rsi      # 0xffe4
movq %r14, %rdi
movl $0x10, %edx
callq 0x2050
movl $0x1, %edi
callq 0x3a1f
leaq 0x1277(%rip), %rax      # 0xf330
movsd (%rax), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x1d8d(%rip), %xmm0     # 0xfe58
leaq 0x1b8c(%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 0x26f1
movsd %xmm0, 0x50(%rsp)
movsd 0x8(%rsp), %xmm0
xorl %edi, %edi
callq 0x28a5
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 0x26f1
movsd %xmm0, 0x38(%rsp)
movsd 0x8(%rsp), %xmm0
movl $0x2, %edi
callq 0x28a5
movsd %xmm0, 0x30(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x45a4
movsd %xmm0, 0x18(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x45b9
movsd %xmm0, 0x10(%rsp)
movsd 0x8(%rsp), %xmm0
callq 0x45ce
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 0xe5a(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0x12f6(%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 0xe22(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0x12be(%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 0xdea(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0x1286(%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 0xdb2(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0x124e(%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 0xd7a(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0x1216(%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 0xd42(%rip), %xmm0      # 0xf018
subsd %xmm1, %xmm0
andpd 0x11de(%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 0x1b6f(%rip), %xmm0     # 0xfe90
movsd 0x1b3f(%rip), %xmm1     # 0xfe68
ucomisd %xmm0, %xmm1
jae 0xe0d2
leaq 0x60(%rsp), %rdi
callq 0x2210
movq 0x5c84(%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 0xe35a
addq $0x460, %rsp            # imm = 0x460
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x2220
jmp 0xe40c
jmp 0xe3b5
jmp 0xe3b5
movq %rax, %rbx
movq 0x5c09(%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 0xe3d5
movq %rbx, %rdi
callq 0x22b0