// File: /workspace/github_c_makefile_star2_O0/markpeerdeman[P]mbemm/src/emath/singular.c
// Function: make_E
void make_E( const matrix D, const matrix S, const hypermatrix E )
{ /* IN:          matrices D, S, hypermatrix E
   * OUT:         nothing
   * MODIFIES:    hypermatrix E
   * USES:        D, E, normal vector of theElement
   * DESCRIPTION:
   * This function calculates the Ekij hypermatrix.
   */

double scalefactor;  
int k, i, j; /* :counters */

scalefactor = 1.0-2.0*NU;

 for (j=1; j<=3; j++)
 { for (k=1; k<=3; k++)
   { for(i=1; i<=3; i++)
     { H(E,k,i,j) = normal[k] * M(S,i,j) - normal[i] * M(S,k,j);
	   if (j==1)
	   { /* add the delta term to E: */
		  H(E,k,i,j) = H(E,k,i,j) + M(D,k,i);
	   } /* if */
	   H(E,k,i,j) = H(E,k,i,j) * scalefactor;
     } /* for i */
   } /* for k */
 } /* for j */

}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
leaq 0xeb8a(%rip), %rax      # 0x1e3e0
movsd (%rax), %xmm1
addsd %xmm1, %xmm1
movsd 0x97a2(%rip), %xmm0     # 0x19008
subsd %xmm1, %xmm0
movsd %xmm0, -0x20(%rsp)
movl $0x1, -0x2c(%rsp)
cmpl $0x3, -0x2c(%rsp)
jg 0xfaa0
movl $0x1, -0x24(%rsp)
cmpl $0x3, -0x24(%rsp)
jg 0xfa8e
movl $0x1, -0x28(%rsp)
cmpl $0x3, -0x28(%rsp)
jg 0xfa7c
movslq -0x24(%rsp), %rcx
leaq 0xef7b(%rip), %rax      # 0x1e830
movsd (%rax,%rcx,8), %xmm0
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movl -0x28(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x2c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm2
movslq -0x28(%rsp), %rcx
leaq 0xef44(%rip), %rax      # 0x1e830
movsd (%rax,%rcx,8), %xmm1
movq -0x10(%rsp), %rax
movq 0x8(%rax), %rax
movl -0x24(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x2c(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
mulsd (%rax,%rcx,8), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movslq -0x2c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl -0x24(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x28(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
cmpl $0x1, -0x2c(%rsp)
jne 0xfa00
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movslq -0x2c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl -0x24(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x28(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq -0x8(%rsp), %rax
movq 0x8(%rax), %rax
movl -0x24(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x28(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
addsd (%rax,%rcx,8), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movslq -0x2c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl -0x24(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x28(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movslq -0x2c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl -0x24(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x28(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
mulsd -0x20(%rsp), %xmm0
movq -0x18(%rsp), %rax
movq 0x8(%rax), %rax
movslq -0x2c(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rax
movl -0x24(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movl -0x28(%rsp), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl -0x28(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rsp)
jmp 0xf89e
jmp 0xfa7e
movl -0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rsp)
jmp 0xf88b
jmp 0xfa90
movl -0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rsp)
jmp 0xf878
retq
nopw %cs:(%rax,%rax)