static double radius(Vector3 mag, Vector3 offsets, Vector3 diagonals, Vector3 offdiagonals)
{
//'''return radius give data point and offsets'''
Vector3 mag2 = mag + offsets;
var rot = new Matrix3(new Vector3(diagonals.x, offdiagonals.x, offdiagonals.y),
new Vector3(offdiagonals.x, diagonals.y, offdiagonals.z),
new Vector3(offdiagonals.y, offdiagonals.z, diagonals.z));
mag2 = rot*mag2;
return mag2.length();
}