gopar icon indicating copy to clipboard operation
gopar copied to clipboard

generate tables

Open WillAbides opened this issue 4 years ago • 1 comments

I noticed a couple of TODOs to generate tables at compile time. This PR mostly does that.

In rsec16, generators is now generate by rsec16/internal/gen by way of a //go:generate statement.

In gf2p16, expTable and logTable are similarly generated by gf2p16/internal/gen.

I wanted to do the same with mulTable, but the generated file was over 200MB. Instead I converted it to use a lazy-loaded cache. I also added gr2p16.LoadCaches() which will preload mulTableCache in case you don't want to lazy-load that.

I realize this PR is somewhat out of the blue. I just happened onto this repo when looking into par2 and thought I might speed have a go at a streaming API. That didn't work out, but I figured I could at least contribute this bit.

WillAbides avatar Aug 01 '21 23:08 WillAbides

Wow, thanks for the PR! I'll try and take a close look this weekend. :)

akalin avatar Aug 05 '21 07:08 akalin