package Ġorg . nw ap w . ab ac us . plugin . standard . operator Ċ Ċ import Ġorg . nw ap w . ab ac us . context . Plugin Evaluation Context Ċ import Ġorg . nw ap w . ab ac us . function . Operator Associ ativity Ċ import Ġorg . nw ap w . ab ac us . function . Operator Type Ċ import Ġorg . nw ap w . ab ac us . function . interfaces . Number Operator Ċ import Ġorg . nw ap w . ab ac us . number . Number Interface Ċ import Ġorg . nw ap w . ab ac us . plugin . standard . Standard Plugin .* Ċ Ċ /** Ċ Ġ* ĠThe Ġpower Ġoperator . Ċ Ġ* Ċ Ġ* ĠThis Ġis Ġa Ġstandard Ġoperator Ġthat Ġbrings Ġone Ġnumber Ġto Ġthe Ġpower Ġof Ġthe Ġother . Ċ Ġ*/ Ċ class ĠOperator Caret : ĠNumber Operator ( Operator Associ ativity . RIGHT , ĠOperator Type . BINARY _ IN FIX , Ġ 3 ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġmatches Params ( context : ĠPlugin Evaluation Context , Ġparams : ĠArray < out ĠNumber Interface >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . size Ġ== Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ!( params [ 0 ]. sign um () Ġ== Ġ 0 Ġ&& Ġparams [ 1 ]. sign um () Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ!( params [ 0 ]. sign um () Ġ== Ġ- 1 Ġ&& Ġ! params [ 1 ]. is Integer ()) ĊĊĠĠĠ Ġoverride Ġfun Ġapply Internal ( context : ĠPlugin Evaluation Context , Ġparams : ĠArray < out ĠNumber Interface >): ĠNumber Interface Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimplementation Ġ= Ġcontext . inherited Number Implementation ĊĠĠĠĠĠĠĠ Ġif Ġ( params [ 0 ]. sign um () Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġimplementation . instance For String (" 0 ") ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( params [ 1 ]. sign um () Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġimplementation . instance For String (" 1 ") ĊĠĠĠĠĠĠĠ Ġ// Detect Ġinteger Ġbases : ĊĠĠĠĠĠĠĠ Ġif Ġ( params [ 0 ]. is Integer () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠFUNCTION _ ABS . apply ( context , Ġparams [ 1 ]) Ġ< Ġimplementation . instance For String ( Integer . toString ( Integer . MAX _ VALUE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠFUNCTION _ ABS . apply ( context , Ġparams [ 1 ]) Ġ>= Ġimplementation . instance For String (" 1 ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Params Ġ= ĠarrayOf ( params [ 0 ], Ġparams [ 1 ]. fraction al Part ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparams [ 0 ]. int Pow ( params [ 1 ]. floor (). intValue ()) Ġ* Ġapply Internal ( context , Ġnew Params ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠFUNCTION _ EXP . apply ( context , ĠFUNCTION _ LN . apply ( context , ĠFUNCTION _ ABS . apply ( context , Ġparams [ 0 ])) Ġ* Ġparams [ 1 ]) ĊĠĠĠ Ġ} Ċ Ċ }