## Synthetic, rigged benchmark To run the benchmarks, make sure you have compiled cyclobench and installed GAP. Then run (for example): $ ./run_bench.sh 100000 20 200 10 To generate the benchmark data by runnning 100,000 dot products for each implementation, starting with a field order of 20, up to 200, with a step of 10. So we'll run a benchmark for each order in 20, 30, ..., 200. To plot the graphs, you can use: $ cd results $ ../plot.py -x 0 "\$n\$" -y 1 "time taken (ms)" \ -f "Antic 0.2.1" antic \ -f "cyclotomic sparse 0.1.0" sparse \ -f "cyclotomic dense 0.1.0" dense \ -f "cyclotomic structure 0.1.0" structure \ -f "GAPĀ 4.11.0" gap which specifies the x and y axes, the filenames with the data, and the legend labels to use for the data coming from each file. This should generate a PNG file and tex file with the results graphed. ## Real-world benchmark The better benchmark to run is the character inner product one. First, generate the test data (irreducible characters and one random character from one group): $ gap -q < char.g > test_data GAP will also run the calculation and say how long it took: GAP time elapsed: 378.918407ms Now run cyclobench in character mode: $ cyclobench character < test_data character product benchmark, reading from stdin time elapsed (ms): 219 It will probably take a very long time to read the data (I haven't optimized the parsing code at all - it works by running a Haskell program and piping text), but will then print the time taken to run the actual computation, after parsing.