// File: 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:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, (%rsp)
movq %rdi, %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x100(%rsp)
movsd %xmm0, 0xf8(%rsp)
movsd %xmm1, 0xf0(%rsp)
movsd 0xf8(%rsp), %xmm0
callq 0x5d80
callq 0x20f0
movsd %xmm0, 0x10(%rsp)
movsd 0xf8(%rsp), %xmm0
callq 0x5f20
callq 0x20f0
movaps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
callq 0x2050
movsd %xmm0, 0xe8(%rsp)
movsd 0xf8(%rsp), %xmm0
callq 0x5f50
callq 0x20f0
movsd %xmm0, 0x18(%rsp)
movsd 0xf8(%rsp), %xmm0
callq 0x6020
callq 0x20f0
movaps %xmm0, %xmm1
movsd 0x18(%rsp), %xmm0
callq 0x2050
movsd %xmm0, 0xe0(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
callq 0x6050
callq 0x20f0
movsd %xmm0, 0x20(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
callq 0x61a0
callq 0x20f0
movaps %xmm0, %xmm1
movsd 0x20(%rsp), %xmm0
callq 0x2050
movsd %xmm0, 0xd8(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
callq 0x6480
movsd %xmm0, 0x28(%rsp)
movsd 0xf8(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
callq 0x61e0
movaps %xmm0, %xmm1
movsd 0x28(%rsp), %xmm0
callq 0x2050
movsd %xmm0, 0xd0(%rsp)
movsd 0xe8(%rsp), %xmm0
leaq 0xb8(%rsp), %rdi
callq 0x4f10
movsd 0xe0(%rsp), %xmm0
leaq 0xa0(%rsp), %rdi
callq 0x4d60
jmp 0x6871
movsd 0xd0(%rsp), %xmm0
movsd 0xd8(%rsp), %xmm1
leaq 0x78(%rsp), %rdi
callq 0x4a80
jmp 0x688f
leaq 0x48(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
callq 0xcc80
jmp 0x68a3
leaq 0x60(%rsp), %rdi
leaq 0x78(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0xd410
jmp 0x68b9
leaq 0x30(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0xcc80
jmp 0x68cd
movq (%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0xd410
jmp 0x68e2
leaq 0x30(%rsp), %rdi
callq 0xce00
leaq 0x60(%rsp), %rdi
callq 0xce00
leaq 0x48(%rsp), %rdi
callq 0xce00
leaq 0x78(%rsp), %rdi
callq 0xce00
leaq 0xa0(%rsp), %rdi
callq 0xce00
leaq 0xb8(%rsp), %rdi
callq 0xce00
movq 0x8(%rsp), %rax
addq $0x108, %rsp            # imm = 0x108
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x69eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x69de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x69d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x69ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
jmp 0x69c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x98(%rsp)
movl %eax, 0x94(%rsp)
leaq 0x30(%rsp), %rdi
callq 0xce00
leaq 0x60(%rsp), %rdi
callq 0xce00
leaq 0x48(%rsp), %rdi
callq 0xce00
leaq 0x78(%rsp), %rdi
callq 0xce00
leaq 0xa0(%rsp), %rdi
callq 0xce00
leaq 0xb8(%rsp), %rdi
callq 0xce00
movq 0x98(%rsp), %rdi
callq 0x22b0
nopw %cs:(%rax,%rax)