Source: https://zkpf.berndpulch.co/2013_dse_math_paper1.pdf