esabo / CodingTheory

A coding theory library for Julia.
https://esabo.github.io/CodingTheory/
BSD 3-Clause "New" or "Revised" License
26 stars 11 forks source link

Draft PR for using the new iterator #48

Open davidamarquis opened 6 days ago

davidamarquis commented 6 days ago

Not ready for review, just posting this to keep track of benchmarks.

I'm done with Julia-based optimizations for now. There are some other optimizations White describes in Ch7 that I would like to do but that would be in a future PR.

Remaining tasks for this PR Reduce matrix size by excluding identity submatrix from the enumeration Make new approach multithreaded

Benchmarks The benchmarks here use the code in benchmarks/weight_dist_bench.jl n=70 k=35 Code used is the code of largest distance that is known for [n, k]

Nov 18 Benchmarks (1 thread) Old approach which uses matrix mulitiplies Time ~ 3.7s Memory ~ 62 MiB

New approach Time ~ 10.7 ms Time ~ 335ms [Edit: earlier today posted 10.7 ms but there was a mistake because of a line of code Id left in that was meant for Zimmerman's algorithm, not for Brouwer's.] Memory ~ 480 KiB

So new approach is about 11 times faster [updated].