arxiv: v3 [cs.ds] 21 Feb 2012

Size: px
Start display at page:

Download "arxiv: v3 [cs.ds] 21 Feb 2012"

Transcription

1 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property Gert Stølting Brodal 1 and Casper Kejlberg-Rasmussen 1 1 MADALGO, Department of Computer Science, Aarus University, Denmark arxiv: v3 [cs.ds] 21 Feb 2012 Abstract In tis paper we present an implicit dynamic dictionary wit te working-set property, supporting insert(e) and delete(e) in O(log n) time, predecessor(e) in O(log l p(e) ) time, successor(e) in O(log l s(e) ) time and searc(e) in O(log min(l p(e), l e, l s(e) )) time, were n is te number of elements stored in te dictionary, l e is te number of distinct elements searced for since element e was last searced for and p(e) and s(e) are te predecessor and successor of e, respectively. Te time-bounds are all worst-case. Te dictionary stores te elements in an array of size n using no additional space. In te cace-oblivious model te log is base B and te cace-obliviousness is due to our black box use of an existing cace-oblivious implicit dictionary. Tis is te first implicit dictionary supporting predecessor and successor searces in te working-set bound. Previous implicit structures required O(log n) time ACM Subject Classification Algoritms and data structures, E.1 Data Structures Keywords and prases working-set property, dictionary, implicit, cace-oblivious, worst-case, external memory, I/O efficient 1 Introduction In tis paper we consider te problem of maintaining a cace-oblivious implicit dictionary [13] wit te working-set property over a dynamically canging set P of P = n distinct and totally ordered elements. We define te working-set number of an element e P to be l e = {e P we ave searced for e after we last searced for e}. An implicit dictionary maintains n distinct keys witout using any oter space tan tat of te n keys, i.e. te data structure is encoded by permuting te n elements. Te fundamental trick in te implicit model, [12], is to encode a bit using two distinct elements x and y: if min(x, y) is before max(x, y) ten x and y encode a 0 bit, else tey encode a 1 bit. Tis can ten be used to encode l bits using 2l elements. Te implicit model is a restricted version of te unit cost RAM model wit a word size of O(log n). Te restrictions are tat between operations we are only allowed to use an array of te n input elements to store our data structures by permuting te input elements, i.e., tere can be used no additional space between operations. In operations we are allowed to use O(1) extra words. Furtermore we assume tat te number of elements n in te dictionary is externally maintained. Our structure will support te following operations: Searc(e) determines if e is in te dictionary, if so its working-set number is set to 0. Predecessor(e) will find max{e P { } e < e}, witout canging any working-set numbers. Successor(e) will find min{e P { } e < e }, witout canging any working-set numbers. Center for Massive Data Algoritmics, a Center of te Danis National Researc Foundation Gert Stølting Brodal and Casper Kejlberg-Rasmussen; licensed under Creative Commons License BY Leibniz International Proceedings in Informatics Scloss Dagstul Leibniz-Zentrum für Informatik, Dagstul Publising, Germany

2 2 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property Ref. WS Insert/ Pred(e)/ Additional Searc(e) prop. Delete(e) Succ(e) words [12] O(log ( 2 n) ) O(log ( 2 n) ) None [7] O O None log 2 n log log n log 2 n log log n [9] O(log n) amor. O(log n) O(log n) None [8] O(log n) O(log n) O(log n) None [11] + O(log n) O(log l e) O(log l e ) O(n) [3, Sec. 2] + O(log n) O(log l e) exp. O(log n) O(log log n) [3, Sec. 3] + O(log n) O(log l e) exp. O(log l e ) exp. O( n) [4] + O(log n) O(log l e) O(log n) None Tis paper + O(log n) O(log min(l p(e), l s(e), l e)) O(log l e ) None Table 1 Te operation time and space overead of important structures for te dictionary problem. Here e is te predecessor or successor in te given context. In a searc for an element e tat is not present in te dictionary l e is n. Insert(e) inserts e into te dictionary wit at working-set number of 0, all oter working-set numbers are increased by one. Delete(e) deletes e from te dictionary, and does not cange te working-set number of any element. Tere are numerous data structures and algoritms in te implicit model wic range from binary eaps [16] to in-place 3-D convex ull algoritms [6]. Tere as been a continuous development of implicit dictionaries, te first milestone was te implicit AVL-tree [12] aving bounds of O(log 2 n). Te second milestone was te implicit B-tree [7] aving bounds of O(log 2 n/ log log n) te tird was te flat implicit tree [9] obtaining O(log n) worst-case time for searcing and amortized bounds for updates. Te fourt milestone is te optimal implicit dictionary [8] obtaining worst-case O(log n) for searc, update, predecessor and successor. Numerous non-implicit dictionaries attain te working-set property; splay trees [15], skip list variants [2], te working-set structure in [11], and two structures presented in [3]. All acieve te property in te amortized, expected or worst-case sense. Te unified access bound, wic is acieved in [1], even combines te working-set property wit finger searc. In finger searc we ave a finger located on an element f and te searc cost of finding say element e is a function of d(f, e) wic is te rank distance between elements f and e. Te unified bound combines tese two to obtain a bound of O(min e P {log(l e + d(e, f) + 2)}). Table 1 gives an overview of previous results, and our contribution. Te dictionary in [8] is, in addition to being implicit, also designed for te cace-oblivious model [10], were all te operations imply O(log B n) cace-misses. Here B is te cace-line lengt wic is unknown to te algoritm. Te cace-oblivious property also carries over into our dictionary. Our structure combines te two worlds of implicit dictionaries and dictionaries wit te working-set property to obtain te first implicit dictionary wit te working-set property supporting searc, predecessor and successor queries in te working-set bound. Te result of tis paper is summarized in Teorem 1. Teorem 1. Tere exists a cace-oblivious implicit dynamic dictionary wit te working-set property tat supports te operations insert and delete in time O(log n) and O(log B n) cacemisses, searc, predecessor and successor in time O(log min(l p(e), l e, l s(e) )), O(log l p(e) ) and O(log l s(e) ), and cace-misses O(log B min(l p(e), l e, l s(e) )), O(log B l p(e) ) and O(log B l s(e) ), respectively, were p(e) and s(e) are te predecessor and successor of e, respectively.

3 G. S. Brodal and C. Kejlberg-Rasmussen 3 Similarly to previous work [1, 4] we partition te dictionary elements into O(log log n) blocks B 0,, B m, of double exponential increasing sizes, were B 0 stores te most recently accessed elements. Te structure in [4] supports predecessors and successors queries, but tere is no way of knowing if an element is actually te predecessor or successor, witout querying all blocks, wic results in O(log n) time bounds. We solve tis problem by introducing te notion of intervals and particularly a dynamic implicit representation of tese. We represent te wole interval [min(p ); max(p )] by a set of disjoint intervals spread across te different blocks. Any point tat intersects an interval in block B i will lie in block B i and ave a working-set number of at least 2 2i. Tis way wen we searc for te predecessor or successor of an element and it an interval, ten no more points can be contained in te interval in iger blocks, and we can avoid looking at tese, wic give working-set bounds for te searc, predecessor and successor queries. 2 Data structure We now describe our data structure and its invariants. We will use te moveable dictionary from [4] as a black box. Te dictionary over a point set S is laid out in te memory addresses [i; j]. It supports te following operations in O(log n ) time and O(log B n ) cace-misses, were n = j i + 1: Insert-left(e) inserts e into S wic is now laid out in te addresses [i 1; j]. Insert-rigt(e) inserts e into S wic is now laid out in te addresses [i; j + 1]. Delete-left(e) deletes e from S wic is now laid out in te addresses [i + 1; j]. Delete-rigt(e) deletes e from S wic is now laid out in te addresses [i; j 1]. Searc(e) determines if e S, if so te address of element e is returned. Predecessor(e) returns te address of te element max{e S e < e} or tat no suc element exists. Successor(e) returns te address of te element min{e S e < e } or tat no suc element exists. From tese operations we notice tat we can move te moveable dictionary, say left, by performing a delete-rigt operation for an arbitrary element and re-inserting te element again by an insert-left operation. Similarly we can also move te dictionary one position to te rigt. Our structure consists of m = Θ(log log n) blocks B 0,, B m, eac block B i is of size O(2 2i+k ), were k is a constant. Elements in B i ave a working-set number of at least 2 2i+k 1. Te block B i consists of an array D i of w i = d 2 i+k elements, were d is a constant, and moveable dictionaries A i, R i, W i, H i, C i and G i, for i = 0,, m 1, see Figure 1. For block B m we only ave D m if B m \{min(p ), max(p )} w m, oterwise we ave te same structures as for te oter blocks. We use te block D i to encode te sizes of te movable dictionaries A i, R i, W i, H i, C i and G i so tat we can locate tem. Discussion of furter details of te memory layout is postponed to Section 3. We call elements in te structures D i and A i for arriving points, and wen making a non-arriving point arriving, we will put it into A i unless specified oterwise. We call elements in R i for resting points, elements in W i for waiting points, elements in H i for elping points, elements in C i for climbing points and elements in G i for guarding points. Crucial to our data structure is te partitioning of [min(p ); max(p )] into intervals. Eac interval is assigned to a level and level i corresponds to block B i. Consider an interval lying at level i. Te endpoints e 1 and e 2 will be guarding points stored at level 0,, i. All points inside of tis interval will lie in level i and cannot be guarding points, i.e. S TAC S

4 4 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property 1, 2,, n B 0 B 1 B i B m 1 B m D i A i R i W i H i C i G i arriving resting waiting elping climbing guarding Figure 1 Overview of ow te working set dictionary is laid out in memory. Te dictionary grows and srinks to te rigt wen elements are inserted and deleted Legend: Guarding Arriving Resting Waiting Helping Climbing Figure 2 Te structure of te levels for a dictionary. Te levels are indicated to te left. ]e 1 ; e 2 [ ( j i B j G i ) =. We do not allow intervals defined by two consecutive guarding points to be empty, tey must contain at least one non-guarding point. We also require min(p ) and max(p ) to be guarding points in G 0 at level 0, but tey are special as tey do not define intervals to teir left and rigt, respectively. A query considers B 0, B 1, until B i were te query is found to be in a level i interval were te answer is guaranteed to ave been found in blocks B 0,, B i. Te basic idea of our construction is te following. Wen searcing for an element it is moved to level 0. Tis can cause block overflows (see invariants I.5 I.9 in Section 2.2), wic are andled as follows. Te arriving points in level i ave just entered from level i 1, and wen tere are 2 2i+k of tem in A i tey become resting. Te resting points need to carge up teir working-set number before tey can begin teir journey to level i + 1. Tey are carged up wen tere ave come 2 2i+k furter arriving points to level i, ten te resting points become waiting points. Waiting points ave a ig enoug working-set number to begin te journey to level i + 1, but tey need to wait for enoug points to group up so tat tey can start te journey. Wen a waiting point is picked to start its journey to level i + 1 it becomes a elping or climbing point, and every time enoug elping points ave grouped up, i.e. tere is at least c = 5 consecutive of tem, ten tey become climbing points and are ready to go to level i + 1. Te climbing points will ten incrementally be going to level i + 1. See Figure 2 for an example of te structure of te intervals. 2.1 Notation Before we introduce te invariants we need to define some notation. For a subset S P, we define p S (e) = max{s S { } s < e} and s S (e) = min{s S { } e < s}. Wen we write S i we mean i j=0 S j were S j P for j = 0,, i. For S P, we define GIL S (e) = S ]p P \S (e); e[ to be te Group of Immediate Left points of e in S wic does not ave any oter point of P \S in between tem, see Figure 3. Similarly we define GIR S (e) = S ]e; s P \S (e)[ to te rigt of e. We will notice tat we will never find all points of GIL S (e) unless GIL S (e) < c, te same applies for GIR S (e). For S P, we define FGL S (e) = S ]p P \S (p S (e)); p S (e)] to be te First Group of points from S Left of e, i.e. te

5 G. S. Brodal and C. Kejlberg-Rasmussen 5 group does not ave any points of P \S in between its points, see Figure 3. Similarly we define FGR S (e) = S [s S (e); s P \S (s S (e))[. We will notice tat we will never find all points of FGL S (e) unless FGL S (e) < c, te same applies for FGR S (e). We will sometimes use te prasings a group of points or e s group of points. Tis refers to a group of points of te same type, i.e. arriving, resting, etc., and wit no oter types of points in between tem. Later we will need to move elements around between te structures D i, A i, R i, W i, H i, C i and G i. For tis we ave te notation X Y, meaning tat we move arbitrary points from X into Y, were X and Y can be one of D i, A i, R i, W i, H i, C i and G i for any i. Wen we describe te intervals we let ]a; b] be an interval from a to b tat is open at a and closed at b. We let (a; b) be an interval from a to b tat can be open or closed at a and b. We use tis notation wen we do not care if a and b are open or closed. In te metods updating te intervals we will sometimes branc depending on wic type an interval is. For clarity we will explain ow to determine tis given te level i of te interval and its two endpoints e 1 and e 2. Te interval (e 1 ; e 2 ) is of type [e 1 ; e 2 ) if e 1 G i, else e 1 G i 1 and te interval is of type ]e 1 ; e 2 ). Tis is symmetric for te oter endpoint e Invariants We will now define te invariants wic will elp us define and prove correctness of our interface operations: insert(e), delete(e), searc(e), predecessor(e) and successor(e). We maintain te following invariants wic uniquely determine te intervals 1 : I.1 A guarding point is part of te definition of at most two intervals 2, one to te left at level i and/or one to te rigt at level j, were i j. Te guarding point e lies at level min(i, j). Te interval at level min(i, j) is closed at e, and te interval at level max(i, j) is open at e. We also require tat min(p ) and max(p ) are guarding points stored in G 0, but tey do not define an interval to teir left and rigt, respectively, and te intervals tey elp define are open in te end tey define. A non-guarding point intersecting an interval at level i, lies in level i. Eac interval contains at least one non-guarding point. Te union of all intervals give ] min(p ); max(p )[. I.2 Any climbing point, wic lies in an interval wit oter non-climbing points, is part of a group of at least c points. In intervals of type [e 1 ; e 2 ] wic only contain climbing points, we allow tere to be less tan c of tem. 1 We assume tat P = n 2 at all times if tis is not te case we only store G 0 wic contains a single element and we ignore all invariants. 2 Only te smallest and largest guarding points will not participate in te definition of two intervals, all oter guarding points will. p P \S (p S (e 1)) p S (e 1) e 1 p P \S (e 2) e 2 FGL S(e 1) GIL S(e 2) Legend: S P \S P Figure 3 Here is a illustration of FGL and GIL. Notice tat GIL S(e 1) = wereas FGL S(e 1). S TAC S

6 6 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property I.3 Any elping point is part of a group of size at most c 1. A elping point cannot ave a climbing point as a predecessor or successor. An interval of type [e 1 ; e 2 ] cannot contain only elping points. We maintain te following invariants for te working-set numbers: I.4 Eac arriving point in D i and A i as a working set value of at least 2 2i 1+k, arriving points in D 0 and A 0 ave a working-set value of at least 0. Eac resting point in R i will ave a working-set value of at least 2 2i 1+k + A i, resting points in R 0 ave a working-set value of at least A 0. Eac waiting, elping or climbing point in W i, H i and C i, respectively, will ave a working-set value of at least 2 2i+k. Eac guarding point in G i, wo s left interval lies at level i and rigt interval lies at level j, as a working set value of at least 2 2max(i,j) 1+k. We maintain te following invariants for te size of eac block and teir components: I.5 D 0 = min( B 0 2, w 0 ) and D i = min( B i, w i ) for i = 1,, m. I.6 R i 2 2i+k and W i + H i + C i 0 R i = 2 2i+k for i = 0,, m. I.7 A i + W i = 2 2i+k for i = 0,, m 1, and A m + W m 2 2m+k. I.8 A i < 2 2i+k for i = 0,, m. I.9 H i + C i = 4c2 2i+k + c i, were c i [ c; c], for i = 0,, m 1. From te above invariants we ave te following observation: O.1 From I.1 all points in G i are endpoints of intervals in level i, and eac interval as at most two endpoints. Hence for i = 0,, m we ave tat G i 2( D i + A i + R i + W i + H i + C i ) ( ) (4 + 2d + 8c) 2 2i+k + 2c, were we in ( ) we ave used I.5, I.6, I.7 and I.9. From I.1 we ave te following lemma. Lemma 1. Let e be an element, e 1 = p G i (e), e 2 = s G i (e) and i be te smallest integer for wic I(e 1, e 2, i) =]e 1 ; e 2 [ i j=0 B j. Ten 1) (e 1 ; e 2 ) is an interval at level i if e is non-guarding and 2) (e 1 ; e) or (e; e 2 ) is an interval at level i if e is guarding. Proof. Assume tat i is te minimal i tat fulfills I(e 1, e 2, i), were e 1 = p G i (e) and e 2 = s G i (e). We will ave two cases depending on if e is guarding or not. Lets first andle case 2) were e is guarding and ence in te dictionary: Since e is in te dictionary and e 1 < e < e 2 we ave from te minimality of i tat e lies in level i, and from I.1 e is ten part of an interval lying in level i eiter to te left or to te rigt. Say e is part of an interval to te left i.e. te interval (e 1; e). If e 1 < e 1 ten tis would contradict tat e 1 = p G i (e) ence e 1 e 1, but since e 1 is te predecessor of e we ave tat e 1 = e 1. So we know tat (e 1 ; e) defines an interval at level i. Te argument for (e; e 2 ) is symmetric. In te case 1) e is non-guarding and e may lie in te dictionary or not: Since e 1 < e < e 2 we ave from te minimality of i tat e lies in level i, ence from I.1 we ave tat te interval (e 1 ; e 2 ) lies at level i.

7 G. S. Brodal and C. Kejlberg-Rasmussen Operations We will briefly give an overview of te elper operations and state teir requirements (R) and guarantees (G), ten we will describe te elper and interface operations in details. Searc(e) uses te elper operations as follows: wen a searc for element e is performed ten te level i were e lies is found using find, ten e and O(1) of its surrounding elements are moved into level 0 by use of move-down wile maintaining I.1 I.4. Calls to fix for te levels we ave altered will ensure tat I.5 I.8 will be maintained, finally a call to rebalance-below(i 1) will ensure tat I.9 is maintained by use of sift-up(j) wic will take climbing points from level j and make tem arriving in level j + 1 for j = 0,, i 1. Insert(e) uses find to find te level were e intersects, ten it uses fix to ensure te size constraints and finally e is moved to level 0 by use of searc. Find(e) - returns te level i of te interval tat e intersects along wit e s type and watever e is in te dictionary or not. [R&G: I.1 I.9] Fix(i) - moves points around inside of B i to ensure te size invariants for eac type of point. Fix(i) migt violate I.9 for level i. [R: I.1 I.4 and tat tere exist c 1,, c 6 suc tat D i + c 1, A i + c 2, R i + c 3, W i + c 4, H i + c 5, C i + c 6 fulfill I.5 I.8, were c i = O(1) for i = 1,, 6. G: I.1 I.8]. Sift-down(i) - will move at least 1 and at most c points from level i into level i 1. [R: I.1 I.8 and H i + C i = 4c2 2i+k + c i, were 0 c i = O(1). G: I.1 I.8]. Sift-up(i) - will move at least 1 and at most c points from level i into level i + 1. [R: I.1 I.8 and H i + C i = 4c2 2i+k + c i, were c c i = O(1). G: I.1 I.8]. Move-down(e, i, j, t before, t after ) - If e is in te dictionary at level i it is moved from level i to level j, were i j. Te type t before is te type of e before te move and t after is te type tat e sould ave after te move, unless i = j in wic case e will be made arriving in level j. [R&G: I.1 I.8]. Rebalance-below(i) - If any c < c l for l = 0,, i rebalance-below(i) will correct it so I.9 will be fulfilled again for l = 0,, i. [R: I.1 I.8 and i l=0 slack(c l) = O(1), were { slack(c l ) = 0 if c l [ c; c], c l c oterwise. G: I.1 I.9]. Rebalance-above(i) - If any c l < c for l = i,, m 1 rebalance-above(i) will correct it so I.9 will be fulfilled again for l = i,, m 1. [R: I.1 I.8 and m 1 l=i slack(c l ) = O(1). G: I.1 I.9]. Find(e) We start at level i = 0. If e < min(p ) or max(p ) < e we return false and 0. For eac level we let e 1 = p G i (e), e 2 = s G i (e), p = p Bi\G i (e) and s = s Bi\G i (e). We find p and s by querying eac of te structures D i, A i, R i, W i, H i and C i, we find e 1 and e 2 by querying G i and comparing wit te values of e 1 and e 2 from level i 1. Wile p < e 1 and e 2 < s we continue to te next level, tat is we increment i. Now outside te loop, if e B i we return i, te type of e and te boolean true as we found e, else we return i and false as we did not find e. See Figure 4 for an example of te execution. Predecessor(e) (successor(e)) We start at level i = 0. If e < min(p ) ten return (min(p )). If max(p ) < e ten return max(p ) ( ). For eac level we let e 1 = p G i (e), p = p Bi (e), e 2 = s G i (e) and s = s Bi (e). Wile p < e 1 and e 2 < s we continue to te next level, tat is we increment i. Wen te loop breaks we return max(e 1, p) (min(s, e 2 )). See Figure 4 for an example of te execution. S TAC S

8 8 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property Find/Predecessor/Successor(e) i + 2 e 3 1 e e 3 2 i + 1 i p 3 s 3 p 2 e 2 1 e 2 2 s 2 p 1 e 1 1 e 1 2 s 1 Legend: Guarding Arriving Resting Waiting Helping Climbing Figure 4 Te last tree iterations of te wile-loop of find(e), predecessor(e) and successor(e). Insert(e) If e < min(p ) we swap e and min(p ), call fix(0), rebalance-below(m) and return. If max(p ) < e we swap e and max(p ), call fix(0), rebalance-below(m) and return. Let c l = GIL Ci (e), c r = GIR Ci (e), l = GIL Hi (e) and r = GIR Hi (e). We find te level i of te interval (e 1 ; e 2 ) wic e intersects using find(e). If e is already in te dictionary we give an error. If c l > 0 or c r > 0 or (e 1 ; e 2 ) is of type [e 1 ; e 2 ] and does not contain non-climbing points ten insert e as climbing at level i. Else if l r c ten insert e as climbing at level i and make te points in l and r climbing at level i. Else insert e as elping at level i. Finally we call rebalance-below(m) and ten searc(e) to move e from te current level i down to level 0. Searc(e) We first find e s current level i and its type t, by a call to find(e). If e is in te dictionary ten we call move-down(e, i, 0, t, arriving) wic will move e from level i down to level 0 and make it arriving, wile maintaining I.1 I.8, but I.9 migt be broken so we finally call rebalance-below(i 1) to fix tis. Fix(i) In te following we will be moving elements around between D i, A i, R i, W i, H i and C i. Te moves A i R i and R i W i, i.e. between structures wic are next to eac oter in te memory layout, are simply performed by deleting an element from te left structure and inserting it into te rigt structure. Te moves W i H i C i and te oter way around H i C i W i will be explained below. If D i > w i ten perform D i Ai were = D i w i. If D i < w i and B i \{min(p ), max(p )} > D i ten perform H i C 1 i Wi, W 2 i Ri, R 3 i Ai and A 4 i Di were 1 = min(w i D i, H i + C i ), 2 = min(w i D i, W i + 1 ), 3 = min(w i D i, R i + 2 ) and 4 = min(w i D i, A i + 3 ). If W i + H i + C i 0 and R i < 2 2i+k ten perform H i C 1 i Wi and W 2 i Ri were 1 = min(2 2i+k R i, H i + C i ) and 2 = min(2 2i+k R i, W i + 1 ). If R i > 2 2i+k ten perform R 1 i Ai were 1 = R i 2 2i+k. If i < m and A i + W i < 2 2i+k ten perform H i C 1 i Wi, were 1 = min(2 2i+k ( A i + W i ), H i + C i ). If A i + W i > 2 2i+k ten perform W i 1 Hi C i were 1 = min( A i + W i 2 2i+k, W i ). If A i 2 2i+k ten let 1 = A i 2 2i+k, delete W i as it is empty and rename R i to W i. Now move 1 elements from A i into a new moveable dictionary X, rename A i to R i, rename

9 G. S. Brodal and C. Kejlberg-Rasmussen 9 X to A i and perform W 1 i Hi C i. Performing W i H i C i : Let w = s Wi ( ), c l = GIL Ci (w), c r = GIR Ci (w), l = GIL Hi (w) and r = GIR Hi (w). If c l > 0 or c r > 0 or (e 1 ; e 2 ) is of type [e 1 ; e 2 ] and only contains climbing points ten make w climbing at level i. Else if l r c ten make l, w and r climbing at level i. Else make w elping at level i. Performing H i C i W i : Let w be te minimum element of s Hi ( ) and s Ci ( ), and let c r = GIR Ci (w). Make w waiting at level i. If w was climbing and c r < c ten make c r elping at level i. Sift-down(i) We move at least one element from level i into level i 1, see Figure 4. If D i < w i ten we let a be some element in D i. If D i < B i ten: if A i = 0 we perform 3 H i C 1 i Wi, W 2 i Ri and R i A i, were 1 = min(1, H i + C i ) and 2 = min(1, W i + 1 ), now we know tat A i > 0 so let a = s Ai ( ), i.e., a is te leftmost arriving point in A i at level i. We call move-down(a, i, i 1, arriving, climbing). Sift-up(i) Assume we are at level i, we want to move at least one and at most c arbitrary points from B i into B i+1. Let 4 s 1 = s Ci ( ), e 1 = p G i (s 1 ) and e 2 = s G i (s 1 ), and let s 2 = s Ci [e 1;e 2](s 1 ), s 3 = s Ci [e 1;e 2](s 2 ), s 4 = s Ci [e 1;e 2](s 3 ) and s 5 = s Ci [e 1;e 2](s 4 ), if tey exist, also let c r = GIR Ci (s 4 ) be te group of climbing elements to te immediate rigt of s 4, if tey exist, see Figure 5. We will now move one or more climbing points from B i into B i+1 were tey become arriving points. If i = m 1 or i = m ten we put arriving points into D i+1, wic we migt ave to create, instead of A i+1. We now deal wit te case were (e 1 ; e 2 ) is of type [e 1 ; e 2 ] and only contains climbing points. Let l be te level of e 1 s left interval, and r te level of e 2 s rigt interval, also let c I be te number of climbing points in te interval. If l = i + 1 we make e 1 arriving, else we make it guarding, at level i + 1. Make te points of s 1, s 2, s 3 and s 4 tat exist arriving at level i + 1. If c I c ten make s 5 arriving at level i + 1 if it exists, also if r = i + 1 we make e 2 arriving, else we make it guarding, at level i + 1. Else make s 5 guarding at level i. We now deal wit te cases were (e 1 ; e 2 ) migt contain non-climbing points. If p(s 1 ) = e 1 we make s 1 and s 2 waiting and guarding at level i, respectively, else we make s 1 guarding at level i and s 2 arriving at level i + 1. Now in bot cases we make s 3 arriving at level i + 1 and s 4 guarding at level i. If (s 4 ; e 2 ) is not of type [s 4 ; e 2 ] or contains non-climbing points and c r < c, i.e. tere are less tan c consecutive climbing points to te rigt of s 4, ten we make te points c r elping at level i. We ave moved climbing points from B i into B i+1, and made tem arriving. Finally we call fix(i + 1). Move-down(e, i, j, t before, t after ) cases, see Figure 5. Depending on te type t before of point e we ave different Non-guarding Let e 1 = p G i (e), e 2 = s G i (e) and let l be te level of te left interval of e 1 and r te level of te rigt interval of e 2. Also let p 2 = p Bi\G i [e 1;e 2](p 1 ), p 1 = p Bi\G i [e 1;e 2](e), 3 Te move H i C i l W i will be performed te same way as we did it in fix. 4 See te analysis in Section 4 for a proof tat C i > 0. S TAC S

10 10 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property Delete(e) Non-guarding l i e 1 e 2 cr l r e Min-guarding i e e 0 t 1 t 2 e Sift-down(i) i i 1 e 1 a e 2 l Guarding r i Sift-up(i) i + 1 i e 1 e 1 s 5 e 2 Insert(e) l r e 1 e e 2 i i p 2 p 1 c l s 1 s 2 c l e s 3 s 4 cr cr s 1 s 2 e 2 r Move-down(e, i, j) Non-guarding i l j e 1 p 2 p 1 e s 1 s 2 e 2 Guarding j e 1 c l c l p 2 p 1 e s 1 s 2 cr cr e 2 Legend: Guarding Arriving Resting Waiting Helping Climbing Figure 5 Here we see illustrations of ow we maintain te intervals wen updating te intervals. Tese only sow single cases of eac of te update metods many cases. s 1 = s Bi\G i [e 1;e 2](e) and s 2 = s Bi\G i [e 1;e 2](s 1 ), also let c l = FGL Ci [e 1;e 2](e) be te elements in te first climbing group left of e, likewise let c r = FGR Ci [e 1;e 2](e) be te elements in te first climbing group rigt of e. Case i = j: make e arriving in level j, if c l < c ten make te points in c l elping at level j, if c r < c ten make te points in c r elping at level j. Finally call fix(j). Case i > j: If bot p 2 and p 1 exists we make p 1 guarding in level j and let e 1 denote p 1, else if only p 1 exists we make e 1 guarding at level min(l, j) and p 1 of type t after at level j and let e 1 denote e 1, else we make e 1 guarding in level min(l, j), and let e 1 denote e 1. If bot s 1 and s 2 exists we make s 1 guarding at level j, and let e 2 denote s 1, else if only s 1 exists we make s 1 of type t after at level j and make e 2 guarding at level min(j, r) and let e 2 denote e 2, else we make e 2 guarding at level min(j, r) and let e 2 denote e 2. Lastly we make e of type t after in level j. Now let c l denote te elements of c l wic we ave not moved in te previous steps, likewise let c r denote te elements of c r wic we ave not moved. If (e 1 ; e 1] is not of type [e 1 ; e 1] or contains non-climbing points and c l < c ten make c l elping at level i. If [e 2; e 2 ) is not of type [e 2; e 2 ] or contains non-climbing points and c r < c ten make c r elping at level i. Call fix(i), fix(j), fix(min(l, i)) and fix(min(i, r)). Guarding If e = min(p ) or e = max(p ) we simply do noting and return. Let e 1 = p G (e) be te left endpoint of te left interval (e 1 ; e[ lying at level and e 2 = s G (e) be te rigt endpoint of te rigt interval [e; e 2 ) lying at level i, we assume w.l.o.g. tat > i, te case < i is symmetric. Also let l be te level of te left interval of e 1 and r te level of te rigt

11 G. S. Brodal and C. Kejlberg-Rasmussen 11 interval of e 2. Let p 2 = p B \G [e 1;e](p 1 ) and p 1 = p B \G [e 1;e](e) be te two left points of e, if tey exists, s 1 = s Bi\G i [e;e 2](e) and s 2 = s Bi\G i [e;e 2](s 1 ) te two rigt points of e, if tey exits. Also let c l = FGL Ci [e 1;e](e) and c r = FGR Ci [e;e 2](e). If p 2 does not exist we make e 1 guarding at level min(l, j), we make p 1 of type t after at level j and let e 1 denote e 1, else we make p 1 guarding at level j and let e 1 denote p 1. If it is te case tat i > j ten we ceck: if s 2 does not exist ten we make s 1 of type t after at level j, e 2 guarding at level min(j, r) and let e 2 denote e 2, else we make s 1 guarding at level j and let e 2 denote s 1. We make e of type t after at level j. Now let c l be te points of c l wic was not moved and c r te points of c r wic was not moved. If c l < c ten make c l elping at level. We now ave two cases if e 2 exists: ten if c r < c ten make c r elping at level i. Te oter case is if e 2 does not exist: ten if (e 1; e 2 ) is not of type [e 1; e 2 ] or contains non-climbing points and c r < c ten make c r elping at level i. In all cases call fix(min(l, )), fix() and fix(i). If i > j ten call fix(j) and fix(min(j, r)). Delete(e) We first call find(e) to get te type of e and its level i, if e is not in te dictionary we just return. If e is in te dictionary we ave two cases, depending on if e is guarding or not. Non-guarding Let c l = GIL Ci (e) be te elements in te climbing group immediately left of e, let c r = GIR Ci (e) be te elements in te climbing group immediately rigt of e, let l = GIL Hi (e) be te elements in te elping group immediately left of e, and let r = GIR Hi (e) be te elements in te elping group immediately rigt of e. Let e 1 = p G i (e) and let e 2 = s G i (e). Let l be te level of te interval left of e 1 and r te level of te interval rigt of e 2. We ave two cases, te first is ]e 1 ; e 2 [ B i = 1: if l > r make e 1 guarding and e 2 arriving at level r, if l < r ten make e 1 arriving and e 2 guarding at level l. If l = r and P = n 4 ten make e 1 and e 2 arriving at level l = r. Delete e, call fix(r), fix(l), fix(i) and rebalance-above(1). Te oter case is ]e 1 ; e 2 [ B i > 1: If (e 1 ; e 2 ) is not of type [e 1 ; e 2 ] or contains nonclimbing points and c l + c r < c ten make c l and c r elping at level i. If l + r c ten make l and r climbing at level i. Delete e, call fix(i) and rebalance-above(1). Min-guarding If e = min(p ) ten let e = s G m (e) and e = s G m (e ) were 0 is te level of (e; e ) and i is te level of (e ; e ). Te case of e = max(p ) is symmetric. Also let s 1 = s B0\G 0 [e;e ](e), s 2 = s B0\G 0 [e;e ](s 1 ), t 1 = s Bi\G i [e ;e ](e ) and t 2 = s Bi\G i [e ;e ](t 1 ). If s 2 exists ten delete e make s 1 guarding at level 0 and call fix(0). If s 2 does not exist and t 2 exists ten delete e make s 1 and t 1 guarding and e arriving at level 0 and finally call fix(0) and fix(i). If s 2 does not exist and t 2 does not exist ten delete e, make s 1 and e guarding and e and t 1 arriving at level 0 and finally call fix(0) and fix(i). In all te previous cases return. Guarding Let be te level of te left interval (e 1 : e[, let i te level of te rigt interval [e : e 2 ) tat e participates in. We assume w.l.o.g. tat > i, te case < i is symmetric. Let l te level of te left interval tat e 1 participates in, were e 1 = p G (e) and e 2 = s G (e). Let p 2 = p B \G [e 1;e](p 1 ) and p 1 = p B \G [e 1;e](e). Let c l = FGL Ci (e) be te points in te first group of climbing points left of e. If p 2 exist we make p 1 guarding at level i, and let e denote p 1, else we make e 1 guarding at level min(l, i), let e denote e 1 and if [e ; e 2 ) is of type [e ; e 2 ] and contains only climbing points ten we make p 1 climbing at level i else we make p 1 waiting at level i. Let c l be te points S TAC S

12 12 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property in c l wic was not moved in te previous movement of points. If c l < c make c l elping at level. If e is e 1 ten call fix(l). Delete e, call fix(), fix(i) and rebalance-above(1). Rebalance-below(i) For eac level l = 0,, i we perform a sift-up(l) wile c < c l. Rebalance-above(i) c l < c. For eac level l = i,, m 1 we perform sift-down(l + 1) wile 3 Memory management We will now deal wit te memory layout of te data structure. We will put te blocks in te order B 0,, B m, were block B i furter as its dictionaries in te order D i, A i, R i, W i, H i, C i and G i, see Figure 1. Block B m grows and srinks to te rigt wen elements are inserted and deleted from te working set dictionary. Te D i structure is not a moveable dictionary as te oter structures in a block are, it is simply an array of w i = d2 i+k elements wic we use to encode te size of eac of te structures A i, R i, W i, H i, C i and G i along wit teir own auxiliary data, as tey are not implicit and need to remember O(2 i+k ) bits wic we store ere. As eac of te moveable dictionaries in B i ave size O(2 2i+k ) we need to encode numbers of O(2 i+k ) bits in D i. We now describe te memory management concerning te movement, insertion and deletion of elements from te working-set dictionary. First notice tat te metods find, predecessor and successor do not cange te working-set dictionary, and layout in memory. Also te metods sift-down, searc, rebalance-below and rebalance-above only calls oter metods, ence teir memory management is andled by te metods tey call. Te only metods were actual memory management comes into play are in insert, sift-up, fix, movedown and delete. We will now describe two metods internal-movement wic andles movement inside a single block/level and external-movement wic andles movement across different blocks/levels. Togeter tese two metods andle all memory management. Internal-movement(m 1,, m l ) Internal-movement in level i takes a list of internal moves m 1,, m l to be performed on block B i, were l = O(1) and move m j consists of: te index γ = D i, A i, R i, W i, H i, C i, G i of te dictionary to cange, were we assume 5 tat m j.γ m.γ, for j, te set of elements S in to put into γ, were S in = O(1), te set of elements S out to take out of γ, were S out = O(1) and te total size difference δ = S in S out of γ after te move. For j = 1,, l do: if m j.δ < 0 ten remove S out from γ, insert S in into γ and move γ + 1,, G left m j.δ positions, were we move tem in te order γ + 1,, G. If m j.δ > 0 ten move γ + 1,, G rigt m j.δ positions, were we move tem in te order G,, γ + 1, remove S out from γ and insert S in into γ. See Figure 6. It takes O(log(2 2i+k )) = O(2 i+k ) time and O(log B (2 2i+k )) = O( 2i+k log B ) cace-misses to perform move j. In total all te moves m 1,, m l use O(2 i+k ) time and O( 2i+k log B ) cace-misses, as l = O(1). 5 We will misuse notation and let γ + 1 denote te next in te total order D, A, R, W, H, C, G. We will also compare m j.γ and m.γ wit in tis order.

13 G. S. Brodal and C. Kejlberg-Rasmussen 13 Internal-movement(m 1,, m l ) S out D m j.γ m j.γ + 1 G S in move m i.δ positions External-movement(M 1,, M l ) B 0 B M1.γ B Mi.γ 1 B Mi.γ B Mi.γ+1 B Mi+1.γ 1 B Mi+1.γ B Ml.γ compact B 0 B M1.γ B Mi.γ 1 B Mi.γ B Mi.γ+1 B Mi+1.γ 1 B Mi+1.γ B Ml.γ perform m 1,, m q compact B m B m Figure 6 (Left) Memory movement of internal-movement inside of a block B i. (Rigt) Memory movement of external-movement across multiple blocks B M1.γ,, B Ml.γ. External-movement(M 1,, M l ) External-movement takes a list of external moves M 1,, M l, were l = O(1). Move M j consists of: te index 0 γ m of te block/level to perform te internal moves m 1,, m q on, were M j.γ < M.γ for j <, te list of internal moves m 1,, m q to perform on block γ, were q = O(1), and te total size difference = q =1 m.δ of block γ after all te internal moves m 1,, m q ave been performed. Let = l i=1 M i. be te total size cange of te dictionary after te external-moves ave been performed. If = 0 ten we let γ end = M l.γ else we let γ end = m. Let p end = γend j=0 B j + be te last address of te rigt most block tat we need to alter. Let s 1,, s k be te sublist of te indexes {1,, l} were M si. 0 for i = 1,, k. Let a 1,, a be te sublist of te indexes {1,, l} were M ai. > 0 for i = 1,,. We first perform all te internal moves of eac of te external moves M s1,, M sk. Ten we compact all te blocks wit index i were M 1.γ i γ end so te rigtmost block ends at position p end. Finally for eac external move M ai for i = 1,, : move B Mai.γ left so it aligns wit B Mai.γ 1 and perform all te internal moves of M ai, ten compact te blocks B Mai.γ+1,, B Mai+1.γ 1 at te left end so tey align wit block B Mai.γ. ( ( It takes O l log 2 2i+k)) = O ( l2 i+k) ( time and O (l log B 2 2i+k)) ( ) = O l 2i+k log B cacemisses to perform te internal ( moves ) on level i. In total all te external moves M 1,, M l use O(2 γend+k ) time and O cace-misses, as te external move at level γ end dominates te rest and l = O(1). 2 γ end +k log B 3.1 Memory management in updates of intervals Wit te above two metods we can perform te memory management wen updating te intervals in Section 2.3: Wenever an element moves around, is deleted or inserted, it is simply put in one or two internal moves. All internal moves in a single block/level are grouped into one external move. Since all updates of intervals only move around a constant number of elements, te requirements for internal/external-movement tat l = O(1) and q = O(1) are fulfilled. From te above time and cace bounds for te memory management te bounds in Teorem 1 follows. 4 Analysis We will leave it for te reader to ceck tat te pre-conditions for eac metods in Section 2.3 are fulfilled and tat te metods maintains all invariants. We will instead concentrate on using te invariants to prove correctness of te find, predecessor, successor and sift-up operations along wit proving time and cace-miss bounds for tese. We will leave te time S TAC S

14 14 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property and cace-miss bounds of searc, rebalance-above, rebalance-below, sift-down, insert, delete and fix for te reader as tey are all similarly in nature. Find(e) We only consider te cases were min(p ) < e < max(p ), te oter cases trivially gives te correct answer in O(1) time and cace-misses as min(p ), max(p ) G 0. Assume tat find(e) stops at level i, ten we ave tat e 1 p or s e 2 so I(e 1, e 2, i) and i is te minimal i were tis appens, see lemma 1. Notice tat e 1 = p G i (e) and e 2 = s G i (e), so e 1 and e 2 are te same as in lemma 1. Wen te wile loop breaks we ave all te preconditions for lemma 1. Now e is eiter in te dictionary, or not, and if e is in te dictionary it is eiter guarding or not, so we ave tree cases. Case 1) e is in te dictionary and is non-guarding: ten we ave from lemme 1 tat (e 1 ; e 2 ) is a interval at level i and e B i. From tis we also ave tat log(l e ) log(2 2i+k 1 ). Case 2) e is not in te dictionary: from lemma 1 (e 1 ; e 2 ) lie at level i and we know tat e intersects it. Since e is not in te dictionary l e = n and ten log(l e ) log(2 2i+k 1 ). Case 3) e is in te dictionary and is guarding: from lemma 1 we ave tat eiter (e 1 ; e) or (e; e 2 ) lie in level i, ence e G i B i. From tis we also ave tat log(l e ) log(2 2max(i,j)+k 1 ) log(2 2i+k 1 ). From te above we see tat find(e) runs in O(log(2 2i+k 1 )) = O(log min(l p(e), l e, l s(e) )) time. Wen we look at te cace-misses we will first notice tat te first log log B levels will fit in a single cace-line because all levels are next to eac oter in te memory layout, so te total cace-misses will be i O 1 + (1 + log B (2 2j+k)) ( ) 2 i+k = O = O(log log B B min(l p(e), l e, l s(e) )). j= log log B +1 Predecessor(e) (and successor(e)) We will only andle te predecessor operation, te case for te successor is symmetric. Since we ave te same condition in te wile loop as for find, we know tat wen it breaks it implies tat I(e 1, e 2, i). So from lemma 1, e intersects a interval at level i and te predecessor of e is now max(e 1, p). From I.4 we know tat log(l p ) log(2 2i+k 1 ) and te total time usage is i j=0 O(log(22i+k )) = O(2 i+k ) = O(log(l p )). Like in find, te first log log B levels fit into one block/cace-line ence te total cace-misses will be O(log B (l p )). Sift-up(i) For sift-up to work for level i it is mandatory tat C i > 0 so tat s Ci ( ) will return a element wic can be moved to level i + 1. From te precondition tat H i + C i = 4c2 2i+k + c i, were c c i = O(1), we ave tat C i = 4c2 2i+k + c i H i 4c2 2i+k c H i so proving tat H i < 4c2 2i+k c is enoug. From I.3 we can at most ave c 1 elping points in a elping group, so for every c 1 elping points we need a separating point, te role of te separating point can be played by a point from D i, A i, R i, W i or G i 1. Tese are te only ways to contribute points to H i ence for i 1 we ave tis bound H i (c 1)( D i + A i + R i + W i + G i 1 ) ( ) i 1 ( 2c) (c 1) w i i+k + (4 + 2d + 8c)2 2j+k + j=0 ( ) ( ) (c 1) d 2 i+k i+k + (4 + 2d + 8c) 2 2 2i+k 1 + 2ci

15 G. S. Brodal and C. Kejlberg-Rasmussen 15 Were we in ( ) ave used I.5, I.6 I.7 and O.1, and in ( ) ave used tat 2 2l = 2 2l 1 2 2l 1 and 2 2l 1 l for l 1. If we use tat c = 5 ten for k > log log( d) + 1 we ave tat C i 4c2 2i+k c H i > 0 for i = 1,, m 1. For i = 0 we ave a different bound as G i 1 is empty, we get te bound H 0 (c 1)( D i + A i + R i + W i ) (c 1) (d 2 i+k i+k) but for k > log log( d) + 1 tis is of course still sufficient as H 0 only got smaller. So we ave proved tat C i > 0 for level i = 0,, m 1. Move-down(e, i, j, t before, t after ) Move-down moves a constant number of points around and into level j from i. If e is non-guarding we call fix(i), fix(j), fix(min(l, i)) and fix(min(i, r)). If e is guarding we call fix(min(l, )), fix() and fix(i), and if i > j we also call fix(j) and fix(min(j, r)). In te non-guarding case te time is bounded by O(log 2 2i+k ) = O(log l e ) and te cace-miss bounds are dominated by O(log B 2 2i+k ) = O(log B l e ). In te guarding case te time is bounded by O(log 2 2+k ) = O(log l e ) and te cace-miss bounds are dominated by O(log B 2 2+k ) = O(log B l e ). 5 Furter work We still ave some open problems. Is it possible to cange te insert operation suc tat wen we insert a new point it will get a working-set value of n + 1 instead of 0? We can actually acieve tis in our structure by loosening te invariant on te working-set number of guarding points to only require tat tey ave a working-set number of at least 2 2min(i,j)+k 1, but ten for searc te time will increase to O(log min(l e, max(l p(e), l s(e) ))) and te cace-misses to O(log B min(l e, max(l p(e), l s(e) ))) and te bounds for predecessor and successor queries would increase to O(log max(l p(e), l s(e) )) time and O(log B max(l p(e), l s(e) )) cace-misses. Anoter interesting question is if we can ave a dynamic dictionary supporting efficient finger searces [5] in te implicit model, i.e., we ave a finger f located at a element and ten we want to find an element e in time O(log d(f, e)), were d(f, e) is te rank distance between f and e. But very recently [14] ave sown tat finger searc in O(log d(e, f)) time is not possible in te implicit model. Tey give a lower bound of Ω(log n). Now we could instead separate te finger searc and te update of te finger, say we allow te finger searc to use O(q(d(e, f))) time for some function q. In tis setting tey also prove a lower of Ω(q 1 (log n)) for te update finger operation, were q 1 is te inverse function of q. Tey also give almost tigt upper bounds for tis setting, in te form of a trade-off bound between te finger searc and te update finger operations. Te finger searc operation uses O(log d(e, f)) + q(d(e, f)) time, and te update finger operation uses O(q 1 (log n) log n) time. But even given teir result it still remains an open problem watever dynamic finger searc wit an externally maintained finger is possible in O(log d(e, f)) time. So in oter words is it possible to do finger searc in O(log d(e, f)) time if we allow te data structure to store O(log n) bits of data tat can store te finger? S TAC S

16 16 Cace-Oblivious Implicit Predecessor Dictionaries wit te Working-Set Property References 1 Miai Bǎdoiu, Ricard Cole, Erik D. Demaine, and Jon Iacono. A unified access bound on comparison-based dynamic dictionaries. Teoretical Computer Science, 382(2):86 96, Prosenjit Bose, Karim Douïeb, and Stefan Langerman. Dynamic optimality for skip lists and B-trees. In Proc. 19t Annual ACM-SIAM Symposium on Discrete algoritms, pages SIAM, Prosenjit Bose, Jon Howat, and Pat Morin. A distribution-sensitive dictionary wit low space overead. In Proc. 11t International Symposium on Algoritms and Data Structures, volume 5664 of LNCS, pages Springer-Verlag, Gert Brodal, Casper Kejlberg-Rasmussen, and Jakob Truelsen. A cace-oblivious implicit dictionary wit te working set property. In Proc. 12t International Symposium on Algoritms and Data Structures, volume 6507 of LNCS, pages Springer-Verlag, Gert Stølting Brodal. Finger searc trees. In Dines Meta and Sartaj Sani, editors, Handbook of Data Structures and Applications, capter 11. CRC Press, Timoty Moon-Yew Can and Eric Y. Cen. Optimal in-place algoritms for 3-D convex ulls and 2-D segment intersection. In Proc. 25t Annual Symposium on Computational Geometry, pages ACM, G. Francescini, R. Grossi, J.I. Munro, and L. Pagli. Implicit B-trees: New results for te dictionary problem. In Proc. 43rd Annual IEEE Symposium on Foundations of Computer Science, pages , Gianni Francescini and Roberto Grossi. Optimal worst-case operations for implicit caceoblivious searc trees. In Proc. 8t International Worksop on Algoritms and Data Structures, volume 2748 of LNCS, pages Springer-Verlag, Gianni Francescini and Roberto Grossi. Optimal implicit dictionaries over unbounded universes. Teory of Computing Systems, 39: , Matteo Frigo, Carles Eric Leiserson, Harald Prokop, and Sridar Ramacandran. Caceoblivious algoritms. In Proc. 40t Annual IEEE Symposium on Foundations of Computer Science, pages IEEE, Jon Iacono. Alternatives to splay trees wit O(log n) worst-case access times. In Proc. 12t Annual ACM-SIAM Symposium on Discrete algoritms, pages SIAM, James Ian Munro. An implicit data structure supporting insertion, deletion, and searc in O(log 2 n) time. Journal of Computer and System Sciences, 33(1):66 74, James Ian Munro and Hendra Suwanda. Implicit data structures for fast searc and update. Journal of Computer and System Sciences, 21(2): , Jesper Sindal Nielsen and Jakob Truelsen. Finger searc in te implicit model. Work in progress, Daniel Dominic Sleator and Robert Endre Tarjan. Self-adjusting binary searc trees. J. ACM, 32(3): , Jon William Josep Williams. Algoritm 232: Heapsort. Communications of te ACM, 7(6): , 1964.

Finger Search in the Implicit Model

Finger Search in the Implicit Model Finger Search in the Implicit Model Gerth Stølting Brodal, Jesper Sindahl Nielsen, Jakob Truelsen MADALGO, Department o Computer Science, Aarhus University, Denmark. {gerth,jasn,jakobt}@madalgo.au.dk Abstract.

More information

Efficient algorithms for for clone items detection

Efficient algorithms for for clone items detection Efficient algoritms for for clone items detection Raoul Medina, Caroline Noyer, and Olivier Raynaud Raoul Medina, Caroline Noyer and Olivier Raynaud LIMOS - Université Blaise Pascal, Campus universitaire

More information

1 Calculus. 1.1 Gradients and the Derivative. Q f(x+h) f(x)

1 Calculus. 1.1 Gradients and the Derivative. Q f(x+h) f(x) Calculus. Gradients and te Derivative Q f(x+) δy P T δx R f(x) 0 x x+ Let P (x, f(x)) and Q(x+, f(x+)) denote two points on te curve of te function y = f(x) and let R denote te point of intersection of

More information

Average Rate of Change

Average Rate of Change Te Derivative Tis can be tougt of as an attempt to draw a parallel (pysically and metaporically) between a line and a curve, applying te concept of slope to someting tat isn't actually straigt. Te slope

More information

Preface. Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed.

Preface. Here are a couple of warnings to my students who may be here to get a copy of what happened on a day that you missed. Preface Here are my online notes for my course tat I teac ere at Lamar University. Despite te fact tat tese are my class notes, tey sould be accessible to anyone wanting to learn or needing a refreser

More information

2.8 The Derivative as a Function

2.8 The Derivative as a Function .8 Te Derivative as a Function Typically, we can find te derivative of a function f at many points of its domain: Definition. Suppose tat f is a function wic is differentiable at every point of an open

More information

Consider a function f we ll specify which assumptions we need to make about it in a minute. Let us reformulate the integral. 1 f(x) dx.

Consider a function f we ll specify which assumptions we need to make about it in a minute. Let us reformulate the integral. 1 f(x) dx. Capter 2 Integrals as sums and derivatives as differences We now switc to te simplest metods for integrating or differentiating a function from its function samples. A careful study of Taylor expansions

More information

The derivative function

The derivative function Roberto s Notes on Differential Calculus Capter : Definition of derivative Section Te derivative function Wat you need to know already: f is at a point on its grap and ow to compute it. Wat te derivative

More information

Material for Difference Quotient

Material for Difference Quotient Material for Difference Quotient Prepared by Stepanie Quintal, graduate student and Marvin Stick, professor Dept. of Matematical Sciences, UMass Lowell Summer 05 Preface Te following difference quotient

More information

Improved Algorithms for Largest Cardinality 2-Interval Pattern Problem

Improved Algorithms for Largest Cardinality 2-Interval Pattern Problem Journal of Combinatorial Optimization manuscript No. (will be inserted by te editor) Improved Algoritms for Largest Cardinality 2-Interval Pattern Problem Erdong Cen, Linji Yang, Hao Yuan Department of

More information

Lecture 21. Numerical differentiation. f ( x+h) f ( x) h h

Lecture 21. Numerical differentiation. f ( x+h) f ( x) h h Lecture Numerical differentiation Introduction We can analytically calculate te derivative of any elementary function, so tere migt seem to be no motivation for calculating derivatives numerically. However

More information

Symmetry Labeling of Molecular Energies

Symmetry Labeling of Molecular Energies Capter 7. Symmetry Labeling of Molecular Energies Notes: Most of te material presented in tis capter is taken from Bunker and Jensen 1998, Cap. 6, and Bunker and Jensen 2005, Cap. 7. 7.1 Hamiltonian Symmetry

More information

lecture 26: Richardson extrapolation

lecture 26: Richardson extrapolation 43 lecture 26: Ricardson extrapolation 35 Ricardson extrapolation, Romberg integration Trougout numerical analysis, one encounters procedures tat apply some simple approximation (eg, linear interpolation)

More information

AVL trees. AVL trees

AVL trees. AVL trees Dnamic set DT dnamic set DT is a structure tat stores a set of elements. Eac element as a (unique) ke and satellite data. Te structure supports te following operations. Searc(S, k) Return te element wose

More information

HOMEWORK HELP 2 FOR MATH 151

HOMEWORK HELP 2 FOR MATH 151 HOMEWORK HELP 2 FOR MATH 151 Here we go; te second round of omework elp. If tere are oters you would like to see, let me know! 2.4, 43 and 44 At wat points are te functions f(x) and g(x) = xf(x)continuous,

More information

Differentiation in higher dimensions

Differentiation in higher dimensions Capter 2 Differentiation in iger dimensions 2.1 Te Total Derivative Recall tat if f : R R is a 1-variable function, and a R, we say tat f is differentiable at x = a if and only if te ratio f(a+) f(a) tends

More information

Exercises for numerical differentiation. Øyvind Ryan

Exercises for numerical differentiation. Øyvind Ryan Exercises for numerical differentiation Øyvind Ryan February 25, 2013 1. Mark eac of te following statements as true or false. a. Wen we use te approximation f (a) (f (a +) f (a))/ on a computer, we can

More information

3.4 Worksheet: Proof of the Chain Rule NAME

3.4 Worksheet: Proof of the Chain Rule NAME Mat 1170 3.4 Workseet: Proof of te Cain Rule NAME Te Cain Rule So far we are able to differentiate all types of functions. For example: polynomials, rational, root, and trigonometric functions. We are

More information

Lecture 15. Interpolation II. 2 Piecewise polynomial interpolation Hermite splines

Lecture 15. Interpolation II. 2 Piecewise polynomial interpolation Hermite splines Lecture 5 Interpolation II Introduction In te previous lecture we focused primarily on polynomial interpolation of a set of n points. A difficulty we observed is tat wen n is large, our polynomial as to

More information

Pre-Calculus Review Preemptive Strike

Pre-Calculus Review Preemptive Strike Pre-Calculus Review Preemptive Strike Attaced are some notes and one assignment wit tree parts. Tese are due on te day tat we start te pre-calculus review. I strongly suggest reading troug te notes torougly

More information

Section 3: The Derivative Definition of the Derivative

Section 3: The Derivative Definition of the Derivative Capter 2 Te Derivative Business Calculus 85 Section 3: Te Derivative Definition of te Derivative Returning to te tangent slope problem from te first section, let's look at te problem of finding te slope

More information

MVT and Rolle s Theorem

MVT and Rolle s Theorem AP Calculus CHAPTER 4 WORKSHEET APPLICATIONS OF DIFFERENTIATION MVT and Rolle s Teorem Name Seat # Date UNLESS INDICATED, DO NOT USE YOUR CALCULATOR FOR ANY OF THESE QUESTIONS In problems 1 and, state

More information

Generic maximum nullity of a graph

Generic maximum nullity of a graph Generic maximum nullity of a grap Leslie Hogben Bryan Sader Marc 5, 2008 Abstract For a grap G of order n, te maximum nullity of G is defined to be te largest possible nullity over all real symmetric n

More information

232 Calculus and Structures

232 Calculus and Structures 3 Calculus and Structures CHAPTER 17 JUSTIFICATION OF THE AREA AND SLOPE METHODS FOR EVALUATING BEAMS Calculus and Structures 33 Copyrigt Capter 17 JUSTIFICATION OF THE AREA AND SLOPE METHODS 17.1 THE

More information

2011 Fermat Contest (Grade 11)

2011 Fermat Contest (Grade 11) Te CENTRE for EDUCATION in MATHEMATICS and COMPUTING 011 Fermat Contest (Grade 11) Tursday, February 4, 011 Solutions 010 Centre for Education in Matematics and Computing 011 Fermat Contest Solutions Page

More information

Numerical Differentiation

Numerical Differentiation Numerical Differentiation Finite Difference Formulas for te first derivative (Using Taylor Expansion tecnique) (section 8.3.) Suppose tat f() = g() is a function of te variable, and tat as 0 te function

More information

Characterization of reducible hexagons and fast decomposition of elementary benzenoid graphs

Characterization of reducible hexagons and fast decomposition of elementary benzenoid graphs Discrete Applied Matematics 156 (2008) 1711 1724 www.elsevier.com/locate/dam Caracterization of reducible exagons and fast decomposition of elementary benzenoid graps Andrej Taranenko, Aleksander Vesel

More information

The Laplace equation, cylindrically or spherically symmetric case

The Laplace equation, cylindrically or spherically symmetric case Numerisce Metoden II, 7 4, und Übungen, 7 5 Course Notes, Summer Term 7 Some material and exercises Te Laplace equation, cylindrically or sperically symmetric case Electric and gravitational potential,

More information

Combining functions: algebraic methods

Combining functions: algebraic methods Combining functions: algebraic metods Functions can be added, subtracted, multiplied, divided, and raised to a power, just like numbers or algebra expressions. If f(x) = x 2 and g(x) = x + 2, clearly f(x)

More information

Chapter 2 Limits and Continuity

Chapter 2 Limits and Continuity 4 Section. Capter Limits and Continuity Section. Rates of Cange and Limits (pp. 6) Quick Review.. f () ( ) () 4 0. f () 4( ) 4. f () sin sin 0 4. f (). 4 4 4 6. c c c 7. 8. c d d c d d c d c 9. 8 ( )(

More information

DIGRAPHS FROM POWERS MODULO p

DIGRAPHS FROM POWERS MODULO p DIGRAPHS FROM POWERS MODULO p Caroline Luceta Box 111 GCC, 100 Campus Drive, Grove City PA 1617 USA Eli Miller PO Box 410, Sumneytown, PA 18084 USA Clifford Reiter Department of Matematics, Lafayette College,

More information

University Mathematics 2

University Mathematics 2 University Matematics 2 1 Differentiability In tis section, we discuss te differentiability of functions. Definition 1.1 Differentiable function). Let f) be a function. We say tat f is differentiable at

More information

Solution. Solution. f (x) = (cos x)2 cos(2x) 2 sin(2x) 2 cos x ( sin x) (cos x) 4. f (π/4) = ( 2/2) ( 2/2) ( 2/2) ( 2/2) 4.

Solution. Solution. f (x) = (cos x)2 cos(2x) 2 sin(2x) 2 cos x ( sin x) (cos x) 4. f (π/4) = ( 2/2) ( 2/2) ( 2/2) ( 2/2) 4. December 09, 20 Calculus PracticeTest s Name: (4 points) Find te absolute extrema of f(x) = x 3 0 on te interval [0, 4] Te derivative of f(x) is f (x) = 3x 2, wic is zero only at x = 0 Tus we only need

More information

SECTION 3.2: DERIVATIVE FUNCTIONS and DIFFERENTIABILITY

SECTION 3.2: DERIVATIVE FUNCTIONS and DIFFERENTIABILITY (Section 3.2: Derivative Functions and Differentiability) 3.2.1 SECTION 3.2: DERIVATIVE FUNCTIONS and DIFFERENTIABILITY LEARNING OBJECTIVES Know, understand, and apply te Limit Definition of te Derivative

More information

1 The concept of limits (p.217 p.229, p.242 p.249, p.255 p.256) 1.1 Limits Consider the function determined by the formula 3. x since at this point

1 The concept of limits (p.217 p.229, p.242 p.249, p.255 p.256) 1.1 Limits Consider the function determined by the formula 3. x since at this point MA00 Capter 6 Calculus and Basic Linear Algebra I Limits, Continuity and Differentiability Te concept of its (p.7 p.9, p.4 p.49, p.55 p.56). Limits Consider te function determined by te formula f Note

More information

Continuity and Differentiability Worksheet

Continuity and Differentiability Worksheet Continuity and Differentiability Workseet (Be sure tat you can also do te grapical eercises from te tet- Tese were not included below! Typical problems are like problems -3, p. 6; -3, p. 7; 33-34, p. 7;

More information

Section 2: The Derivative Definition of the Derivative

Section 2: The Derivative Definition of the Derivative Capter 2 Te Derivative Applied Calculus 80 Section 2: Te Derivative Definition of te Derivative Suppose we drop a tomato from te top of a 00 foot building and time its fall. Time (sec) Heigt (ft) 0.0 00

More information

Exam 1 Review Solutions

Exam 1 Review Solutions Exam Review Solutions Please also review te old quizzes, and be sure tat you understand te omework problems. General notes: () Always give an algebraic reason for your answer (graps are not sufficient),

More information

Excursions in Computing Science: Week v Milli-micro-nano-..math Part II

Excursions in Computing Science: Week v Milli-micro-nano-..math Part II Excursions in Computing Science: Week v Milli-micro-nano-..mat Part II T. H. Merrett McGill University, Montreal, Canada June, 5 I. Prefatory Notes. Cube root of 8. Almost every calculator as a square-root

More information

Time (hours) Morphine sulfate (mg)

Time (hours) Morphine sulfate (mg) Mat Xa Fall 2002 Review Notes Limits and Definition of Derivative Important Information: 1 According to te most recent information from te Registrar, te Xa final exam will be eld from 9:15 am to 12:15

More information

Chapter 2. Limits and Continuity 16( ) 16( 9) = = 001. Section 2.1 Rates of Change and Limits (pp ) Quick Review 2.1

Chapter 2. Limits and Continuity 16( ) 16( 9) = = 001. Section 2.1 Rates of Change and Limits (pp ) Quick Review 2.1 Capter Limits and Continuity Section. Rates of Cange and Limits (pp. 969) Quick Review..... f ( ) ( ) ( ) 0 ( ) f ( ) f ( ) sin π sin π 0 f ( ). < < < 6. < c c < < c 7. < < < < < 8. 9. 0. c < d d < c

More information

Polynomials 3: Powers of x 0 + h

Polynomials 3: Powers of x 0 + h near small binomial Capter 17 Polynomials 3: Powers of + Wile it is easy to compute wit powers of a counting-numerator, it is a lot more difficult to compute wit powers of a decimal-numerator. EXAMPLE

More information

Announcements for This Lecture

Announcements for This Lecture Lecture 26 Sorting Announcements for Tis Lecture Prelim/Finals Prelims in andbac room Gates Hall 216 Open business ours Get tem any day tis wee Final: Survey Dec still 17 up t for 2:00-4:30pm A5 Study

More information

The Krewe of Caesar Problem. David Gurney. Southeastern Louisiana University. SLU 10541, 500 Western Avenue. Hammond, LA

The Krewe of Caesar Problem. David Gurney. Southeastern Louisiana University. SLU 10541, 500 Western Avenue. Hammond, LA Te Krewe of Caesar Problem David Gurney Souteastern Louisiana University SLU 10541, 500 Western Avenue Hammond, LA 7040 June 19, 00 Krewe of Caesar 1 ABSTRACT Tis paper provides an alternative to te usual

More information

, meant to remind us of the definition of f (x) as the limit of difference quotients: = lim

, meant to remind us of the definition of f (x) as the limit of difference quotients: = lim Mat 132 Differentiation Formulas Stewart 2.3 So far, we ave seen ow various real-world problems rate of cange and geometric problems tangent lines lead to derivatives. In tis section, we will see ow to

More information

LATTICE EXIT MODELS S. GILL WILLIAMSON

LATTICE EXIT MODELS S. GILL WILLIAMSON LATTICE EXIT MODELS S. GILL WILLIAMSON ABSTRACT. We discuss a class of problems wic we call lattice exit models. At one level, tese problems provide undergraduate level exercises in labeling te vertices

More information

. If lim. x 2 x 1. f(x+h) f(x)

. If lim. x 2 x 1. f(x+h) f(x) Review of Differential Calculus Wen te value of one variable y is uniquely determined by te value of anoter variable x, ten te relationsip between x and y is described by a function f tat assigns a value

More information

arxiv: v3 [cs.ds] 4 Aug 2017

arxiv: v3 [cs.ds] 4 Aug 2017 Non-preemptive Sceduling in a Smart Grid Model and its Implications on Macine Minimization Fu-Hong Liu 1, Hsiang-Hsuan Liu 1,2, and Prudence W.H. Wong 2 1 Department of Computer Science, National Tsing

More information

On convexity of polynomial paths and generalized majorizations

On convexity of polynomial paths and generalized majorizations On convexity of polynomial pats and generalized majorizations Marija Dodig Centro de Estruturas Lineares e Combinatórias, CELC, Universidade de Lisboa, Av. Prof. Gama Pinto 2, 1649-003 Lisboa, Portugal

More information

Domination Problems in Nowhere-Dense Classes of Graphs

Domination Problems in Nowhere-Dense Classes of Graphs LIPIcs Leibniz International Proceedings in Informatics Domination Problems in Nowere-Dense Classes of Graps Anuj Dawar 1, Stepan Kreutzer 2 1 University of Cambridge Computer Lab, U.K. anuj.dawar@cl.cam.ac.uk

More information

5.1 We will begin this section with the definition of a rational expression. We

5.1 We will begin this section with the definition of a rational expression. We Basic Properties and Reducing to Lowest Terms 5.1 We will begin tis section wit te definition of a rational epression. We will ten state te two basic properties associated wit rational epressions and go

More information

3.1 Extreme Values of a Function

3.1 Extreme Values of a Function .1 Etreme Values of a Function Section.1 Notes Page 1 One application of te derivative is finding minimum and maimum values off a grap. In precalculus we were only able to do tis wit quadratics by find

More information

5 Ordinary Differential Equations: Finite Difference Methods for Boundary Problems

5 Ordinary Differential Equations: Finite Difference Methods for Boundary Problems 5 Ordinary Differential Equations: Finite Difference Metods for Boundary Problems Read sections 10.1, 10.2, 10.4 Review questions 10.1 10.4, 10.8 10.9, 10.13 5.1 Introduction In te previous capters we

More information

NUMERICAL DIFFERENTIATION. James T. Smith San Francisco State University. In calculus classes, you compute derivatives algebraically: for example,

NUMERICAL DIFFERENTIATION. James T. Smith San Francisco State University. In calculus classes, you compute derivatives algebraically: for example, NUMERICAL DIFFERENTIATION James T Smit San Francisco State University In calculus classes, you compute derivatives algebraically: for example, f( x) = x + x f ( x) = x x Tis tecnique requires your knowing

More information

A Reconsideration of Matter Waves

A Reconsideration of Matter Waves A Reconsideration of Matter Waves by Roger Ellman Abstract Matter waves were discovered in te early 20t century from teir wavelengt, predicted by DeBroglie, Planck's constant divided by te particle's momentum,

More information

Sin, Cos and All That

Sin, Cos and All That Sin, Cos and All Tat James K. Peterson Department of Biological Sciences and Department of Matematical Sciences Clemson University Marc 9, 2017 Outline Sin, Cos and all tat! A New Power Rule Derivatives

More information

SECTION 1.10: DIFFERENCE QUOTIENTS LEARNING OBJECTIVES

SECTION 1.10: DIFFERENCE QUOTIENTS LEARNING OBJECTIVES (Section.0: Difference Quotients).0. SECTION.0: DIFFERENCE QUOTIENTS LEARNING OBJECTIVES Define average rate of cange (and average velocity) algebraically and grapically. Be able to identify, construct,

More information

Subdifferentials of convex functions

Subdifferentials of convex functions Subdifferentials of convex functions Jordan Bell jordan.bell@gmail.com Department of Matematics, University of Toronto April 21, 2014 Wenever we speak about a vector space in tis note we mean a vector

More information

REVIEW LAB ANSWER KEY

REVIEW LAB ANSWER KEY REVIEW LAB ANSWER KEY. Witout using SN, find te derivative of eac of te following (you do not need to simplify your answers): a. f x 3x 3 5x x 6 f x 3 3x 5 x 0 b. g x 4 x x x notice te trick ere! x x g

More information

Physically Based Modeling: Principles and Practice Implicit Methods for Differential Equations

Physically Based Modeling: Principles and Practice Implicit Methods for Differential Equations Pysically Based Modeling: Principles and Practice Implicit Metods for Differential Equations David Baraff Robotics Institute Carnegie Mellon University Please note: Tis document is 997 by David Baraff

More information

Chapter 2 Performance Analysis of Call-Handling Processes in Buffered Cellular Wireless Networks

Chapter 2 Performance Analysis of Call-Handling Processes in Buffered Cellular Wireless Networks Capter 2 Performance Analysis of Call-Handling Processes in Buffered Cellular Wireless Networks In tis capter effective numerical computational procedures to calculate QoS (Quality of Service) metrics

More information

Taylor Series and the Mean Value Theorem of Derivatives

Taylor Series and the Mean Value Theorem of Derivatives 1 - Taylor Series and te Mean Value Teorem o Derivatives Te numerical solution o engineering and scientiic problems described by matematical models oten requires solving dierential equations. Dierential

More information

Recall from our discussion of continuity in lecture a function is continuous at a point x = a if and only if

Recall from our discussion of continuity in lecture a function is continuous at a point x = a if and only if Computational Aspects of its. Keeping te simple simple. Recall by elementary functions we mean :Polynomials (including linear and quadratic equations) Eponentials Logaritms Trig Functions Rational Functions

More information

Introduction to Derivatives

Introduction to Derivatives Introduction to Derivatives 5-Minute Review: Instantaneous Rates and Tangent Slope Recall te analogy tat we developed earlier First we saw tat te secant slope of te line troug te two points (a, f (a))

More information

Math 31A Discussion Notes Week 4 October 20 and October 22, 2015

Math 31A Discussion Notes Week 4 October 20 and October 22, 2015 Mat 3A Discussion Notes Week 4 October 20 and October 22, 205 To prepare for te first midterm, we ll spend tis week working eamples resembling te various problems you ve seen so far tis term. In tese notes

More information

Lab 6 Derivatives and Mutant Bacteria

Lab 6 Derivatives and Mutant Bacteria Lab 6 Derivatives and Mutant Bacteria Date: September 27, 20 Assignment Due Date: October 4, 20 Goal: In tis lab you will furter explore te concept of a derivative using R. You will use your knowledge

More information

INTRODUCTION AND MATHEMATICAL CONCEPTS

INTRODUCTION AND MATHEMATICAL CONCEPTS Capter 1 INTRODUCTION ND MTHEMTICL CONCEPTS PREVIEW Tis capter introduces you to te basic matematical tools for doing pysics. You will study units and converting between units, te trigonometric relationsips

More information

Optimal parameters for a hierarchical grid data structure for contact detection in arbitrarily polydisperse particle systems

Optimal parameters for a hierarchical grid data structure for contact detection in arbitrarily polydisperse particle systems Comp. Part. Mec. 04) :357 37 DOI 0.007/s4057-04-000-9 Optimal parameters for a ierarcical grid data structure for contact detection in arbitrarily polydisperse particle systems Dinant Krijgsman Vitaliy

More information

MA455 Manifolds Solutions 1 May 2008

MA455 Manifolds Solutions 1 May 2008 MA455 Manifolds Solutions 1 May 2008 1. (i) Given real numbers a < b, find a diffeomorpism (a, b) R. Solution: For example first map (a, b) to (0, π/2) and ten map (0, π/2) diffeomorpically to R using

More information

Solving Continuous Linear Least-Squares Problems by Iterated Projection

Solving Continuous Linear Least-Squares Problems by Iterated Projection Solving Continuous Linear Least-Squares Problems by Iterated Projection by Ral Juengling Department o Computer Science, Portland State University PO Box 75 Portland, OR 977 USA Email: juenglin@cs.pdx.edu

More information

ALGEBRA AND TRIGONOMETRY REVIEW by Dr TEBOU, FIU. A. Fundamental identities Throughout this section, a and b denotes arbitrary real numbers.

ALGEBRA AND TRIGONOMETRY REVIEW by Dr TEBOU, FIU. A. Fundamental identities Throughout this section, a and b denotes arbitrary real numbers. ALGEBRA AND TRIGONOMETRY REVIEW by Dr TEBOU, FIU A. Fundamental identities Trougout tis section, a and b denotes arbitrary real numbers. i) Square of a sum: (a+b) =a +ab+b ii) Square of a difference: (a-b)

More information

HOW TO DEAL WITH FFT SAMPLING INFLUENCES ON ADEV CALCULATIONS

HOW TO DEAL WITH FFT SAMPLING INFLUENCES ON ADEV CALCULATIONS HOW TO DEAL WITH FFT SAMPLING INFLUENCES ON ADEV CALCULATIONS Po-Ceng Cang National Standard Time & Frequency Lab., TL, Taiwan 1, Lane 551, Min-Tsu Road, Sec. 5, Yang-Mei, Taoyuan, Taiwan 36 Tel: 886 3

More information

OSCILLATION OF SOLUTIONS TO NON-LINEAR DIFFERENCE EQUATIONS WITH SEVERAL ADVANCED ARGUMENTS. Sandra Pinelas and Julio G. Dix

OSCILLATION OF SOLUTIONS TO NON-LINEAR DIFFERENCE EQUATIONS WITH SEVERAL ADVANCED ARGUMENTS. Sandra Pinelas and Julio G. Dix Opuscula Mat. 37, no. 6 (2017), 887 898 ttp://dx.doi.org/10.7494/opmat.2017.37.6.887 Opuscula Matematica OSCILLATION OF SOLUTIONS TO NON-LINEAR DIFFERENCE EQUATIONS WITH SEVERAL ADVANCED ARGUMENTS Sandra

More information

A SHORT INTRODUCTION TO BANACH LATTICES AND

A SHORT INTRODUCTION TO BANACH LATTICES AND CHAPTER A SHORT INTRODUCTION TO BANACH LATTICES AND POSITIVE OPERATORS In tis capter we give a brief introduction to Banac lattices and positive operators. Most results of tis capter can be found, e.g.,

More information

The Verlet Algorithm for Molecular Dynamics Simulations

The Verlet Algorithm for Molecular Dynamics Simulations Cemistry 380.37 Fall 2015 Dr. Jean M. Standard November 9, 2015 Te Verlet Algoritm for Molecular Dynamics Simulations Equations of motion For a many-body system consisting of N particles, Newton's classical

More information

64 IX. The Exceptional Lie Algebras

64 IX. The Exceptional Lie Algebras 64 IX. Te Exceptional Lie Algebras IX. Te Exceptional Lie Algebras We ave displayed te four series of classical Lie algebras and teir Dynkin diagrams. How many more simple Lie algebras are tere? Surprisingly,

More information

Chapter 5 FINITE DIFFERENCE METHOD (FDM)

Chapter 5 FINITE DIFFERENCE METHOD (FDM) MEE7 Computer Modeling Tecniques in Engineering Capter 5 FINITE DIFFERENCE METHOD (FDM) 5. Introduction to FDM Te finite difference tecniques are based upon approximations wic permit replacing differential

More information

Near-Optimal conversion of Hardness into Pseudo-Randomness

Near-Optimal conversion of Hardness into Pseudo-Randomness Near-Optimal conversion of Hardness into Pseudo-Randomness Russell Impagliazzo Computer Science and Engineering UC, San Diego 9500 Gilman Drive La Jolla, CA 92093-0114 russell@cs.ucsd.edu Ronen Saltiel

More information

ch (for some fixed positive number c) reaching c

ch (for some fixed positive number c) reaching c GSTF Journal of Matematics Statistics and Operations Researc (JMSOR) Vol. No. September 05 DOI 0.60/s4086-05-000-z Nonlinear Piecewise-defined Difference Equations wit Reciprocal and Cubic Terms Ramadan

More information

Quantum Numbers and Rules

Quantum Numbers and Rules OpenStax-CNX module: m42614 1 Quantum Numbers and Rules OpenStax College Tis work is produced by OpenStax-CNX and licensed under te Creative Commons Attribution License 3.0 Abstract Dene quantum number.

More information

Printed Name: Section #: Instructor:

Printed Name: Section #: Instructor: Printed Name: Section #: Instructor: Please do not ask questions during tis exam. If you consider a question to be ambiguous, state your assumptions in te margin and do te best you can to provide te correct

More information

THE IDEA OF DIFFERENTIABILITY FOR FUNCTIONS OF SEVERAL VARIABLES Math 225

THE IDEA OF DIFFERENTIABILITY FOR FUNCTIONS OF SEVERAL VARIABLES Math 225 THE IDEA OF DIFFERENTIABILITY FOR FUNCTIONS OF SEVERAL VARIABLES Mat 225 As we ave seen, te definition of derivative for a Mat 111 function g : R R and for acurveγ : R E n are te same, except for interpretation:

More information

CHAPTER (A) When x = 2, y = 6, so f( 2) = 6. (B) When y = 4, x can equal 6, 2, or 4.

CHAPTER (A) When x = 2, y = 6, so f( 2) = 6. (B) When y = 4, x can equal 6, 2, or 4. SECTION 3-1 101 CHAPTER 3 Section 3-1 1. No. A correspondence between two sets is a function only if eactly one element of te second set corresponds to eac element of te first set. 3. Te domain of a function

More information

Fundamentals of Concept Learning

Fundamentals of Concept Learning Aims 09s: COMP947 Macine Learning and Data Mining Fundamentals of Concept Learning Marc, 009 Acknowledgement: Material derived from slides for te book Macine Learning, Tom Mitcell, McGraw-Hill, 997 ttp://www-.cs.cmu.edu/~tom/mlbook.tml

More information

MATH 1020 Answer Key TEST 2 VERSION B Fall Printed Name: Section #: Instructor:

MATH 1020 Answer Key TEST 2 VERSION B Fall Printed Name: Section #: Instructor: Printed Name: Section #: Instructor: Please do not ask questions during tis exam. If you consider a question to be ambiguous, state your assumptions in te margin and do te best you can to provide te correct

More information

Section 2.7 Derivatives and Rates of Change Part II Section 2.8 The Derivative as a Function. at the point a, to be. = at time t = a is

Section 2.7 Derivatives and Rates of Change Part II Section 2.8 The Derivative as a Function. at the point a, to be. = at time t = a is Mat 180 www.timetodare.com Section.7 Derivatives and Rates of Cange Part II Section.8 Te Derivative as a Function Derivatives ( ) In te previous section we defined te slope of te tangent to a curve wit

More information

Digital Filter Structures

Digital Filter Structures Digital Filter Structures Te convolution sum description of an LTI discrete-time system can, in principle, be used to implement te system For an IIR finite-dimensional system tis approac is not practical

More information

7 Semiparametric Methods and Partially Linear Regression

7 Semiparametric Methods and Partially Linear Regression 7 Semiparametric Metods and Partially Linear Regression 7. Overview A model is called semiparametric if it is described by and were is nite-dimensional (e.g. parametric) and is in nite-dimensional (nonparametric).

More information

Copyright c 2008 Kevin Long

Copyright c 2008 Kevin Long Lecture 4 Numerical solution of initial value problems Te metods you ve learned so far ave obtained closed-form solutions to initial value problems. A closedform solution is an explicit algebriac formula

More information

Quantum Mechanics Chapter 1.5: An illustration using measurements of particle spin.

Quantum Mechanics Chapter 1.5: An illustration using measurements of particle spin. I Introduction. Quantum Mecanics Capter.5: An illustration using measurements of particle spin. Quantum mecanics is a teory of pysics tat as been very successful in explaining and predicting many pysical

More information

On the computation of wavenumber integrals in phase-shift migration of common-offset sections

On the computation of wavenumber integrals in phase-shift migration of common-offset sections Computation of offset-wavenumber integrals On te computation of wavenumber integrals in pase-sift migration of common-offset sections Xiniang Li and Gary F. Margrave ABSTRACT Te evaluation of wavenumber

More information

Volume 29, Issue 3. Existence of competitive equilibrium in economies with multi-member households

Volume 29, Issue 3. Existence of competitive equilibrium in economies with multi-member households Volume 29, Issue 3 Existence of competitive equilibrium in economies wit multi-member ouseolds Noriisa Sato Graduate Scool of Economics, Waseda University Abstract Tis paper focuses on te existence of

More information

0.1 Differentiation Rules

0.1 Differentiation Rules 0.1 Differentiation Rules From our previous work we ve seen tat it can be quite a task to calculate te erivative of an arbitrary function. Just working wit a secon-orer polynomial tings get pretty complicate

More information

LIMITS AND DERIVATIVES CONDITIONS FOR THE EXISTENCE OF A LIMIT

LIMITS AND DERIVATIVES CONDITIONS FOR THE EXISTENCE OF A LIMIT LIMITS AND DERIVATIVES Te limit of a function is defined as te value of y tat te curve approaces, as x approaces a particular value. Te limit of f (x) as x approaces a is written as f (x) approaces, as

More information

Financial Econometrics Prof. Massimo Guidolin

Financial Econometrics Prof. Massimo Guidolin CLEFIN A.A. 2010/2011 Financial Econometrics Prof. Massimo Guidolin A Quick Review of Basic Estimation Metods 1. Were te OLS World Ends... Consider two time series 1: = { 1 2 } and 1: = { 1 2 }. At tis

More information

Derivation Of The Schwarzschild Radius Without General Relativity

Derivation Of The Schwarzschild Radius Without General Relativity Derivation Of Te Scwarzscild Radius Witout General Relativity In tis paper I present an alternative metod of deriving te Scwarzscild radius of a black ole. Te metod uses tree of te Planck units formulas:

More information

Exponentials and Logarithms Review Part 2: Exponentials

Exponentials and Logarithms Review Part 2: Exponentials Eponentials and Logaritms Review Part : Eponentials Notice te difference etween te functions: g( ) and f ( ) In te function g( ), te variale is te ase and te eponent is a constant. Tis is called a power

More information

Cubic Functions: Local Analysis

Cubic Functions: Local Analysis Cubic function cubing coefficient Capter 13 Cubic Functions: Local Analysis Input-Output Pairs, 378 Normalized Input-Output Rule, 380 Local I-O Rule Near, 382 Local Grap Near, 384 Types of Local Graps

More information

Lecture XVII. Abstract We introduce the concept of directional derivative of a scalar function and discuss its relation with the gradient operator.

Lecture XVII. Abstract We introduce the concept of directional derivative of a scalar function and discuss its relation with the gradient operator. Lecture XVII Abstract We introduce te concept of directional derivative of a scalar function and discuss its relation wit te gradient operator. Directional derivative and gradient Te directional derivative

More information

Notes on wavefunctions II: momentum wavefunctions

Notes on wavefunctions II: momentum wavefunctions Notes on wavefunctions II: momentum wavefunctions and uncertainty Te state of a particle at any time is described by a wavefunction ψ(x). Tese wavefunction must cange wit time, since we know tat particles

More information