package Ġorg . jetbrains . research . k ex . intr insics Ċ Ċ import Ġorg . jetbrains . research . k ex . intr insics . internal .* Ċ Ċ object ĠCollection Intr insics Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġfor Ġall , Ġbody Ġtakes Ġcurrent Ġindex ĊĠĠĠĠ Ġ* Ġ@ start Ġ-- Ġstarting Ġindex , Ġinclusive ĊĠĠĠĠ Ġ* Ġ@ end Ġ-- Ġending Ġindex , Ġexclusive ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġfor All ( start : ĠInt , Ġend : ĠInt , Ġbody : ĠInt Consumer ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstart Ġuntil Ġend ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġgenerate Ġarray , Ġbody Ġtakes Ġan Ġindex Ġgenerates Ġan Ġelement Ġfor Ġgiven Ġindex ĊĠĠĠĠ Ġ* Ġ@ length Ġ-- Ġlength Ġof Ġresulting Ġarray ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate Bool Array ( length : ĠInt , Ġbody : ĠBoolean Generator ): ĠBoolean Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠBoolean Array ( length ) Ġ{ Ġfalse Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate ByteArray ( length : ĠInt , Ġbody : ĠByte Generator ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠByteArray ( length ) Ġ{ Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate CharArray ( length : ĠInt , Ġbody : ĠChar Generator ): ĠChar Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠChar Array ( length ) Ġ{ Ġ 0 . to Char () Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate Short Array ( length : ĠInt , Ġbody : ĠShort Generator ): ĠShort Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠShort Array ( length ) Ġ{ Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate IntArray ( length : ĠInt , Ġbody : ĠInt Generator ): ĠInt Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠInt Array ( length ) Ġ{ Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate Long Array ( length : ĠInt , Ġbody : ĠLong Generator ): ĠLong Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠLong Array ( length ) Ġ{ Ġ 0 Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate Float Array ( length : ĠInt , Ġbody : ĠFloat Generator ): ĠFloat Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠFloat Array ( length ) Ġ{ Ġ 0 . 0 f Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġgenerate Double Array ( length : ĠInt , Ġbody : ĠDouble Generator ): ĠDouble Array Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDouble Array ( length ) Ġ{ Ġ 0 . 0 Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny ?> Ġgenerate Object Array ( length : ĠInt , Ġbody : ĠObject Generator < T >): ĠArray < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArray < Any ? >( length ) Ġ{ Ġnull Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ i ] Ġ= Ġbody . apply ( i ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult Ġas ĠArray < T > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcontains ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Bool ( src : ĠBoolean Array , Ġelement : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Byte ( src : ĠByteArray , Ġelement : ĠByte ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Char ( src : ĠChar Array , Ġelement : ĠChar ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Short ( src : ĠShort Array , Ġelement : ĠShort ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Int ( src : ĠInt Array , Ġelement : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Long ( src : ĠLong Array , Ġelement : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Float ( src : ĠFloat Array , Ġelement : ĠFloat ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Double ( src : ĠDouble Array , Ġelement : ĠDouble ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains Ref ( src : ĠArray < Any >, Ġelement : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( elem Ġin Ġsrc ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( elem Ġ=== Ġelement ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġcontains ( src : ĠArray < Any >, Ġelement : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġelement Ġin Ġsrc ĊĠĠĠ Ġ} Ċ }