#include <stdlib.h>
#include <stdio.h>
#include <float.h>

#define PRINT_SIZE(TYPE) (printf("Size of " #TYPE ": %d\n", sizeof(TYPE)))

int main(void) {
    PRINT_SIZE(float);
    PRINT_SIZE(double);
    PRINT_SIZE(long double);

    float e = 1.f; // Will be replaced in assembly
    printf("our epsilon: %.12e\n", e);
    printf("f range: [%e, %e]\n", FLT_MIN, FLT_MAX);
    printf("d range: [%e, %e]\n", DBL_MIN, DBL_MAX);
    printf("ld range: [%Le, %Le]\n", LDBL_MIN, LDBL_MAX);

    printf("f epsilon: %e\n", FLT_EPSILON);
    printf("d epsilon: %e\n", DBL_EPSILON);
    printf("ld epsilon: %Le\n", LDBL_EPSILON);

    return 0;
}
