public SymmTridiagMatrix getStoredScaledWeightMatrix(double precision) {
   SymmTridiagMatrix a = storedWeightMatrix.copy();
   for (int i = 0; i < a.numRows() - 1; i++) {
     a.set(i, i, a.get(i, i) * precision);
     a.set(i + 1, i, a.get(i + 1, i) * precision);
   }
   a.set(fieldLength - 1, fieldLength - 1, a.get(fieldLength - 1, fieldLength - 1) * precision);
   return a;
 }
  public SymmTridiagMatrix getStoredScaledWeightMatrix(double precision, double lambda) {
    if (lambda == 1) return getStoredScaledWeightMatrix(precision);

    SymmTridiagMatrix a = storedWeightMatrix.copy();
    for (int i = 0; i < a.numRows() - 1; i++) {
      a.set(i, i, precision * (1 - lambda + lambda * a.get(i, i)));
      a.set(i + 1, i, a.get(i + 1, i) * precision * lambda);
    }

    a.set(
        fieldLength - 1,
        fieldLength - 1,
        precision * (1 - lambda + lambda * a.get(fieldLength - 1, fieldLength - 1)));
    return a;
  }