CFLAGS += -Wall -std=c11 -I../matrix.gc CFLAGS += -march=native -Ofast -DNDEBUG LDLIBS += -lm -lgc CC = gcc all: out.txt times.svg cat $< N=5 out.txt: main Makefile ./main $(N) 1> $@ main: main.o jacobi.o matrix.o main.o jacobi.o matrix.o: ../matrix.gc/matrix.h matrix.o: ../matrix.gc/matrix.c $(CC) -c $(CFLAGS) $< -o $@ out.times.txt: main Makefile cat /dev/null > $@ for n in `seq 113 2 153`; do time --format "$$n %U" --append --output $@ ./main $$n 2>/dev/null; done times.svg: out.times.txt echo '\ set term svg size 800,600 font "Times,18" background rgb "white"; \ set out "$@"; \ set xlabel "matrix size"; \ set ylabel "diagonalization time, sec"; \ set title "diagonalization time as function of matrix size (`uname -m`)"; \ set key left; \ f(x)=b+(x/a)**3; \ b=0.1; a=10; \ fit f(x) "$<" via b,a; \ T = sprintf("fit: %4.1f+(n/%3.0f)^3",b,a); \ plot "$<" title "measurement", f(x) title T; \ '|tee log.gpi|gnuplot clean: rm -f main *.o out* *.png *.svg *.log log*