// File: /workspace/github_cpp_makefile_star2_O1/dannycalegari[P]circle_pack/./Trigonometry_routine.cc
// Function: ETR(double)
Matrix ETR(double dist){	//  translation in Euclidean plane along x axis
	// returns matrix
	// (1 0 d)
	// (0 1 0)
	// (0 0 1)
	Matrix M;
	vector<double> row;
	row.clear();
	row.push_back(1.0);
	row.push_back(0.0);
	row.push_back(dist);
	M.e.push_back(row);
	row.clear();
	row.push_back(0.0);
	row.push_back(1.0);
	row.push_back(0.0);
	M.e.push_back(row);
	row.clear();
	row.push_back(0.0);
	row.push_back(0.0);
	row.push_back(1.0);
	M.e.push_back(row);
	return(M);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movsd %xmm0, 0x20(%rsp)
xorl %eax, %eax
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
movaps %xmm0, (%rsp)
movq %rax, 0x10(%rsp)
cmpq %rax, 0x8(%rsp)
je 0x3460
movq $0x0, 0x8(%rsp)
movabsq $0x3ff0000000000000, %r14 # imm = 0x3FF0000000000000
movq %r14, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x3489
movq %r14, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x3496
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq $0x0, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x34bd
movq $0x0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x34ca
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x34eb
movsd 0x20(%rsp), %xmm0
movsd %xmm0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x34f8
movq %rsp, %rdi
leaq 0x20(%rsp), %rdx
callq 0x9b2c
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9130
movq (%rsp), %rax
cmpq %rax, 0x8(%rsp)
je 0x3513
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x353a
movq $0x0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x3547
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq %r14, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x3566
movq %r14, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x3573
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq $0x0, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x359a
movq $0x0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x35a7
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9130
movq (%rsp), %rax
cmpq %rax, 0x8(%rsp)
je 0x35c2
movq %rax, 0x8(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x35e9
movq $0x0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x35f6
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq $0x0, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x361d
movq $0x0, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x362a
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq %r14, 0x18(%rsp)
movq 0x8(%rsp), %rsi
cmpq 0x10(%rsp), %rsi
je 0x3649
movq %r14, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x8(%rsp)
jmp 0x3656
movq %rsp, %rdi
leaq 0x18(%rsp), %rdx
callq 0x982a
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x9130
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3677
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
retq
jmp 0x3692
jmp 0x3692
jmp 0x3692
jmp 0x3692
jmp 0x3692
jmp 0x3692
jmp 0x3692
jmp 0x3692
movq %rax, %r14
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36ab
movq 0x10(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq %rbx, %rdi
callq 0x9496
movq %r14, %rdi
callq 0x23b0