// File: /workspace/github_cpp_makefile_star2_O1/Luthaf[P]zeopp/./Eigen/src/Householder/Householder.h
// Function: void Eigen::MatrixBase<Eigen::Block<Eigen::Matrix<double, 3, 3, 0, 3, 3>, -1, -1, false>>::applyHouseholderOnTheLeft<Eigen::VectorBlock<Eigen::Block<Eigen::Matrix<double, 3, 3, 0, 3, 3>, 3, 1, true>, -1>>(Eigen::VectorBlock<Eigen::Block<Eigen::Matrix<double, 3, 3, 0, 3, 3>, 3, 1, true>, -1> const&, double const&, double*)
void MatrixBase<Derived>::applyHouseholderOnTheLeft(
  const EssentialPart& essential,
  const Scalar& tau,
  Scalar* workspace)
{
  if(rows() == 1)
  {
    *this *= Scalar(1)-tau;
  }
  else
  {
    Map<typename internal::plain_row_type<PlainObject>::type> tmp(workspace,cols());
    Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
    tmp.noalias() = essential.adjoint() * bottom;
    tmp += this->row(0);
    this->row(0) -= tau * tmp;
    bottom.noalias() -= tau * essential * tmp;
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1d8, %rsp            # imm = 0x1D8
movq %rdi, %r12
movq 0x8(%rdi), %rdi
cmpq $0x1, %rdi
jne 0x10dbf2
movsd 0x414b6(%rip), %xmm0    # 0x14f058
subsd (%rdx), %xmm0
movq %r12, 0x140(%rsp)
leaq 0x98(%rsp), %rax
movq %rax, 0x148(%rsp)
movq 0x10(%r12), %rcx
movq %rdi, (%rax)
movq %rcx, 0x8(%rax)
movsd %xmm0, 0x10(%rax)
testq %rcx, %rcx
js 0x10df71
leaq 0x140(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x10e2a0
jmp 0x10df29
movq 0x10(%r12), %r15
movq %rcx, 0x20(%rsp)
movq %r15, 0x30(%rsp)
testq %r15, %r15
js 0x10df90
movq %rsi, %r8
leaq -0x1(%rdi), %rax
movq (%r12), %rcx
addq $0x8, %rcx
movq %rcx, 0x50(%rsp)
movq %rax, 0x58(%rsp)
movq %r15, 0x60(%rsp)
sete %cl
movq %r15, %rsi
orq %rax, %rsi
setns %sil
orb %cl, %sil
je 0x10dfaf
movups (%r12), %xmm0
movupd 0x10(%r12), %xmm1
movupd %xmm1, 0x78(%rsp)
movups %xmm0, 0x68(%rsp)
movq 0x20(%r12), %rcx
movq %rcx, 0x88(%rsp)
movq %rcx, 0x90(%rsp)
testq %rdi, %rdi
jle 0x10dfce
movq %rdx, 0x18(%rsp)
movq (%r8), %rcx
movq 0x8(%r8), %rdx
movq 0x18(%r8), %rsi
movq 0x38(%r8), %rdi
leaq 0xd8(%rsp), %r13
movq %rcx, -0x40(%r13)
movq %rdx, -0x38(%r13)
movq %rsi, -0x28(%r13)
movups 0x28(%r8), %xmm0
movups %xmm0, -0x18(%r13)
movq %rdi, -0x8(%r13)
leaq 0x50(%rsp), %rsi
movl $0x9, %ecx
movq %r13, %rdi
rep  movsq (%rsi), %es:(%rdi)
movq $0x0, 0x60(%r13)
cmpq %rax, %rdx
jne 0x10dfed
movq %r8, 0x10(%rsp)
cmpq 0xe8(%rsp), %r15
jne 0x10e00c
testq %r15, %r15
je 0x10dd22
xorl %ebp, %ebp
leaq 0x98(%rsp), %rbx
leaq 0x140(%rsp), %r14
xorl %edi, %edi
movq %rbp, %rsi
movq %rbx, %rdx
movq %r13, %rcx
movq %r14, %r8
callq 0x10e322
movsd 0x140(%rsp), %xmm0
movq 0x20(%rsp), %rax
movsd %xmm0, (%rax,%rbp,8)
incq %rbp
cmpq %rbp, %r15
jne 0x10dcf4
movq (%r12), %rax
movq 0x10(%r12), %rcx
movq %rax, 0x98(%rsp)
movq %rcx, 0xa8(%rsp)
testq %rax, %rax
sete %al
testq %rcx, %rcx
setns %cl
orb %al, %cl
je 0x10df3b
movq 0x20(%r12), %rax
movq %rax, 0xd0(%rsp)
movups (%r12), %xmm0
movupd 0x10(%r12), %xmm1
movupd %xmm1, 0xc0(%rsp)
movups %xmm0, 0xb0(%rsp)
movq $0x1, 0xd8(%rsp)
cmpq $0x0, 0x8(%r12)
movq 0x18(%rsp), %r15
jle 0x10df52
leaq 0x20(%rsp), %r14
leaq 0x140(%rsp), %rbx
movq %r14, (%rbx)
leaq 0x40(%rsp), %rax
movq %rax, 0x8(%rbx)
leaq 0x98(%rsp), %r13
movq %rbx, %rdi
movq %r13, %rsi
callq 0x10e480
movsd (%r15), %xmm0
movq (%r14), %rax
movq 0x10(%r14), %rcx
movq %rax, (%rbx)
movq %rcx, 0x10(%rbx)
movsd %xmm0, 0x20(%rbx)
movq (%r12), %rax
movq 0x10(%r12), %rcx
movq %rax, (%r13)
movq %rcx, 0x10(%r13)
testq %rax, %rax
sete %al
testq %rcx, %rcx
setns %cl
orb %al, %cl
je 0x10df3b
movq 0x20(%r12), %rax
movq %rax, 0xd0(%rsp)
movups (%r12), %xmm0
movupd 0x10(%r12), %xmm1
movupd %xmm1, 0xc0(%rsp)
movups %xmm0, 0xb0(%rsp)
movq $0x1, 0xd8(%rsp)
cmpq $0x0, 0x8(%r12)
jle 0x10df52
leaq 0x40(%rsp), %rdi
movq %r13, (%rdi)
leaq 0xf(%rsp), %r14
movq %r14, 0x8(%rdi)
leaq 0x140(%rsp), %rbx
movq %rbx, %rsi
callq 0x10e4e4
movsd (%r15), %xmm0
movq 0x10(%rsp), %rcx
movq (%rcx), %rax
movq 0x8(%rcx), %rdx
movq %rdx, 0x18(%rbx)
cmpq $0x4, %rdx
jae 0x10e02b
movq %rdx, 0x158(%rsp)
testq %rdx, %rdx
je 0x10deaa
xorl %ecx, %ecx
movsd (%rax,%rcx,8), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0x140(%rsp,%rcx,8)
incq %rcx
cmpq %rcx, %rdx
jne 0x10de90
movq 0x20(%rsp), %rbx
movq 0x30(%rsp), %r15
movq %rbx, 0x160(%rsp)
movq %r15, 0x170(%rsp)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x1c8(%rsp)
movq %rdx, 0xb0(%rsp)
testq %rdx, %rdx
je 0x10defb
shlq $0x3, %rdx
leaq 0x98(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x4370
xorpd %xmm0, %xmm0
leaq 0x98(%rsp), %rsi
movq %rbx, 0x20(%rsi)
movq %r15, 0x30(%rsi)
movupd %xmm0, 0x88(%rsi)
leaq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
movq %rax, (%rdi)
movq %r14, 0x8(%rdi)
callq 0x10e552
addq $0x1d8, %rsp            # imm = 0x1D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x4bb4c(%rip), %rdi     # 0x159a8e
leaq 0x4bbf7(%rip), %rsi     # 0x159b40
leaq 0x4de12(%rip), %rcx     # 0x15bd62
jmp 0x10dfc4
leaq 0x4b9cd(%rip), %rdi     # 0x159926
leaq 0x4ba6d(%rip), %rsi     # 0x1599cd
leaq 0x4dd3e(%rip), %rcx     # 0x15bca5
movl $0x77, %edx
callq 0x4290
leaq 0x4c358(%rip), %rdi     # 0x15a2d0
leaq 0x4c3ee(%rip), %rsi     # 0x15a36d
leaq 0x4c759(%rip), %rcx     # 0x15a6df
movl $0x3f, %edx
callq 0x4290
leaq 0x4cb24(%rip), %rdi     # 0x15aabb
leaq 0x4bba2(%rip), %rsi     # 0x159b40
leaq 0x4cb23(%rip), %rcx     # 0x15aac8
movl $0x8a, %edx
callq 0x4290
leaq 0x4bad8(%rip), %rdi     # 0x159a8e
leaq 0x4bb83(%rip), %rsi     # 0x159b40
leaq 0x4cc7f(%rip), %rcx     # 0x15ac43
movl $0x94, %edx
callq 0x4290
leaq 0x4bb86(%rip), %rdi     # 0x159b5b
leaq 0x4b9f1(%rip), %rsi     # 0x1599cd
leaq 0x4cb90(%rip), %rcx     # 0x15ab73
movl $0x8e, %edx
callq 0x4290
leaq 0x4cd0d(%rip), %rdi     # 0x15ad01
leaq 0x4cd92(%rip), %rsi     # 0x15ad8d
leaq 0x4cdb9(%rip), %rcx     # 0x15adbb
movl $0x9e, %edx
callq 0x4290
leaq 0x4b6e5(%rip), %rdi     # 0x1596f8
leaq 0x4b70f(%rip), %rsi     # 0x159729
leaq 0x4cffd(%rip), %rcx     # 0x15b01e
movl $0x1f9, %edx            # imm = 0x1F9
callq 0x4290
leaq 0x4b711(%rip), %rdi     # 0x159743
leaq 0x4b8a5(%rip), %rsi     # 0x1598de
leaq 0x4e2ab(%rip), %rcx     # 0x15c2eb
movl $0xf1, %edx
callq 0x4290