// File: /workspace/github_cpp_makefile_star2_O3/PeterDenton[P]Nu-Pert/src/Exact.cpp
// Function: Exact::UMNSm(double, double)
Matrix<std::complex<double> > UMNSm(double a, double delta)
{
	double t12m = atan2(sqrt(s12msq(a)), sqrt(c12msq(a)));
	double t13m = atan2(sqrt(s13msq(a)), sqrt(c13msq(a)));
	double t23m = atan2(sqrt(s23msq(a, delta)), sqrt(c23msq(a, delta)));
	double deltam = atan2(sdeltam(a, delta), cdeltam(a, delta));

	Matrix<std::complex<double> > U12m = U12(t12m);
	Matrix<std::complex<double> > U13m = U13(t13m);
	Matrix<std::complex<double> > U23m = U23(deltam, t23m);

	return U23m * U13m * U12m;
}

// Assembly:
pushq %rbx
subq $0xc0, %rsp
movsd %xmm1, 0x20(%rsp)
movq %rdi, %rbx
movsd %xmm0, (%rsp)
callq 0x4889
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x5054
sqrtsd %xmm0, %xmm0
jmp 0x5059
callq 0x2120
movsd %xmm0, 0x18(%rsp)
movsd (%rsp), %xmm0
callq 0x4889
movapd %xmm0, %xmm1
movsd 0x8fa3(%rip), %xmm0     # 0xe018
subsd %xmm1, %xmm0
ucomisd 0x92d7(%rip), %xmm0     # 0xe358
jb 0x508c
xorps %xmm1, %xmm1
sqrtsd %xmm0, %xmm1
jmp 0x5095
callq 0x2120
movapd %xmm0, %xmm1
movsd 0x18(%rsp), %xmm0
callq 0x2060
movsd %xmm0, 0x18(%rsp)
movsd (%rsp), %xmm0
callq 0x4a80
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x50c0
sqrtsd %xmm0, %xmm0
jmp 0x50c5
callq 0x2120
movsd %xmm0, 0x10(%rsp)
movsd (%rsp), %xmm0
callq 0x4a80
movapd %xmm0, %xmm1
movsd 0x8f37(%rip), %xmm0     # 0xe018
subsd %xmm1, %xmm0
ucomisd 0x926b(%rip), %xmm0     # 0xe358
jb 0x50f8
xorps %xmm1, %xmm1
sqrtsd %xmm0, %xmm1
jmp 0x5101
callq 0x2120
movapd %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
callq 0x2060
movsd %xmm0, 0x10(%rsp)
movsd (%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
callq 0x4bc5
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x5132
sqrtsd %xmm0, %xmm0
jmp 0x5137
callq 0x2120
movsd %xmm0, 0x8(%rsp)
movsd (%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
callq 0x4bc5
movsd 0x8ec3(%rip), %xmm1     # 0xe018
subsd %xmm0, %xmm1
movapd %xmm1, %xmm0
ucomisd 0x91f3(%rip), %xmm1     # 0xe358
jb 0x5170
xorps %xmm1, %xmm1
sqrtsd %xmm0, %xmm1
jmp 0x5179
callq 0x2120
movapd %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
callq 0x2060
movsd %xmm0, 0x28(%rsp)
movsd (%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
callq 0x4ea0
movsd %xmm0, 0x8(%rsp)
movsd (%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
callq 0x4cc9
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
callq 0x2060
movsd %xmm0, (%rsp)
leaq 0xa8(%rsp), %rdi
movsd 0x18(%rsp), %xmm0
callq 0x3cf1
leaq 0x90(%rsp), %rdi
movsd 0x10(%rsp), %xmm0
callq 0x3bcb
leaq 0x78(%rsp), %rdi
movsd (%rsp), %xmm0
movsd 0x28(%rsp), %xmm1
callq 0x3a5a
leaq 0x48(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0xa146
leaq 0x60(%rsp), %rdi
leaq 0x78(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xa482
leaq 0x30(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xa146
leaq 0x60(%rsp), %rsi
leaq 0x30(%rsp), %rdx
movq %rbx, %rdi
callq 0xa482
leaq 0x30(%rsp), %rdi
callq 0xa1c4
leaq 0x60(%rsp), %rdi
callq 0xa1c4
leaq 0x48(%rsp), %rdi
callq 0xa1c4
leaq 0x78(%rsp), %rdi
callq 0xa1c4
leaq 0x90(%rsp), %rdi
callq 0xa1c4
leaq 0xa8(%rsp), %rdi
callq 0xa1c4
movq %rbx, %rax
addq $0xc0, %rsp
popq %rbx
retq
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xa1c4
jmp 0x52a8
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xa1c4
jmp 0x52b7
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xa1c4
jmp 0x52c6
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xa1c4
jmp 0x52d5
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xa1c4
leaq 0xa8(%rsp), %rdi
callq 0xa1c4
movq %rbx, %rdi
callq 0x22a0
movq %rax, %rbx
jmp 0x52e2