A silly implementation of fixed point arithmetic
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
tests
Makefile
README.md
silly.c
silly.h

README.md

silly

A toy library implementing fixed-point arithmetic. Please don’t use it, the name is descriptive.

It’s also pretty inefficient.

Installation

Don’t. The makefile only includes a test target, because I want to test my code.

Usage

silly silly_zeros(); // creates a fixed point value of zero
silly make_silly(short, int, int); // make a silly number from the triple (negative?, before decimal, after)
silly silly_from_float(float); // creates a silly number from a float
silly silly_from_double(double); // creates a silly number from a double

double silly_to_double(silly); // convert a silly number into a double
uint64_t silly_to_uraw(silly); // convert the silly struct to a raw value (without sign)
int64_t silly_to_raw(silly); // convert the silly struct to a raw value (with sign)

silly silly_add(silly, silly); // addition
silly silly_sub(silly, silly); // subtraction
silly silly_mul(silly, silly); // multiplication
silly silly_idiv(silly, silly); // division (integer precision)
silly silly_div(silly, silly); // division

char* silly_to_string(silly); // converts a fixed point value to a string (memory is now yours)

That's it!


Have fun!