UNPKG

@anysoftinc/anydb-sdk

Version:

AnyDB TypeScript SDK for querying and transacting with Datomic databases

1,255 lines (1,145 loc) 96.6 kB
var $CLJS = require("./cljs_env"); var $jscomp = $CLJS.$jscomp; var COMPILED = false; require("./cljs.core.js"); require("./me.tonsky.persistent_sorted_set.arrays.js"); var anydb=$CLJS.anydb || ($CLJS.anydb = {}); var clojure=$CLJS.clojure || ($CLJS.clojure = {}); var cljs=$CLJS.cljs || ($CLJS.cljs = {}); var goog=$CLJS.goog || ($CLJS.goog = {}); var datascript=$CLJS.datascript || ($CLJS.datascript = {}); var me=$CLJS.me || ($CLJS.me = {}); var extend_clj=$CLJS.extend_clj || ($CLJS.extend_clj = {}); $CLJS.SHADOW_ENV.setLoaded("me.tonsky.persistent_sorted_set.js"); goog.provide('me.tonsky.persistent_sorted_set'); /** * js limitation for bit ops */ me.tonsky.persistent_sorted_set.max_safe_path = Math.pow((2),(31)); /** * tunable param */ me.tonsky.persistent_sorted_set.bits_per_level = (5); me.tonsky.persistent_sorted_set.max_len = Math.pow((2),(5)); me.tonsky.persistent_sorted_set.min_len = (me.tonsky.persistent_sorted_set.max_len / (2)); me.tonsky.persistent_sorted_set.avg_len = ((me.tonsky.persistent_sorted_set.max_len + me.tonsky.persistent_sorted_set.min_len) >>> (1)); me.tonsky.persistent_sorted_set.max_safe_level = Math.floor(((31) / (5))); me.tonsky.persistent_sorted_set.bit_mask = (me.tonsky.persistent_sorted_set.max_len - (1)); me.tonsky.persistent_sorted_set.factors = me.tonsky.persistent_sorted_set.arrays.into_array(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__8143_SHARP_){ return Math.pow((2),p1__8143_SHARP_); }),cljs.core.range.cljs$core$IFn$_invoke$arity$3((0),(52),(5)))); me.tonsky.persistent_sorted_set.empty_path = (0); me.tonsky.persistent_sorted_set.path_get = (function me$tonsky$persistent_sorted_set$path_get(path,level){ if((level < me.tonsky.persistent_sorted_set.max_safe_level)){ return ((path >>> (level * (5))) & me.tonsky.persistent_sorted_set.bit_mask); } else { return (Math.floor((path / (me.tonsky.persistent_sorted_set.factors[level]))) & me.tonsky.persistent_sorted_set.bit_mask); } }); me.tonsky.persistent_sorted_set.path_set = (function me$tonsky$persistent_sorted_set$path_set(path,level,idx){ var smol_QMARK_ = (((path < me.tonsky.persistent_sorted_set.max_safe_path)) && ((level < me.tonsky.persistent_sorted_set.max_safe_level))); var old = me.tonsky.persistent_sorted_set.path_get(path,level); var minus = ((smol_QMARK_)?(old << (level * (5))):(old * (me.tonsky.persistent_sorted_set.factors[level]))); var plus = ((smol_QMARK_)?(idx << (level * (5))):(idx * (me.tonsky.persistent_sorted_set.factors[level]))); return ((path - minus) + plus); }); me.tonsky.persistent_sorted_set.path_inc = (function me$tonsky$persistent_sorted_set$path_inc(path){ return (path + (1)); }); me.tonsky.persistent_sorted_set.path_dec = (function me$tonsky$persistent_sorted_set$path_dec(path){ return (path - (1)); }); me.tonsky.persistent_sorted_set.path_cmp = (function me$tonsky$persistent_sorted_set$path_cmp(path1,path2){ return (path1 - path2); }); me.tonsky.persistent_sorted_set.path_lt = (function me$tonsky$persistent_sorted_set$path_lt(path1,path2){ return (path1 < path2); }); me.tonsky.persistent_sorted_set.path_lte = (function me$tonsky$persistent_sorted_set$path_lte(path1,path2){ return (path1 <= path2); }); me.tonsky.persistent_sorted_set.path_eq = (function me$tonsky$persistent_sorted_set$path_eq(path1,path2){ return (path1 === path2); }); me.tonsky.persistent_sorted_set.path_same_leaf = (function me$tonsky$persistent_sorted_set$path_same_leaf(path1,path2){ if((((path1 < me.tonsky.persistent_sorted_set.max_safe_path)) && ((path2 < me.tonsky.persistent_sorted_set.max_safe_path)))){ return ((path1 >>> (5)) === (path2 >>> (5))); } else { return (Math.floor((path1 / me.tonsky.persistent_sorted_set.max_len)) === Math.floor((path2 / me.tonsky.persistent_sorted_set.max_len))); } }); me.tonsky.persistent_sorted_set.path_str = (function me$tonsky$persistent_sorted_set$path_str(path){ var res = cljs.core.List.EMPTY; var path__$1 = path; while(true){ if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(path__$1,(0))){ var G__8486 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(res,cljs.core.mod(path__$1,me.tonsky.persistent_sorted_set.max_len)); var G__8487 = Math.floor((path__$1 / me.tonsky.persistent_sorted_set.max_len)); res = G__8486; path__$1 = G__8487; continue; } else { return cljs.core.vec(res); } break; } }); me.tonsky.persistent_sorted_set.binary_search_l = (function me$tonsky$persistent_sorted_set$binary_search_l(cmp,arr,r,k){ var l = (0); var r__$1 = cljs.core.long$(r); while(true){ if((l <= r__$1)){ var m = ((l + r__$1) >>> (1)); var mk = (arr[m]); if(((cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(mk,k) : cmp.call(null,mk,k)) < (0))){ var G__8488 = (m + (1)); var G__8489 = r__$1; l = G__8488; r__$1 = G__8489; continue; } else { var G__8490 = l; var G__8491 = (m - (1)); l = G__8490; r__$1 = G__8491; continue; } } else { return l; } break; } }); me.tonsky.persistent_sorted_set.binary_search_r = (function me$tonsky$persistent_sorted_set$binary_search_r(cmp,arr,r,k){ var l = (0); var r__$1 = cljs.core.long$(r); while(true){ if((l <= r__$1)){ var m = ((l + r__$1) >>> (1)); var mk = (arr[m]); if(((cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(mk,k) : cmp.call(null,mk,k)) > (0))){ var G__8492 = l; var G__8493 = (m - (1)); l = G__8492; r__$1 = G__8493; continue; } else { var G__8494 = (m + (1)); var G__8495 = r__$1; l = G__8494; r__$1 = G__8495; continue; } } else { return l; } break; } }); me.tonsky.persistent_sorted_set.lookup_exact = (function me$tonsky$persistent_sorted_set$lookup_exact(cmp,arr,key){ var arr_l = arr.length; var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,arr,(arr_l - (1)),key); if((((idx < arr_l)) && (((0) === (function (){var G__8207 = (arr[idx]); var G__8208 = key; return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8207,G__8208) : cmp.call(null,G__8207,G__8208)); })())))){ return idx; } else { return (-1); } }); me.tonsky.persistent_sorted_set.lookup_range = (function me$tonsky$persistent_sorted_set$lookup_range(cmp,arr,key){ var arr_l = arr.length; var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,arr,(arr_l - (1)),key); if((idx === arr_l)){ return (-1); } else { return idx; } }); me.tonsky.persistent_sorted_set.cut_n_splice = (function me$tonsky$persistent_sorted_set$cut_n_splice(arr,cut_from,cut_to,splice_from,splice_to,xs){ var xs_l = xs.length; var l1 = (splice_from - cut_from); var l2 = (cut_to - splice_to); var l1xs = (l1 + xs_l); var new_arr = me.tonsky.persistent_sorted_set.arrays.make_array(((l1 + xs_l) + l2)); var l__7840__auto___8496 = (splice_from - cut_from); var n__5593__auto___8497 = l__7840__auto___8496; var i__7841__auto___8498 = (0); while(true){ if((i__7841__auto___8498 < n__5593__auto___8497)){ (new_arr[(i__7841__auto___8498 + (0))] = (arr[(i__7841__auto___8498 + cut_from)])); var G__8500 = (i__7841__auto___8498 + (1)); i__7841__auto___8498 = G__8500; continue; } else { } break; } var l__7840__auto___8501 = (xs_l - (0)); var n__5593__auto___8502 = l__7840__auto___8501; var i__7841__auto___8503 = (0); while(true){ if((i__7841__auto___8503 < n__5593__auto___8502)){ (new_arr[(i__7841__auto___8503 + l1)] = (xs[(i__7841__auto___8503 + (0))])); var G__8505 = (i__7841__auto___8503 + (1)); i__7841__auto___8503 = G__8505; continue; } else { } break; } var l__7840__auto___8506 = (cut_to - splice_to); var n__5593__auto___8507 = l__7840__auto___8506; var i__7841__auto___8508 = (0); while(true){ if((i__7841__auto___8508 < n__5593__auto___8507)){ (new_arr[(i__7841__auto___8508 + l1xs)] = (arr[(i__7841__auto___8508 + splice_to)])); var G__8511 = (i__7841__auto___8508 + (1)); i__7841__auto___8508 = G__8511; continue; } else { } break; } return new_arr; }); me.tonsky.persistent_sorted_set.splice = (function me$tonsky$persistent_sorted_set$splice(arr,splice_from,splice_to,xs){ return me.tonsky.persistent_sorted_set.cut_n_splice(arr,(0),arr.length,splice_from,splice_to,xs); }); me.tonsky.persistent_sorted_set.insert = (function me$tonsky$persistent_sorted_set$insert(arr,idx,xs){ return me.tonsky.persistent_sorted_set.cut_n_splice(arr,(0),arr.length,idx,idx,xs); }); me.tonsky.persistent_sorted_set.merge_n_split = (function me$tonsky$persistent_sorted_set$merge_n_split(a1,a2){ var a1_l = a1.length; var a2_l = a2.length; var total_l = (a1_l + a2_l); var r1_l = (total_l >>> (1)); var r2_l = (total_l - r1_l); var r1 = me.tonsky.persistent_sorted_set.arrays.make_array(r1_l); var r2 = me.tonsky.persistent_sorted_set.arrays.make_array(r2_l); if((a1_l <= r1_l)){ var l__7840__auto___8524 = (a1_l - (0)); var n__5593__auto___8525 = l__7840__auto___8524; var i__7841__auto___8526 = (0); while(true){ if((i__7841__auto___8526 < n__5593__auto___8525)){ (r1[(i__7841__auto___8526 + (0))] = (a1[(i__7841__auto___8526 + (0))])); var G__8529 = (i__7841__auto___8526 + (1)); i__7841__auto___8526 = G__8529; continue; } else { } break; } var l__7840__auto___8530 = ((r1_l - a1_l) - (0)); var n__5593__auto___8531 = l__7840__auto___8530; var i__7841__auto___8532 = (0); while(true){ if((i__7841__auto___8532 < n__5593__auto___8531)){ (r1[(i__7841__auto___8532 + a1_l)] = (a2[(i__7841__auto___8532 + (0))])); var G__8534 = (i__7841__auto___8532 + (1)); i__7841__auto___8532 = G__8534; continue; } else { } break; } var l__7840__auto___8540 = (a2_l - (r1_l - a1_l)); var n__5593__auto___8541 = l__7840__auto___8540; var i__7841__auto___8542 = (0); while(true){ if((i__7841__auto___8542 < n__5593__auto___8541)){ (r2[(i__7841__auto___8542 + (0))] = (a2[(i__7841__auto___8542 + (r1_l - a1_l))])); var G__8543 = (i__7841__auto___8542 + (1)); i__7841__auto___8542 = G__8543; continue; } else { } break; } } else { var l__7840__auto___8548 = (r1_l - (0)); var n__5593__auto___8552 = l__7840__auto___8548; var i__7841__auto___8553 = (0); while(true){ if((i__7841__auto___8553 < n__5593__auto___8552)){ (r1[(i__7841__auto___8553 + (0))] = (a1[(i__7841__auto___8553 + (0))])); var G__8555 = (i__7841__auto___8553 + (1)); i__7841__auto___8553 = G__8555; continue; } else { } break; } var l__7840__auto___8556 = (a1_l - r1_l); var n__5593__auto___8557 = l__7840__auto___8556; var i__7841__auto___8558 = (0); while(true){ if((i__7841__auto___8558 < n__5593__auto___8557)){ (r2[(i__7841__auto___8558 + (0))] = (a1[(i__7841__auto___8558 + r1_l)])); var G__8559 = (i__7841__auto___8558 + (1)); i__7841__auto___8558 = G__8559; continue; } else { } break; } var l__7840__auto___8560 = (a2_l - (0)); var n__5593__auto___8561 = l__7840__auto___8560; var i__7841__auto___8562 = (0); while(true){ if((i__7841__auto___8562 < n__5593__auto___8561)){ (r2[(i__7841__auto___8562 + (a1_l - r1_l))] = (a2[(i__7841__auto___8562 + (0))])); var G__8565 = (i__7841__auto___8562 + (1)); i__7841__auto___8562 = G__8565; continue; } else { } break; } } return [r1,r2]; }); me.tonsky.persistent_sorted_set.eq_arr = (function me$tonsky$persistent_sorted_set$eq_arr(cmp,a1,a1_from,a1_to,a2,a2_from,a2_to){ var len = (a1_to - a1_from); var and__5000__auto__ = (len === (a2_to - a2_from)); if(and__5000__auto__){ var i = (0); while(true){ if((i === len)){ return true; } else { if((!(((0) === (function (){var G__8227 = (a1[(i + a1_from)]); var G__8228 = (a2[(i + a2_from)]); return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8227,G__8228) : cmp.call(null,G__8227,G__8228)); })())))){ return false; } else { var G__8572 = (i + (1)); i = G__8572; continue; } } break; } } else { return and__5000__auto__; } }); me.tonsky.persistent_sorted_set.check_n_splice = (function me$tonsky$persistent_sorted_set$check_n_splice(cmp,arr,from,to,new_arr){ if(me.tonsky.persistent_sorted_set.eq_arr(cmp,arr,from,to,new_arr,(0),new_arr.length)){ return arr; } else { return me.tonsky.persistent_sorted_set.splice(arr,from,to,new_arr); } }); /** * Drop non-nil references and return array of arguments */ me.tonsky.persistent_sorted_set.return_array = (function me$tonsky$persistent_sorted_set$return_array(var_args){ var G__8239 = arguments.length; switch (G__8239) { case 1: return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$1 = (function (a1){ return [a1]; })); (me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2 = (function (a1,a2){ if(cljs.core.truth_(a1)){ if(cljs.core.truth_(a2)){ return [a1,a2]; } else { return [a1]; } } else { return [a2]; } })); (me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3 = (function (a1,a2,a3){ if(cljs.core.truth_(a1)){ if(cljs.core.truth_(a2)){ if(cljs.core.truth_(a3)){ return [a1,a2,a3]; } else { return [a1,a2]; } } else { if(cljs.core.truth_(a3)){ return [a1,a3]; } else { return [a1]; } } } else { if(cljs.core.truth_(a2)){ if(cljs.core.truth_(a3)){ return [a2,a3]; } else { return [a2]; } } else { return [a3]; } } })); (me.tonsky.persistent_sorted_set.return_array.cljs$lang$maxFixedArity = 3); /** * @interface */ me.tonsky.persistent_sorted_set.INode = function(){}; var me$tonsky$persistent_sorted_set$INode$node_lim_key$dyn_8577 = (function (_){ var x__5350__auto__ = (((_ == null))?null:_); var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_lim_key[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5351__auto__.call(null,_)); } else { var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_lim_key["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5349__auto__.call(null,_)); } else { throw cljs.core.missing_protocol("INode.node-lim-key",_); } } }); me.tonsky.persistent_sorted_set.node_lim_key = (function me$tonsky$persistent_sorted_set$node_lim_key(_){ if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1 == null)))))){ return _.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1(_); } else { return me$tonsky$persistent_sorted_set$INode$node_lim_key$dyn_8577(_); } }); var me$tonsky$persistent_sorted_set$INode$node_len$dyn_8579 = (function (_){ var x__5350__auto__ = (((_ == null))?null:_); var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_len[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5351__auto__.call(null,_)); } else { var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_len["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(_) : m__5349__auto__.call(null,_)); } else { throw cljs.core.missing_protocol("INode.node-len",_); } } }); me.tonsky.persistent_sorted_set.node_len = (function me$tonsky$persistent_sorted_set$node_len(_){ if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_len$arity$1 == null)))))){ return _.me$tonsky$persistent_sorted_set$INode$node_len$arity$1(_); } else { return me$tonsky$persistent_sorted_set$INode$node_len$dyn_8579(_); } }); var me$tonsky$persistent_sorted_set$INode$node_merge$dyn_8581 = (function (_,next){ var x__5350__auto__ = (((_ == null))?null:_); var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_merge[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5351__auto__.call(null,_,next)); } else { var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_merge["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5349__auto__.call(null,_,next)); } else { throw cljs.core.missing_protocol("INode.node-merge",_); } } }); me.tonsky.persistent_sorted_set.node_merge = (function me$tonsky$persistent_sorted_set$node_merge(_,next){ if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2 == null)))))){ return _.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2(_,next); } else { return me$tonsky$persistent_sorted_set$INode$node_merge$dyn_8581(_,next); } }); var me$tonsky$persistent_sorted_set$INode$node_merge_n_split$dyn_8586 = (function (_,next){ var x__5350__auto__ = (((_ == null))?null:_); var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_merge_n_split[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5351__auto__.call(null,_,next)); } else { var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_merge_n_split["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(_,next) : m__5349__auto__.call(null,_,next)); } else { throw cljs.core.missing_protocol("INode.node-merge-n-split",_); } } }); me.tonsky.persistent_sorted_set.node_merge_n_split = (function me$tonsky$persistent_sorted_set$node_merge_n_split(_,next){ if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2 == null)))))){ return _.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2(_,next); } else { return me$tonsky$persistent_sorted_set$INode$node_merge_n_split$dyn_8586(_,next); } }); var me$tonsky$persistent_sorted_set$INode$node_lookup$dyn_8590 = (function (_,cmp,key){ var x__5350__auto__ = (((_ == null))?null:_); var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_lookup[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5351__auto__.call(null,_,cmp,key)); } else { var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_lookup["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5349__auto__.call(null,_,cmp,key)); } else { throw cljs.core.missing_protocol("INode.node-lookup",_); } } }); me.tonsky.persistent_sorted_set.node_lookup = (function me$tonsky$persistent_sorted_set$node_lookup(_,cmp,key){ if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3 == null)))))){ return _.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3(_,cmp,key); } else { return me$tonsky$persistent_sorted_set$INode$node_lookup$dyn_8590(_,cmp,key); } }); var me$tonsky$persistent_sorted_set$INode$node_conj$dyn_8591 = (function (_,cmp,key){ var x__5350__auto__ = (((_ == null))?null:_); var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_conj[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5351__auto__.call(null,_,cmp,key)); } else { var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_conj["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$3 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$3(_,cmp,key) : m__5349__auto__.call(null,_,cmp,key)); } else { throw cljs.core.missing_protocol("INode.node-conj",_); } } }); me.tonsky.persistent_sorted_set.node_conj = (function me$tonsky$persistent_sorted_set$node_conj(_,cmp,key){ if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3 == null)))))){ return _.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3(_,cmp,key); } else { return me$tonsky$persistent_sorted_set$INode$node_conj$dyn_8591(_,cmp,key); } }); var me$tonsky$persistent_sorted_set$INode$node_disj$dyn_8598 = (function (_,cmp,key,root_QMARK_,left,right){ var x__5350__auto__ = (((_ == null))?null:_); var m__5351__auto__ = (me.tonsky.persistent_sorted_set.node_disj[goog.typeOf(x__5350__auto__)]); if((!((m__5351__auto__ == null)))){ return (m__5351__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$6(_,cmp,key,root_QMARK_,left,right) : m__5351__auto__.call(null,_,cmp,key,root_QMARK_,left,right)); } else { var m__5349__auto__ = (me.tonsky.persistent_sorted_set.node_disj["_"]); if((!((m__5349__auto__ == null)))){ return (m__5349__auto__.cljs$core$IFn$_invoke$arity$6 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$6(_,cmp,key,root_QMARK_,left,right) : m__5349__auto__.call(null,_,cmp,key,root_QMARK_,left,right)); } else { throw cljs.core.missing_protocol("INode.node-disj",_); } } }); me.tonsky.persistent_sorted_set.node_disj = (function me$tonsky$persistent_sorted_set$node_disj(_,cmp,key,root_QMARK_,left,right){ if((((!((_ == null)))) && ((!((_.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6 == null)))))){ return _.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6(_,cmp,key,root_QMARK_,left,right); } else { return me$tonsky$persistent_sorted_set$INode$node_disj$dyn_8598(_,cmp,key,root_QMARK_,left,right); } }); me.tonsky.persistent_sorted_set.rotate = (function me$tonsky$persistent_sorted_set$rotate(node,root_QMARK_,left,right){ if(cljs.core.truth_(root_QMARK_)){ return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$1(node); } else { if((me.tonsky.persistent_sorted_set.node_len(node) > me.tonsky.persistent_sorted_set.min_len)){ return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3(left,node,right); } else { if(cljs.core.truth_((function (){var and__5000__auto__ = left; if(cljs.core.truth_(and__5000__auto__)){ return (me.tonsky.persistent_sorted_set.node_len(left) <= me.tonsky.persistent_sorted_set.min_len); } else { return and__5000__auto__; } })())){ return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2(me.tonsky.persistent_sorted_set.node_merge(left,node),right); } else { if(cljs.core.truth_((function (){var and__5000__auto__ = right; if(cljs.core.truth_(and__5000__auto__)){ return (me.tonsky.persistent_sorted_set.node_len(right) <= me.tonsky.persistent_sorted_set.min_len); } else { return and__5000__auto__; } })())){ return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2(left,me.tonsky.persistent_sorted_set.node_merge(node,right)); } else { if(cljs.core.truth_((function (){var and__5000__auto__ = left; if(cljs.core.truth_(and__5000__auto__)){ return (((right == null)) || ((me.tonsky.persistent_sorted_set.node_len(left) < me.tonsky.persistent_sorted_set.node_len(right)))); } else { return and__5000__auto__; } })())){ var nodes = me.tonsky.persistent_sorted_set.node_merge_n_split(left,node); return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3((nodes[(0)]),(nodes[(1)]),right); } else { var nodes = me.tonsky.persistent_sorted_set.node_merge_n_split(node,right); return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$3(left,(nodes[(0)]),(nodes[(1)])); } } } } } }); /** * @constructor * @implements {me.tonsky.persistent_sorted_set.INode} */ me.tonsky.persistent_sorted_set.Node = (function (keys,pointers){ this.keys = keys; this.pointers = pointers; }); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$ = cljs.core.PROTOCOL_SENTINEL); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1 = (function (_){ var self__ = this; var ___$1 = this; var arr__7870__auto__ = self__.keys; return (arr__7870__auto__[(arr__7870__auto__.length - (1))]); })); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_len$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return self__.keys.length; })); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2 = (function (_,next){ var self__ = this; var ___$1 = this; return (new me.tonsky.persistent_sorted_set.Node(me.tonsky.persistent_sorted_set.arrays.aconcat(self__.keys,next.keys),me.tonsky.persistent_sorted_set.arrays.aconcat(self__.pointers,next.pointers))); })); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2 = (function (_,next){ var self__ = this; var ___$1 = this; var ks = me.tonsky.persistent_sorted_set.merge_n_split(self__.keys,next.keys); var ps = me.tonsky.persistent_sorted_set.merge_n_split(self__.pointers,next.pointers); return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2((new me.tonsky.persistent_sorted_set.Node((ks[(0)]),(ps[(0)]))),(new me.tonsky.persistent_sorted_set.Node((ks[(1)]),(ps[(1)])))); })); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3 = (function (_,cmp,key){ var self__ = this; var ___$1 = this; var idx = me.tonsky.persistent_sorted_set.lookup_range(cmp,self__.keys,key); if(((-1) === idx)){ return null; } else { return me.tonsky.persistent_sorted_set.node_lookup((self__.pointers[idx]),cmp,key); } })); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3 = (function (_,cmp,key){ var self__ = this; var ___$1 = this; var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,self__.keys,(self__.keys.length - (2)),key); var nodes = me.tonsky.persistent_sorted_set.node_conj((self__.pointers[idx]),cmp,key); if(cljs.core.truth_(nodes)){ var new_keys = me.tonsky.persistent_sorted_set.check_n_splice(cmp,self__.keys,idx,(idx + (1)),me.tonsky.persistent_sorted_set.arrays.amap(me.tonsky.persistent_sorted_set.node_lim_key,nodes)); var new_pointers = me.tonsky.persistent_sorted_set.splice(self__.pointers,idx,(idx + (1)),nodes); if((new_pointers.length <= me.tonsky.persistent_sorted_set.max_len)){ return [(new me.tonsky.persistent_sorted_set.Node(new_keys,new_pointers))]; } else { var middle = (new_pointers.length >>> (1)); return [(new me.tonsky.persistent_sorted_set.Node(new_keys.slice((0),middle),new_pointers.slice((0),middle))),(new me.tonsky.persistent_sorted_set.Node(new_keys.slice(middle),new_pointers.slice(middle)))]; } } else { return null; } })); (me.tonsky.persistent_sorted_set.Node.prototype.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6 = (function (_,cmp,key,root_QMARK_,left,right){ var self__ = this; var ___$1 = this; var idx = me.tonsky.persistent_sorted_set.lookup_range(cmp,self__.keys,key); if(((-1) === idx)){ return null; } else { var child = (self__.pointers[idx]); var left_child = ((((idx - (1)) >= (0)))?(self__.pointers[(idx - (1))]):null); var right_child = ((((idx + (1)) < self__.pointers.length))?(self__.pointers[(idx + (1))]):null); var disjned = me.tonsky.persistent_sorted_set.node_disj(child,cmp,key,false,left_child,right_child); if(cljs.core.truth_(disjned)){ var left_idx = (cljs.core.truth_(left_child)?(idx - (1)):idx); var right_idx = (cljs.core.truth_(right_child)?((2) + idx):((1) + idx)); var new_keys = me.tonsky.persistent_sorted_set.check_n_splice(cmp,self__.keys,left_idx,right_idx,me.tonsky.persistent_sorted_set.arrays.amap(me.tonsky.persistent_sorted_set.node_lim_key,disjned)); var new_pointers = me.tonsky.persistent_sorted_set.splice(self__.pointers,left_idx,right_idx,disjned); return me.tonsky.persistent_sorted_set.rotate((new me.tonsky.persistent_sorted_set.Node(new_keys,new_pointers)),root_QMARK_,left,right); } else { return null; } } })); (me.tonsky.persistent_sorted_set.Node.getBasis = (function (){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"keys","keys",-1586012071,null),new cljs.core.Symbol(null,"pointers","pointers",-1669058356,null)], null); })); (me.tonsky.persistent_sorted_set.Node.cljs$lang$type = true); (me.tonsky.persistent_sorted_set.Node.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/Node"); (me.tonsky.persistent_sorted_set.Node.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){ return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/Node"); })); /** * Positional factory function for me.tonsky.persistent-sorted-set/Node. */ me.tonsky.persistent_sorted_set.__GT_Node = (function me$tonsky$persistent_sorted_set$__GT_Node(keys,pointers){ return (new me.tonsky.persistent_sorted_set.Node(keys,pointers)); }); /** * @constructor * @implements {me.tonsky.persistent_sorted_set.INode} */ me.tonsky.persistent_sorted_set.Leaf = (function (keys){ this.keys = keys; }); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$ = cljs.core.PROTOCOL_SENTINEL); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_lim_key$arity$1 = (function (_){ var self__ = this; var ___$1 = this; var arr__7870__auto__ = self__.keys; return (arr__7870__auto__[(arr__7870__auto__.length - (1))]); })); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_len$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return self__.keys.length; })); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_merge$arity$2 = (function (_,next){ var self__ = this; var ___$1 = this; return (new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.arrays.aconcat(self__.keys,next.keys))); })); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_merge_n_split$arity$2 = (function (_,next){ var self__ = this; var ___$1 = this; var ks = me.tonsky.persistent_sorted_set.merge_n_split(self__.keys,next.keys); return me.tonsky.persistent_sorted_set.return_array.cljs$core$IFn$_invoke$arity$2((new me.tonsky.persistent_sorted_set.Leaf((ks[(0)]))),(new me.tonsky.persistent_sorted_set.Leaf((ks[(1)])))); })); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_lookup$arity$3 = (function (_,cmp,key){ var self__ = this; var ___$1 = this; var idx = me.tonsky.persistent_sorted_set.lookup_exact(cmp,self__.keys,key); if(((-1) === idx)){ return null; } else { return (self__.keys[idx]); } })); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_conj$arity$3 = (function (_,cmp,key){ var self__ = this; var ___$1 = this; var idx = me.tonsky.persistent_sorted_set.binary_search_l(cmp,self__.keys,(self__.keys.length - (1)),key); var keys_l = self__.keys.length; if((((idx < keys_l)) && (((0) === (function (){var G__8288 = key; var G__8289 = (self__.keys[idx]); return (cmp.cljs$core$IFn$_invoke$arity$2 ? cmp.cljs$core$IFn$_invoke$arity$2(G__8288,G__8289) : cmp.call(null,G__8288,G__8289)); })())))){ return null; } else { if((keys_l === me.tonsky.persistent_sorted_set.max_len)){ var middle = ((keys_l + (1)) >>> (1)); if((idx > middle)){ return [(new me.tonsky.persistent_sorted_set.Leaf(self__.keys.slice((0),middle))),(new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.cut_n_splice(self__.keys,middle,keys_l,idx,idx,[key])))]; } else { return [(new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.cut_n_splice(self__.keys,(0),middle,idx,idx,[key]))),(new me.tonsky.persistent_sorted_set.Leaf(self__.keys.slice(middle,keys_l)))]; } } else { return [(new me.tonsky.persistent_sorted_set.Leaf(me.tonsky.persistent_sorted_set.splice(self__.keys,idx,idx,[key])))]; } } })); (me.tonsky.persistent_sorted_set.Leaf.prototype.me$tonsky$persistent_sorted_set$INode$node_disj$arity$6 = (function (_,cmp,key,root_QMARK_,left,right){ var self__ = this; var ___$1 = this; var idx = me.tonsky.persistent_sorted_set.lookup_exact(cmp,self__.keys,key); if(((-1) === idx)){ return null; } else { var new_keys = me.tonsky.persistent_sorted_set.splice(self__.keys,idx,(idx + (1)),[]); return me.tonsky.persistent_sorted_set.rotate((new me.tonsky.persistent_sorted_set.Leaf(new_keys)),root_QMARK_,left,right); } })); (me.tonsky.persistent_sorted_set.Leaf.getBasis = (function (){ return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"keys","keys",-1586012071,null)], null); })); (me.tonsky.persistent_sorted_set.Leaf.cljs$lang$type = true); (me.tonsky.persistent_sorted_set.Leaf.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/Leaf"); (me.tonsky.persistent_sorted_set.Leaf.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){ return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/Leaf"); })); /** * Positional factory function for me.tonsky.persistent-sorted-set/Leaf. */ me.tonsky.persistent_sorted_set.__GT_Leaf = (function me$tonsky$persistent_sorted_set$__GT_Leaf(keys){ return (new me.tonsky.persistent_sorted_set.Leaf(keys)); }); me.tonsky.persistent_sorted_set.uninitialized_hash = null; /** * @constructor * @implements {cljs.core.IReversible} * @implements {cljs.core.ITransientSet} * @implements {cljs.core.IEquiv} * @implements {cljs.core.IHash} * @implements {cljs.core.IFn} * @implements {cljs.core.ICollection} * @implements {cljs.core.IEditableCollection} * @implements {cljs.core.ISet} * @implements {cljs.core.IEmptyableCollection} * @implements {cljs.core.ICounted} * @implements {cljs.core.ISeqable} * @implements {cljs.core.IMeta} * @implements {cljs.core.ICloneable} * @implements {cljs.core.ITransientCollection} * @implements {cljs.core.IPrintWithWriter} * @implements {cljs.core.IWithMeta} * @implements {cljs.core.ILookup} * @implements {cljs.core.IReduce} */ me.tonsky.persistent_sorted_set.BTSet = (function (root,shift,cnt,comparator,meta,_hash){ this.root = root; this.shift = shift; this.cnt = cnt; this.comparator = comparator; this.meta = meta; this._hash = _hash; this.cljs$lang$protocol_mask$partition0$ = 2297303311; this.cljs$lang$protocol_mask$partition1$ = 8332; }); (me.tonsky.persistent_sorted_set.BTSet.prototype.toString = (function (){ var self__ = this; var this$ = this; return cljs.core.pr_str_STAR_(this$); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (_,k){ var self__ = this; var ___$1 = this; return me.tonsky.persistent_sorted_set.node_lookup(self__.root,self__.comparator,k); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (_,k,not_found){ var self__ = this; var ___$1 = this; var or__5002__auto__ = me.tonsky.persistent_sorted_set.node_lookup(self__.root,self__.comparator,k); if(cljs.core.truth_(or__5002__auto__)){ return or__5002__auto__; } else { return not_found; } })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this$,writer,opts){ var self__ = this; var this$__$1 = this; return cljs.core.pr_sequential_writer(writer,cljs.core.pr_writer,"#{"," ","}",opts,cljs.core.seq(this$__$1)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return self__.meta; })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return (new me.tonsky.persistent_sorted_set.BTSet(self__.root,self__.shift,self__.cnt,self__.comparator,self__.meta,self__._hash)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ICounted$_count$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return self__.cnt; })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IReversible$_rseq$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return cljs.core.rseq((me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1))); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IHash$_hash$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; var h__5111__auto__ = self__._hash; if((!((h__5111__auto__ == null)))){ return h__5111__auto__; } else { var h__5111__auto____$1 = cljs.core.hash_unordered_coll(this$__$1); (self__._hash = h__5111__auto____$1); return h__5111__auto____$1; } })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this$,other){ var self__ = this; var this$__$1 = this; return ((cljs.core.set_QMARK_(other)) && ((((self__.cnt === cljs.core.count(other))) && (cljs.core.every_QMARK_((function (p1__8290_SHARP_){ return cljs.core.contains_QMARK_(this$__$1,p1__8290_SHARP_); }),other))))); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IEditableCollection$_as_transient$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return this$__$1; })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IEmptyableCollection$_empty$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return (new me.tonsky.persistent_sorted_set.BTSet((new me.tonsky.persistent_sorted_set.Leaf([])),(0),(0),self__.comparator,self__.meta,null)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ISet$_disjoin$arity$2 = (function (this$,key){ var self__ = this; var this$__$1 = this; return (me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.disj.call(null,this$__$1,key,self__.comparator)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IReduce$_reduce$arity$2 = (function (this$,f){ var self__ = this; var this$__$1 = this; var temp__5802__auto__ = (me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1)); if(cljs.core.truth_(temp__5802__auto__)){ var i = temp__5802__auto__; return cljs.core._reduce(i,f); } else { return (f.cljs$core$IFn$_invoke$arity$0 ? f.cljs$core$IFn$_invoke$arity$0() : f.call(null)); } })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IReduce$_reduce$arity$3 = (function (this$,f,start){ var self__ = this; var this$__$1 = this; var temp__5802__auto__ = (me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1)); if(cljs.core.truth_(temp__5802__auto__)){ var i = temp__5802__auto__; return cljs.core._reduce(i,f,start); } else { return start; } })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ITransientCollection$_conj_BANG_$arity$2 = (function (this$,key){ var self__ = this; var this$__$1 = this; return (me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.conj.call(null,this$__$1,key,self__.comparator)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ITransientCollection$_persistent_BANG_$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return this$__$1; })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return (me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1 ? me.tonsky.persistent_sorted_set.btset_iter.cljs$core$IFn$_invoke$arity$1(this$__$1) : me.tonsky.persistent_sorted_set.btset_iter.call(null,this$__$1)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ITransientSet$_disjoin_BANG_$arity$2 = (function (this$,key){ var self__ = this; var this$__$1 = this; return (me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.disj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.disj.call(null,this$__$1,key,self__.comparator)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_,new_meta){ var self__ = this; var ___$1 = this; return (new me.tonsky.persistent_sorted_set.BTSet(self__.root,self__.shift,self__.cnt,self__.comparator,new_meta,self__._hash)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this$,key){ var self__ = this; var this$__$1 = this; return (me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.conj.cljs$core$IFn$_invoke$arity$3(this$__$1,key,self__.comparator) : me.tonsky.persistent_sorted_set.conj.call(null,this$__$1,key,self__.comparator)); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.call = (function (unused__10318__auto__){ var self__ = this; var self__ = this; var G__8300 = (arguments.length - (1)); switch (G__8300) { case (1): return self__.cljs$core$IFn$_invoke$arity$1((arguments[(1)])); break; case (2): return self__.cljs$core$IFn$_invoke$arity$2((arguments[(1)]),(arguments[(2)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1((arguments.length - (1)))].join(''))); } })); (me.tonsky.persistent_sorted_set.BTSet.prototype.apply = (function (self__,args8293){ var self__ = this; var self____$1 = this; return self____$1.call.apply(self____$1,[self____$1].concat(cljs.core.aclone(args8293))); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IFn$_invoke$arity$1 = (function (k){ var self__ = this; var this$ = this; return this$.cljs$core$ILookup$_lookup$arity$2(null,k); })); (me.tonsky.persistent_sorted_set.BTSet.prototype.cljs$core$IFn$_invoke$arity$2 = (function (k,not_found){ var self__ = this; var this$ = this; return this$.cljs$core$ILookup$_lookup$arity$3(null,k,not_found); })); (me.tonsky.persistent_sorted_set.BTSet.getBasis = (function (){ return new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"root","root",1191874074,null),new cljs.core.Symbol(null,"shift","shift",-1657295705,null),new cljs.core.Symbol(null,"cnt","cnt",1924510325,null),new cljs.core.Symbol(null,"comparator","comparator",-509539107,null),new cljs.core.Symbol(null,"meta","meta",-1154898805,null),cljs.core.with_meta(new cljs.core.Symbol(null,"_hash","_hash",-2130838312,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"mutable","mutable",875778266),true], null))], null); })); (me.tonsky.persistent_sorted_set.BTSet.cljs$lang$type = true); (me.tonsky.persistent_sorted_set.BTSet.cljs$lang$ctorStr = "me.tonsky.persistent-sorted-set/BTSet"); (me.tonsky.persistent_sorted_set.BTSet.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){ return cljs.core._write(writer__5288__auto__,"me.tonsky.persistent-sorted-set/BTSet"); })); /** * Positional factory function for me.tonsky.persistent-sorted-set/BTSet. */ me.tonsky.persistent_sorted_set.__GT_BTSet = (function me$tonsky$persistent_sorted_set$__GT_BTSet(root,shift,cnt,comparator,meta,_hash){ return (new me.tonsky.persistent_sorted_set.BTSet(root,shift,cnt,comparator,meta,_hash)); }); me.tonsky.persistent_sorted_set.keys_for = (function me$tonsky$persistent_sorted_set$keys_for(set,path){ var level = set.shift; var node = set.root; while(true){ if((level > (0))){ var G__8641 = (level - (1)); var G__8642 = (node.pointers[me.tonsky.persistent_sorted_set.path_get(path,level)]); level = G__8641; node = G__8642; continue; } else { return node.keys; } break; } }); me.tonsky.persistent_sorted_set.alter_btset = (function me$tonsky$persistent_sorted_set$alter_btset(set,root,shift,cnt){ return (new me.tonsky.persistent_sorted_set.BTSet(root,shift,cnt,set.comparator,set.meta,null)); }); me.tonsky.persistent_sorted_set._next_path = (function me$tonsky$persistent_sorted_set$_next_path(node,path,level){ var idx = me.tonsky.persistent_sorted_set.path_get(path,level); if((level > (0))){ var sub_path = (function (){var G__8305 = (node.pointers[idx]); var G__8306 = path; var G__8307 = (level - (1)); return (me.tonsky.persistent_sorted_set._next_path.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set._next_path.cljs$core$IFn$_invoke$arity$3(G__8305,G__8306,G__8307) : me.tonsky.persistent_sorted_set._next_path.call(null,G__8305,G__8306,G__8307)); })(); if((sub_path == null)){ if(((idx + (1)) < node.pointers.length)){ return me.tonsky.persistent_sorted_set.path_set((0),level,(idx + (1))); } else { return null; } } else { return me.tonsky.persistent_sorted_set.path_set(sub_path,level,idx); } } else { if(((idx + (1)) < node.keys.length)){ return me.tonsky.persistent_sorted_set.path_set((0),(0),(idx + (1))); } else { return null; } } }); /** * Returns rightmost path possible starting from node and going deeper */ me.tonsky.persistent_sorted_set._rpath = (function me$tonsky$persistent_sorted_set$_rpath(node,path,level){ var node__$1 = node; var path__$1 = path; var level__$1 = level; while(true){ if((level__$1 > (0))){ var G__8646 = (function (){var arr__7870__auto__ = node__$1.pointers; return (arr__7870__auto__[(arr__7870__auto__.length - (1))]); })(); var G__8647 = me.tonsky.persistent_sorted_set.path_set(path__$1,level__$1,(node__$1.pointers.length - (1))); var G__8648 = (level__$1 - (1)); node__$1 = G__8646; path__$1 = G__8647; level__$1 = G__8648; continue; } else { return me.tonsky.persistent_sorted_set.path_set(path__$1,(0),(node__$1.keys.length - (1))); } break; } }); /** * Returns path representing next item after `path` in natural traversal order. * Will overflow at leaf if at the end of the tree */ me.tonsky.persistent_sorted_set.next_path = (function me$tonsky$persistent_sorted_set$next_path(set,path){ if((path < (0))){ return (0); } else { var or__5002__auto__ = me.tonsky.persistent_sorted_set._next_path(set.root,path,set.shift); if(cljs.core.truth_(or__5002__auto__)){ return or__5002__auto__; } else { return me.tonsky.persistent_sorted_set.path_inc(me.tonsky.persistent_sorted_set._rpath(set.root,(0),set.shift)); } } }); me.tonsky.persistent_sorted_set._prev_path = (function me$tonsky$persistent_sorted_set$_prev_path(node,path,level){ var idx = me.tonsky.persistent_sorted_set.path_get(path,level); if(((((0) === level)) && (((0) === idx)))){ return null; } else { if(((0) === level)){ return me.tonsky.persistent_sorted_set.path_set((0),(0),(idx - (1))); } else { if((idx >= me.tonsky.persistent_sorted_set.node_len(node))){ return me.tonsky.persistent_sorted_set._rpath(node,path,level); } else { var path_SINGLEQUOTE_ = (function (){var G__8311 = (node.pointers[idx]); var G__8312 = path; var G__8313 = (level - (1)); return (me.tonsky.persistent_sorted_set._prev_path.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set._prev_path.cljs$core$IFn$_invoke$arity$3(G__8311,G__8312,G__8313) : me.tonsky.persistent_sorted_set._prev_path.call(null,G__8311,G__8312,G__8313)); })(); if((!((path_SINGLEQUOTE_ == null)))){ return me.tonsky.persistent_sorted_set.path_set(path_SINGLEQUOTE_,level,idx); } else { if(((0) === idx)){ return null; } else { var path_SINGLEQUOTE___$1 = me.tonsky.persistent_sorted_set._rpath((node.pointers[(idx - (1))]),path,(level - (1))); return me.tonsky.persistent_sorted_set.path_set(path_SINGLEQUOTE___$1,level,(idx - (1))); } } } } } }); /** * Returns path representing previous item before `path` in natural traversal order. * Will overflow at leaf if at beginning of tree */ me.tonsky.persistent_sorted_set.prev_path = (function me$tonsky$persistent_sorted_set$prev_path(set,path){ if((me.tonsky.persistent_sorted_set.path_get(path,(set.shift + (1))) > (0))){ return me.tonsky.persistent_sorted_set._rpath(set.root,path,set.shift); } else { var or__5002__auto__ = me.tonsky.persistent_sorted_set._prev_path(set.root,path,set.shift); if(cljs.core.truth_(or__5002__auto__)){ return or__5002__auto__; } else { return me.tonsky.persistent_sorted_set.path_dec((0)); } } }); /** * Iterator that represents the whole set */ me.tonsky.persistent_sorted_set.btset_iter = (function me$tonsky$persistent_sorted_set$btset_iter(set){ if((me.tonsky.persistent_sorted_set.node_len(set.root) > (0))){ var left = (0); var rpath = me.tonsky.persistent_sorted_set._rpath(set.root,(0),set.shift); var right = me.tonsky.persistent_sorted_set.next_path(set,rpath); return (me.tonsky.persistent_sorted_set.iter.cljs$core$IFn$_invoke$arity$3 ? me.tonsky.persistent_sorted_set.iter.cljs$core$IFn$_invoke$arity$3(set,left,right) : me.tonsky.persistent_sorted_set.iter.call(null,set,left,right)); } else { return null; } }); /** * @constructor * @implements {cljs.core.IIndexed} * @implements {cljs.core.ICounted} * @implements {cljs.core.IChunk} * @implements {cljs.core.IReduce} */ me.tonsky.persistent_sorted_set.Chunk = (function (arr,off,end){ this.arr = arr; this.off = off; this.end = end; this.cljs$lang$protocol_mask$partition0$ = 524306; this.cljs$lang$protocol_mask$partition1$ = 0; }); (me.tonsky.persistent_sorted_set.Chunk.prototype.cljs$core$ICounted$_count$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return (self__.end - self__.off); })); (me.tonsky.