private static void testRandom(
boolean compressed,
double errorAngle, double errorValue, double errorTensor)
{
int n1 = 19, n2 = 20, n3 = 21;
EigenTensors3 et = new EigenTensors3(n1,n2,n3,compressed);
for (int i3=0; i3<n3; ++i3) {
for (int i2=0; i2<n2; ++i2) {
for (int i1=0; i1<n1; ++i1) {
float[] a = makeRandomEigenvalues();
float[] u = makeRandomEigenvector();
float[] w = makeOrthogonalVector(u);
et.setEigenvalues(i1,i2,i3,a);
et.setEigenvectorU(i1,i2,i3,u);
et.setEigenvectorW(i1,i2,i3,w);
float[] c;
c = et.getEigenvectorU(i1,i2,i3); checkEigenvectors(u,c,errorAngle);
c = et.getEigenvectorW(i1,i2,i3); checkEigenvectors(w,c,errorAngle);
c = et.getEigenvalues(i1,i2,i3); checkEigenvalues(a,c,errorValue);
float[] t1 = et.getTensor(i1,i2,i3);
et.setTensor(i1,i2,i3,t1);
float[] t2 = et.getTensor(i1,i2,i3);
checkTensors(t1,t2,errorTensor);
}
}
}
}