/* Provide various operations on values (Create new expressions from old ones) */ /* These could probably be made externally accessible (it would be useful) */ value add(value, value); /* add values */ value sub(value, value); /* ... */ value mult(value, value); value div(value, value); value topow(value, value); value apply_func(FUNCTION, value); /* Apply function to value */ value id(value); /* Duplicate value */ value cst(double); /* Create a constant expression */ value dup_var(variable *); /* Make an expression of the form 'x' */ value dup_op(value, value, value); /* Create an expression of type a /+-* b */ int same(value, value); /* Are two expressions identical ? */