public LinearModelWithSweep(ArrayList<ModelEffect> effects, double[] data) { int numberOfEffects = effects.size(); this.data = data; xtxmatrices = new DoubleMatrix2D[numberOfEffects][numberOfEffects]; xtymatrices = new DoubleMatrix2D[numberOfEffects][1]; for (int i = 0; i < numberOfEffects; i++) { ModelEffect me = effects.get(i); xtxmatrices[i][i] = me.getXTX(); xtymatrices[i][0] = DoubleFactory2D.dense.make(me.getXTy(data).toArray(), me.getNumberOfLevels()); for (int j = 0; j < i; j++) { xtxmatrices[i][j] = ModelEffect.getX1TX2(me, effects.get(j)); xtxmatrices[j][i] = xtxmatrices[i][j].viewDice(); } } sweep = new Sweep(); initialSweep(); }