fix: minor refactoring

This commit is contained in:
Volodymyr Orlov
2020-03-31 18:24:01 -07:00
parent 8bb6013430
commit 5766364311
15 changed files with 49 additions and 52 deletions
@@ -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> {
+3 -3
View File
@@ -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> {
+2 -2
View File
@@ -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,