use expr_core::Store;
use calculus::diff;
use simplify::simplify;
fn main() {
let mut st = Store::new();
let x = st.sym("x");
// Differentiate sin(xÂē)
let x2 = st.pow(x, st.int(2));
let expr = st.func("sin", vec![x2]);
let derivative = diff(&mut st, expr, "x");
let result = simplify(&mut st, derivative);
println!("{}", st.to_string(result));
// Output: cos(x^2) * 2 * x
}
from symmetrica import Expr, Store, diff, simplify
# Create expression store
st = Store()
x = st.sym("x")
# Differentiate sin(xÂē)
x2 = st.pow(x, st.int(2))
expr = st.sin(x2)
derivative = diff(st, expr, "x")
result = simplify(st, derivative)
print(result.to_string())
# Output: cos(x^2) * 2 * x
import init, { Expr } from './symmetrica_wasm.js';
async function main() {
await init();
// Create expression
const x = Expr.symbol("x");
const x2 = x.pow(2);
const expr = x2.sin();
// Differentiate
const derivative = expr.diff("x");
const result = derivative.simplify();
console.log(result.toString());
// Output: cos(x^2) * 2 * x
}
main();