@ file : Jvm Name (" Fast Arrays ") Ċ package Ġio . github . milli byte 1 . array 6 4 Ċ Ċ import Ġit . un imi . ds i . fast util . Big Arrays Ċ Ċ // ĠCONSTANT S Ċ Ċ /** ĠThe Ġtheoret ical Ġmaximum Ġnumber Ġof Ġelements Ġthat Ġcan Ġfit Ġin Ġa ĠFast Array 6 4 . Ġ*/ Ċ const Ġval ĠMAX _ SIZE Ġ= ĠBig Arrays . SEGMENT _ SIZE . to Long () Ġ* ĠInt . MAX _ VALUE Ċ Ċ // ĠHEL PER S Ċ Ċ /** Ċ Ġ* ĠCreates Ġa Ġnew Ġarray Ġof Ġthe Ġspecified Ġ[ size ], Ġwith Ġall Ġelements Ġinitialized Ġaccording Ġto Ġthe Ġgiven Ġ[ init ] Ġfunction . Ċ Ġ* Ġ@ throws ĠIllegalArgumentException Ġif Ġ[ size ] Ġis Ġnot Ġbetween Ġ 1 Ġand Ġ[ MAX _ SIZE ] Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠE > Ġmake Typed Fast Array 6 4 ( size : ĠLong , Ġcross inline Ġinit : Ġ( Long ) Ġ-> ĠE ): ĠFast Array 6 4 < E > Ġ= ĠFast Array 6 4 ( make Typed 2 D Array ( size , Ġinit )) Ċ Ċ // ĠH IG HER ĠORDER ĠFUNCTIONS Ċ // ĠTODO : Ġconsider Ġremoving Ġdue Ġto Ġlimited Ġperformance Ġbenefit Ġover Ġiterator - based Ġmethods Ċ Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun Ġ< E > ĠFast Array 6 4 < E >. forEach ( action : Ġ( E ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Boolean Array 6 4 . forEach ( action : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast ByteArray 6 4 . forEach ( action : Ġ( Byte ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast CharArray 6 4 . forEach ( action : Ġ( Char ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Double Array 6 4 . forEach ( action : Ġ( Double ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Float Array 6 4 . forEach ( action : Ġ( Float ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast IntArray 6 4 . forEach ( action : Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Long Array 6 4 . forEach ( action : Ġ( Long ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Short Array 6 4 . forEach ( action : Ġ( Short ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun Ġ< E > ĠFast Array 6 4 < E >. forEach Indexed ( action : Ġ( index : ĠLong , ĠE ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Boolean Array 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠBoolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast ByteArray 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠByte ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast CharArray 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠChar ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Double Array 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠDouble ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Float Array 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠFloat ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast IntArray 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Long Array 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠLong ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement , Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Short Array 6 4 . forEach Indexed ( action : Ġ( index : ĠLong , ĠShort ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġindex Ġ= Ġ 0 L ĊĠĠĠ Ġfor ( inner Ġin Ġthis . array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġinner . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun Ġ< E > ĠFast Array 6 4 < E >. forEach InRange ( range : ĠLong Range , Ġaction : Ġ( E ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast Boolean Array 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast ByteArray 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Byte ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast CharArray 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Char ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast Double Array 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Double ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast Float Array 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Float ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast IntArray 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Int ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast Long Array 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Long ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ]. Ġ*/ Ċ inline Ġfun ĠFast Short Array 6 4 . forEach InRange ( range : ĠLong Range , Ġaction : Ġ( Short ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( inner [ inner Index ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun Ġ< E > ĠFast Array 6 4 < E >. forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠE ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Boolean Array 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠBoolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast ByteArray 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠByte ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast CharArray 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠChar ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Double Array 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠDouble ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Float Array 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠFloat ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast IntArray 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠInt ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Long Array 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠLong ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ /** ĠPerforms Ġthe Ġgiven Ġ[ action ] Ġon Ġeach Ġelement Ġwithin Ġthe Ġ[ range ], Ġproviding Ġsequential Ġindex Ġwith Ġthe Ġelement . Ġ*/ Ċ inline Ġfun ĠFast Short Array 6 4 . forEach InRange Indexed ( range : ĠLong Range , Ġaction : Ġ( index : ĠLong , ĠShort ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif ( range . first Ġ< Ġ 0 Ġ|| Ġrange . last Ġ>= Ġthis . size ) Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġ// calcul ates Ġthe Ġindices Ġof Ġthe Ġfirst Ġand Ġlast Ġelements Ġin Ġthe Ġrange ĊĠĠĠ Ġval Ġouter IndexOf First Ġ= ĠBig Arrays . segment ( range . first ) ĊĠĠĠ Ġval Ġouter IndexOf Last Ġ= ĠBig Arrays . segment ( range . last ) ĊĠĠĠ Ġval Ġinner IndexOf First Ġ= ĠBig Arrays . dis placement ( range . first ) ĊĠĠĠ Ġval Ġinner IndexOf Last Ġ= ĠBig Arrays . dis placement ( range . last ) ĊĠĠĠ Ġ// per forms Ġthe Ġiteration ĊĠĠĠ Ġvar Ġindex Ġ= Ġrange . first ĊĠĠĠ Ġfor ( outer Index Ġin Ġouter IndexOf First .. outer IndexOf Last ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġthis . array [ outer Index ] ĊĠĠĠĠĠĠĠ Ġval Ġstarting Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf First ) Ġinner IndexOf First Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġending Inner Index Ġ= Ġif ( outer Index Ġ== Ġouter IndexOf Last ) Ġinner IndexOf Last Ġelse ĠBig Arrays . SEGMENT _ SIZE Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor ( inner Index Ġin Ġstarting Inner Index .. ending Inner Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( index , Ġinner [ inner Index ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }