package Ġio . kin ference . compiler . generation . operators . tensor Ċ Ċ import Ġio . kin ference . compiler . generation . info . Tensor Info Ċ import Ġio . kin ference . compiler . generation . operators . Operator Generation Info Ċ import Ġio . kin ference . compiler . generation . operators . common . Type And Shape Aware Operator Generator Ċ import Ġio . kin ference . ndarray . Stride s Ċ import Ġio . kin ference . ndarray . arrays . Long ND Array Ċ import Ġio . kin ference . ndarray . to IntArray Ċ import Ġio . kin ference . operators . tensor . Res hape Ċ import Ġkotlin . time . Experimental Time Ċ Ċ /** Ċ Ġ* ĠRes hape Ġgenerator . Ċ Ġ* Ċ Ġ* Ġ[ ON NX Ġdocumentation ]( https :// github . com / onnx / onnx / blob / master / docs / Operators . md # Res hape ) Ċ Ġ* Ċ Ġ* ĠK Inference Ġclass : Ġ[ Res hape ] Ċ Ġ*/ Ċ @ Opt In ( Experimental Time :: class ) Ċ class ĠRes hape Generator ( ĊĠĠĠ Ġprivate Ġval Ġoperator : ĠRes hape , ĊĠĠĠ Ġinfo : ĠOperator Generation Info Ċ ) Ġ: ĠBase Res hape Generator ( operator , Ġinfo ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġinput Index : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġresult Info (): ĠMap < String , ĠTensor Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( input , Ġtarget Shape ) Ġ= Ġinput Info ĊĠĠĠĠĠĠĠ Ġif Ġ( target Shape . tensor Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty Map () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġshape Ġ= Ġinput . shape ĊĠĠĠĠĠĠĠ Ġval Ġnew Shape Ġ= Ġ( target Shape . tensor . data Ġas ĠLong ND Array ). array . toArray (). to IntArray () ĊĠĠĠĠĠĠĠ Ġfor Ġ(( i , Ġaxis Shape ) Ġin Ġnew Shape . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( axis Shape Ġ== Ġ 0 ) Ġnew Shape [ i ] Ġ= Ġshape [ i ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnegative Idx Ġ= Ġnew Shape . indexOf (- 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( negative Idx Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelements Count Ġ= Ġnew Shape . filter Ġ{ Ġit Ġ!= Ġ- 1 Ġ}. fold ( 1 , ĠInt :: times ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Shape [ negative Idx ] Ġ= ĠSt rides ( shape ). linear Size Ġ/ Ġelements Count ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġmap Of ( operator . outputs . first () Ġto ĠTensor Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshape Ġ= Ġnew Shape , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdataType Ġ= Ġinput . dataType ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} Ċ } Ċ