use super::{
super::{Scalar, Tensor, special, test::TestError},
OptimizationError,
};
pub fn rosenbrock<T>(x: &T) -> Result<Scalar, String>
where
T: Tensor<Item = Scalar>,
{
Ok(special::rosenbrock(x, 1.0, 100.0))
}
pub fn rosenbrock_derivative<T>(x: &T) -> Result<T, String>
where
T: FromIterator<Scalar> + Tensor<Item = Scalar>,
{
Ok(special::rosenbrock_derivative(x, 1.0, 100.0))
}
#[test]
fn debug() {
let _ = format!(
"{:?}",
OptimizationError::MaximumStepsReached(1, "foo".to_string())
);
let _ = format!(
"{:?}",
OptimizationError::NotMinimum("foo".to_string(), "bar".to_string())
);
}
#[test]
fn display() {
let _ = format!(
"{}",
OptimizationError::MaximumStepsReached(1, "foo".to_string())
);
let _ = format!(
"{}",
OptimizationError::NotMinimum("foo".to_string(), "bar".to_string())
);
}
#[test]
fn into_test_error() {
let optimize_error = OptimizationError::MaximumStepsReached(1, "foo".to_string());
let _: TestError = optimize_error.into();
}