RustedSciThe 0.3.29

Rust framework for symbolic and numerical computing: symbolic calculations, nonlinear systems, IVP and BVP for ODE, optimization, fitting and more
Documentation
use RustedSciThe_experimental4::symbolic::symbolic_engine::Expr;
use std::collections::HashMap;

// Simple test to debug the __EXP__ marker issue
fn main() {
    // Test the problematic expression from the failing test
    let x = Expr::Var("x".to_string());
    let y = Expr::Var("y".to_string());
    let z = Expr::Var("z".to_string());
    
    // Create the expression that's failing: ((x/y)^z) / ((sin(x)/cos(y))^(z+1))
    let x_over_y = x.clone() / y.clone();
    let numerator_base = x_over_y.pow(z.clone());
    
    let sin_x = Expr::sin(Box::new(x.clone()));
    let cos_y = Expr::cos(Box::new(y.clone()));
    let trig_fraction = sin_x / cos_y;
    let denominator_exp = z.clone() + Expr::Const(1.0);
    let denominator_base = trig_fraction.pow(denominator_exp);
    
    let complex_fraction = numerator_base / denominator_base;
    
    let result = complex_fraction.pretty_print();
    println!("Result:");
    println!("{}", result);
    
    // Check what the test is looking for
    println!("\nContains ') ': {}", result.contains(") "));
    println!("Contains '__EXP__': {}", result.contains("__EXP__"));
    
    // Debug the render method
    println!("\nDebug - lines in result:");
    for (i, line) in result.lines().enumerate() {
        println!("Line {}: '{}'", i, line);
    }
}