use RustedSciThe::symbolic::symbolic_engine::Expr;
fn main() {
let x = Expr::Var("x".to_string());
let y = Expr::Var("y".to_string());
let simple_div = x.clone().pow(Expr::Const(2.0)) / y.clone();
println!("=== Simple Division x²/y ===");
println!("{}", simple_div.pretty_print());
let sin_div = Expr::sin(Box::new(simple_div.clone()));
println!("\n=== Division inside sin function ===");
println!("{}", sin_div.pretty_print());
let z = Expr::Var("z".to_string());
let x_squared_over_y = x.clone().pow(Expr::Const(2.0)) / y.clone();
let sin_part = Expr::sin(Box::new(x_squared_over_y));
let z_cubed = z.clone().pow(Expr::Const(3.0));
let cos_part = Expr::cos(Box::new(z_cubed));
let ln_arg = sin_part + cos_part;
println!("\n=== Complex case: sin(x²/y) + cos(z³) ===");
println!("{}", ln_arg.pretty_print());
}