// File: /workspace/github_c_makefile_star2_O1/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 %rbx
subq $0x70, %rsp
movq %rdi, %rbx
movaps %xmm0, %xmm5
cvtss2sd %xmm0, %xmm0
mulsd 0x2472(%rip), %xmm0     # 0x6e90
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x20(%rdi)
movss %xmm0, 0x10(%rdi)
movss %xmm0, (%rdi)
movl $0x0, 0x14(%rdi)
movq $0x0, 0x4(%rdi)
mulss %xmm5, %xmm5
movss 0x1f95(%rip), %xmm0     # 0x69e0
subss %xmm5, %xmm0
xorps %xmm5, %xmm5
ucomiss %xmm5, %xmm0
jbe 0x4f7d
movaps %xmm1, 0x50(%rsp)
movss %xmm4, 0x10(%rsp)
movss %xmm3, 0x20(%rsp)
movss %xmm2, (%rsp)
jb 0x4a79
sqrtss %xmm0, %xmm0
jmp 0x4a83
callq 0x1140
movaps 0x50(%rsp), %xmm1
movss %xmm0, 0x34(%rsp)
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
movaps %xmm1, %xmm0
mulss %xmm1, %xmm0
xorps %xmm1, %xmm1
cvtss2sd %xmm0, %xmm1
movsd 0x15d2(%rip), %xmm0     # 0x6078
subsd %xmm1, %xmm0
xorpd %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0x4aba
sqrtsd %xmm0, %xmm0
jmp 0x4acb
movsd %xmm2, 0x8(%rsp)
callq 0x1220
movsd 0x8(%rsp), %xmm2
movss 0x10(%rsp), %xmm3
movss (%rsp), %xmm1
mulsd %xmm2, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x44(%rsp)
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movsd 0x238d(%rip), %xmm1     # 0x6e80
mulsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
xorps %xmm2, %xmm2
cvtss2sd 0x20(%rsp), %xmm2
mulsd %xmm1, %xmm2
cvtsd2ss %xmm2, %xmm2
movss %xmm2, 0x20(%rsp)
xorps %xmm2, %xmm2
cvtss2sd %xmm3, %xmm2
mulsd %xmm1, %xmm2
xorps %xmm1, %xmm1
cvtsd2ss %xmm2, %xmm1
movss %xmm1, 0x8(%rsp)
cvtss2sd %xmm0, %xmm0
movsd %xmm0, 0x10(%rsp)
callq 0x11e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, (%rsp)
movsd 0x10(%rsp), %xmm0
callq 0x10e0
xorps %xmm3, %xmm3
cvtsd2ss %xmm0, %xmm3
movss %xmm3, 0x38(%rsp)
movss (%rsp), %xmm2
movaps %xmm2, %xmm0
addss %xmm2, %xmm0
movaps %xmm0, %xmm1
mulss %xmm3, %xmm1
movss %xmm1, 0x40(%rsp)
mulss %xmm2, %xmm0
movss 0x1e61(%rip), %xmm1     # 0x69e0
movss %xmm1, 0x4(%rsp)
subss %xmm0, %xmm1
movss %xmm1, 0x3c(%rsp)
xorps %xmm0, %xmm0
cvtss2sd 0x20(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
callq 0x11e0
cvtsd2ss %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movsd 0x10(%rsp), %xmm0
callq 0x10e0
xorps %xmm1, %xmm1
cvtsd2ss %xmm0, %xmm1
movaps %xmm1, 0x60(%rsp)
movaps 0x20(%rsp), %xmm2
movaps %xmm2, %xmm0
addss %xmm2, %xmm0
movaps %xmm0, %xmm3
mulss %xmm1, %xmm3
movaps %xmm3, 0x10(%rsp)
mulss %xmm2, %xmm0
movss 0x4(%rsp), %xmm1
subss %xmm0, %xmm1
movss %xmm1, 0x4(%rsp)
xorps %xmm0, %xmm0
cvtss2sd 0x8(%rsp), %xmm0
movsd %xmm0, 0x48(%rsp)
callq 0x10e0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x8(%rsp)
movsd 0x48(%rsp), %xmm0
callq 0x11e0
movss (%rsp), %xmm15
movss 0x38(%rsp), %xmm12
movaps 0x10(%rsp), %xmm10
movss 0x4(%rsp), %xmm13
cvtsd2ss %xmm0, %xmm0
movaps 0x20(%rsp), %xmm1
movss 0x8(%rsp), %xmm11
mulss %xmm11, %xmm1
movaps %xmm10, %xmm4
mulss %xmm0, %xmm4
movaps %xmm4, %xmm2
mulss %xmm15, %xmm2
mulss %xmm15, %xmm2
movss 0x3c(%rsp), %xmm7
mulss %xmm1, %xmm7
movss 0x40(%rsp), %xmm8
mulss %xmm8, %xmm1
addss %xmm1, %xmm2
movss 0x44(%rsp), %xmm14
mulss %xmm14, %xmm2
movss (%rbx), %xmm3
subss %xmm2, %xmm3
movss 0x8(%rbx), %xmm2
movss %xmm3, (%rbx)
cvtss2sd %xmm10, %xmm5
mulsd 0x1d60(%rip), %xmm5     # 0x6a00
cvtss2sd %xmm0, %xmm6
mulsd %xmm5, %xmm6
xorps %xmm5, %xmm5
cvtss2sd %xmm14, %xmm5
cvtss2sd %xmm7, %xmm7
cvtss2sd %xmm8, %xmm8
mulsd %xmm6, %xmm8
addsd %xmm7, %xmm8
mulsd %xmm5, %xmm8
xorps %xmm5, %xmm5
cvtss2sd 0x4(%rbx), %xmm5
addsd %xmm8, %xmm5
movaps 0x60(%rsp), %xmm6
movaps %xmm6, %xmm9
mulss %xmm11, %xmm6
mulss %xmm0, %xmm13
movaps %xmm13, %xmm7
mulss %xmm15, %xmm7
movaps %xmm15, %xmm8
mulss %xmm6, %xmm8
mulss %xmm12, %xmm6
addss %xmm7, %xmm6
mulss %xmm14, %xmm6
subss %xmm6, %xmm2
mulss %xmm12, %xmm4
mulss %xmm12, %xmm4
subss %xmm4, %xmm1
mulss %xmm12, %xmm13
subss %xmm8, %xmm13
movaps 0x12f5(%rip), %xmm4     # 0x6020
movaps 0x50(%rsp), %xmm11
andps %xmm11, %xmm4
cvtss2sd %xmm4, %xmm4
ucomisd 0x2157(%rip), %xmm4     # 0x6e98
mulss %xmm14, %xmm1
mulss %xmm14, %xmm13
mulss %xmm14, %xmm10
xorps %xmm4, %xmm4
cvtsd2ss %xmm5, %xmm4
movss %xmm4, 0x4(%rbx)
movss %xmm2, 0x8(%rbx)
addss 0x10(%rbx), %xmm1
movss %xmm1, 0x10(%rbx)
addss 0x14(%rbx), %xmm13
movss %xmm13, 0x14(%rbx)
mulss %xmm0, %xmm10
addss 0x20(%rbx), %xmm10
movaps %xmm10, 0x10(%rsp)
movss %xmm10, 0x20(%rbx)
jbe 0x4f7d
movss %xmm4, 0x4(%rsp)
movaps %xmm9, %xmm4
movaps %xmm9, %xmm5
mulss %xmm0, %xmm5
movaps %xmm5, %xmm6
mulss %xmm15, %xmm6
movss 0x8(%rsp), %xmm14
movaps %xmm14, %xmm8
mulss %xmm12, %xmm8
addss %xmm6, %xmm8
movaps 0x1246(%rip), %xmm7     # 0x6010
movaps 0x20(%rsp), %xmm10
movaps %xmm10, %xmm9
xorps %xmm7, %xmm9
mulss %xmm15, %xmm9
mulss %xmm15, %xmm14
mulss %xmm12, %xmm5
subss %xmm5, %xmm14
movaps %xmm4, %xmm6
xorps %xmm7, %xmm6
xorps %xmm7, %xmm0
movaps %xmm12, %xmm5
mulss %xmm10, %xmm5
mulss %xmm10, %xmm0
movaps %xmm14, %xmm7
mulss %xmm4, %xmm7
movaps %xmm5, %xmm12
mulss %xmm0, %xmm12
addss %xmm7, %xmm12
movaps %xmm0, %xmm7
mulss %xmm9, %xmm7
mulss %xmm8, %xmm6
subss %xmm7, %xmm6
movaps %xmm8, %xmm10
mulss %xmm5, %xmm10
movaps %xmm9, %xmm7
mulss %xmm14, %xmm7
subss %xmm10, %xmm7
movss 0x34(%rsp), %xmm15
mulss %xmm11, %xmm15
movaps %xmm12, %xmm11
addss %xmm12, %xmm11
movaps %xmm9, %xmm10
mulss %xmm9, %xmm10
mulss %xmm11, %xmm12
subss %xmm10, %xmm12
movaps %xmm8, %xmm10
mulss %xmm8, %xmm10
subss %xmm10, %xmm12
xorps %xmm10, %xmm10
cvtss2sd %xmm15, %xmm10
divsd 0x2017(%rip), %xmm10    # 0x6ea0
cvtsd2ss %xmm10, %xmm10
mulss %xmm10, %xmm12
addss %xmm3, %xmm12
movss %xmm12, (%rbx)
movaps %xmm5, %xmm3
mulss %xmm9, %xmm3
movaps %xmm11, %xmm12
mulss %xmm6, %xmm12
subss %xmm3, %xmm12
movaps %xmm8, %xmm3
mulss %xmm14, %xmm3
subss %xmm3, %xmm12
mulss %xmm10, %xmm12
addss 0x4(%rsp), %xmm12
movss %xmm12, 0x4(%rbx)
mulss %xmm4, %xmm9
mulss %xmm7, %xmm11
addss %xmm9, %xmm11
mulss %xmm0, %xmm8
subss %xmm8, %xmm11
mulss %xmm10, %xmm11
addss %xmm2, %xmm11
movss %xmm11, 0x8(%rbx)
movaps %xmm6, %xmm2
addss %xmm6, %xmm2
movaps %xmm5, %xmm3
mulss %xmm5, %xmm3
mulss %xmm2, %xmm6
subss %xmm3, %xmm6
movaps %xmm14, %xmm3
mulss %xmm14, %xmm3
subss %xmm3, %xmm6
mulss %xmm10, %xmm6
addss %xmm1, %xmm6
movss %xmm6, 0x10(%rbx)
mulss %xmm4, %xmm5
mulss %xmm7, %xmm2
addss %xmm5, %xmm2
mulss %xmm0, %xmm14
subss %xmm14, %xmm2
mulss %xmm10, %xmm2
addss %xmm13, %xmm2
movss %xmm2, 0x14(%rbx)
movaps %xmm7, %xmm1
addss %xmm7, %xmm1
mulss %xmm7, %xmm1
mulss %xmm4, %xmm4
subss %xmm4, %xmm1
mulss %xmm0, %xmm0
subss %xmm0, %xmm1
mulss %xmm10, %xmm1
addss 0x10(%rsp), %xmm1
movss %xmm1, 0x20(%rbx)
movss 0x4(%rbx), %xmm0
movss 0x8(%rbx), %xmm1
movss %xmm0, 0xc(%rbx)
movss %xmm1, 0x18(%rbx)
movss 0x14(%rbx), %xmm0
movss %xmm0, 0x1c(%rbx)
addq $0x70, %rsp
popq %rbx
retq