// File: dannycalegari[P]circle_pack/./Trigonometry_routine.cc
// Function: Matrix::operator()(Point)
Point operator()(Point P){
			Point Q;
			Q.x = P.x*e[0][0]+P.y*e[0][1]+P.z*e[0][2];
			Q.y = P.x*e[1][0]+P.y*e[1][1]+P.z*e[1][2];
			Q.z = P.x*e[2][0]+P.y*e[2][1]+P.z*e[2][2];
			return(Q);
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x18(%rbp)
movq %rdi, -0x10(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq %rsi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x38(%rbp)
movsd (%rax), %xmm0
movsd %xmm0, -0x98(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0xa250
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xa270
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movq -0x30(%rbp), %rax
movsd (%rcx), %xmm0
movsd %xmm0, -0x90(%rbp)
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0xa0(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0xa250
movq %rax, %rdi
movl $0x1, %esi
callq 0xa270
movsd -0xa0(%rbp), %xmm1
movsd -0x98(%rbp), %xmm0
movsd -0x90(%rbp), %xmm2
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movq -0x30(%rbp), %rax
mulsd (%rcx), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x80(%rbp)
movsd 0x10(%rax), %xmm0
movsd %xmm0, -0x88(%rbp)
xorl %eax, %eax
movl %eax, %esi
callq 0xa250
movq %rax, %rdi
movl $0x2, %esi
callq 0xa270
movsd -0x88(%rbp), %xmm0
movsd -0x80(%rbp), %xmm1
movq -0x38(%rbp), %rdi
movq -0x18(%rbp), %rcx
movq %rax, %rdx
movq -0x30(%rbp), %rax
movsd (%rdx), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, (%rcx)
movsd (%rax), %xmm0
movsd %xmm0, -0x70(%rbp)
movl $0x1, %esi
callq 0xa250
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xa270
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movq -0x30(%rbp), %rax
movsd (%rcx), %xmm0
movsd %xmm0, -0x68(%rbp)
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x78(%rbp)
movl $0x1, %esi
callq 0xa250
movq %rax, %rdi
movl $0x1, %esi
callq 0xa270
movsd -0x78(%rbp), %xmm1
movsd -0x70(%rbp), %xmm0
movsd -0x68(%rbp), %xmm2
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movq -0x30(%rbp), %rax
mulsd (%rcx), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x58(%rbp)
movsd 0x10(%rax), %xmm0
movsd %xmm0, -0x60(%rbp)
movl $0x1, %esi
callq 0xa250
movq %rax, %rdi
movl $0x2, %esi
callq 0xa270
movsd -0x60(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
movq -0x38(%rbp), %rdi
movq -0x18(%rbp), %rcx
movq %rax, %rdx
movq -0x30(%rbp), %rax
movsd (%rdx), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rcx)
movsd (%rax), %xmm0
movsd %xmm0, -0x48(%rbp)
movl $0x2, %esi
callq 0xa250
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xa270
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movq -0x30(%rbp), %rax
movsd (%rcx), %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x50(%rbp)
movl $0x2, %esi
callq 0xa250
movq %rax, %rdi
movl $0x1, %esi
callq 0xa270
movsd -0x50(%rbp), %xmm1
movsd -0x48(%rbp), %xmm0
movsd -0x40(%rbp), %xmm2
movq -0x38(%rbp), %rdi
movq %rax, %rcx
movq -0x30(%rbp), %rax
mulsd (%rcx), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rbp)
movsd 0x10(%rax), %xmm0
movsd %xmm0, -0x28(%rbp)
movl $0x2, %esi
callq 0xa250
movq %rax, %rdi
movl $0x2, %esi
callq 0xa270
movsd -0x28(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movq -0x18(%rbp), %rdi
movq %rax, %rcx
movq -0x10(%rbp), %rax
movsd (%rcx), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x10(%rdi)
addq $0xa0, %rsp
popq %rbp
retq
nop