qudit_inst/numerical/
result.rs

1use qudit_core::RealScalar;
2
3use crate::InstantiationResult;
4
5pub struct MinimizationResult<R: RealScalar> {
6    pub params: Vec<R>,
7    pub fun: R,
8    pub status: usize,
9    pub message: Option<String>,
10}
11
12impl<R: RealScalar> MinimizationResult<R> {
13    pub fn simple_success(params: Vec<R>, fun: R) -> Self {
14        Self {
15            params,
16            fun,
17            status: 0,
18            message: None,
19        }
20    }
21
22    pub fn to_instantiation(self) -> InstantiationResult<R::C> {
23        let Self {
24            params,
25            fun,
26            status,
27            message,
28        } = self;
29        InstantiationResult::new(Some(params), Some(fun), status, message)
30    }
31}