function symmetry_dir ,Pt
tr = (Pt(0,0) + Pt(1,1) + Pt(2,2))/3.
Pxx = Pt(0,0) - tr
Pyy = Pt(1,1) - tr
Pzz = Pt(2,2) - tr
Pxy = Pt(0,1)
Pxz = Pt(0,2)
Pyz = Pt(1,2)
a = (Pxx*(Pxx-Pyy) + Pyy*(Pyy-Pzz) + Pzz*(Pzz-Pxx))/9. + (Pxy*Pxy + Pyz*Pyz + Pxz*Pxz)/3.
b = Pxx*Pyz*Pyz + Pyy*Pxz*Pxz + Pzz*Pxy*Pxy - Pxx*Pyy*Pzz - 2.*Pxy*Pyz*Pxz
c = 2.*sqrt(a)
if b lt 0. then c = -c
Pxx = Pxx + c
Pyy = Pyy + c
Pzz = Pzz + c
if(abs(Pxx) lt abs(Pyy)) then begin
if(abs(Pxx) lt abs(Pzz)) then i = 0 else i = 2
endif else begin
if(abs(Pyy) lt abs(Pzz)) then i = 1 else i = 2
endelse
sym = dblarr(3)
case i of
0 : begin
sym(0) = Pyy*Pzz - Pyz*Pyz
sym(1) = Pxz*Pyz - Pxy*Pzz
sym(2) = Pxy*Pyz - Pxz*Pyy
end
1 : begin
sym(1) = Pzz*Pxx - Pxz*Pxz
sym(2) = Pxy*Pxz - Pyz*Pxx
sym(0) = Pyz*Pxz - Pxy*Pzz
end
2 : begin
sym(2) = Pxx*Pyy - Pxy*Pxy
sym(0) = Pyz*Pxy - Pxz*Pyy
sym(1) = Pxz*Pxy - Pyz*Pxx
end
endcase
tr = sqrt(total(sym*sym,/double))
if sym(0) lt 0 then tr = -tr
sym = sym/tr
return,sym
end