// File: /workspace/github_c_makefile_star2_O0/YunyiQian[P]multitel3/radiats.c
// Function: nmtensor
void nmtensor(float iso, float clvd, float str, float dip, float rake, float tensor[3][3]) {
  float cstr,cdip,crak,sstr,sdip,srak,sstr2,cstr2,sdip2,cdip2,dum,dev;
  float n[3], v[3], N[3];
  dum = 0.8164966*iso;
  tensor[0][0] = tensor[1][1] = tensor[2][2] = dum;
  tensor[0][1] = tensor[0][2] = tensor[1][2] = 0.;
  dev = 1.-iso*iso;
  if (dev>0.) {
     dev = sqrt(dev);
     dum = dev*sqrt(1.-clvd*clvd);
     str  *= DEG2RAD; dip  *= DEG2RAD; rake *= DEG2RAD;
     sstr=sin(str);cstr=cos(str);sstr2=2*sstr*cstr;cstr2=1-2*sstr*sstr;
     sdip=sin(dip);cdip=cos(dip);sdip2=2*sdip*cdip;cdip2=1-2*sdip*sdip;
     crak=cos(rake);srak=sin(rake);
     tensor[0][0] += -dum*(sdip*crak*sstr2+sdip2*srak*sstr*sstr);
     tensor[0][1] +=  dum*(sdip*crak*cstr2+0.5*sdip2*srak*sstr2);
     tensor[0][2] += -dum*(cdip*crak*cstr+cdip2*srak*sstr);
     tensor[1][1] +=  dum*(sdip*crak*sstr2-sdip2*srak*cstr*cstr);
     tensor[1][2] +=  dum*(cdip2*srak*cstr-cdip*crak*sstr);
     tensor[2][2] +=  dum*sdip2*srak;
     if (clvd>0.0001 || clvd<-0.0001) {
        n[0] = -sdip*sstr; n[1] = sdip*cstr; n[2] = -cdip;
        v[0] =  crak*cstr+srak*cdip*sstr; v[1] = crak*sstr-srak*cdip*cstr; v[2] = -srak*sdip;
        N[0] = n[1]*v[2]-n[2]*v[1]; N[1] = n[2]*v[0]-n[0]*v[2]; N[2] = n[0]*v[1]-n[1]*v[0];
        //fprintf(stderr," n= %f %f %f  v = %f %f %f\n",n[0],n[1],n[2],v[0],v[1],v[2]);
        dum = dev*clvd/sqrt(3.);
        tensor[0][0] += dum*(2*N[0]*N[0]-n[0]*n[0]-v[0]*v[0]);
        tensor[0][1] += dum*(2*N[0]*N[1]-n[0]*n[1]-v[0]*v[1]);
        tensor[0][2] += dum*(2*N[0]*N[2]-n[0]*n[2]-v[0]*v[2]);
        tensor[1][1] += dum*(2*N[1]*N[1]-n[1]*n[1]-v[1]*v[1]);
        tensor[1][2] += dum*(2*N[1]*N[2]-n[1]*n[2]-v[1]*v[2]);
        tensor[2][2] += dum*(2*N[2]*N[2]-n[2]*n[2]-v[2]*v[2]);
     }
  }
  tensor[1][0] = tensor[0][1];
  tensor[2][0] = tensor[0][2];
  tensor[2][1] = tensor[1][2];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movss %xmm0, -0x4(%rbp)
movss %xmm1, -0x8(%rbp)
movss %xmm2, -0xc(%rbp)
movss %xmm3, -0x10(%rbp)
movss %xmm4, -0x14(%rbp)
movq %rdi, -0x20(%rbp)
movss -0x4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2ce7(%rip), %xmm0     # 0x8c50
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x4c(%rbp)
movss -0x4c(%rbp), %xmm0
movq -0x20(%rbp), %rax
movss %xmm0, 0x20(%rax)
movq -0x20(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x20(%rbp), %rax
movss %xmm0, (%rax)
movq -0x20(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x14(%rax)
movq -0x20(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x8(%rax)
movq -0x20(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x4(%rax)
movss -0x4(%rbp), %xmm0
mulss -0x4(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x2079(%rip), %xmm0     # 0x8048
subsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x50(%rbp)
movss -0x50(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x67c7
movss -0x50(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x11f0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x50(%rbp)
movss -0x50(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x80(%rbp)
movss -0x8(%rbp), %xmm0
mulss -0x8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x201b(%rip), %xmm0     # 0x8048
subsd %xmm1, %xmm0
callq 0x11f0
movaps %xmm0, %xmm1
movsd -0x80(%rbp), %xmm0
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x4c(%rbp)
movss -0xc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2bdc(%rip), %xmm1     # 0x8c38
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc(%rbp)
movss -0x10(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2bbe(%rip), %xmm1     # 0x8c38
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x10(%rbp)
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x2ba0(%rip), %xmm1     # 0x8c38
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x14(%rbp)
movss -0xc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1190
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x30(%rbp)
movss -0xc(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x10d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x24(%rbp)
movss 0x1f75(%rip), %xmm0     # 0x8050
mulss -0x30(%rbp), %xmm0
mulss -0x24(%rbp), %xmm0
movss %xmm0, -0x3c(%rbp)
movss 0x1f5e(%rip), %xmm0     # 0x8050
mulss -0x30(%rbp), %xmm0
movss -0x30(%rbp), %xmm1
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm1, %xmm0
movss 0x28c3(%rip), %xmm1     # 0x89d8
addss %xmm1, %xmm0
movss %xmm0, -0x40(%rbp)
movss -0x10(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1190
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x34(%rbp)
movss -0x10(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x10d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x28(%rbp)
movss 0x1efc(%rip), %xmm0     # 0x8050
mulss -0x34(%rbp), %xmm0
mulss -0x28(%rbp), %xmm0
movss %xmm0, -0x44(%rbp)
movss 0x1ee5(%rip), %xmm0     # 0x8050
mulss -0x34(%rbp), %xmm0
movss -0x34(%rbp), %xmm1
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss %xmm1, %xmm0
movss 0x284a(%rip), %xmm1     # 0x89d8
addss %xmm1, %xmm0
movss %xmm0, -0x48(%rbp)
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x10d0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x2c(%rbp)
movss -0x14(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
callq 0x1190
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x38(%rbp)
movss -0x4c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss -0x34(%rbp), %xmm2
mulss -0x2c(%rbp), %xmm2
movss -0x3c(%rbp), %xmm3
movss -0x44(%rbp), %xmm1
mulss -0x38(%rbp), %xmm1
mulss -0x30(%rbp), %xmm1
mulss -0x30(%rbp), %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss (%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss -0x4c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x34(%rbp), %xmm1
mulss -0x2c(%rbp), %xmm1
mulss -0x40(%rbp), %xmm1
cvtss2sd %xmm1, %xmm1
movss -0x44(%rbp), %xmm2
cvtss2sd %xmm2, %xmm3
movsd 0x2785(%rip), %xmm2     # 0x89c8
mulsd %xmm3, %xmm2
movss -0x38(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm2
movss -0x3c(%rbp), %xmm3
cvtss2sd %xmm3, %xmm3
mulsd %xmm3, %xmm2
addsd %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x4(%rax), %xmm1
cvtss2sd %xmm1, %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x4(%rax)
movss -0x4c(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss -0x28(%rbp), %xmm2
mulss -0x2c(%rbp), %xmm2
movss -0x24(%rbp), %xmm3
movss -0x48(%rbp), %xmm1
mulss -0x38(%rbp), %xmm1
mulss -0x30(%rbp), %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x8(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x8(%rax)
movss -0x4c(%rbp), %xmm0
movss -0x34(%rbp), %xmm2
mulss -0x2c(%rbp), %xmm2
movss -0x3c(%rbp), %xmm3
movss -0x44(%rbp), %xmm1
mulss -0x38(%rbp), %xmm1
mulss -0x24(%rbp), %xmm1
mulss -0x24(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x10(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x10(%rax)
movss -0x4c(%rbp), %xmm0
movss -0x48(%rbp), %xmm2
mulss -0x38(%rbp), %xmm2
movss -0x24(%rbp), %xmm3
movss -0x28(%rbp), %xmm1
mulss -0x2c(%rbp), %xmm1
mulss -0x30(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x14(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x14(%rax)
movss -0x4c(%rbp), %xmm0
mulss -0x44(%rbp), %xmm0
movss -0x38(%rbp), %xmm2
movq -0x20(%rbp), %rax
movss 0x20(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x20(%rax)
movss -0x8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x28b0(%rip), %xmm1     # 0x8c58
ucomisd %xmm1, %xmm0
ja 0x63c9
movss -0x8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x28a1(%rip), %xmm0     # 0x8c60
ucomisd %xmm1, %xmm0
jbe 0x67c5
movss -0x34(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss -0x30(%rbp), %xmm0
movss %xmm0, -0x5c(%rbp)
movss -0x34(%rbp), %xmm0
mulss -0x24(%rbp), %xmm0
movss %xmm0, -0x58(%rbp)
movss -0x28(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movss %xmm0, -0x54(%rbp)
movss -0x2c(%rbp), %xmm0
movss -0x24(%rbp), %xmm2
movss -0x38(%rbp), %xmm1
mulss -0x28(%rbp), %xmm1
mulss -0x30(%rbp), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x68(%rbp)
movss -0x2c(%rbp), %xmm0
movss -0x30(%rbp), %xmm2
movss -0x38(%rbp), %xmm1
mulss -0x28(%rbp), %xmm1
mulss -0x24(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x64(%rbp)
movss -0x38(%rbp), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
mulss -0x34(%rbp), %xmm0
movss %xmm0, -0x60(%rbp)
movss -0x58(%rbp), %xmm0
movss -0x60(%rbp), %xmm2
movss -0x54(%rbp), %xmm1
mulss -0x64(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x74(%rbp)
movss -0x54(%rbp), %xmm0
movss -0x68(%rbp), %xmm2
movss -0x5c(%rbp), %xmm1
mulss -0x60(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x70(%rbp)
movss -0x5c(%rbp), %xmm0
movss -0x64(%rbp), %xmm2
movss -0x58(%rbp), %xmm1
mulss -0x68(%rbp), %xmm1
movd %xmm1, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, -0x6c(%rbp)
movss -0x50(%rbp), %xmm0
mulss -0x8(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x88(%rbp)
movsd 0x24a8(%rip), %xmm0     # 0x89d0
callq 0x11f0
movaps %xmm0, %xmm1
movsd -0x88(%rbp), %xmm0
divsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x4c(%rbp)
movss -0x4c(%rbp), %xmm0
movss 0x1afe(%rip), %xmm1     # 0x8050
mulss -0x74(%rbp), %xmm1
movss -0x74(%rbp), %xmm3
movss -0x5c(%rbp), %xmm2
mulss -0x5c(%rbp), %xmm2
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movss -0x68(%rbp), %xmm2
movss -0x68(%rbp), %xmm3
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss (%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rax)
movss -0x4c(%rbp), %xmm0
movss 0x1a95(%rip), %xmm1     # 0x8050
mulss -0x74(%rbp), %xmm1
movss -0x70(%rbp), %xmm3
movss -0x5c(%rbp), %xmm2
mulss -0x58(%rbp), %xmm2
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movss -0x68(%rbp), %xmm2
movss -0x64(%rbp), %xmm3
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x4(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x4(%rax)
movss -0x4c(%rbp), %xmm0
movss 0x1a2a(%rip), %xmm1     # 0x8050
mulss -0x74(%rbp), %xmm1
movss -0x6c(%rbp), %xmm3
movss -0x5c(%rbp), %xmm2
mulss -0x54(%rbp), %xmm2
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movss -0x68(%rbp), %xmm2
movss -0x60(%rbp), %xmm3
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x8(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x8(%rax)
movss -0x4c(%rbp), %xmm0
movss 0x19bf(%rip), %xmm1     # 0x8050
mulss -0x70(%rbp), %xmm1
movss -0x70(%rbp), %xmm3
movss -0x58(%rbp), %xmm2
mulss -0x58(%rbp), %xmm2
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movss -0x64(%rbp), %xmm2
movss -0x64(%rbp), %xmm3
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x10(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x10(%rax)
movss -0x4c(%rbp), %xmm0
movss 0x1954(%rip), %xmm1     # 0x8050
mulss -0x70(%rbp), %xmm1
movss -0x6c(%rbp), %xmm3
movss -0x58(%rbp), %xmm2
mulss -0x54(%rbp), %xmm2
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movss -0x64(%rbp), %xmm2
movss -0x60(%rbp), %xmm3
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x14(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x14(%rax)
movss -0x4c(%rbp), %xmm0
movss 0x18e9(%rip), %xmm1     # 0x8050
mulss -0x6c(%rbp), %xmm1
movss -0x6c(%rbp), %xmm3
movss -0x54(%rbp), %xmm2
mulss -0x54(%rbp), %xmm2
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm1
addss %xmm2, %xmm1
movss -0x60(%rbp), %xmm2
movss -0x60(%rbp), %xmm3
movd %xmm2, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm2
mulss %xmm3, %xmm2
addss %xmm1, %xmm2
movq -0x20(%rbp), %rax
movss 0x20(%rax), %xmm1
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x20(%rax)
jmp 0x67c7
movq -0x20(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x20(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x20(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x20(%rbp), %rax
movss %xmm0, 0x18(%rax)
movq -0x20(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x20(%rbp), %rax
movss %xmm0, 0x1c(%rax)
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)