// File: Laakeri[P]Triangulator/src/setcover.cpp
// Function: SetCover::LPSolver::Pivot(int, int)
void Pivot(int r, int s) {
		ld inv = 1.0 / D[r][s];
		for (int i = 0; i < m + 2; i++) if (i != r)
			for (int j = 0; j < n + 2; j++) if (j != s)
				D[i][j] -= D[r][j] * D[i][s] * inv;
		for (int j = 0; j < n + 2; j++) if (j != s) D[r][j] *= inv;
		for (int i = 0; i < m + 2; i++) if (i != r) D[i][s] *= -inv;
		D[r][s] = inv;
		swap(B[r], N[s]);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
addq $0x58, %rdi
movslq -0xc(%rbp), %rsi
callq 0x4e7c0
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x4e870
fldt (%rax)
fld1
fdivp %st, %st(1)
fstpt -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movq -0x38(%rbp), %rcx
movl -0x24(%rbp), %eax
movl 0x20(%rcx), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jge 0x50b45
movl -0x24(%rbp), %eax
cmpl -0xc(%rbp), %eax
je 0x50b35
movl $0x0, -0x28(%rbp)
movq -0x38(%rbp), %rcx
movl -0x28(%rbp), %eax
movl 0x24(%rcx), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jge 0x50b33
movl -0x28(%rbp), %eax
cmpl -0x10(%rbp), %eax
je 0x50b23
movq -0x38(%rbp), %rdi
addq $0x58, %rdi
movq %rdi, -0x58(%rbp)
movslq -0xc(%rbp), %rsi
callq 0x4e7c0
movq %rax, %rdi
movslq -0x28(%rbp), %rsi
callq 0x4e870
movq -0x58(%rbp), %rdi
fldt (%rax)
fstpt -0x64(%rbp)
movslq -0x24(%rbp), %rsi
callq 0x4e7c0
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x4e870
fldt -0x64(%rbp)
movq -0x58(%rbp), %rdi
fldt (%rax)
fmulp %st, %st(1)
fstpt -0x44(%rbp)
fldt -0x20(%rbp)
fstpt -0x50(%rbp)
movslq -0x24(%rbp), %rsi
callq 0x4e7c0
movq %rax, %rdi
movslq -0x28(%rbp), %rsi
callq 0x4e870
fldt -0x50(%rbp)
fldt -0x44(%rbp)
fldt (%rax)
fxch %st(1)
fmulp %st, %st(2)
fsubp %st, %st(1)
fstpt (%rax)
jmp 0x50b25
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x50a8e
jmp 0x50b35
jmp 0x50b37
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x50a66
movl $0x0, -0x2c(%rbp)
movq -0x38(%rbp), %rcx
movl -0x2c(%rbp), %eax
movl 0x24(%rcx), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jge 0x50b9e
movl -0x2c(%rbp), %eax
cmpl -0x10(%rbp), %eax
je 0x50b91
movq -0x38(%rbp), %rdi
fldt -0x20(%rbp)
fstpt -0x70(%rbp)
addq $0x58, %rdi
movslq -0xc(%rbp), %rsi
callq 0x4e7c0
movq %rax, %rdi
movslq -0x2c(%rbp), %rsi
callq 0x4e870
fldt -0x70(%rbp)
fldt (%rax)
fmulp %st, %st(1)
fstpt (%rax)
jmp 0x50b93
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x50b4c
movl $0x0, -0x30(%rbp)
movq -0x38(%rbp), %rcx
movl -0x30(%rbp), %eax
movl 0x20(%rcx), %ecx
addl $0x2, %ecx
cmpl %ecx, %eax
jge 0x50bf9
movl -0x30(%rbp), %eax
cmpl -0xc(%rbp), %eax
je 0x50bec
movq -0x38(%rbp), %rdi
fldt -0x20(%rbp)
fchs
fstpt -0x7c(%rbp)
addq $0x58, %rdi
movslq -0x30(%rbp), %rsi
callq 0x4e7c0
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x4e870
fldt -0x7c(%rbp)
fldt (%rax)
fmulp %st, %st(1)
fstpt (%rax)
jmp 0x50bee
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x50ba5
movq -0x38(%rbp), %rdi
fldt -0x20(%rbp)
fstpt -0x94(%rbp)
addq $0x58, %rdi
movslq -0xc(%rbp), %rsi
callq 0x4e7c0
movq %rax, %rdi
movslq -0x10(%rbp), %rsi
callq 0x4e870
fldt -0x94(%rbp)
movq -0x38(%rbp), %rdi
fstpt (%rax)
addq $0x40, %rdi
movslq -0xc(%rbp), %rsi
callq 0x178f0
movq -0x38(%rbp), %rdi
movq %rax, -0x88(%rbp)
addq $0x28, %rdi
movslq -0x10(%rbp), %rsi
callq 0x178f0
movq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x17910
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax,%rax)