Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions clean.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ rm fortran/code
rm zig/code
rm lua/code
rm -f swift/code
rm ocaml/code ocaml/code.cm* ocaml/code.o
1 change: 1 addition & 0 deletions compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ gfortran -O3 fortran/code.f90 -o fortan/code
zig build-exe -O ReleaseFast -femit-bin=zig/code zig/code.zig
luajit -b lua/code.lua lua/code
swiftc -O -parse-as-library -Xcc -funroll-loops -Xcc -march=native -Xcc -ftree-vectorize -Xcc -ffast-math swift/code.swift -o swift/code
ocamlopt ocaml/code.ml -o ocaml/code
14 changes: 14 additions & 0 deletions fibonacci/ocaml/code.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@


let rec fibonacci n =
if n < 2 then n
else fibonacci (n-1) + fibonacci (n-2)


let () =
let u = int_of_string Sys.argv.(1) in
let r = ref 0 in
for i = 1 to u - 1 do
r := !r + fibonacci i
done;
Printf.printf "%d" !r
15 changes: 15 additions & 0 deletions loops/ocaml/code.ml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
let () = Random.self_init ()

let () =
let u = int_of_string Sys.argv.(1) in
let r = Random.int 10000 in
let a = Array.make 10000 0 in

for i = 0 to 9999 do
for j = 0 to 99999 do
a.(i) <- a.(i) + (j mod u);
done;
a.(i) <- a.(i) + r;
done;

Printf.printf "%d" a.(r)
2 changes: 2 additions & 0 deletions run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,5 @@ run "LuaJIT" "luajit ./lua/code 40"
run "Lua" "lua ./lua/code.lua 40"
run "Swift" "./swift/code 40"
run "Julia" "julia ./julia/code.jl 40"
run "OCaml" "./ocaml/code 40"