Skip to content
Snippets Groups Projects
Commit 5c137bff authored by Taddeüs Kroes's avatar Taddeüs Kroes
Browse files

Finished code of question 3.

parent edff8604
No related branches found
No related tags found
No related merge requests found
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;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment