// File: /workspace/github_c_makefile_star2_O3/markpeerdeman[P]mbemm/src/emath/gauss.c
// Function: element_int
void element_int(element elist)
{ double cx,cy,cz;
  double t1, t2, t3;
  double res1, res2, res3;
  int i;
  element e;

  fprintf(stderr,"entering element_int()\n");
  e= (element)element_dll(elist,START,0);
  while (e!=(element)NULL)
  {
  res1=0.0; res2=0.0; res3=0.0;
  for (i=1; i<=7; i++)
  { cx = gi1[i]*e->p1x + gi2[i]*e->p2x + gi3[i]*e->p3x;
	cy = gi1[i]*e->p1y + gi2[i]*e->p2y + gi3[i]*e->p3y;
	cz = gi1[i]*e->p1z + gi2[i]*e->p2z + gi3[i]*e->p3z;
	t1 = traction1(cx, cy, cz, e->nx, e->ny, e->nz)*wt[i];
	t2 = traction2(cx, cy, cz, e->nx, e->ny, e->nz)*wt[i];
	t3 = traction3(cx, cy, cz, e->nx, e->ny, e->nz)*wt[i];
	res1+=t1; res2+=t2; res3+=t3;
  }
  res1=res1*e->area;
  res2=res2*e->area;
  res3=res3*e->area;
  printf("Force on element %4d (Analytical) is % 8.8E %8.8E %8.8E\n",e->label,res1, res2, res3);
  e=e->NEXT;
  } /* while */
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %r14
movq 0x122a2(%rip), %rax     # 0x14ff8
movq (%rax), %rcx
leaq 0xc4f0(%rip), %rdi      # 0xf250
pushq $0x17
popq %rsi
pushq $0x1
popq %rdx
callq 0x11a0
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xb570
testq %rax, %rax
je 0x2f73
movq %rax, %r14
leaq 0x12476(%rip), %r12     # 0x15200
leaq 0x124af(%rip), %r13     # 0x15240
leaq 0x124e8(%rip), %rbp     # 0x15280
leaq 0x12521(%rip), %rbx     # 0x152c0
leaq 0xc4c2(%rip), %r15      # 0xf268
movsd 0x28(%r14), %xmm0
movsd %xmm0, 0x30(%rsp)
movsd 0x30(%r14), %xmm0
movsd %xmm0, 0x28(%rsp)
movsd 0x40(%r14), %xmm0
movsd %xmm0, 0x20(%rsp)
movsd 0x58(%r14), %xmm0
movsd %xmm0, 0x18(%rsp)
movsd 0x48(%r14), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x60(%r14), %xmm0
movsd %xmm0, 0x8(%rsp)
movsd 0x38(%r14), %xmm8
movsd 0x50(%r14), %xmm9
movsd 0x68(%r14), %xmm10
movsd 0xa0(%r14), %xmm11
movsd 0xa8(%r14), %xmm12
movsd 0xb0(%r14), %xmm0
movapd %xmm0, %xmm13
movsd 0xb640(%rip), %xmm1     # 0xe468
mulsd %xmm1, %xmm13
movapd 0xb1eb(%rip), %xmm2     # 0xe020
xorpd %xmm2, %xmm0
movapd %xmm11, %xmm14
mulsd %xmm1, %xmm14
unpcklpd %xmm0, %xmm14           # xmm14 = xmm14[0],xmm0[0]
movapd %xmm12, %xmm15
xorpd %xmm2, %xmm15
xorpd %xmm2, %xmm2
xorpd %xmm0, %xmm0
pushq $0x1
popq %rax
movsd (%r12,%rax,8), %xmm7
movsd (%r13,%rax,8), %xmm6
movapd %xmm6, %xmm1
mulsd 0x20(%rsp), %xmm1
movapd %xmm7, %xmm5
mulsd 0x30(%rsp), %xmm5
addsd %xmm1, %xmm5
movsd (%rbp,%rax,8), %xmm3
movapd %xmm3, %xmm4
mulsd 0x18(%rsp), %xmm4
addsd %xmm5, %xmm4
movapd %xmm6, %xmm1
mulsd 0x10(%rsp), %xmm1
movapd %xmm7, %xmm5
mulsd 0x28(%rsp), %xmm5
addsd %xmm1, %xmm5
movapd %xmm3, %xmm1
mulsd 0x8(%rsp), %xmm1
addsd %xmm5, %xmm1
mulsd %xmm9, %xmm6
mulsd %xmm8, %xmm7
addsd %xmm6, %xmm7
mulsd %xmm10, %xmm3
addsd %xmm7, %xmm3
movapd %xmm11, %xmm5
mulsd %xmm1, %xmm5
mulsd %xmm12, %xmm1
mulsd %xmm11, %xmm4
addsd %xmm1, %xmm4
movapd %xmm13, %xmm6
mulsd %xmm3, %xmm6
addsd %xmm4, %xmm6
movsd (%rbx,%rax,8), %xmm4
mulsd %xmm4, %xmm6
addsd %xmm6, %xmm0
addsd %xmm5, %xmm1
movapd %xmm3, %xmm5
mulsd %xmm15, %xmm5
unpcklpd %xmm1, %xmm5            # xmm5 = xmm5[0],xmm1[0]
unpcklpd %xmm3, %xmm3            # xmm3 = xmm3[0,0]
mulpd %xmm14, %xmm3
addpd %xmm5, %xmm3
unpcklpd %xmm4, %xmm4            # xmm4 = xmm4[0,0]
mulpd %xmm3, %xmm4
addpd %xmm4, %xmm2
incq %rax
cmpq $0x8, %rax
jne 0x2e5d
movsd 0xb8(%r14), %xmm3
mulsd %xmm3, %xmm0
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
mulsd %xmm3, %xmm1
mulsd %xmm3, %xmm2
movl 0x14(%r14), %esi
movq %r15, %rdi
movb $0x3, %al
callq 0x1090
movq 0x8(%r14), %r14
testq %r14, %r14
jne 0x2da6
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq