// File: /workspace/github_c_makefile_star2_O0/markpeerdeman[P]mbemm/src/general/matrices.c
// Function: eigenval
void eigenval( matrix s, vector t)
{ double a, b, c, d, m, n, alpha, r;

  a = -M(s,1,1)-M(s,2,2)-M(s,3,3);
  b =  M(s,1,1)*M(s,2,2)-M(s,1,2)*M(s,1,2)+M(s,1,1)*M(s,3,3)-M(s,1,3)*M(s,1,3)+M(s,2,2)*M(s,3,3)-M(s,2,3)*M(s,2,3);
  c = -M(s,1,1)*( M(s,2,2)*M(s,3,3)-M(s,2,3)*M(s,2,3) ) + M(s,1,2)*( M(s,1,2)*M(s,3,3) - M(s,1,3)*M(s,3,2) )
      -M(s,1,3)*( M(s,1,2)*M(s,2,3)-M(s,2,2)*M(s,1,3) );
  m = a*a/3.0 - b;
  n = c + 2.0/27.0*a*a*a - a*b/3.0;
  alpha = 3.0*n*sqrt( 3.0/m )/m;

  r = acos(-alpha/2.0)/3.0; d = sqrt(m/3.0); 

  V(t,1) = 2.0*d*cos(r+2.0*PI/3.0)-a/3.0;
  V(t,2) = 2.0*d*cos(r-2.0*PI/3.0)-a/3.0;
  V(t,3) = 2.0*d*cos(r)-a/3.0;

}

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
subsd 0x8(%rax), %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
subsd 0x10(%rax), %xmm0
movsd %xmm0, 0x70(%rsp)
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd (%rax), %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm2
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x8(%rax), %xmm1
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
mulsd 0x8(%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd (%rax), %xmm1
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x10(%rax), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x10(%rax), %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x10(%rax), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm1
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x10(%rax), %xmm2
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x10(%rax), %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x10(%rax), %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x68(%rsp)
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm2
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x10(%rax), %xmm3
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x10(%rax), %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
mulsd 0x10(%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm3, %xmm2
addsd %xmm0, %xmm2
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x8(%rax), %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x8(%rax), %xmm3
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movsd 0x10(%rax), %xmm5
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x10(%rax), %xmm4
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
mulsd 0x8(%rax), %xmm4
movq %xmm4, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm4
mulsd %xmm5, %xmm3
addsd %xmm4, %xmm3
mulsd %xmm3, %xmm0
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x10(%rax), %xmm0
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movsd 0x8(%rax), %xmm2
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x10(%rax), %xmm4
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movsd 0x8(%rax), %xmm3
movq 0x80(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
mulsd 0x10(%rax), %xmm3
movq %xmm3, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm3
mulsd %xmm4, %xmm2
addsd %xmm3, %xmm2
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x60(%rsp)
movsd 0x70(%rsp), %xmm0
mulsd 0x70(%rsp), %xmm0
movsd 0x2807(%rip), %xmm1     # 0x19428
divsd %xmm1, %xmm0
subsd 0x68(%rsp), %xmm0
movsd %xmm0, 0x50(%rsp)
movsd 0x60(%rsp), %xmm1
movsd 0x4759(%rip), %xmm0     # 0x1b398
mulsd 0x70(%rsp), %xmm0
mulsd 0x70(%rsp), %xmm0
movsd 0x70(%rsp), %xmm2
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd 0x70(%rsp), %xmm1
mulsd 0x68(%rsp), %xmm1
movsd 0x27bb(%rip), %xmm2     # 0x19428
divsd %xmm2, %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x48(%rsp)
movsd 0x27a5(%rip), %xmm0     # 0x19428
mulsd 0x48(%rsp), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x2791(%rip), %xmm0     # 0x19428
divsd 0x50(%rsp), %xmm0
callq 0x1150
movaps %xmm0, %xmm1
movsd 0x8(%rsp), %xmm0
mulsd %xmm1, %xmm0
divsd 0x50(%rsp), %xmm0
movsd %xmm0, 0x40(%rsp)
movsd 0x40(%rsp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd 0x2758(%rip), %xmm1     # 0x19438
divsd %xmm1, %xmm0
callq 0x10b0
movsd 0x2737(%rip), %xmm1     # 0x19428
divsd %xmm1, %xmm0
movsd %xmm0, 0x38(%rsp)
movsd 0x50(%rsp), %xmm0
movsd 0x271f(%rip), %xmm1     # 0x19428
divsd %xmm1, %xmm0
callq 0x1150
movsd %xmm0, 0x58(%rsp)
movsd 0x2718(%rip), %xmm0     # 0x19438
mulsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x3298(%rip), %xmm0     # 0x19fd8
callq 0x10b0
movaps %xmm0, %xmm2
movsd 0x10(%rsp), %xmm0
movsd 0x26e2(%rip), %xmm1     # 0x19438
mulsd %xmm2, %xmm1
movsd 0x26c6(%rip), %xmm2     # 0x19428
divsd %xmm2, %xmm1
addsd %xmm1, %xmm0
callq 0x10a0
movaps %xmm0, %xmm2
movsd 0x18(%rsp), %xmm0
movsd 0x70(%rsp), %xmm1
movsd 0x26a2(%rip), %xmm3     # 0x19428
divsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rax
movsd %xmm0, (%rax)
movsd 0x267a(%rip), %xmm0     # 0x19438
mulsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x38(%rsp), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x31fa(%rip), %xmm0     # 0x19fd8
callq 0x10b0
movaps %xmm0, %xmm2
movsd 0x20(%rsp), %xmm0
movsd 0x2644(%rip), %xmm1     # 0x19438
mulsd %xmm2, %xmm1
movsd 0x2628(%rip), %xmm2     # 0x19428
divsd %xmm2, %xmm1
subsd %xmm1, %xmm0
callq 0x10a0
movaps %xmm0, %xmm2
movsd 0x28(%rsp), %xmm0
movsd 0x70(%rsp), %xmm1
movsd 0x2604(%rip), %xmm3     # 0x19428
divsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rax
movsd %xmm0, 0x8(%rax)
movsd 0x25db(%rip), %xmm0     # 0x19438
mulsd 0x58(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x38(%rsp), %xmm0
callq 0x10a0
movaps %xmm0, %xmm2
movsd 0x30(%rsp), %xmm0
movsd 0x70(%rsp), %xmm1
movsd 0x259d(%rip), %xmm3     # 0x19428
divsd %xmm3, %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq 0x78(%rsp), %rax
movq 0x8(%rax), %rax
movsd %xmm0, 0x10(%rax)
addq $0x88, %rsp
retq
nopw %cs:(%rax,%rax)
nop