Rate memoized st naive grt memoized 12517/s -- -30% -64% -66% st 17883/s 43% -- -48% -52% naive 34555/s 176% 93% -- -6% grt 36872/s 195% 106% 7% --