Hi Mark, I tested the change to expt-int. Unfortunately, still no performance gain.
I'm afraid I don't have a solid enough grasp of Clojure to know what tweaks are needed to get performance fast again. Do you think you'll have time to play with 1.3 soon? On Sep 27, 1:00 am, Mark Engelberg <mark.engelb...@gmail.com> wrote: > Thanks for the info. I'd need to research how clojure.lang.BigInt > differs from java.math.BigInteger, but I'm sure that adding the extra > case for BigInt in the multimethods wouldn't be too hard. > > I'm still stumped as to why expt and sqrt would be 100x slower. My > first thought is that the loop/recur machinery has changed in 1.3, to > support primitives in the recur, so perhaps there's some extra back > and forth boxing/unboxing going on, or perhaps loop/recur is just > fundamentally slower now? Another possibility is that all the literal > numbers are now longs instead of Integers, so maybe that's slowing > down the computations? > > I'd be curious to know whether explicitly boxing everything in the > second line of expt-int helps the performance at all (along with the ' > math operators), i.e., > > (defn- expt-int [base pow] > (loop [n pow, y (num 1), z base] > > to > > (defn- expt-int [base pow] > (loop [n (num pow), y (num 1), z (num base)] -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en