flavio 0.5.0

flavio welcomes you
Documentation
use super::{FirstOrder, GradientDescent, TensorRank0};

const TOLERANCE: TensorRank0 = 1e-5;

#[test]
fn linear() {
    assert!(
        GradientDescent {
            ..Default::default()
        }
        .minimize(|x: &TensorRank0| Ok(*x), 1.0, None, None)
        .unwrap()
        .abs()
            < TOLERANCE
    )
}

#[test]
fn quadratic() {
    assert!(
        GradientDescent {
            ..Default::default()
        }
        .minimize(|x: &TensorRank0| Ok(x.powi(2) / 2.0), 1.0, None, None)
        .unwrap()
        .abs()
            < TOLERANCE
    )
}

#[test]
fn sin() {
    assert!(
        GradientDescent {
            ..Default::default()
        }
        .minimize(|x: &TensorRank0| Ok(x.sin()), 1.0, None, None)
        .unwrap()
        .abs()
            < TOLERANCE
    )
}