Complete Cargo projects for all Rust examples can be found in examples/rs.
#![allow(non_snake_case)]
use clarabel::algebra::*;
use clarabel::solver::*;
fn main() {
    use clarabel::algebra::*;
    use clarabel::solver::*;
    let n = 3;
    let nvec = (n * (n + 1)) >> 1;
    // SDP Example
    let P = CscMatrix::zeros((nvec, nvec));
    let c = vec![1., 0., 1., 0., 0., 1.];
    let sqrt2 = 2f64.sqrt();
    let A = CscMatrix::from(&[
        [-1., 0., 0., 0., 0., 0.],
        [0., -sqrt2, 0., 0., 0., 0.],
        [0., 0., -1., 0., 0., 0.],
        [0., 0., 0., -sqrt2, 0., 0.],
        [0., 0., 0., 0., -sqrt2, 0.],
        [0., 0., 0., 0., 0., -1.],
        [1., 4., 3., 8., 10., 6.],
    ]);
    let mut b = vec![0.0; 6];
    b.push(1.);
    let cones = vec![PSDTriangleConeT(n), ZeroConeT(1)];
    let settings = DefaultSettings::default();
    let mut solver = DefaultSolver::new(&P, &c, &A, &b, &cones, settings);
    solver.solve();
}