fix: minor refactoring
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
use std::default::Default;
|
||||
use std::fmt::Debug;
|
||||
|
||||
use crate::math::num::FloatExt;
|
||||
use crate::linalg::Matrix;
|
||||
@@ -23,7 +22,7 @@ impl<T: FloatExt> Default for GradientDescent<T> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: FloatExt + Debug> FirstOrderOptimizer<T> for GradientDescent<T>
|
||||
impl<T: FloatExt> FirstOrderOptimizer<T> for GradientDescent<T>
|
||||
{
|
||||
|
||||
fn optimize<'a, X: Matrix<T>, LS: LineSearchMethod<T>>(&self, f: &'a F<T, X>, df: &'a DF<X>, x0: &X, ls: &'a LS) -> OptimizerResult<T, X> {
|
||||
|
||||
@@ -35,7 +35,7 @@ impl<T: FloatExt> Default for LBFGS<T> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: FloatExt + Debug> LBFGS<T> {
|
||||
impl<T: FloatExt> LBFGS<T> {
|
||||
|
||||
fn two_loops<X: Matrix<T>>(&self, state: &mut LBFGSState<T, X>) {
|
||||
|
||||
@@ -169,7 +169,7 @@ impl<T: FloatExt + Debug> LBFGS<T> {
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct LBFGSState<T: FloatExt + Debug, X: Matrix<T>> {
|
||||
struct LBFGSState<T: FloatExt, X: Matrix<T>> {
|
||||
x: X,
|
||||
x_prev: X,
|
||||
x_f: T,
|
||||
@@ -189,7 +189,7 @@ struct LBFGSState<T: FloatExt + Debug, X: Matrix<T>> {
|
||||
alpha: T
|
||||
}
|
||||
|
||||
impl<T: FloatExt + Debug> FirstOrderOptimizer<T> for LBFGS<T> {
|
||||
impl<T: FloatExt> FirstOrderOptimizer<T> for LBFGS<T> {
|
||||
|
||||
fn optimize<'a, X: Matrix<T>, LS: LineSearchMethod<T>>(&self, f: &F<T, X>, df: &'a DF<X>, x0: &X, ls: &'a LS) -> OptimizerResult<T, X> {
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ use crate::linalg::Matrix;
|
||||
use crate::optimization::line_search::LineSearchMethod;
|
||||
use crate::optimization::{F, DF};
|
||||
|
||||
pub trait FirstOrderOptimizer<T: FloatExt + Debug> {
|
||||
pub trait FirstOrderOptimizer<T: FloatExt> {
|
||||
fn optimize<'a, X: Matrix<T>, LS: LineSearchMethod<T>>(&self, f: &F<T, X>, df: &'a DF<X>, x0: &X, ls: &'a LS) -> OptimizerResult<T, X>;
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct OptimizerResult<T: FloatExt + Debug, X: Matrix<T>>
|
||||
pub struct OptimizerResult<T: FloatExt, X: Matrix<T>>
|
||||
{
|
||||
pub x: X,
|
||||
pub f_x: T,
|
||||
|
||||
Reference in New Issue
Block a user