uint8_t isolate_variable_in_ln(expression *source)
uint8_t isolate_variable_in_exponentation(expression *source, expression *variable)
void replace_expression(expression *a, expression *b)
expression_identifier identifier
void subtract_rhs(expression *source)
#define ERROR_CHECK(F)
Check if the return status of a function is RETS_ERROR. If so, return RETS_ERROR.
expression * new_symbol(expression_identifier identifier, const char *value)
Allocates and initializes a new symbol/variable expression.
union expression::@0 value
uint8_t isolate_variable_in_log(expression *source)
uint8_t solve(expression *source, expression *variable)
uint8_t isolate_variable_in_multiplication(expression *source, expression *variable)
uint8_t isolate_variable_in_addition(expression *source, expression *variable)
bool expressions_are_identical(const expression *a, expression *b, bool persistent)
uint8_t isolate_variable_in_trigonometric_function(expression *source)
void free_expression(expression *source, bool persistent)
uint8_t handle_right_side_is_zero(expression *source, expression *variable)
uint8_t set_error(error_domain domain, error_identifier identifier, const char *body)
Sets current_error to the arguments provided.
uint8_t count_occurrences(const expression *haystack, expression *needle, bool persistent)
bool expression_is_constant(const expression *source)
expression * copy_expression(const expression *source)
Returns a deep copy of an expression.
uint8_t simplify(expression *source, bool recursive)
void append_child(expression *parent, expression *child)
Appends a child to an expression.
expression * new_expression(expression_type type, expression_identifier identifier, uint8_t child_count,...)
Allocates and initializes a new expression with the arguments provided.
expression * guess_symbol(const expression *source, const char *custom_priorities, uint8_t rank)
expression * new_literal(int8_t sign, uintmax_t numerator, uintmax_t denominator)
Allocates and initializes a new literal expression.
expression * new_trigonometic_periodicity(uint8_t period)
struct expression ** children
uint8_t isolate_variable(expression *source, expression *variable)
return_status polysolve(expression *source, expression *variable)
uint8_t attract_variables(expression *source, expression *variable)