private void generateAllOperators(HallInfo h) {
		if (h == null) {
			h = hallInfo;
			if (operationCount > 0)
				return;
			operations = new SymmetryOperation[4];
			operationCount = 0;
			if (hallInfo == null || hallInfo.nRotations == 0)
				h = hallInfo = new HallInfo(hallSymbol);
			setLattice(hallInfo.latticeCode, hallInfo.isCentrosymmetric);
			addOperation(null);
			addSymmetry("x,y,z");
		}
		Matrix4f mat1 = new Matrix4f();
		Matrix4f operation = new Matrix4f();
		Matrix4f[] newOps = new Matrix4f[7];
		for (int i = 0; i < 7; i++)
			newOps[i] = new Matrix4f();
		newOps[0].setIdentity();
		for (int i = 0; i < h.nRotations; i++) {
			mat1.set(h.rotationTerms[i].seitzMatrix12ths);
			int nRot = h.rotationTerms[i].order;
			int nOps = operationCount;
			for (int j = 1; j <= nRot; j++) {
				newOps[j].mul(mat1, newOps[0]);
				newOps[0].set(newOps[j]);
				for (int k = 0; k < nOps; k++) {
					operation.mul(newOps[j], operations[k]);
					addSymmetry(SymmetryOperation.getXYZFromMatrix(operation, true), operation);
				}
			}
		}
	}