From 73e64898e36cb2cdad5ec03ac907ed9e866fd5a2 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Fri, 10 Nov 2023 16:04:06 +0100 Subject: "Fixed" benchmark (actually removed) --- benchmark/cube-bench.c | 147 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 benchmark/cube-bench.c (limited to 'benchmark/cube-bench.c') diff --git a/benchmark/cube-bench.c b/benchmark/cube-bench.c new file mode 100644 index 0000000..26d12a4 --- /dev/null +++ b/benchmark/cube-bench.c @@ -0,0 +1,147 @@ +/****************************************************************************** +Section: benchmarks + +Here you can find some simple functions that can be used to benchmark the +rest of the code. +******************************************************************************/ + +#define RANDOMCUBES 157 + +static void +setup_randomcubes(cube_fast_t *cubes) +{ + int i; + + for (i = 0; i < RANDOMCUBES; i++) + cubes[i] = run_moves(i*4); +} + +cube_t +run_moves(int64_t n) +{ + cube_fast_t fast; + int64_t m, i; + + fast = solvedcube(); + m = n / 18; + + for (i = 0; i < m; i++) { + fast = _move_U(fast); + fast = _move_U2(fast); + fast = _move_U3(fast); + fast = _move_D(fast); + fast = _move_D2(fast); + fast = _move_D3(fast); + fast = _move_R(fast); + fast = _move_R2(fast); + fast = _move_R3(fast); + fast = _move_L(fast); + fast = _move_L2(fast); + fast = _move_L3(fast); + fast = _move_F(fast); + fast = _move_F2(fast); + fast = _move_F3(fast); + fast = _move_B(fast); + fast = _move_B2(fast); + fast = _move_B3(fast); + } + + for (i = m * 18; i < n; i++) + fast = _move_F(fast); + + return fast; +} + +cube_t +run_trans(int64_t n) +{ + cube_fast_t fast; + int64_t m, i; + + fast = run_moves(33); + m = n / 18; + + for (i = 0; i < m; i++) { + fast = _trans_UFr(fast); + fast = _trans_ULr(fast); + fast = _trans_UBr(fast); + fast = _trans_URr(fast); + fast = _trans_DFr(fast); + fast = _trans_DLr(fast); + fast = _trans_DBr(fast); + fast = _trans_DRr(fast); + fast = _trans_RUr(fast); + fast = _trans_RFr(fast); + fast = _trans_RDr(fast); + fast = _trans_RBr(fast); + fast = _trans_LUr(fast); + fast = _trans_LFr(fast); + fast = _trans_LDr(fast); + fast = _trans_LBr(fast); + fast = _trans_FUr(fast); + fast = _trans_FRr(fast); + fast = _trans_FDr(fast); + fast = _trans_FLr(fast); + fast = _trans_BUr(fast); + fast = _trans_BRr(fast); + fast = _trans_BDr(fast); + fast = _trans_BLr(fast); + fast = _trans_UFm(fast); + fast = _trans_ULm(fast); + fast = _trans_UBm(fast); + fast = _trans_URm(fast); + fast = _trans_DFm(fast); + fast = _trans_DLm(fast); + fast = _trans_DBm(fast); + fast = _trans_DRm(fast); + fast = _trans_RUm(fast); + fast = _trans_RFm(fast); + fast = _trans_RDm(fast); + fast = _trans_RBm(fast); + fast = _trans_LUm(fast); + fast = _trans_LFm(fast); + fast = _trans_LDm(fast); + fast = _trans_LBm(fast); + fast = _trans_FUm(fast); + fast = _trans_FRm(fast); + fast = _trans_FDm(fast); + fast = _trans_FLm(fast); + fast = _trans_BUm(fast); + fast = _trans_BRm(fast); + fast = _trans_BDm(fast); + fast = _trans_BLm(fast); + } + + for (i = m * 18; i < n; i++) + fast = _trans_FRm(fast); + + return fast; +} + +cube_t +run_compose(int64_t n) +{ + cube_fast_t fast, cubes[RANDOMCUBES]; + int64_t i; + + setup_randomcubes(cubes); + + for (i = 0; i < n; i++) + fast = compose_fast(fast, cubes[i % RANDOMCUBES]); + + return fast; +} + +cube_t +run_inverse(int64_t n) +{ + cube_fast_t fast, cubes[RANDOMCUBES]; + int64_t i; + + setup_randomcubes(cubes); + + for (i = 0; i < n; i++) + fast = inverse_fast(cubes[i % RANDOMCUBES]); + + return fast; +} -- cgit v1.3