An implementation of the confluently persistent vector data structure introduced in Bagwell, Rompf, "RRB-Trees: Efficient Immutable Vectors", EPFL-REPORT-169879, September, 2011.
RRB-Trees build upon Clojure's PersistentVectors, adding logarithmic time concatenation and slicing.
The main API entry points are cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/catvec, performing vector concatenation, and cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/subvec, which produces a new vector containing the appropriate subrange of the input vector (in contrast to clojure.core/subvec, which returns a view on the input vector).
core.rrb-vector's vectors can store objects or unboxed primitives. The implementation allows for seamless interoperability with clojure.lang.PersistentVector, clojure.core.Vec (more commonly known as gvec) and clojure.lang.APersistentVector$SubVector instances: cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/catvec and cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/subvec convert their inputs to cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector.rrbt.Vector instances whenever necessary (this is a very fast constant time operation for PersistentVector and gvec; for SubVector it is O(log n), where n is the size of the underlying vector).
cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector also exports its own versions of vector and vector-of and vec which always produce cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector.rrbt.Vector instances. Note that vector-of accepts :object as one of the possible type arguments, in addition to keywords naming primitive types.
An implementation of the confluently persistent vector data structure introduced in Bagwell, Rompf, "RRB-Trees: Efficient Immutable Vectors", EPFL-REPORT-169879, September, 2011. RRB-Trees build upon Clojure's PersistentVectors, adding logarithmic time concatenation and slicing. The main API entry points are cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/catvec, performing vector concatenation, and cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/subvec, which produces a new vector containing the appropriate subrange of the input vector (in contrast to clojure.core/subvec, which returns a view on the input vector). core.rrb-vector's vectors can store objects or unboxed primitives. The implementation allows for seamless interoperability with clojure.lang.PersistentVector, clojure.core.Vec (more commonly known as gvec) and clojure.lang.APersistentVector$SubVector instances: cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/catvec and cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector/subvec convert their inputs to cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector.rrbt.Vector instances whenever necessary (this is a very fast constant time operation for PersistentVector and gvec; for SubVector it is O(log n), where n is the size of the underlying vector). cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector also exports its own versions of vector and vector-of and vec which always produce cider.inlined-deps.fipp.v0v6v13.corerrb-vector.v0v0v12.clojure.core.rrb-vector.rrbt.Vector instances. Note that vector-of accepts :object as one of the possible type arguments, in addition to keywords naming primitive types.
No vars found in this namespace.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close