// File: PeterDenton[P]Nu-Pert/src/Verify.cpp
// Function: main
int main()
{
//	set_Progress_Bar_visibility(true);

	std::ofstream out_file("data/Precision_Scan.txt", std::fstream::out);
	out_file << "Tilde basis:" << std::endl;
	out_file.close();
	Verify::Precision_Scan(&Tilde::Palphabeta, 0, 1e-2);
	Verify::Precision_Scan(&Tilde::Palphabeta, 1, 1e-2);

	out_file.open("data/Precision_Scan.txt", std::fstream::app);
	out_file << "Hat basis:" << std::endl;
	out_file.close();
	Verify::Precision_Scan(&Hat::Palphabeta, 0, 1e-2);
	Verify::Precision_Scan(&Hat::Palphabeta, 0, 1e-3);
	Verify::Precision_Scan(&Hat::Palphabeta, 1, 1e-2);
	Verify::Precision_Scan(&Hat::Palphabeta, 1, 1e-3);

	out_file.open("data/Precision_Scan.txt", std::fstream::app);
	out_file << "Check basis (GF):" << std::endl;
	out_file.close();
	Verify::Precision_Scan(&GF::Palphabeta, 0, 1e-2);
	Verify::Precision_Scan(&Check::Palphabeta, 0, 1e-2);
	Verify::Precision_Scan(&GF::Palphabeta, 0, 1e-3);
	Verify::Precision_Scan(&GF::Palphabeta, 1, 1e-3);

	out_file.close();
	return 0;
}

// Assembly:
subq $0x238, %rsp            # imm = 0x238
movl $0x0, 0x234(%rsp)
leaq 0x1127(%rip), %rsi      # 0x12d80
leaq 0x30(%rsp), %rdi
movq %rdi, 0x10(%rsp)
movl $0x10, %edx
callq 0x21a0
movq 0x10(%rsp), %rdi
leaq 0x1148(%rip), %rsi      # 0x12dc1
callq 0x2160
movq %rax, 0x18(%rsp)
jmp 0x11c85
movq 0x18(%rsp), %rdi
movq 0x5337(%rip), %rsi      # 0x16fc8
callq 0x2180
jmp 0x11c98
leaq 0x30(%rsp), %rdi
callq 0x2220
jmp 0x11ca4
leaq -0x167b(%rip), %rdi     # 0x10630
xorl %esi, %esi
movsd 0x10bb(%rip), %xmm0     # 0x12d70
callq 0x11300
jmp 0x11cbc
leaq -0x1693(%rip), %rdi     # 0x10630
movl $0x1, %esi
movsd 0x10a0(%rip), %xmm0     # 0x12d70
callq 0x11300
jmp 0x11cd7
leaq 0x10a2(%rip), %rsi      # 0x12d80
leaq 0x30(%rsp), %rdi
movl $0x1, %edx
callq 0x2040
jmp 0x11cef
leaq 0x10d8(%rip), %rsi      # 0x12dce
leaq 0x30(%rsp), %rdi
callq 0x2160
movq %rax, 0x8(%rsp)
jmp 0x11d07
movq 0x8(%rsp), %rdi
movq 0x52b5(%rip), %rsi      # 0x16fc8
callq 0x2180
jmp 0x11d1a
leaq 0x30(%rsp), %rdi
callq 0x2220
jmp 0x11d26
leaq -0x79cd(%rip), %rdi     # 0xa360
xorl %esi, %esi
movsd 0x1039(%rip), %xmm0     # 0x12d70
callq 0x11300
jmp 0x11d3e
leaq -0x79e5(%rip), %rdi     # 0xa360
xorl %esi, %esi
movsd 0x1029(%rip), %xmm0     # 0x12d78
callq 0x11300
jmp 0x11d56
leaq -0x79fd(%rip), %rdi     # 0xa360
movl $0x1, %esi
movsd 0x1006(%rip), %xmm0     # 0x12d70
callq 0x11300
jmp 0x11d71
leaq -0x7a18(%rip), %rdi     # 0xa360
movl $0x1, %esi
movsd 0xff3(%rip), %xmm0      # 0x12d78
callq 0x11300
jmp 0x11d8c
leaq 0xfed(%rip), %rsi       # 0x12d80
leaq 0x30(%rsp), %rdi
movl $0x1, %edx
callq 0x2040
jmp 0x11da4
leaq 0x102e(%rip), %rsi      # 0x12dd9
leaq 0x30(%rsp), %rdi
callq 0x2160
movq %rax, (%rsp)
jmp 0x11dbb
movq (%rsp), %rdi
movq 0x5202(%rip), %rsi      # 0x16fc8
callq 0x2180
jmp 0x11dcd
leaq 0x30(%rsp), %rdi
callq 0x2220
jmp 0x11dd9
leaq -0x9140(%rip), %rdi     # 0x8ca0
xorl %esi, %esi
movsd 0xf86(%rip), %xmm0      # 0x12d70
callq 0x11300
jmp 0x11df1
leaq -0xdc58(%rip), %rdi     # 0x41a0
xorl %esi, %esi
movsd 0xf6e(%rip), %xmm0      # 0x12d70
callq 0x11300
jmp 0x11e09
leaq -0x9170(%rip), %rdi     # 0x8ca0
xorl %esi, %esi
movsd 0xf5e(%rip), %xmm0      # 0x12d78
callq 0x11300
jmp 0x11e21
leaq -0x9188(%rip), %rdi     # 0x8ca0
movl $0x1, %esi
movsd 0xf43(%rip), %xmm0      # 0x12d78
callq 0x11300
jmp 0x11e3c
leaq 0x30(%rsp), %rdi
callq 0x2220
jmp 0x11e48
movl $0x0, 0x234(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x2230
movl 0x234(%rsp), %eax
addq $0x238, %rsp            # imm = 0x238
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x28(%rsp)
movl %eax, 0x24(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x2230
movq 0x28(%rsp), %rdi
callq 0x22b0
nop