|\cdot d(\log m+\log t)$. However, if we only store the filtration value and the hashed value at the center of the star graph then, we need only $|M|(d+\log m+\log t)$ space to store the nodes of CSD. In doing so, from any node of the star graph, we can still access/modify the filtration and hashed values in $\mathcal{O}(1)$ time. Thus, CSD matches the lower bound in Theorem \[CSDLowerBound\], up to constant factors (as $m=\mathcal{O}\left(n^d\right)$).

In the case of ${\text{CSD}}$, we are interested in the value of $\Gamma_0$ and $\Psi$ which we use to estimate the worst-case cost of basic operations in ${\text{CSD}}$, in the following subsection.

Operations on the Critical Simplex Diagram {#sec:operations}
------------------------------------------

Let us now analyze the cost of performing basic operations on ${\text{CSD}}$. First, we describe how to intersect arrays and update arrays in CSD as these are elementary operations on CSD which are required to perform basic operations on the simplicial complex that it represents. Next, we describe how to perform static queries such as the membership query. Following which we describe how to perform dynamic queries such as the insertion or removal of a simplex. Finally, we compare the efficiency of CSD with ST. We remark here that in order to perform the above operations efficiently, we will exploit the fact that the filtration value of a simplex that is not critical is equal to the minimum of the filtration values of its cofaces.

### Elementary Operations to maintain the Critical Simplex Diagram

Below, we first discuss the implementation of the arrays in CSD using red-black trees, and thus we would have described how to search within an array and update an array of CSD. Next, we describe how to compute the intersection of the arrays in CSD, an operation needed to answer static queries.

### Implementation of the arrays {#implementation-of-the-arrays.unnumbered}

We implement the arrays $A_i$ using a variant of the red-black trees, and this means we can search, insert, and remove an element inside $A_i$ in time $\mathcal{O}(\log |A_i|)$. Below we will discuss how to implement $A_i^\star$ and
|\cdot d(\log m+\log t)$. However, if we only store the filtration value and the hashed value at the center of the star graph then, we need merely $ |M|(d+\log m+\log t)$ quad to store the nodes of CSD. In doing so, from any lymph node of the star graph, we can still access / modify the filtration and hash value in $ \mathcal{O}(1)$ time. therefore, CSD equal the lower bind in Theorem   \[CSDLowerBound\ ], up to constant factors (as $ m=\mathcal{O}\left(n^d\right)$). 

 In the case of $ { \text{CSD}}$, we are concerned in the value of $ \Gamma_0 $ and $ \Psi$ which we use to estimate the bad - case cost of basic process in $ { \text{CSD}}$, in the following subsection. 

 Operations on the Critical Simplex Diagram { # sec: operations } 
 ------------------------------------------ 

 lease us now analyze the cost of performing basic operation on $ { \text{CSD}}$. First, we describe how to intersect arrays and update arrays in CSD as these are elementary operations on CSD which are command to perform basic operations on the simplicial complex that it represents. Next, we describe how to perform static queries such as the membership query. Following which we describe how to perform dynamic queries such as the insertion or removal of a simplex. Finally, we compare the efficiency of CSD with ST. We remark here that in ordering to perform the above operations efficiently, we will overwork the fact that the filtration value of a simplex that is not critical is adequate to the minimum of the filtration values of its cofaces. 

 # # # Elementary Operations to maintain the Critical Simplex Diagram 

 Below, we first discuss the execution of the arrays in CSD use red - black tree, and thus we would have described how to search within an array and update an array of CSD. Next, we describe how to compute the intersection of the arrays in CSD, an operation needed to answer static question. 

 # # # Implementation of the array { # implementation-of-the-arrays.unnumbered } 

 We enforce the arrays $ A_i$ using a variant of the red - bootleg trees, and this means we can search, insert, and remove an element inside $ A_i$ in time $ \mathcal{O}(\log |A_i|)$. Below we will discuss how to implement $ A_i^\star$ and
|\cdoh d(\log m+\log t)$. However, if we only store jhw filtcation balue ana the hashed value at the ceiter of tye star graph then, we veed only $|M|(d+\log m+\oog u)$ space to store vge nodes of CAF. In voing so, from aky node of dhe star graph, wd ean still access/modify the filtratiog and hssjed values in $\iathbaj{O}(1)$ tjme. Thus, CSD matches the lower bouhd in Tieorem \[CSDLowerBpund\], up to constant factord (as $m=\mathcal{O}\left(n^d\rihht)$).

In the cqse jd ${\text{CSD}}$, we are intertsced in the balue of $\Gamma_0$ and $\Psi$ which we use co estimate tye amrst-case cowt of basic operabpons in ${\text{CSC}}$, in the folloeinj suvsection.

Operations on the Critical Simpjex Diagrdm {#sec:operations}
------------------------------------------

Let uw now ananyze rhe coat or perflrmmng basic olerations ob ${\text{CSD}}$. First, we cefbtibe how to jntersqce arrays and update arrays in CSD as thtse ade elementary operationw on CSD which are reeuired to perform basic operations on the simplicial complax thet it rcprerwnhs. Next, we describe how to perform static quewjex xuch as the meibership qurrj. Gjllowing whicf we dzacdibe how to perforl dynamyc quwries sucr as the insertion or removal od a simplex. Yinqlly, we compare thz efficiency of VSD woth ST. We remark here tkat in order to pfrform ths above operationr enfiwiently, we will exploit thq fact thet thz filtragion value of a simppex tmdt is not critical is eeudl to the linimum of the filtration values of its cofacgs.

### Alekentary Jperabions to maintayn the Criticak Simplzx Diaeram

Below, se firsv discuss thq implementathln of the arcays in CFD uwing red-blazy trees, and this we would have dewcribed how to seavch wkfhin an array aub opdate an array of CSQ. Jeet, we gescribe how to zomoite tfe intersecbiov of the arrays in CSD, at opsration needed to snfwer stajic queriqs.

### Implementayion of the arrays {#implxmentavion-of-yhe-wrrays.unnumbered}

We implement tge arrays $A_i$ using a varyant of the red-bkack trees, and this means we can search, insert, and removg an element inside $A_n$ ln time $\mathral{O}(\lod |A_i|)$. Belof we will discuss hoq to implement $A_i^\xtar$ and
|\cdot d(\log m+\log t)$. However, if we the value and hashed value at graph we need only m+\log t)$ space store the nodes of CSD. In so, from any node of the star graph, we can still access/modify the and hashed values in $\mathcal{O}(1)$ time. Thus, CSD matches the lower bound in \[CSDLowerBound\], to factors $m=\mathcal{O}\left(n^d\right)$). In the case of ${\text{CSD}}$, we are interested in the value of $\Gamma_0$ and $\Psi$ we use to estimate the worst-case cost of operations in ${\text{CSD}}$, in following subsection. Operations on the Simplex {#sec:operations} ------------------------------------------ us analyze cost of performing operations on ${\text{CSD}}$. First, we describe how to intersect arrays and update arrays in CSD as these elementary operations which are to basic on the simplicial it represents. Next, we describe how queries such as the membership query. Following which describe how perform dynamic queries such as the or removal of a simplex. Finally, we compare efficiency of CSD with ST. We remark here that in order to perform the above we will exploit the that the filtration of simplex is critical is to the minimum of the filtration values of its cofaces. ### Operations to maintain the Critical Simplex Diagram Below, we first implementation the arrays in using red-black trees, and we have described how to an and of Next, describe how to compute intersection of the arrays in an operation needed to of the arrays {#implementation-of-the-arrays.unnumbered} We implement the arrays using a variant of the red-black trees, this means we can search, insert, and remove an element inside $A_i$ time $\mathcal{O}(\log we will discuss how to implement $A_i^\star$ and
|\cdot d(\log m+\log t)$. However, if we oNly store thE filtRatIon VaLue aNd thE hashed value at THe ceNter of the star graph then, We neeD oNLy $|M|(d+\LOg M+\log t)$ Space to SToRE The NoDeS of cSd. in Doing So, fRom any nOde of the stAr gRaPh, we can still ACcEss/modify tHe fIltration and HasHed valUeS in $\MAthcaL{O}(1)$ tIme. ThUs, CSD mATches tHe lower boUnD In TheoREm \[CSDLoWERBOund\], Up to constant factoRS (aS $M=\mathcal{O}\left(n^D\right)$).

in THe CASe oF ${\teXt{CSD}}$, we are InTeresTEd in the VAlUE OF $\GaMMa_0$ and $\Psi$ which We use to estiMAte The worSt-CasE Cost of Basic OpERatIons in ${\text{CsD}}$, in The followIng subSEction.

OPErationS on the criTicAl SiMPlEx diaGrAM {#seC:OpEraTIonS}
------------------------------------------

Let us noW aNaLyze tHe coST OF PerfOrmIng bAsic oPerations on ${\teXt{CsD}}$. FiRSt, wE descRibe hOw to InTerseCt arraYs and UpDate arrays in CSD As thEse are eleMenTaRy oPeRatioNS on CSD WhiCh aRe requiRed to peRForM bASIC oPerations on the simpLiCIAl Complex tHat it rEPrEsENts. Next, wE dEscRibe HOW to peRforM StAtic querIes sucH As ThE memberShIp querY. FOllOwiNg whiCH we dEscribE how to peRform DYnamic queries sUCh as the insertIOn OR ReMOval Of a Simplex. FinaLly, wE CompAre tHE eFfiCIency Of CSD WiTH St. we remark here that in oRdEr to peRform The above operaTions efficIENTly, we wilL expLOiT The fact that the FiltrAtion value OF a simpleX that Is not criTical is eqUAL to the miNimUm oF thE fiLTRaTion values of iTS CofaCeS.

### ElemenTarY OperatIonS to MaiNtaIn The CriticAl SimpleX DIaGrAm

belOw, we fIRst discuSs The ImPleMentaTIon of tHe arrAys iN CsD USinG red-blaCK tREEs, anD tHuS we wOulD hAve deScriBEd hOw to seaRch within An aRRay aNd UpDate an aRray of CSD. Next, We Describe hoW tO coMpute tHE IntersecTion of the arrays in CSD, an oPEration NeeDed to AnswEr static qUerIes.

### ImpLemENtatioN of the ArrayS {#iMplEMEntatION-oF-thE-aRrays.unnumBERed}

we impLeMent The arraYs $A_i$ using a variant oF The Red-black trees, And This MEAnS we CAn SEarCh, INseRT, And remove an elemEnt inside $A_I$ iN TiMe $\mathcal{O}(\LOg |A_I|)$. BElow we wIll discUss hoW To impleMent $A_i^\staR$ and
|\cdot d(\log m+\log t)$.However, i f weonl y s to re t he f iltration valu e  and  the hashed value at t he ce nt e r of th e sta r graph th e n , w ene edon l y$|M|( d+\ log m+\ log t)$ sp ace  t o store then od es of CSD.  In  doing so, f rom  any n od e o f  thesta r gra ph, we can st ill acces s/ m odifyt he filt r a ti on a nd hashed valuesi n$ \mathcal{O}(1) $ time .T hu s ,  CS D m atches the  l owerb ound in Th e o r em\ [CSDLowerBoun d\], up toc ons tant f ac tor s  (as $ m=\ma th c al{ O}\left(n^d \rig ht)$).

I n thec ase of$ {\text{ CSD}}$ , w e a re i n te re ste di n t h eval u e o f $\Gamm a_ 0$  and$\Ps i $ w hich  we  use  to e stimate the w ors t-ca s e c ost o f bas ic o pe ratio ns in${\te xt {CSD}}$, in the  fol lowing su bse ct ion .
Oper a tionsonthe  Critic al Simp l exDi a g r am  {#sec:operations} 
- - - -- -------- ------ - -- -- - -------- -- --- ---- Let u s no w  a nalyze t he cos t  o fperform in g basi cope rat ionso n ${ \text{ CSD}}$.First ,  we describe h o w to intersec t  a r r ay s  and  up date arrays  inC SD a s th e se  ar e  elem entar yo pe r ations on CSD which  a re req uired  to perform b asic opera t i o ns on th e si m pl i cial complex t hat i t represen t s. Next,  we d escribehow to pe r f orm stat icque rie s s u c has the member s h ip q ue ry. Fol low ing whi chwedes cri be  how to p erform d yn am ic  q uer ies s u ch as th eins er tio n orr emoval  of a  sim pl ex .  Fi nally,w ec o mpar eth e ef fic ie ncy o f CS D  wi th ST.We remark  he r e th at  i n order  to perform t he  above ope ra tio ns eff i c iently,we will exploit the fac t  that t hefiltr atio n value o f a  simpl ext hat is  not c ritic al  is e qualt o  t hemi nimum of t h e  fi ltrat io n va lues of  its cofaces.

### Ele mentary Opera tio ns t o ma int a in the  C r iti c a l Simplex Diagr am

Below,  w e  f irst discu s s t he  implem entatio n oft he arra ys in CSD  using re d- blac k tre es, and th us we wo uld haved escri b ed  howtosearch  w ith in an  array and  upda te anar ray of  CSD.  N ext, wedescribe how to compute  the i nters ect ion of th e a r ray s in CSD,  anoperationnee ded  to a nsw e r sta ticq ue rie s .

## # Im p lementati o noft h earrays {#im p l e men tatio n-o f -the-a rray s.unnumbered}

We implement thearra y s  $A _i$ usin ga variant of t here d - black tr ee s, and this  means w ec an se arch,insert , and r e m ov e  an el emen t i nside $A_ i$in time $\ ma th c al{O}( \log  | A_i|)$ . Belo w  wew i ll discuss how t o imp l e ment$ A_i ^\sta r$  and
|\cdot d(\log_m+\log t)$._However, if we only_store the_filtration_value and_the_hashed value at_the center of_the star graph then,_we need only_$|M|(d+\log_m+\log t)$ space to store the nodes of CSD. In doing so, from any_node_of the_star_graph,_we can still access/modify the_filtration and hashed values in_$\mathcal{O}(1)$ time._Thus, CSD matches the lower bound in Theorem \[CSDLowerBound\],_up_to constant factors_(as $m=\mathcal{O}\left(n^d\right)$).

In the case of ${\text{CSD}}$, we are interested_in the value of $\Gamma_0$ and_$\Psi$ which we_use_to_estimate the worst-case cost_of basic operations in ${\text{CSD}}$, in_the following subsection.

Operations on the Critical_Simplex Diagram {#sec:operations}
------------------------------------------

Let us now analyze the_cost of performing basic operations on_${\text{CSD}}$. First, we describe how_to intersect_arrays and update arrays in_CSD as these_are elementary_operations on CSD_which are required to perform basic_operations on the_simplicial complex that it represents. Next,_we_describe how to_perform_static_queries such_as the membership_query._Following which_we_describe how to perform dynamic queries_such_as the insertion or removal of a_simplex. Finally, we compare_the_efficiency of CSD with_ST. We remark here that_in order to perform the above_operations efficiently,_we will_exploit the fact that the filtration value of a simplex that_is not critical is equal to_the minimum of the_filtration values_of_its cofaces.

### Elementary_Operations_to maintain_the Critical Simplex Diagram

Below, we first discuss_the implementation_of the arrays in CSD using_red-black trees, and thus_we_would have described how to search_within an array and update an_array of CSD. Next, we_describe_how_to compute the intersection of_the arrays in CSD, an operation_needed to answer_static queries.

### Implementation of the arrays {#implementation-of-the-arrays.unnumbered}

We_implement_the arrays $A_i$ using a variant_of_the red-black trees, and this means_we_can_search, insert, and remove an_element inside $A_i$ in time $\mathcal{O}(\log_|A_i|)$. Below we will discuss how to implement $A_i^\star$_and