On Sat, Jun 19, 2010 at 5:13 AM, Mike Meyer <
mwm-keyword-googlegroups.620...@mired.org> wrote:
>
>
> Were those real world programs, or arithmetic benchmarks? Most real world
> programs I see spend so little of their time doing arithmetic that making
> the math an order of magnitude slower wouldn't make a noticeable difference
> in overall runtime.
>

"Most real world programs". You mean like Clojure itself?

Please look over the implementation of gvec before making statements like
this:

  clojure.lang.IPersistentCollection
  (cons [this val]
     (if (< (- cnt (.tailoff this)) (int 32))
      (let [new-tail (.array am (inc (.alength am tail)))]
        (System/arraycopy tail 0 new-tail 0 (.alength am tail))
        (.aset am new-tail (.alength am tail) val)
        (new Vec am (inc cnt) shift root new-tail (meta this)))
      (let [tail-node (VecNode. (.edit root) tail)]
        (if (> (bit-shift-right cnt (int 5)) (bit-shift-left (int 1) shift))
;overflow root?
          (let [new-root (VecNode. (.edit root) (object-array 32))]
            (doto ^objects (.arr new-root)
              (aset 0 root)
              (aset 1 (.newPath this (.edit root) shift tail-node)))
            (new Vec am (inc cnt) (+ shift (int 5)) new-root (let [tl
(.array am 1)] (.aset am  tl 0 val) tl) (meta this)))
          (new Vec am (inc cnt) shift (.pushTail this shift root tail-node)
                 (let [tl (.array am 1)] (.aset am  tl 0 val) tl) (meta
this))))))


David

-- 
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

Reply via email to