Go to the documentation of this file.
50 uint8_t
symbolic4(
char* buffer,
const char* query) {
83 for (i = 0; i < source->
child_count && recursive; i++) {
84 if (source->
children[i] == NULL)
continue;
void smart_free_all(void)
Frees all pointers.
uint8_t process_tangent(expression *source)
uint8_t stationary_points(expression *source, expression *variable)
uint8_t validate(expression *tokens)
uint8_t vector_triple_product(expression **result, expression *source_1, expression *source_2, expression *source_3, bool persistent)
uint8_t process_normal(expression *source)
uint8_t process_vector_dot_product(expression *source)
char * default_priorities
uint8_t derivative(expression **result, expression *source, expression *variable, bool persistent)
void replace_expression(expression *a, expression *b)
expression_identifier identifier
void literal_to_double_symbol(expression *source)
uint8_t process_angle(expression *source)
uint8_t antiderivative(expression **result, expression *source, expression *variable, bool persistent)
expression * prime_factors(uintmax_t source)
uint8_t vector_dot_product(expression **result, expression *source_1, expression *source_2, bool persistent)
void replace_occurences(expression *source, const expression *child, const expression *replacement)
uint8_t function_intersection_angle(expression **result, expression *g, expression *h)
#define ERROR_CHECK(F)
Check if the return status of a function is RETS_ERROR. If so, return RETS_ERROR.
uint8_t process_derivative(expression *source)
union expression::@0 value
uint8_t process_vector_normalized(expression *source)
uint8_t solve(expression *source, expression *variable)
uint8_t vector_magnitude(expression **result, expression *source, bool persistent)
uint8_t vector_normalized(expression **result, expression *source, expression *magnitude, bool persistent)
uint8_t vector_angle(expression **result, expression *source_1, expression *source_2, bool persistent)
bool use_spaces
Determines if spaces should be used in the result string (such as "x + y * z" instead of "x+y*z")
uint8_t process_factors(expression *source)
void free_expression(expression *source, bool persistent)
uint8_t symbolic4(char *buffer, const char *query)
uint8_t process_vector_angle(expression *source)
uint8_t process_vector_triple_product(expression *source)
uint8_t set_error(error_domain domain, error_identifier identifier, const char *body)
Sets current_error to the arguments provided.
uint8_t function_tangent(expression **result, expression *source, expression *variable, expression *x_value, bool persistent)
void approximate(expression *source)
uint8_t tokenize(expression *tokens, const char *query)
uint8_t process_equation(expression *source)
void process_approximate(expression *source)
void expression_to_string(char *buffer, const expression *source, expression_to_string_format format)
Serializes an expression into a specified format.
#define ALLOCATED_POINTERS_LENGTH
uint8_t process_stationary_points(expression *source)
expression * copy_expression(const expression *source)
Returns a deep copy of an expression.
uint8_t process_value(expression *source)
uint8_t function_normal(expression **result, expression *source, expression *variable, expression *x_value, bool persistent)
uint8_t vector_cross_product(expression **result, expression *source_1, expression *source_2, bool persistent)
uint8_t simplify(expression *source, bool recursive)
uint8_t process_integral(expression *source)
uint8_t definite_integral(expression **result, expression *source, expression *variable, expression *lower_bound, expression *upper_bound)
const char * get_expression_string(expression_identifier identifier)
Returns the keyword string corresponding to the identifier.
expression * new_expression(expression_type type, expression_identifier identifier, uint8_t child_count,...)
Allocates and initializes a new expression with the arguments provided.
uint8_t process(expression *source, bool recursive)
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.
uint8_t process_vector_cross_product(expression *source)
void ** allocated_pointers
uint8_t factor_square_free(expression **factors, const expression *source)
uint8_t process_solve(expression *source)
struct expression ** children
bool use_abbrevations
Determines if abbrevations should be used in the result string (such as "Deriv" instead of "Derivativ...
uint8_t process_vector_magnitude(expression *source)
void parse(expression *tokens)