public NumericInfo(int size, NumericKind kind, object minValue, object maxValue) { Size = size; Kind = kind; MinValue = minValue; MaxValue = maxValue; }
public BinaryOpSig(NumericKind NumKind, OpKind Op, ParamSig Lhs, ParamSig Rhs, ParamSig Return) : base(NumKind, Op, Return) { this.Lhs = Lhs; this.Rhs = Rhs; }
public static OpId OpId(this OpKind op, NumericSystem system, PrimalKind prim, NumericKind numKind = NumericKind.Native, Genericity generic = Genericity.Direct, OpFusion fusion = OpFusion.Atomic, string title = null) => new OpId(system, op, prim, numKind, generic, fusion, title);
public static OpId <T> OpId <T>(this OpKind op, NumericSystem system, NumericKind numKind = NumericKind.Native, Genericity generic = Genericity.Direct, OpFusion fusion = OpFusion.Atomic, string title = null) where T : struct => new OpId <T>(system, op, numKind, generic, fusion, title);
public MetricSpec(OpKind OpKind, NumericSystem NumSystem, NumericKind NumKind, PrimalKind OperandType, OpVariance Variance, ByteSize OperandSize) { this.OpKind = OpKind; this.NumSystem = NumSystem; this.NumKind = NumKind; this.OperandType = OperandType; this.Variance = Variance; this.OperandSize = OperandSize; }
public OpId(NumericSystem NumSystem, OpKind OpKind, NumericKind NumKind, Genericity Generic, OpFusion Fusion, string OpTitle) { this.NumSystem = NumSystem; this.OpKind = OpKind; this.NumKind = NumKind; this.OperandType = PrimalKinds.kind <T>(); this.Generic = Generic; this.Fusion = Fusion; this.OpTitle = ifEmpty(OpTitle, OpId.DefineOpTitle(this)); this.OpUri = OpId.BuildOpUri(this); }
public static MetricSpec <T> Define <T>(OpKind OpKind, NumericSystem NumSystem, NumericKind NumKind, OpVariance Variance, ByteSize OperandSize) where T : struct => new MetricSpec <T>(OpKind, NumSystem, NumKind, Variance, OperandSize);
public static MetricSpec Define(OpKind OpKind, NumericSystem NumSystem, NumericKind NumKind, PrimalKind OperandType, OpVariance Variance, ByteSize OperandSize) => new MetricSpec(OpKind, NumSystem, NumKind, OperandType, Variance, OperandSize);
public UnaryOpSig(NumericKind NumKind, OpKind Op, ParamSig Operand, ParamSig Return) : base(NumKind, Op, Return) { this.Operand = Operand; }
public OpSig(NumericKind NumKind, OpKind Op, ParamSig Return) { this.NumKind = NumKind; this.Op = Op; this.Return = Return; }
public static IOpSig Define(NumericKind numKind, OpKind op, ParamSig lhs, ParamSig rhs, ParamSig ret) => new BinaryOpSig(numKind, op, lhs, rhs, ret);
public static IOpSig Define(NumericKind numKind, OpKind op, ParamSig operand, ParamSig ret) => new UnaryOpSig(numKind, op, operand, ret);
public static bool IsIntrinsic(this NumericKind kind) => (byte)kind >= (byte)NumericKind.Num128;
/// <summary> /// Returns the identified primal generic operator /// </summary> public static OpId <T> PrimalGOpId <T>(this OpKind kind, NumericKind numKind = NumericKind.Native) where T : struct => kind.OpId <T>(NumericSystem.Primal, generic : Genericity.Generic);