
Bin Jin
In order to represent Z/nZ, regular way need to store two integers, and a data constructer. With number parameterized types, newtype+Integer can be used, it's much more efficient. For this project, montg reduce require to calculate a key for each modulus, but the modulus won't be changed within Num typeclass. It's better to fix it in type system. On Nov 7, 2011 1:38 AM, "DavidA"
wrote: What's the purpose of all the type trickery? Why not just implement the algorithm using Integer? _______________________________________________ Haskell-Cafe mailing listHaskell-Cafe <at>
haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe <at> haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Ok, but even if you want to represent the inputs and outputs to be in Z/nZ, that doesn't mean that you have to work in Z/nZ while performing the algorithm. I think it would probably be faster to convert from Z/nZ to Integer, do the algorithm, and then convert the result back to Z/nZ. Anyway, good luck, and if you succeed in getting it fast enough, I hope you'll make the results available somewhere.