/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . num kt Ċ Ċ import Ġorg . jetbrains . num kt . core .* ĊĊ Ċ /** Ċ Ġ* ĠCop ies Ġvalues Ġfrom Ġone Ġarray Ġto Ġanother , Ġbroadcast ing Ġas Ġnecessary . Ċ Ġ* Ċ Ġ* ĠTwo Ġarrays Ġmust Ġbe Ġof Ġthe Ġsame Ġtype Ġand Ġmatch Ġin Ġsize , Ġotherwise Ġraise ĠValueError . Ċ Ġ* Ġ@ param Ġdst Ġthe Ġarray Ġinto Ġwhich Ġvalues Ġare Ġcopied . Ċ Ġ* Ġ@ param Ġsrc Ġthe Ġarray Ġfrom Ġwhich Ġvalues Ġare Ġcopied . Ċ Ġ* Ġ@ param Ġcasting Ġsee Ġ[ Cast ing ]. Ċ Ġ*/ Ċ fun Ġ< R Ġ: ĠAny , ĠT Ġ: ĠAny > Ġcopy to ( dst : ĠK t ND Array < R >, Ġsrc : ĠK t ND Array < T >, Ġcasting : ĠCast ing Ġ= ĠCast ing . SAME _ KIND ): ĠUnit Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" copy to "), Ġargs Ġ= ĠarrayOf ( dst , Ġsrc , Ġcasting . str ), Ġk Class Ġ= ĠUnit :: class ) ĊĊ Ċ /** Ċ Ġ* ĠReturn Ġa Ġcontiguous Ġflatten ed Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ]. Ċ Ġ* Ġ@ return Ġview Ġof Ġan Ġarray . Ċ Ġ* Ġ@ see ĠK t ND Array . ravel Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġr avel ( a : ĠK t ND Array < T >, Ġorder : ĠOrder Ġ= ĠOrder . C ) Ġ= Ġa . ravel ( order ) Ċ Ċ /** Ċ Ġ* ĠMove Ġaxis Ġof Ġan Ġarray Ġto Ġnew Ġpositions . Ċ Ġ* ĠOther Ġaxis Ġremain Ġin Ġtheir Ġoriginal Ġorder . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ] Ċ Ġ* Ġ@ param Ġsource Ġoriginal Ġpositions Ġof Ġthe Ġaxes Ġto Ġmove . ĠThese Ġmust Ġbe Ġunique . Ċ Ġ* Ġ@ param Ġdestination Ġdestination Ġpositions Ġfor Ġeach Ġof Ġthe Ġoriginal Ġaxes . ĠThese Ġmust Ġbe Ġunique . Ċ Ġ* Ġ@ return Ġview Ġof Ġthe Ġinput Ġarray . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġmove Axis ( a : ĠK t ND Array < T >, Ġsource : ĠInt , Ġdestination : ĠInt ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" move axis "), Ġargs Ġ= ĠarrayOf ( a , Ġsource , Ġdestination )) Ċ Ċ fun Ġ< T Ġ: ĠAny > Ġmove Axis ( a : ĠK t ND Array < T >, Ġsource : ĠInt Array , Ġdestination : ĠInt Array ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" move axis "), Ġargs Ġ= ĠarrayOf ( a , Ġsource , Ġdestination )) Ċ Ċ /** Ċ Ġ* ĠRoll Ġthe Ġspecified Ġaxis Ġbackwards , Ġuntil Ġit Ġlies Ġin Ġa Ġgiven Ġposition . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġ- Ġinput Ġarray Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ] Ċ Ġ* Ġ@ param Ġaxis Ġ- Ġthe Ġaxis Ġto Ġroll Ġbackwards . ĠThe Ġpositions Ġof Ġthe Ġother Ġaxes Ġdo Ġnot Ġchange Ġrelative Ġto Ġone Ġanother . Ċ Ġ* Ġ@ param Ġstart Ġ- Ġthe Ġaxis Ġis Ġrolled Ġuntil Ġit Ġlies Ġbefore Ġthis Ġposition . ĠThe Ġdefault Ġ- Ġ 0 . Ċ Ġ* Ċ Ġ* Ġ@ return Ġview Ġof Ġthe Ġinput Ġarray . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġroll Axis ( a : ĠK t ND Array < T >, Ġaxis : ĠInt , Ġstart : ĠInt Ġ= Ġ 0 ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" roll axis "), Ġargs Ġ= ĠarrayOf ( a , Ġaxis , Ġstart )) Ċ Ċ /** Ċ Ġ* ĠInter change Ġtwo Ġaxes Ġof Ġan Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ] Ċ Ġ* Ġ@ param Ġaxis 1 Ġfirst Ġaxis . Ċ Ġ* Ġ@ param Ġaxis 2 Ġsecond Ġaxis . Ċ Ġ* Ġ@ return Ġview Ġof Ġthe Ġinput Ġarray . Ċ Ġ* Ġ@ see ĠK t ND Array . swap Axes Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġswap Axes ( a : ĠK t ND Array < T >, Ġaxis 1 : ĠInt , Ġaxis 2 : ĠInt ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġa . swap Axes ( axis 1 , Ġaxis 2 ) ĊĊ Ċ /** Ċ Ġ* ĠP erm ute Ġthe Ġdimensions Ġof Ġan Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ] Ċ Ġ* Ġ@ param Ġaxis Ġperm ute Ġthe Ġaxes Ġaccording Ġto Ġthe Ġvalues Ġgiven . ĠBy Ġdefault , Ġreverse Ġdimensions . Ċ Ġ* Ġ@ return Ġview Ġof Ġinput Ġarray . Ċ Ġ* Ġ@ see ĠK t ND Array . transpose Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġtranspose ( a : ĠK t ND Array < T >, Ġvar arg Ġaxis : ĠInt ? Ġ= Ġempty Array ()): ĠK t ND Array < T > Ġ= Ġa . transpose (* axis ) Ċ Ċ /** Ċ Ġ* ĠInputs Ġare Ġconverted Ġto Ġlist Ġ 1 - dim Ġ[ Kt ND Array ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġ ary s Ġone Ġor Ġmore Ġinput Ġarrays . Ċ Ġ* Ġ@ return Ġ[ List ] Ġof Ġ[ Kt ND Array ]. Ċ Ġ* Ġ@ see Ġat least 2 D Ċ Ġ* Ġ@ see Ġat least 3 D Ċ Ġ*/ Ċ fun Ġat least 1 D ( var arg Ġ ary s : ĠAny ): ĠList < Kt ND Array < Any >> Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" at least _ 1 d "), Ġargs Ġ= ĠarrayOf (* ary s ), Ġk Class Ġ= ĠList :: class ) Ġas ĠList < Kt ND Array < Any >> Ċ Ċ /** Ċ Ġ* ĠInputs Ġare Ġconverted Ġto Ġlist Ġ 2 - dim Ġ[ Kt ND Array ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġ ary s Ġone Ġor Ġmore Ġinput Ġarrays . Ċ Ġ* Ġ@ return Ġ[ List ] Ġof Ġ[ Kt ND Array ]. Ċ Ġ* Ġ@ see Ġat least 1 D Ċ Ġ* Ġ@ see Ġat least 3 D Ċ Ġ*/ Ċ fun Ġat least 2 D ( var arg Ġ ary s : ĠAny ): ĠList < Kt ND Array < Any >> Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" at least _ 2 d "), Ġargs Ġ= ĠarrayOf (* ary s ), Ġk Class Ġ= ĠList :: class ) Ġas ĠList < Kt ND Array < Any >> Ċ Ċ /** Ċ Ġ* ĠInputs Ġare Ġconverted Ġto Ġlist Ġ 1 - dim Ġ[ Kt ND Array ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġ ary s Ġone Ġor Ġmore Ġinput Ġarrays . Ċ Ġ* Ġ@ return Ġ[ List ] Ġof Ġ[ Kt ND Array ]. Ċ Ġ* Ġ@ see Ġat least 1 D Ċ Ġ* Ġ@ see Ġat least 2 D Ċ Ġ*/ Ċ fun Ġat least 3 D ( var arg Ġ ary s : ĠAny ): ĠList < Kt ND Array < Any >> Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" at least _ 3 d "), Ġargs Ġ= ĠarrayOf (* ary s ), Ġk Class Ġ= ĠList :: class ) Ġas ĠList < Kt ND Array < Any >> ĊĊ Ċ /** Ċ Ġ* ĠConvert Ġthe Ġinput Ġlist Ġto Ġan Ġ[ Kt ND Array ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġ- Ġ[ List ] Ġof Ġtype Ġ[ T ] Ċ Ġ* Ġ@ param Ġorder Ġ[ Order ]. ĠDefault Ġis Ġ' C '. Ċ Ġ* Ġ@ return ĠThe Ġinput Ġwill Ġbe Ġreturned Ġun copied Ġiff Ġit 's Ġa Ġcompatible . Ċ Ġ* Ġ@ see Ġas Any Array Ċ Ġ* Ġ@ see Ġas Cont iguous Array Ċ Ġ* Ġ@ see Ġas F Array Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Array ( a : ĠList < Any >, Ġorder : ĠOrder ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" asarray "), Ġargs Ġ= ĠarrayOf ( a , ĠT :: class . java ObjectType ), Ġorder Ġ= Ġorder ) Ċ Ċ /** Ċ Ġ* ĠConvert Ġthe Ġinput Ġ[ Array ] Ġto Ġan Ġ[ Kt ND Array ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġis Ġ[ Array ] Ġof Ġ[ Any ]. Ċ Ġ* Ġ@ param Ġorder Ġ[ Order ]. ĠDefault Ġis Ġ' C '. Ċ Ġ* Ġ@ return Ġnew Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ]. Ċ Ġ* Ġ@ see Ġas Array Ċ Ġ* Ġ@ see Ġas Cont iguous Array Ċ Ġ* Ġ@ see Ġas F Array Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Any Array ( a : ĠArray < out ĠAny >, Ġorder : ĠOrder ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" as any array "), Ġargs Ġ= ĠarrayOf ( a , ĠT :: class . java ObjectType ), Ġorder Ġ= Ġorder ) Ċ Ċ /** Ċ Ġ* ĠConvert Ġthe Ġinput Ġ[ List ] Ġto Ġan Ġ[ Kt ND Array ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġis Ġ[ List ] Ġof Ġ[ Any ]. Ċ Ġ* Ġ@ param Ġorder Ġ[ Order ]. ĠDefault Ġis Ġ' C '. Ċ Ġ* Ġ@ return Ġnew Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ]. Ċ Ġ* Ġ@ see Ġas Array Ċ Ġ* Ġ@ see Ġas Cont iguous Array Ċ Ġ* Ġ@ see Ġas F Array Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Any Array ( a : ĠList < Any >, Ġorder : ĠOrder ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" as any array "), Ġargs Ġ= ĠarrayOf ( a , ĠT :: class . java ObjectType ), Ġorder Ġ= Ġorder ) Ċ Ċ /** Ċ Ġ* ĠConvert Ġthe Ġinput Ġ[ Kt ND Array ] Ġto Ġan Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġis Ġ[ Kt ND Array ] Ġof Ġ[ Any ]. Ċ Ġ* Ġ@ param Ġorder Ġ[ Order ]. ĠDefault Ġis Ġ' C '. Ċ Ġ* Ġ@ return Ġnew Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ]. Ċ Ġ* Ġ@ see Ġas Array Ċ Ġ* Ġ@ see Ġas Cont iguous Array Ċ Ġ* Ġ@ see Ġas F Array Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Any Array ( a : ĠK t ND Array < out ĠAny >, Ġorder : ĠOrder ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" as any array "), Ġargs Ġ= ĠarrayOf ( a , ĠT :: class . java ObjectType ), Ġorder Ġ= Ġorder ) Ċ Ċ /** Ċ Ġ* ĠReturn Ġa Ġcontiguous Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray . Ċ Ġ* Ġ@ return Ġcontiguous Ġ[ Kt ND Array ]. Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠAny > Ġas Cont iguous Array ( a : ĠK t ND Array < out ĠAny >): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" as contiguous array "), Ġargs Ġ= ĠarrayOf ( a , ĠT :: class . java ObjectType )) Ċ Ċ /** Ċ Ġ* ĠReturn Ġan Ġarray Ġconverted Ġto Ġa Ġfloat Ġtype . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ]. Ċ Ġ* Ġ@ return Ġnew Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ Double ] Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġas F Array ( a : ĠK t ND Array < T >): ĠK t ND Array < Double > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" as f array "), Ġargs Ġ= ĠarrayOf ( a )) Ċ Ċ /** Ċ Ġ* ĠJoin Ġa Ġsequence Ġof Ġarrays Ġalong Ġan Ġexisting Ġaxis . Ċ Ġ* Ċ Ġ* Ġ@ param Ġarr s Ġthe Ġinput Ġarrays . Ċ Ġ* ĠThe Ġarrays Ġmust Ġhave Ġthe Ġsame Ġshape , Ġexcept Ġin Ġthe Ġdimension Ġcorresponding Ġto Ġaxis Ġ( the Ġfirst , Ġby Ġdefault ). Ċ Ġ* Ġ@ param Ġaxis Ġthe Ġaxis Ġalong Ġwhich Ġthe Ġarrays Ġwill Ġbe Ġjoined . ĠIf Ġaxis Ġis ĠNone , Ġarrays Ġare Ġflatten ed Ġbefore Ġuse . ĠDefault Ġis Ġ 0 . Ċ Ġ* Ġ@ return Ġnew Ġconcaten ated Ġarray . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġconcatenate ( var arg Ġarr s : ĠK t ND Array < T >, Ġaxis : ĠInt Ġ= Ġ 0 ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" concatenate "), Ġargs Ġ= ĠarrayOf ( arr s , Ġaxis )) ĊĊ Ċ /** Ċ Ġ* ĠJoin Ġa Ġsequence Ġof Ġarrays Ġalong Ġa Ġnew Ġaxis . Ċ Ġ* Ċ Ġ* Ġ@ param Ġarr s Ġthe Ġinput Ġarrays . ĠEach Ġarray Ġmust Ġhave Ġthe Ġsame Ġshape . Ċ Ġ* Ġ@ param Ġaxis Ġthe Ġaxis Ġin Ġthe Ġresult Ġarray Ġalong Ġwhich Ġthe Ġinput Ġarrays Ġare Ġstack ed . ĠDefault Ġis Ġ 0 . Ċ Ġ* Ġ@ return Ġnew Ġ[ Kt ND Array ]. ĠThe Ġstack ed Ġarray Ġhas Ġone Ġmore Ġdimension Ġthan Ġthe Ġinput Ġarrays . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġstack ( var arg Ġarr s : ĠK t ND Array < T >, Ġaxis : ĠInt Ġ= Ġ 0 ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" stack "), Ġargs Ġ= ĠarrayOf ( arr s , Ġaxis )) Ċ Ċ /** Ċ Ġ* ĠStack Ġ 1 - D Ġarrays Ġas Ġcolumns Ġinto Ġa Ġ 2 - D Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġtup Ġarrays Ġto Ġstack . ĠAll Ġof Ġthem Ġmust Ġhave Ġthe Ġsame Ġfirst Ġdimension . Ċ Ġ* Ġ@ return Ġ 2 D Ġarray . ĠThe Ġarray Ġformed Ġby Ġstack ing Ġthe Ġgiven Ġarrays . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġcolumn Stack ( var arg Ġtup : ĠK t ND Array < T >): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" column _ stack "), Ġargs Ġ= ĠarrayOf ( tup )) ĊĊ Ċ /** Ċ Ġ* ĠStack Ġarrays Ġin Ġsequence Ġdepth Ġwise Ġ( along Ġthird Ġaxis ). Ċ Ġ* Ċ Ġ* Ġ@ param Ġtup Ġthe Ġarrays Ġmust Ġhave Ġthe Ġsame Ġshape Ġalong Ġall Ġbut Ġthe Ġthird Ġaxis . Ġ 1 - D Ġor Ġ 2 - D Ġarrays Ġmust Ġhave Ġthe Ġsame Ġshape . Ċ Ġ* Ġ@ return ĠThe Ġarray Ġformed Ġby Ġstack ing Ġthe Ġgiven Ġarrays , Ġwill Ġbe Ġat Ġleast Ġ 3 - D . Ċ Ġ* Ġ@ see Ġstack Ċ Ġ* Ġ@ see Ġv stack Ċ Ġ* Ġ@ see Ġh stack Ċ Ġ* Ġ@ see Ġconcatenate Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġd stack ( var arg Ġtup : ĠK t ND Array < T >): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" d stack "), Ġargs Ġ= ĠarrayOf ( tup )) ĊĊ Ċ /** Ċ Ġ* ĠStack Ġarrays Ġin Ġsequence Ġh orizontally Ġ( column Ġwise ). Ċ Ġ* Ċ Ġ* Ġ@ param Ġtup Ġthe Ġarrays Ġmust Ġhave Ġthe Ġsame Ġshape Ġalong Ġall Ġbut Ġthe Ġsecond Ġaxis , Ġexcept Ġ 1 - D Ġarrays Ġwhich Ġcan Ġbe Ġany Ġlength . Ċ Ġ* Ġ@ return ĠThe Ġarray Ġformed Ġby Ġstack ing Ġthe Ġgiven Ġarrays . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġh stack ( var arg Ġtup : ĠK t ND Array < T >): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" h stack "), Ġargs Ġ= ĠarrayOf ( tup )) ĊĊ Ċ /** Ċ Ġ* ĠStack Ġarrays Ġin Ġsequence Ġvert ically Ġ( row Ġwise ). Ċ Ġ* Ċ Ġ* Ġ@ param Ġtup Ġthe Ġarrays Ġmust Ġhave Ġthe Ġsame Ġshape Ġalong Ġall Ġbut Ġthe Ġfirst Ġaxis . Ġ 1 - D Ġarrays Ġmust Ġhave Ġthe Ġsame Ġlength . Ċ Ġ* Ġ@ return ĠThe Ġarray Ġformed Ġby Ġstack ing Ġthe Ġgiven Ġarrays , Ġwill Ġbe Ġat Ġleast Ġ 2 - D . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġv stack ( var arg Ġtup : ĠK t ND Array < T >): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" v stack "), Ġargs Ġ= ĠarrayOf ( tup )) Ċ Ċ /** Ċ Ġ* ĠAs semble Ġan Ġ[ Kt ND Array ] Ġfrom Ġnested Ġlists Ġof Ġblocks . Ċ Ġ* Ċ Ġ* Ġ@ param Ġlist Ġnested Ġ[ List ] Ġof Ġ[ Kt ND Array ]. Ċ Ġ* Ġ@ return Ġ[ Kt ND Array ]. Ċ Ġ* Ġ@ see Ġconcatenate Ċ Ġ* Ġ@ see Ġstack Ċ Ġ* Ġ@ see Ġh stack Ċ Ġ* Ġ@ see Ġv stack Ċ Ġ* Ġ@ see Ġd stack Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġblock ( list : ĠList < Kt ND Array < T >> ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" block "), Ġargs Ġ= ĠarrayOf ( list )) Ċ Ċ /** Ċ Ġ* ĠSplit Ġan Ġarray Ġinto Ġmultiple Ġsub - arrays Ġh orizontally Ġ( column - wise ). Ċ Ġ* Ċ Ġ* Ġ[ h split ] Ġis Ġequivalent Ġto Ġ[ split ] Ġwith Ġaxis = 1 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġarr Ġinput Ġdata . Ċ Ġ* Ġ@ param Ġidx Ġindices Ġof Ġsections . Ċ Ġ* Ġ@ see Ġsplit Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġh split ( arr : ĠK t ND Array < T >, Ġidx : ĠInt ): ĠList < Kt ND Array < T >> Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" h split "), Ġargs Ġ= ĠarrayOf ( arr , Ġidx ), Ġk Class Ġ= ĠList :: class ) Ġas ĠList < Kt ND Array < T >> ĊĊ Ċ /** Ċ Ġ* ĠConstruct Ġan Ġarray Ġby Ġrepe ating Ġ[ a ] Ġthe Ġnumber Ġof Ġtimes Ġgiven Ġby Ġre ps . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġre ps Ġthe Ġnumber Ġof Ġrepet itions Ġarray Ġalong Ġeach Ġaxis . Ċ Ġ* Ġ@ return Ġthe Ġt iled Ġoutput Ġarray Ġ( view ). Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġtile ( a : ĠK t ND Array < T >, Ġre ps : ĠInt ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" tile "), Ġargs Ġ= ĠarrayOf ( a , Ġre ps )) Ċ Ċ /** Ċ Ġ* ĠConstruct Ġan Ġarray Ġby Ġrepe ating Ġ[ a ] Ġthe Ġnumber Ġof Ġtimes Ġgiven Ġby Ġre ps . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġre ps Ġthe Ġnumber Ġof Ġrepet itions Ġarray Ġalong Ġeach Ġaxis . Ċ Ġ* Ġ@ return Ġthe Ġt iled Ġoutput Ġarray Ġ( view ). Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġtile ( a : ĠK t ND Array < T >, Ġre ps : ĠInt Array ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" tile "), Ġargs Ġ= ĠarrayOf ( a , Ġre ps )) Ċ Ċ /** Ċ Ġ* ĠRepeat Ġelements Ġof Ġan Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġre ps Ġthe Ġnumber Ġof Ġrepet itions Ġfor Ġeach Ġelement . Ġrepe ats Ġis Ġbroadcast ed Ġto Ġfit Ġthe Ġshape Ġof Ġthe Ġgiven Ġaxis . Ċ Ġ* Ġ@ param Ġaxis Ġthe Ġaxis Ġalong Ġwhich Ġto Ġrepeat Ġvalues . ĠBy Ġdefault , Ġuse Ġthe Ġflatten ed Ġinput Ġarray , Ġand Ġreturn Ġa Ġflat Ġoutput Ġarray . Ċ Ġ* Ġ@ return Ġoutput Ġarray Ġwhich Ġhas Ġthe Ġsame Ġshape Ġas Ġ[ a ], Ġexcept Ġalong Ġthe Ġgiven Ġaxis . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġrepeat ( a : ĠK t ND Array < T >, Ġre ps : ĠInt , Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= Ġa . repeat ( reps , Ġaxis ) Ċ Ċ /** Ċ Ġ* ĠRepeat Ġelements Ġof Ġan Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġre ps Ġthe Ġlist Ġnumber Ġof Ġrepet itions Ġfor Ġeach Ġelement . Ġrepe ats Ġis Ġbroadcast ed Ġto Ġfit Ġthe Ġshape Ġof Ġthe Ġgiven Ġaxis . Ċ Ġ* Ġ@ param Ġaxis Ġthe Ġaxis Ġalong Ġwhich Ġto Ġrepeat Ġvalues . ĠBy Ġdefault , Ġuse Ġthe Ġflatten ed Ġinput Ġarray , Ġand Ġreturn Ġa Ġflat Ġoutput Ġarray . Ċ Ġ* Ġ@ return Ġoutput Ġarray Ġwhich Ġhas Ġthe Ġsame Ġshape Ġas Ġ[ a ], Ġexcept Ġalong Ġthe Ġgiven Ġaxis . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġrepeat ( a : ĠK t ND Array < T >, Ġre ps : ĠInt Array , Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= Ġa . repeat ( reps , Ġaxis ) Ċ Ċ /** Ċ Ġ* ĠReturn Ġa Ġnew Ġarray Ġwith Ġsub - arrays Ġalong Ġan Ġaxis Ġdeleted . ĠFor Ġa Ġone Ġdimensional Ġarray , Ġthis Ġreturns Ġthose Ġentries Ġnot Ġreturned Ġby Ġarr . get ( obj ). Ċ Ġ* Ċ Ġ* Ġ@ param Ġarr Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġobj Ġindex . Ċ Ġ* Ġ@ param Ġaxis ĠThe Ġaxis Ġalong Ġwhich Ġto Ġdelete Ġthe Ġsub array Ġdefined Ġby Ġobj . ĠIf Ġaxis Ġis Ġnull , Ġobj Ġis Ġapplied Ġto Ġthe Ġflatten ed Ġarray . Ċ Ġ* Ġ@ return ĠA Ġcopy Ġof Ġ[ arr ] Ġwith Ġthe Ġelements Ġspecified Ġby Ġ[ obj ] Ġremoved . ĠNote Ġthat Ġ[ delete ] Ġdoes Ġnot Ġoccur Ġin - place . Ċ Ġ* ĠIf Ġ[ axis ] Ġis Ġnull , Ġreturn Ġis Ġa Ġflatten ed Ġarray . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġdelete ( arr : ĠK t ND Array < T >, Ġobj : ĠInt , Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" delete "), Ġargs Ġ= ĠarrayOf ( arr , Ġobj , Ġaxis Ġ?: ĠNone . none )) Ċ Ċ /** Ċ Ġ* Ġ@ param Ġobj Ġarray Ġof Ġindices . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġdelete ( arr : ĠK t ND Array < T >, Ġobj : ĠInt Array , Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" delete "), Ġargs Ġ= ĠarrayOf ( arr , Ġobj , Ġaxis Ġ?: ĠNone . none )) Ċ Ċ /** Ċ Ġ* Ġ@ param Ġobj Ġarray Ġof Ġ[ Slice ]. Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġdelete ( arr : ĠK t ND Array < T >, Ġobj : ĠArray < Slice >, Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" delete "), Ġargs Ġ= ĠarrayOf ( arr , Ġobj , Ġaxis Ġ?: ĠNone . none )) Ċ Ċ /** Ċ Ġ* ĠInsert Ġvalues Ġalong Ġthe Ġgiven Ġaxis Ġbefore Ġthe Ġgiven Ġindices . Ċ Ġ* Ċ Ġ* Ġ@ param Ġarr Ġinput Ġarray Ċ Ġ* Ġ@ param Ġobj Ġobject Ġthat Ġdefines Ġthe Ġindex Ġbefore Ġwhich Ġ[ values ] Ġis Ġinserted . Ċ Ġ* Ġ@ param Ġvalues Ġvalues Ġto Ġinsert Ġinto Ġ[ arr ]. Ċ Ġ* Ġ@ param Ġaxis Ġaxis Ġalong Ġwhich Ġto Ġinsert Ġ[ values ]. ĠIf Ġaxis Ġis Ġnull Ġthen Ġ[ arr ] Ġis Ġflatten ed Ġfirst . Ċ Ġ* Ċ Ġ* Ġ@ return ĠA Ġcopy Ġof Ġ[ arr ] Ġwith Ġ[ values ] Ġinserted . ĠNote Ġthat Ġinsert Ġdoes Ġnot Ġoccur Ġin - place : Ġa Ġnew Ġarray Ġis Ġreturned . Ċ Ġ* ĠIf Ġ[ axis ] Ġis Ġnull , Ġreturn Ġis Ġa Ġflatten ed Ġarray . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġinsert ( arr : ĠK t ND Array < T >, Ġobj : ĠInt , Ġvalues : ĠK t ND Array < T >, Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" insert "), Ġargs Ġ= ĠarrayOf ( arr , Ġobj , Ġvalues , Ġaxis Ġ?: ĠNone . none )) Ċ Ċ /** Ċ Ġ* Ġ@ param Ġobj Ġarray Ġof Ġindices . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġinsert ( arr : ĠK t ND Array < T >, Ġobj : ĠInt Array , Ġvalues : ĠK t ND Array < T >, Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" insert "), Ġargs Ġ= ĠarrayOf ( arr , Ġobj , Ġvalues , Ġaxis Ġ?: ĠNone . none )) Ċ Ċ /** Ċ Ġ* Ġ@ param Ġobj Ġarray Ġof Ġ[ Slice ]. Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġinsert ( arr : ĠK t ND Array < T >, Ġobj : ĠArray < Slice >, Ġvalues : ĠK t ND Array < T >, Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" insert "), Ġargs Ġ= ĠarrayOf ( arr , Ġobj , Ġvalues , Ġaxis Ġ?: ĠNone . none )) ĊĊ Ċ /** Ċ Ġ* ĠAppend Ġvalues Ġto Ġthe Ġend Ġof Ġan Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġarr Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġvalues Ġthese Ġvalues Ġare Ġappended Ġto Ġa Ġcopy Ġof Ġ[ arr ]. ĠIt Ġmust Ġbe Ġof Ġthe Ġsame Ġshape Ġas Ġarr , Ġexcluding Ġ[ axis ]. Ċ Ġ* ĠIf Ġaxis Ġis Ġnot Ġspecified , Ġ[ values ] Ġcan Ġbe Ġany Ġshape Ġand Ġwill Ġbe Ġflatten ed Ġbefore Ġuse . Ċ Ġ* Ġ@ param Ġaxis Ġthe Ġaxis Ġalong Ġwhich Ġ[ values ] Ġare Ġappended . Ċ Ġ* ĠIf Ġ[ axis ] Ġis Ġnot Ġgiven , Ġboth Ġ[ arr ] Ġand Ġ[ values ] Ġare Ġflatten ed Ġbefore Ġuse . Ċ Ġ* Ġ@ return ĠA Ġcopy Ġof Ġ[ arr ] Ġwith Ġ[ values ] Ġappended Ġto Ġ[ axis ]. Ċ Ġ* ĠNote Ġthat Ġappend Ġdoes Ġnot Ġoccur Ġin - place : Ġa Ġnew Ġarray Ġis Ġallocated Ġand Ġfilled . Ċ Ġ* ĠIf Ġ[ axis ] Ġis Ġnull , Ġreturn Ġis Ġa Ġflatten ed Ġarray . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġappend ( arr : ĠK t ND Array < T >, Ġvalues : ĠK t ND Array < T >, Ġaxis : ĠInt ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" append "), Ġargs Ġ= ĠarrayOf ( arr , Ġvalues , Ġaxis Ġ?: ĠNone . none )) ĊĊ Ċ /** Ċ Ġ* ĠReturn Ġa Ġnew Ġarray Ġwith Ġthe Ġspecified Ġshape . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġarray Ġto Ġbe Ġresized . Ċ Ġ* Ġ@ param Ġnew shape Ġshape Ġof Ġresized Ġarray . Ċ Ġ* Ġ@ return ĠThe Ġnew Ġ[ Kt ND Array ] Ġis Ġformed Ġfrom Ġthe Ġdata Ġin Ġthe Ġold Ġarray Ġand Ġnew Ġshape . Ċ Ġ* Ġ@ see ĠK t ND Array . resize Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġresize ( a : ĠK t ND Array < T >, Ġvar arg Ġnew shape : ĠInt ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" resize "), Ġargs Ġ= ĠarrayOf ( a , Ġnew shape )) ĊĊ Ċ /** Ċ Ġ* ĠTrim Ġthe Ġleading Ġand / or Ġtrailing Ġzeros Ġfrom Ġa Ġ 1 - D Ġarray Ġor Ġsequence . Ċ Ġ* Ċ Ġ* Ġ@ param Ġfilt Ġ 1 - D Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġtrim Ġa Ġstring Ġwith Ġ' f ' Ġrepresenting Ġtrim Ġfrom Ġfront Ġand Ġ' b ' Ġto Ġtrim Ġfrom Ġback . ĠDefault Ġis Ġ' fb '. Ċ Ġ* Ġ@ return ĠThe Ġresult Ġof Ġtri mm ing Ġthe Ġinput . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġtrim Z eros ( filt : ĠK t ND Array < T >, Ġtrim : ĠString Ġ= Ġ" fb "): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" trim _ zeros "), Ġargs Ġ= ĠarrayOf ( filt , Ġtrim )) Ċ Ċ /** Ċ Ġ* ĠFind Ġthe Ġunique Ġelements Ġof Ġan Ġarray . Ċ Ġ* Ċ Ġ* Ġ@ param Ġar Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġreturn Index Ġif ĠTrue , Ġalso Ġreturn Ġthe Ġindices Ġof Ġ[ ar ] Ġ( along Ġthe Ġspecified Ġaxis , Ċ Ġ* Ġif Ġprovided , Ġor Ġin Ġthe Ġflatten ed Ġarray ) Ġthat Ġresult Ġin Ġthe Ġunique Ġarray . Ċ Ġ* Ġ@ param Ġreturn Inverse Ġif ĠTrue , Ġalso Ġreturn Ġthe Ġindices Ġof Ġthe Ġunique Ġarray Ġ( for Ġthe Ġspecified Ġaxis , Ġif Ġprovided ) Ċ Ġ* Ġthat Ġcan Ġbe Ġused Ġto Ġreconstruct Ġ[ ar ]. Ċ Ġ* Ġ@ param Ġreturn Counts Ġif ĠTrue , Ġalso Ġreturn Ġthe Ġnumber Ġof Ġtimes Ġeach Ġunique Ġitem Ġappears Ġin Ġ[ ar ]. Ċ Ġ* Ġ@ param Ġaxis Ġthe Ġaxis Ġto Ġoperate Ġon . Ċ Ġ* Ġ@ return ĠThe Ġsorted Ġunique Ġvalues . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġunique ( ĊĠĠĠ Ġar : ĠK t ND Array < T >, ĊĠĠĠ Ġreturn Index : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġreturn Inverse : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġreturn Counts : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġaxis : ĠInt ? Ġ= Ġnull Ċ ): ĠK t ND Array < Long > Ġ= Ġcall Func ( ĊĠĠĠ Ġname Method Ġ= ĠarrayOf (" unique "), ĊĠĠĠ Ġargs Ġ= ĠarrayOf ( ar , Ġreturn Index , Ġreturn Inverse , Ġreturn Counts , Ġaxis Ġ?: ĠNone . none ) Ċ ) ĊĊ Ċ /** Ċ Ġ* ĠReverse Ġthe Ġorder Ġof Ġelements Ġin Ġan Ġarray Ġalong Ġthe Ġgiven Ġaxis . Ċ Ġ* Ċ Ġ* Ġ@ param Ġm Ġinput Ġdata . Ċ Ġ* Ġ@ param Ġaxis Ġor Ġaxes Ġalong Ġwhich Ġto Ġflip Ġover . Ċ Ġ* Ġ@ return ĠA Ġview Ġof Ġ[ m ] Ġwith Ġthe Ġentries Ġof Ġaxis Ġreversed . Ċ Ġ* Ġ@ see Ġflip ud Ċ Ġ* Ġ@ see Ġf li pl r Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġflip ( m : ĠK t ND Array < T >, Ġvar arg Ġaxis : ĠInt ? Ġ= Ġempty Array ()): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" flip "), Ġargs Ġ= ĠarrayOf ( m , Ġif Ġ( axis . isNotEmpty ()) Ġaxis Ġelse ĠNone . none )) ĊĊ Ċ /** Ċ Ġ* ĠFlip Ġarray Ġin Ġthe Ġleft / right Ġdirection . Ċ Ġ* Ġ> Note Ġthat , Ġinput Ġarray , Ġmust Ġbe Ġat Ġleast Ġ 2 - D . Ċ Ġ* Ċ Ġ* Ġ@ param Ġm Ġinput Ġarray . Ċ Ġ* Ġ@ return ĠA Ġview Ġof Ġm Ġwith Ġthe Ġcolumns Ġreversed . Ċ Ġ* Ġ@ see Ġflip ud Ċ Ġ* Ġ@ see Ġrot 9 0 Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġf li pl r ( m : ĠK t ND Array < T >): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" f li pr "), Ġargs Ġ= ĠarrayOf ( m )) ĊĊ Ċ /** Ċ Ġ* ĠFlip Ġarray Ġin Ġthe Ġup / down Ġdirection . Ċ Ġ* Ċ Ġ* Ġ@ param Ġm Ġinput Ġarray . Ċ Ġ* Ġ@ return ĠA Ġview Ġof Ġm Ġwith Ġthe Ġcolumns Ġreversed . Ċ Ġ* Ġ@ see Ġf li pl r Ċ Ġ* Ġ@ see Ġrot 9 0 Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġflip ud ( m : ĠK t ND Array < T >): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" flip ud "), Ġargs Ġ= ĠarrayOf ( m )) ĊĊ Ċ /** Ċ Ġ* ĠG ives Ġa Ġnew Ġshape Ġto Ġan Ġarray Ġwithout Ġchanging Ġits Ġdata . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray Ġ[ Kt ND Array ] Ġof Ġtype Ġ[ T ]. Ċ Ġ* Ġ@ param Ġnew shape Ġthe Ġnew Ġshape Ġshould Ġbe Ġcompatible Ġwith Ġthe Ġoriginal Ġshape . Ċ Ġ* ĠIf Ġan Ġinteger , Ġthen Ġthe Ġresult Ġwill Ġbe Ġa Ġ 1 - D Ġarray Ġof Ġthat Ġlength . Ċ Ġ* ĠOne Ġshape Ġdimension Ġcan Ġbe Ġ- 1 . ĠIn Ġthis Ġcase , Ġthe Ġvalue Ġis Ġinferred Ġfrom Ġthe Ġlength Ġof Ġthe Ġarray Ġand Ġremaining Ġdimensions . Ċ Ġ* Ġ@ return Ġview Ġof Ġan Ġarray Ġcontaining Ġthe Ġsame Ġdata Ġwith Ġa Ġnew Ġshape . Ċ Ġ* Ġ@ see ĠK t ND Array . reshape Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġreshape ( a : ĠK t ND Array < T >, Ġvar arg Ġnew shape : ĠInt , Ġorder : ĠOrder Ġ= ĠOrder . C ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġa . reshape (* new shape , Ġorder Ġ= Ġorder ) Ċ Ċ /** Ċ Ġ* ĠRoll Ġarray Ġelements Ġalong Ġa Ġgiven Ġaxis . Ċ Ġ* Ċ Ġ* Ġ@ param Ġa Ġinput Ġarray . Ċ Ġ* Ġ@ param Ġshift Ġthe Ġnumber Ġof Ġplaces Ġby Ġwhich Ġelements Ġare Ġshifted . Ċ Ġ* Ġ@ param Ġaxes Ġalong Ġwhich Ġelements Ġare Ġshifted . Ċ Ġ* Ġ@ return ĠOutput Ġ[ Kt ND Array ], Ġwith Ġthe Ġsame Ġshape Ġas Ġa . Ċ Ġ* Ġ@ see Ġroll Axis Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġroll ( a : ĠK t ND Array < T >, Ġshift : ĠInt Array , Ġaxes : ĠInt Array ? Ġ= Ġnull ): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" roll "), Ġargs Ġ= ĠarrayOf ( a , Ġshift , Ġaxes Ġ?: ĠNone . none )) ĊĊ Ċ /** Ċ Ġ* ĠRotate Ġan Ġarray Ġby Ġ 9 0 Ġdegrees Ġin Ġthe Ġplane Ġspecified Ġby Ġaxes . Ċ Ġ* Ċ Ġ* Ġ@ param Ġm Ġ[ Kt ND Array ] Ġof Ġtwo Ġor Ġmore Ġdimensions . Ċ Ġ* Ġ@ param Ġk Ġnumber Ġof Ġtimes Ġthe Ġarray Ġis Ġrotate Ġby Ġ 9 0 Ġdegrees . Ċ Ġ* Ġ@ param Ġaxes Ġthe Ġarray Ġis Ġrotated Ġin Ġthe Ġplane Ġdefined Ġby Ġthe Ġaxes . Ċ Ġ* Ġ@ return ĠA Ġrotated Ġview Ġof Ġ[ m ]. Ċ Ġ* Ġ@ see Ġflip Ċ Ġ* Ġ@ see Ġf li pl r Ċ Ġ* Ġ@ see Ġflip ud Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġrot 9 0 ( m : ĠK t ND Array < T >, Ġk : ĠInt Ġ= Ġ 1 , Ġaxes : ĠInt Array Ġ= Ġint ArrayOf ( 0 , Ġ 1 )): ĠK t ND Array < T > Ġ= ĊĠĠĠ Ġcall Func ( name Method Ġ= ĠarrayOf (" rot 9 0 "), Ġargs Ġ= ĠarrayOf ( m , Ġk , Ġaxes ))