mod certificates;
mod polynomial;
mod sdp;
mod sos;
pub use certificates::{BoundsCertificate, NonnegativityCertificate};
pub use polynomial::{Monomial, Polynomial, Term};
pub use sdp::{SDPProblem, SDPSolution, SDPSolver};
pub use sos::{SOSConfig, SOSDecomposition, SOSResult};
pub type Degree = usize;
pub type VarIndex = usize;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_polynomial_creation() {
let p = Polynomial::from_terms(vec![
Term::new(1.0, vec![(0, 2)]), Term::new(2.0, vec![(0, 1), (1, 1)]), Term::new(1.0, vec![(1, 2)]), ]);
assert_eq!(p.degree(), 2);
assert_eq!(p.num_variables(), 2);
}
}