Yang Hui triangle various algorithm implementation source code