package Ġio . kin ference . operators . logical Ċ Ċ import Ġio . kin ference . attributes . Attribute Ċ import Ġio . kin ference . data . tensors . Tensor Ċ import Ġio . kin ference . data . tensors . as Tensor Ċ import Ġio . kin ference . graph . Context Ċ import Ġio . kin ference . graph . Profiling Context Ċ import Ġio . kin ference . ndarray . arrays . Mutable Boolean ND Array Ċ import Ġio . kin ference . operators .* Ċ import Ġkotlin . time . Experimental Time Ċ import Ġio . kin ference . protobuf . message . Tensor Proto Ċ Ċ @ Experimental Time Ċ class ĠNot ( attributes : ĠMap < String , ĠAttribute < Any >>, Ġinputs : ĠList < String >, Ġoutputs : ĠList < String >) ĊĠĠĠ Ġ: ĠOperator < Tensor , ĠTensor >( INFO , Ġattributes , Ġinputs , Ġoutputs ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTYPE _ CONSTRAINT S Ġ= Ġset Of ( Tensor Proto . DataType . BOOL ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINPUT S _ INFO Ġ= ĠlistOf ( IO Info ( 0 , ĠTYPE _ CONSTRAINT S , Ġ" input ", Ġoptional Ġ= Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠOUTPUT S _ INFO Ġ= ĠlistOf ( IO Info ( 0 , ĠTYPE _ CONSTRAINT S , Ġ" output ", Ġoptional Ġ= Ġfalse )) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINFO Ġ= ĠOperator Info (" Not ", Ġempty Map (), ĠINPUT S _ INFO , ĠOUTPUT S _ INFO ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġapply ( context : ĠContext , Ġinputs : ĠList < Tensor ? >, Ġprofiling Context : ĠPro filing Context ?): ĠList < Tensor ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġinputs [ 0 ] !!. data . to Mutable () Ġas ĠMutable Boolean ND Array ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( data . not (). as Tensor (" output ")) ĊĠĠĠ Ġ} Ċ } Ċ