# specification of operators for HighIL version of the IR. Each line (other than comments) # specifies an operator using four fields, which are separated by ":". The fields are # name # argument type (optional) # arity # comment (optional) # # type-indexed arithmetic operations Add : ty : 2 : Sub : ty : 2 : Mul : ty : 2 : Div : ty : 2 : Neg : ty : 1 : LT : ty : 2 : LTE : ty : 2 : EQ : ty : 2 : NEQ : ty : 2 : GT : ty : 2 : GTE : ty : 2 : Dot : ty : 2 : Cross : : 2 : # # vector operations Norm : ty : 1 : Scale : ty : 2 : scalar*tensor multiplication InvScale : ty : 2 : tensor/scalar division CL : : 1 : linear anisotropy measures PrincipleEvec : ty : 2 : principle eigenvector; ty is result vector type Subscript : ty : 2 : Max : : 2 : Min : : 2 : Sin : : 1 : Cos : : 1 : Pow : : 2 : Not : : 1 : boolean negation # # conversions IntToReal : : 1 : TruncToInt : : 1 : RoundToInt : : 1 : CeilToInt : : 1 : FloorToInt : : 1 : # # image/field operations Kernel : Kernel.kernel : 0 : LoadImage : ImageInfo.info : 0 : image-file loading Convolve : : 2 : convolution Inside : : 2 : Field : FieldDef.field_def : 0 : AddField : : 2 : field addition ScaleField : : 2 : field scaling NegField : : 1 : field negation DiffField : : 1 : field differentiation Probe : : 2 : Transform : ImageInfo.info : 1 : transform to image-space # # inputs Input : string : 0 : InputWithDefault : string : 1 :