Created
March 24, 2025 20:14
-
-
Save trikitrok/eb38c4a2d4168b11d5893eec0f6fc679 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ConjugatedGradient { | |
private final double tolerance; | |
private final int maxIterations; | |
public ConjugatedGradient(double tolerance = 1e-6, int maxIterations = 1000) { | |
this.tolerance = tolerance; | |
this.maxIterations = maxIterations; | |
} | |
public double[] minimize( | |
Function<double[], double[]> gradFn, | |
double[] init | |
) { | |
// minimization code... | |
} | |
// more code... | |
} | |
public class LinearDescent { | |
public double[] min( | |
Function<double[], double[]> gradFn, | |
double[] init, | |
Config config | |
) { | |
// minimization code... | |
} | |
// more code... | |
} | |
/////////////////////////////////// | |
public class ConjugatedGradient { | |
private final double tolerance; | |
private final int maxIterations; | |
public ConjugatedGradient(double tolerance = 1e-6, int maxIterations = 1000) { | |
this.tolerance = tolerance; | |
this.maxIterations = maxIterations; | |
} | |
public double[] minimize( | |
Function<double[], double[]> gradFn, | |
double[] init | |
) { | |
// minimization code... | |
} | |
// more code... | |
} | |
public class LinearDescent { | |
private final double tolerance; | |
private final int maxIterations; | |
private final double learningRate; | |
public LinearDescent(double tolerance = 1e-6, int maxIterations = 1000, double learningRate = 0.01) { | |
this.tolerance = tolerance; | |
this.maxIterations = maxIterations; | |
this.learningRate = learningRate; | |
} | |
public double[] minimize( | |
Function<double[], double[]> gradFn, | |
double[] init | |
) { | |
// minimization code... | |
} | |
// more code... | |
} | |
/////////////////////////////////// | |
public interface Minimization { | |
double[] minimize( | |
Function<double[], double[]> gradFn, | |
double[] init | |
); | |
} | |
public class ConjugatedGradientMinimization implements Minimization { | |
private final double tolerance; | |
private final int maxIterations; | |
public ConjugatedGradientMinimization(double tolerance = 1e-6, int maxIterations = 1000) { | |
this.tolerance = tolerance; | |
this.maxIterations = maxIterations; | |
} | |
public double[] minimize( | |
Function<double[], double[]> gradFn, | |
double[] init | |
) { | |
// minimization code... | |
} | |
// more code... | |
} | |
public class LinearDescentMinimization implements Minimization { | |
private final double tolerance; | |
private final int maxIterations; | |
private final double learningRate; | |
public LinearDescentMinimization(double tolerance = 1e-6, int maxIterations = 1000, double learningRate = 0.01) { | |
this.tolerance = tolerance; | |
this.maxIterations = maxIterations; | |
this.learningRate = learningRate; | |
} | |
public double[] minimize( | |
Function<double[], double[]> gradFn, | |
double[] init | |
) { | |
// minimization code... | |
} | |
// more code... | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment