多分、参考にならんような気がするけど、

向聴数を出すだけなら簡単な方法は、ある。
面子過多だと誤差が出るけど、計算はめっさ速い。

自分の場合は、初期(1順〜5順程度)の向聴数判定に使ってる。

というかすごく簡単な話で、
向聴数ってのは、

対子 −1
塔子 −1
順子 −2
刻子 −2

先頭からそうなっているものを8から引いて該当牌を除けばよい。

誤差が出るのは、
22234 みたいなとき、
刻子( -2 ) 塔子(−1) とするか
トイツ( −1 ) 順子 ( −2 )とするか、で違ってくる

どちらも-3じゃない、と思うのは早計で、
面子過多の場合、過多の面子塔子トイツを向聴数からひいては行けないから。