1 unstable release
0.1.0 | Oct 8, 2022 |
---|
#2051 in Game dev
Used in 2 crates
(via riichi-decomp)
19KB
347 lines
Lookup Table Generation for riichi-decomp
This crate is NOT intended as a public interface. riichi-decomp
should be used instead.
This crate contains algorithms for generating two lookup tables (LUTs). These LUTs speed up decomposition of a waiting
hand into "standard" or "regular" form, i.e. not Seven Pairs or Thirteen Orphans. Separating the generation from the
main crate makes it possible to call it at compile time through build.rs
.
The Tables
For a more detailed explanation, please refer to the source.
"C-Table": Single-suit, 3N+2, Complete
- Key: octal-packed single-suit tile count histogram; 27 bits in a
u32
. (this is basically one element ofTileSet34::packed
fromriichi-elements
). - Value: at most 4 "alternatives", each containing up to 4 groups, with the (optional) pair implied. This is encoded
as a nested 4 x 4 x 4-bit array (single-suit hand groups can be encoded in 4 bits) using
nanovec::NanoStackBit
andnanovec::NanoArrayBit
.
"W-Table": Single-suit, 3N+1, Waiting
- Key: same definition as
C-Table
- Value: radix-packed array of waiting patterns, using
nanovec::NanoStackRadix
.
Dependencies
~1.3–2MB
~38K SLoC