// File: /workspace/github_cpp_makefile_star2_O2/PeterDenton[P]Nu-Pert/src/Figures.cpp
// Function: Figures::Pmu2e_Precision()
void Pmu2e_Precision()
{
	std::ofstream data("data/Pmu2e_Precision.txt");
	set_ordering(true);

	int exp_num = 0; // DUNE
	double delta = 3 * M_PI / 2;
	int alpha = 1; // nu_mu
	int beta = 0; // nu_e
	double Emin = 0.1;
	double Emax = 10;
	double Einc = 1.001;

	double Yrho, L, LE, a;
	double P_exact, P_GF0, P_GF1, P_Check2, P_Mixed, P_Mixed2;
	set_experimental_parameters(exp_num, &Yrho, &L);

	data << L << " ";
	data << delta << " ";
	data << std::endl;

	Progress_Bar Pbar;
	for (double E = Emin; E <= Emax; E *= Einc)
	{
		LE = L / E;
		a = Yrho * E * Y_to_a;

		P_exact = Exact::Palphabeta(alpha, beta, a, LE, delta);
		P_GF0 = GF::Palphabeta(alpha, beta, a, LE, delta, 0);
		P_GF1 = GF::Palphabeta(alpha, beta, a, LE, delta, 1);
		P_Check2 = Check::Palphabeta(alpha, beta, a, LE, delta, 2);
		P_Mixed = Mixed::Palphabeta(alpha, beta, a, LE, delta, 0);
		P_Mixed2 = Mixed::Palphabeta(alpha, beta, a, LE, delta, 2);

		data << E << " ";
		data << P_exact << " ";
		data << std::abs(1 - P_GF0 / P_exact) << " ";
		data << std::abs(1 - P_GF1 / P_exact) << " ";
		data << std::abs(1 - P_Check2 / P_exact) << " ";
		data << std::abs(1 - P_Mixed / P_exact) << " ";
		data << std::abs(1 - P_Mixed2 / P_exact) << " ";
		data << std::endl;

		Pbar.update(Emin, Emax, E, false);
	} // E
	data.close();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x8d0, %rsp            # imm = 0x8D0
leaq 0x2a7e(%rip), %rsi      # 0xdf16
leaq 0x58(%rsp), %rdi
pushq $0x10
popq %rdx
callq 0x21a0
pushq $0x1
popq %rdi
callq 0x37e3
leaq 0x50(%rsp), %rsi
leaq 0x20(%rsp), %rdx
xorl %edi, %edi
callq 0x50a8
movsd 0x20(%rsp), %xmm0
leaq 0x58(%rsp), %rdi
callq 0x2230
leaq 0x2759(%rip), %rsi      # 0xdc2e
movq %rax, %rdi
callq 0x2190
leaq 0x58(%rsp), %rdi
movsd 0x293e(%rip), %xmm0     # 0xde28
callq 0x2230
leaq 0x2738(%rip), %rsi      # 0xdc2e
movq %rax, %rdi
callq 0x2190
leaq 0x58(%rsp), %rdi
callq 0x20d0
leaq 0x258(%rsp), %rdi
callq 0x9cdc
leaq 0x1e14(%rip), %rax      # 0xd330
movsd (%rax), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x1fc2(%rip), %xmm2     # 0xd4f0
pushq $0x1
popq %rbx
pushq $0x2
popq %rbp
leaq 0x58(%rsp), %r14
leaq 0x26ee(%rip), %r15      # 0xdc2e
leaq 0x258(%rsp), %r12
movsd 0x26a8(%rip), %xmm0     # 0xdbf8
ucomisd %xmm2, %xmm0
jb 0xb7ba
movsd 0x20(%rsp), %xmm1
divsd %xmm2, %xmm1
movsd 0x50(%rsp), %xmm0
movsd %xmm2, 0x18(%rsp)
mulsd %xmm2, %xmm0
mulsd 0x28(%rsp), %xmm0
movl %ebx, %edi
xorl %esi, %esi
movsd %xmm0, 0x10(%rsp)
movsd %xmm1, (%rsp)
movsd 0x2897(%rip), %xmm2     # 0xde28
callq 0x4e50
movsd %xmm0, 0x8(%rsp)
movl %ebx, %edi
xorl %esi, %esi
movsd 0x10(%rsp), %xmm0
movsd (%rsp), %xmm1
movsd 0x2875(%rip), %xmm2     # 0xde28
xorl %edx, %edx
callq 0x5ec6
movsd %xmm0, 0x48(%rsp)
movl %ebx, %edi
xorl %esi, %esi
movsd 0x10(%rsp), %xmm0
movsd (%rsp), %xmm1
movsd 0x2851(%rip), %xmm2     # 0xde28
movl %ebx, %edx
callq 0x5ec6
movsd %xmm0, 0x40(%rsp)
movl %ebx, %edi
xorl %esi, %esi
movsd 0x10(%rsp), %xmm0
movsd (%rsp), %xmm1
movsd 0x282d(%rip), %xmm2     # 0xde28
movl %ebp, %edx
callq 0x33da
movsd %xmm0, 0x38(%rsp)
movl %ebx, %edi
xorl %esi, %esi
movsd 0x10(%rsp), %xmm0
movsd (%rsp), %xmm1
movsd 0x2809(%rip), %xmm2     # 0xde28
xorl %edx, %edx
callq 0x9a47
movsd %xmm0, 0x30(%rsp)
movl %ebx, %edi
xorl %esi, %esi
movsd 0x10(%rsp), %xmm0
movsd (%rsp), %xmm1
movsd 0x27e5(%rip), %xmm2     # 0xde28
movl %ebp, %edx
callq 0x9a47
movsd %xmm0, (%rsp)
movq %r14, %rdi
movsd 0x18(%rsp), %xmm0
callq 0x2230
movq %rax, %rdi
movq %r15, %rsi
callq 0x2190
movq %r14, %rdi
movsd 0x8(%rsp), %xmm0
callq 0x2230
movq %rax, %rdi
movq %r15, %rsi
callq 0x2190
movsd 0x48(%rsp), %xmm1
divsd 0x8(%rsp), %xmm1
movsd 0x1983(%rip), %xmm0     # 0xd018
subsd %xmm1, %xmm0
andpd 0x1e1f(%rip), %xmm0     # 0xd4c0
movq %r14, %rdi
callq 0x2230
movq %rax, %rdi
movq %r15, %rsi
callq 0x2190
movsd 0x40(%rsp), %xmm1
divsd 0x8(%rsp), %xmm1
movsd 0x1950(%rip), %xmm0     # 0xd018
subsd %xmm1, %xmm0
andpd 0x1dec(%rip), %xmm0     # 0xd4c0
movq %r14, %rdi
callq 0x2230
movq %rax, %rdi
movq %r15, %rsi
callq 0x2190
movsd 0x38(%rsp), %xmm1
divsd 0x8(%rsp), %xmm1
movsd 0x191d(%rip), %xmm0     # 0xd018
subsd %xmm1, %xmm0
andpd 0x1db9(%rip), %xmm0     # 0xd4c0
movq %r14, %rdi
callq 0x2230
movq %rax, %rdi
movq %r15, %rsi
callq 0x2190
movsd 0x30(%rsp), %xmm1
divsd 0x8(%rsp), %xmm1
movsd 0x18ea(%rip), %xmm0     # 0xd018
subsd %xmm1, %xmm0
andpd 0x1d86(%rip), %xmm0     # 0xd4c0
movq %r14, %rdi
callq 0x2230
movq %rax, %rdi
movq %r15, %rsi
callq 0x2190
movsd (%rsp), %xmm1
divsd 0x8(%rsp), %xmm1
movsd 0x18b8(%rip), %xmm0     # 0xd018
subsd %xmm1, %xmm0
andpd 0x1d54(%rip), %xmm0     # 0xd4c0
movq %r14, %rdi
callq 0x2230
movq %rax, %rdi
movq %r15, %rsi
callq 0x2190
movq %r14, %rdi
callq 0x20d0
movq %r12, %rdi
movsd 0x1d5e(%rip), %xmm0     # 0xd4f0
movsd 0x245e(%rip), %xmm1     # 0xdbf8
movsd 0x18(%rsp), %xmm2
xorl %esi, %esi
callq 0xa0c2
movsd 0x18(%rsp), %xmm2
mulsd 0x267b(%rip), %xmm2     # 0xde30
jmp 0xb548
leaq 0x58(%rsp), %rdi
callq 0x21f0
leaq 0x258(%rsp), %rdi
callq 0x9f04
leaq 0x58(%rsp), %rdi
callq 0x2200
addq $0x8d0, %rsp            # imm = 0x8D0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb7f6
jmp 0xb7f1
jmp 0xb7f1
movq %rax, %rbx
jmp 0xb806
movq %rax, %rbx
leaq 0x258(%rsp), %rdi
callq 0x9f04
leaq 0x58(%rsp), %rdi
callq 0x2200
movq %rbx, %rdi
callq 0x2280