Fibonacci number
fibonacci(0) = 0,
fibonacci(1) = 1,
and fibonacci(n) = fibonacci(n-1) + fibonacci(n-2), per n > 1
$ cc -Wall -Wextra -g -O3 -march=native -o src/fib src/fib.c src/fibonacci.c src/fibonacci_io.c
$ echo 180 | src/fib
$ src/fib -s 91 -e 93 -b 64
$ src/fib -s 181 -e 186 -b 128
$ src/fib -s 367 -e 370 -b 256
$ sudo apt-get install git build-essential
$ sudo apt-get install pkg-config gnuplot
$ sudo apt-get install libgmp-dev libglib2.0-dev
$ sudo apt-get install aspell clang-format cppcheck
$ sudo apt-get install autotools-dev autoconf automake libtool
$ xcode-select --install
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ brew install pkg-config gnuplot
$ brew install gmp glib
$ brew install aspell clang-format cppcheck
$ brew install autoconf automake libtool
$ autoreconf -ivf
$ cc -Wall -Wextra -g -O3 -march=native -o src/fib_doubling_mixing src/fib_doubling_mixing.c src/fibonacci.c src/fibonacci_gmp.c src/fibonacci_io.c -lgmp
$ echo 2000 | src/fib_doubling_mixing
$ CPPFLAGS="-Wall -Wextra -g -O3 -march=native" ./configure && make
$ echo 1000 | src/fib_doubling_gmp
$ echo 1000 | src/fib_iterative_gmp
$ src/main 183 187
$ make check
$ # python
$ echo 99 | tests/fibonacci.py
$ # perl
$ echo 99 | tests/fibonacci.pl
$ # javascript
$ echo 99 | tests/fibonacci.js
$ # julia
$ echo 99 | tests/fibonacci.jl
$ javac tests/Fibonacci.java
$ echo 99 | java -cp tests Fibonacci
$ CC=clang CXX=clang++ CFLAGS="-Wall -Wextra -fsanitize=address -O1 -fno-omit-frame-pointer -g" CXXFLAGS=$CFLAGS ./configure
$ clang-format -style=file -i src/*.[ch] src/*.cpp
$ cppcheck --enable=all --inline-suppr --inconclusive --suppress=missingIncludeSystem --verbose src/*.[ch] src/*.cpp
$ valgrind --tool=memcheck --leak-check=full --error-exitcode=1 -s src/main 99
$ scripts/install-git-hooks
$ make plot
2020 年春季 Linux 核心設計課程作業 —— fibdrv - HackMD
Fast Fibonacci algorithms - Project Nayuki
The Fastest Way to Compute the Nth Fibonacci Number: The Doubling Method - Linus's Blog
int128.h - chenshuo/recipes - GitHub
c - how to print __uint128_t number using gcc? - Stack Overflow