class NonLinearLeastSquareWithPenalty {

  public LeastSquareWithPenaltyResults solve(final DoubleMatrix1D observedValues, final Function1D<DoubleMatrix1D, DoubleMatrix1D> func, final DoubleMatrix1D startPos, final DoubleMatrix2D penalty) {
    final int n = observedValues.getNumberOfElements();
    final VectorFieldFirstOrderDifferentiator jac = new VectorFieldFirstOrderDifferentiator();
    return solve(observedValues, new DoubleMatrix1D(n, 1.0), func, jac.differentiate(func), startPos, penalty);
  }

  public  NonLinearLeastSquareWithPenalty();
  public  NonLinearLeastSquareWithPenalty(final Decomposition<?> decomposition);
  public  NonLinearLeastSquareWithPenalty(final double eps);
  public  NonLinearLeastSquareWithPenalty(final Decomposition<?> decomposition, final double eps);
  public  NonLinearLeastSquareWithPenalty(final Decomposition<?> decomposition, final MatrixAlgebra algebra, final double eps);

}