selen 0.15.5

Constraint Satisfaction Problem (CSP) solver
Documentation
use selen::prelude::*;

fn main() {
    eprintln!("Starting two-variable test...");
    let mut model = Model::default();
    let x = model.float(-1e6, 1e6);
    let y = model.float(-1e6, 1e6);
    let sum_var = model.float(-2e6, 2e6);
    
    model.new(x.add(y).eq(sum_var));
    model.new(sum_var.le(0.0));
    
    eprintln!("About to call maximize...");
    let result = model.maximize(x);
    eprintln!("Maximize returned!");
    
    match result {
        Ok(sol) => {
            eprintln!("Success:");
            eprintln!("  x = {}", sol.get_float(x));
            eprintln!("  y = {}", sol.get_float(y));
            eprintln!("  sum = {}", sol.get_float(sum_var));
        },
        Err(e) => eprintln!("Error: {:?}", e),
    }
}