This library provides a set of functions to create, manipulate, and perform operations on fractions. It includes constructors, destructors, setters, getters, mathematical operations, and type conversion functions.
Include the fractions.h
header file in your project and link against the corresponding implementation file.
#include "fractions.h"
struct fraction *frac = fraction_create(1, 2);
fraction_destroy(frac);
struct fraction *a = fraction_create(1, 2);
struct fraction *b = fraction_create(3, 4);
struct fraction res;
fraction_sum(&res, a, b);
fraction_destroy(a);
fraction_destroy(b);
struct fraction *fraction_create(llint numerator, ullint denominator);
struct fraction *fraction_clone(const struct fraction *f);
void fraction_destroy(struct fraction *f);
int fraction_set(struct fraction *f, llint numerator, ullint denominator);
int fraction_copy(struct fraction *dest, const struct fraction *src);
void fraction_reduce(struct fraction *f);
void fraction_errno_set(enum fraction_err err);
enum fraction_err fraction_errno_get();
int fraction_negate(struct fraction *res, const struct fraction *f);
int fraction_reciprocate(struct fraction *res, const struct fraction *f);
int fraction_sum(struct fraction *res, const struct fraction *a, const struct fraction *b);
int fraction_multiply(struct fraction *res, const struct fraction *a, const struct fraction *b);
int fraction_subtract(struct fraction *res, const struct fraction *minuend, const struct fraction *subtrahend);
int fraction_divide(struct fraction *res, const struct fraction *dividend, const struct fraction *divisor);
char *fraction_to_str(const struct fraction *f, char *sep);
int fraction_from_str(struct fraction *f, char *str, char *sep);
llint fraction_to_llint(const struct fraction *f);
int fraction_from_llint(struct fraction *f, llint number);
double fraction_to_double(const struct fraction *f);
int fraction_from_double(struct fraction *f, double value);
FRAC_SUCCESS
: Operation successfulFRAC_DIV_0
: Division by zero errorFRAC_LIBC_ERR
: Standard library errorFRAC_FORMAT_ERR
: Format errorFRAC_OVERFLOW
: Overflow error
DEFAULT_SEP
: Default separator for string representationZERO_FRACTION
: Zero fraction constantONE_FRACTION
: One fraction constant