Commit 5c137bff authored by Taddeüs Kroes's avatar Taddeüs Kroes

Finished code of question 3.

parent edff8604
sum.float
sum.double
sum
speed.*.*
speed
fp
......
FLAGS=-Wall -Wextra -std=c99 -pedantic -O0 -lm
TYPES=float double LD
SPEED_TYPES=float double LD
SUM_TYPES=float double
OPS=ADD DIV MULT SQRT
all: fp speed report.pdf float_double
all: fp speed report.pdf sum
%.pdf: %.tex
pdflatex $^
pdflatex $^
speed: speed.c
for t in $(TYPES); do \
for t in $(SPEED_TYPES); do \
for o in $(OPS); do \
sed "s#{TYPE}#$$t#" $^ | sed "s#{OP}#$$o#" > speed.$$t.$$o.c; \
gcc $(FLAGS) -o speed.$$t.$$o speed.$$t.$$o.c; \
......@@ -21,8 +22,13 @@ speed: speed.c
fp: floating_point.o
gcc $(FLAGS) -o $@ $^
float_double: float_vs_double.o
gcc $(FLAGS) -o $@ $^
sum: sum.c
for t in $(SUM_TYPES); do \
sed "s#{TYPE}#$$t#" $^ > sum.$$t.c; \
gcc $(FLAGS) -o sum.$$t sum.$$t.c; \
rm sum.$$t.c; \
done;
touch $@
%.o: %.c
gcc $(FLAGS) -o $@ -c $^
......@@ -31,4 +37,4 @@ float_double: float_vs_double.o
gcc $(FLAGS) -o $* $^
clean:
rm -vf *.o *.i *.s fp speed speed.*.* floating_point
rm -vf *.o *.i *.s fp speed speed.*.* floating_point sum sum.float sum.double
#include <stdlib.h>
#include <stdio.h>
int main(void) {
puts("Using type {TYPE}.");
puts("Forward summation:");
printf("N = 1e8: %e\n", sum_forward(1e8));
printf("N = 2e8: %e\n", sum_forward(2e8));
puts("Backward summation:");
printf("N = 1e8: %e\n", sum_backward(1e8));
printf("N = 2e8: %e\n", sum_backward(2e8));
return 0;
}
{TYPE} sum_forward(int N) {
{TYPE} sum = 0;
......@@ -32,3 +18,17 @@ int main(void) {
return sum;
}
int main(void) {
puts("Using type {TYPE}.");
puts("Forward summation:");
printf("N = 1e8: %e\n", sum_forward(1e8));
printf("N = 2e8: %e\n", sum_forward(2e8));
puts("Backward summation:");
printf("N = 1e8: %e\n", sum_backward(1e8));
printf("N = 2e8: %e\n", sum_backward(2e8));
return 0;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment