%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
;ELC ;;; Compiled ;;; in Emacs version 25.2.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defalias 'avl-tree-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block avl-tree-p (declare (side-effect-free error-free)) (and (vectorp cl-x) (>= (length cl-x) 3) (memq (aref cl-x 0) cl-struct-avl-tree--tags) t)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'avl-tree-p 'compiler-macro 'avl-tree-p--cmacro) (defalias 'avl-tree-p #[257 "\301!\205 \211G\302Y\205 \211\303H>\205 \304\207" [cl-struct-avl-tree--tags vectorp 3 0 t] 3 "\n\n(fn CL-X)"]) (byte-code "\300\301\302\303#\210\304\305\306\301#\207" [function-put avl-tree-p side-effect-free error-free put avl-tree- cl-deftype-satisfies] 4) (defalias 'avl-tree--dummyroot--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block avl-tree--dummyroot (declare (side-effect-free t)) (or (and (memq (aref cl-x 0) cl-struct-avl-tree--tags)) (signal 'wrong-type-argument (list 'avl-tree- cl-x))) (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'avl-tree--dummyroot 'compiler-macro 'avl-tree--dummyroot--cmacro) (defalias 'avl-tree--dummyroot #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-avl-tree--tags 0 signal wrong-type-argument avl-tree- 1] 5 "\n\n(fn CL-X)"]) (function-put 'avl-tree--dummyroot 'side-effect-free t) (defalias 'avl-tree--cmpfun--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block avl-tree--cmpfun (declare (side-effect-free t)) (or (and (memq (aref cl-x 0) cl-struct-avl-tree--tags)) (signal 'wrong-type-argument (list 'avl-tree- cl-x))) (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'avl-tree--cmpfun 'compiler-macro 'avl-tree--cmpfun--cmacro) (defalias 'avl-tree--cmpfun #[257 "\211\301H>\204 \302\303\304D\"\210\211\305H\207" [cl-struct-avl-tree--tags 0 signal wrong-type-argument avl-tree- 2] 5 "\n\n(fn CL-X)"]) (function-put 'avl-tree--cmpfun 'side-effect-free t) (defalias 'avl-tree--create--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cmpfun) (cl-block avl-tree--create "Constructor for objects of type `avl-tree-'." (vector 'cl-struct-avl-tree- (avl-tree--node-create nil nil nil 0) cmpfun)) nil] 9 "\n\n(fn CL-WHOLE-ARG CMPFUN)"]) (put 'avl-tree--create 'compiler-macro 'avl-tree--create--cmacro) #@59 Constructor for objects of type `avl-tree-'. (fn CMPFUN) (defalias 'avl-tree--create #[257 "\300\301\302\303\211\211\304$#\207" [vector cl-struct-avl-tree- avl-tree--node-create nil 0] 8 (#$ . 2667)]) (byte-code "\300\301\302\303\302\211\304\305\306\307& \207" [cl-struct-define avl-tree- nil cl-structure-object ((cl-tag-slot) (dummyroot (avl-tree--node-create nil nil nil 0)) (cmpfun)) cl-struct-avl-tree--tags cl-struct-avl-tree- t] 10) (defalias 'avl-tree--root '(macro . #[257 "\300\301DD\207" [avl-tree--node-left avl-tree--dummyroot] 4 "\n\n(fn TREE)"])) (defalias 'avl-tree--node-left--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block avl-tree--node-left (declare (side-effect-free t)) (aref cl-x 0)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'avl-tree--node-left 'compiler-macro 'avl-tree--node-left--cmacro) (defalias 'avl-tree--node-left #[257 "\211\300H\207" [0] 3 "\n\n(fn CL-X)"]) (function-put 'avl-tree--node-left 'side-effect-free t) (defalias 'avl-tree--node-right--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block avl-tree--node-right (declare (side-effect-free t)) (aref cl-x 1)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'avl-tree--node-right 'compiler-macro 'avl-tree--node-right--cmacro) (defalias 'avl-tree--node-right #[257 "\211\300H\207" [1] 3 "\n\n(fn CL-X)"]) (function-put 'avl-tree--node-right 'side-effect-free t) (defalias 'avl-tree--node-data--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block avl-tree--node-data (declare (side-effect-free t)) (aref cl-x 2)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'avl-tree--node-data 'compiler-macro 'avl-tree--node-data--cmacro) (defalias 'avl-tree--node-data #[257 "\211\300H\207" [2] 3 "\n\n(fn CL-X)"]) (function-put 'avl-tree--node-data 'side-effect-free t) (defalias 'avl-tree--node-balance--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block avl-tree--node-balance (declare (side-effect-free t)) (aref cl-x 3)) nil] 9 "\n\n(fn CL-WHOLE-ARG CL-X)"]) (put 'avl-tree--node-balance 'compiler-macro 'avl-tree--node-balance--cmacro) (defalias 'avl-tree--node-balance #[257 "\211\300H\207" [3] 3 "\n\n(fn CL-X)"]) (function-put 'avl-tree--node-balance 'side-effect-free t) (defalias 'avl-tree--node-create--cmacro #[1285 "\300\301\302\303\211\211 & \207" [cl--defsubst-expand (left right data balance) (cl-block avl-tree--node-create "Constructor for objects of type `avl-tree--node'." (declare (side-effect-free t)) (vector left right data balance)) nil] 15 "\n\n(fn CL-WHOLE-ARG LEFT RIGHT DATA BALANCE)"]) (put 'avl-tree--node-create 'compiler-macro 'avl-tree--node-create--cmacro) #@81 Constructor for objects of type `avl-tree--node'. (fn LEFT RIGHT DATA BALANCE) (defalias 'avl-tree--node-create #[1028 "\300$\207" [vector] 9 (#$ . 5389)]) (byte-code "\300\301\302\303#\210\304\305\306\211\307\306\310\311\312\306& \210\313\314\315\316#\210\317\314\320\321#\207" [function-put avl-tree--node-create side-effect-free t cl-struct-define avl-tree--node nil vector ((left) (right) (data) (balance)) cl-struct-avl-tree--node-tags cl-struct-avl-tree--node defalias avl-tree--node-branch aref "Get value of a branch of a node.\nNODE is the node, and BRANCH is the branch.\n0 for left pointer, 1 for right pointer and 2 for the data." put gv-expander #[385 "\300\301\302$\207" [gv--defsetter avl-tree--node-branch #[385 "\300\301C\"B\207" [aset append] 6 "\n\n(fn VAL &rest ARGS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 10) #@67 Return opposite direction to DIR (0 = left, 1 = right). (fn DIR) (defalias 'avl-tree--switch-dir '(macro . #[257 "\300\301E\207" [- 1] 4 (#$ . 6228)])) #@59 Convert direction (0,1) to sign factor (-1,+1). (fn DIR) (defalias 'avl-tree--dir-to-sign '(macro . #[257 "\300\301\302ED\207" [1- * 2] 5 (#$ . 6388)])) #@59 Convert sign factor (-x,+x) to direction (0,1). (fn DIR) (defalias 'avl-tree--sign-to-dir '(macro . #[257 "\300\301\302BB\303BB\207" [if < (0) (0 1)] 5 (#$ . 6549)])) #@238 Rebalance a tree after deleting a node. The deletion was done from the left (DIR=0) or right (DIR=1) sub-tree of the left (BRANCH=0) or right (BRANCH=1) child of NODE. Return t if the height of the tree has shrunk. (fn NODE BRANCH DIR) (defalias 'avl-tree--del-balance #[771 "\300\"\301Z\302_S\303\211\211\211\304H_\305V\203&