The rationale to do an custom implementation is that the existing solutions are quite a bit slower and/or require more memory.