package Ġto mas vol ker . num er iko . core . interfaces . array nd . double Ċ Ċ import Ġto mas vol ker . num er iko . core . interfaces . array 0 d . double . Double Array 0 D Ċ import Ġto mas vol ker . num er iko . core . interfaces . array 1 d . double . Double Array 1 D Ċ import Ġto mas vol ker . num er iko . core . interfaces . array 2 d . double . Double Array 2 D Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . double . view . Default Double Array ND 0 D View Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . double . view . Default Double Array ND 1 D View Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . double . view . Default Double Array ND 2 D View Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . generic . Array ND Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . generic . Mutable Array ND Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . generic . unsafe ForEach Indices Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . generic . unsafe Get View Ċ import Ġto mas vol ker . num er iko . core . interfaces . factory . double Z eros Ċ import Ġto mas vol ker . num er iko . core . pre conditions . require Same Shape Ċ Ċ inline Ġfun Ġelement Wise ( ĊĠĠĠĠĠĠĠ Ġsource : ĠDouble Array ND , ĊĠĠĠĠĠĠĠ Ġdestination : ĠMutable Double Array ND , ĊĠĠĠĠĠĠĠ Ġoperation : Ġ( Double ) Ġ-> ĠDouble Ċ ) Ġ{ ĊĠĠĠ Ġrequire Same Shape ( source , Ġdestination ) ĊĠĠĠ Ġsource . unsafe ForEach Indices Ġ{ Ġindices Ġ-> ĊĠĠĠĠĠĠĠ Ġdestination [ indices ] Ġ= Ġoperation ( source [ indices ]) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġelement Wise ( ĊĠĠĠĠĠĠĠ Ġsource 1 : ĠDouble Array ND , ĊĠĠĠĠĠĠĠ Ġsource 2 : ĠDouble Array ND , ĊĠĠĠĠĠĠĠ Ġdestination : ĠMutable Double Array ND , ĊĠĠĠĠĠĠĠ Ġoperation : Ġ( Double , ĠDouble ) Ġ-> ĠDouble Ċ ) Ġ{ ĊĠĠĠ Ġrequire Same Shape ( source 1 , Ġsource 2 ) ĊĠĠĠ Ġrequire Same Shape ( source 1 , Ġdestination ) ĊĠĠĠ Ġsource 1 . unsafe ForEach Indices Ġ{ Ġindices Ġ-> ĊĠĠĠĠĠĠĠ Ġdestination [ indices ] Ġ= Ġoperation ( source 1 [ indices ], Ġsource 2 [ indices ]) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠDouble Array ND . element Wise ( operation : Ġ( Double ) Ġ-> ĠDouble ): ĠDouble Array ND Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= Ġdouble Z eros ( shape ). as Mutable () ĊĠĠĠ Ġelement Wise ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Ġ= Ġresult , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= Ġoperation ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ inline Ġfun Ġelement Wise ( array 1 : ĠDouble Array ND , Ġarray 2 : ĠDouble Array ND , Ġoperation : Ġ( Double , ĠDouble ) Ġ-> ĠDouble ): ĠDouble Array ND Ġ{ ĊĠĠĠ Ġrequire Same Shape ( array 1 , Ġarray 2 ) ĊĠĠĠ Ġval Ġresult Ġ= Ġdouble Z eros ( array 1 . shape ). as Mutable () ĊĠĠĠ Ġelement Wise ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource 1 Ġ= Ġarray 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource 2 Ġ= Ġarray 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Ġ= Ġresult , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= Ġoperation ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġresult Ċ Ċ } Ċ Ċ inline Ġfun ĠMutable Double Array ND . apply Element Wise ( ĊĠĠĠĠĠĠĠ Ġoperation : Ġ( Double ) Ġ-> ĠDouble Ċ ): ĠMutable Double Array ND Ġ{ ĊĠĠĠ Ġelement Wise ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= Ġoperation ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ inline Ġfun ĠMutable Double Array ND . apply Element Wise ( ĊĠĠĠĠĠĠĠ Ġother : ĠDouble Array ND , ĊĠĠĠĠĠĠĠ Ġoperation : Ġ( Double , ĠDouble ) Ġ-> ĠDouble Ċ ): ĠMutable Double Array ND Ġ{ ĊĠĠĠ Ġrequire Same Shape ( this , Ġother ) ĊĠĠĠ Ġelement Wise ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource 1 Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource 2 Ġ= Ġother , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoperation Ġ= Ġoperation ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ fun ĠDouble Array ND . unsafe Get View ( var arg Ġindices : ĠAny ): ĠDouble Array ND Ġ= ĊĠĠĠĠĠĠĠ Ġ( this Ġas ĠArray ND < Double >). unsafe Get View (* indices ) Ġas ĠDouble Array ND Ċ Ċ fun ĠMutable Double Array ND . unsafe Get View ( var arg Ġindices : ĠAny ): ĠMutable Double Array ND Ġ= ĊĠĠĠĠĠĠĠ Ġ( this Ġas ĠDouble Array ND ). unsafe Get View (* indices ) Ġas ĠMutable Double Array ND Ċ