package Ġto mas vol ker . num er iko . core . interfaces . array nd . generic . view Ċ Ċ import Ġto mas vol ker . num er iko . core . interfaces . array 1 d . integer . IntArray 1 D Ċ import Ġto mas vol ker . num er iko . core . interfaces . array nd . generic .* Ċ import Ġto mas vol ker . num er iko . core . operations . reduction . remove Ċ import Ġto mas vol ker . num er iko . core . view . with Ċ Ċ class ĠDefault Array N DL ower Rank View < T >( ĊĠĠĠĠĠĠĠ Ġval Ġarray : ĠMutable Array ND < T >, ĊĠĠĠĠĠĠĠ Ġval Ġaxis : ĠInt Ċ ) Ġ: ĠDefault Mutable Array ND < T >() Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( array . shape ( axis ) Ġ<= Ġ 1 ) Ġ{ Ġ" Size Ġon Ġaxis Ġ$ axis Ġis Ġnot Ġ 0 Ġor Ġ 1 Ġfor Ġshape Ġ$ shape " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġshape : ĠInt Array 1 D Ġ= Ġarray . shape . remove ( axis ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetValue ( indices : ĠInt Array ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Valid Indices ( indices ) ĊĠĠĠĠĠĠĠ Ġreturn Ġarray . getValue (* convert Indices ( indices )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( value : ĠT , Ġvar arg Ġindices : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire Valid Indices ( indices ) ĊĠĠĠĠĠĠĠ Ġarray . setValue ( value ,* convert Indices ( indices )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconvert Indices ( indices : ĠInt Array ): ĠInt Array Ġ= Ġindices . with ( index Ġ= Ġaxis , Ġvalue Ġ= Ġ 0 ) Ċ Ċ } ĊĊ