Go to the documentation of this file.
33 for (i = 0; i < rows; i++) {
35 for (j = 0; j < colums; j++) {
77 uint8_t size = a_degree + b_degree;
81 for (i = 0; i < a_degree + 1; i++) {
82 for (j = 0; j < b_degree; j++) {
87 for (i = 0; i < b_degree + 1; i++) {
88 for (j = 0; j < a_degree; j++) {
181 *determinant = result;
234 *result = determinant;
void make_monic(expression *source)
int8_t expression_contains_division(const expression *source)
bool expression_is_numerical(const expression *source)
expression * new_sub_matrix(expression *matrix, uint8_t rows, uint8_t colums)
return_status any_expression_to_dense_polynomial(expression *source, const expression *variable)
expression * new_symbol(expression_identifier identifier, const char *value)
Allocates and initializes a new symbol/variable expression.
void gauss_determinant(expression **determinant, const expression *matrix)
void sylvester_matrix(expression **matrix, expression *a, expression *b)
bool expressions_are_identical(const expression *a, expression *b, bool persistent)
uint8_t swap_expressions(expression *a, expression *b)
void calculate_resultant(expression **result, expression *a, expression *b)
uintmax_t max(uintmax_t a, uintmax_t b)
expression * copy_expression(const expression *source)
Returns a deep copy of an expression.
uint8_t simplify(expression *source, bool recursive)
void any_expression_to_expression_recursive(expression *source)
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.
void replace_null_with_zero(expression *source)
expression * new_literal(int8_t sign, uintmax_t numerator, uintmax_t denominator)
Allocates and initializes a new literal expression.
expression * new_matrix(uint8_t rows, uint8_t colums)
bool expressions_are_equivalent(const expression *a, expression *b, bool persistent)
struct expression ** children
void * smart_alloc(uint8_t length, size_t size)
Allocates and keeps track of memory.