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); }
protected void VerifyOp <K>(UnaryOp <K> subject, UnaryOp <K> baseline, bool nonzero = false, [CallerMemberName] string caller = null, [CallerFilePath] string file = null, [CallerLineNumber] int?line = null) where K : struct { var kind = PrimalKinds.kind <K>(); var src = RandArray <K>(nonzero); var timing = stopwatch(); for (var i = 0; i < src.Length; i++) { Claim.eq(baseline(src[i]), subject(src[i]), caller, file, line); } }
protected void VerifyOp <K>(OpKind opKind, BinaryOp <K> baseline, BinaryOp <K> op, bool nonzero = false, [CallerMemberName] string caller = null, [CallerFilePath] string file = null, [CallerLineNumber] int?line = null) where K : struct { var kind = PrimalKinds.kind <K>(); var lhs = RandArray <K>(); var rhs = RandArray <K>(nonzero); var len = length(lhs, rhs); var timing = stopwatch(); for (var i = 0; i < len; i++) { Claim.numeq(baseline(lhs[i], rhs[i]), op(lhs[i], rhs[i]), caller, file, line); } }
public static FileName DataFileName <M, N, T>(string fileId = null) where M : ITypeNat, new() where N : ITypeNat, new() where T : struct => FileName.Define($" {fileId ?? "mat"}_{PrimalKinds.kind<T>()}[{nati<M>()}x{nati<N>()}].csv");
public static MetricComparisonSpec DefineComparison <T>(this MetricKind Baseline, MetricKind Bench, OpKind Operator) where T : struct => MetricComparisonSpec.Define(Baseline, Bench, PrimalKinds.kind <T>(), Operator);
public static MetricId Identify <T>(this MetricKind metric, OpKind op) where T : struct => MetricId.Define(metric, PrimalKinds.kind <T>(), op);
public OpType(OpKind op) { Primitive = PrimalKinds.kind <T>(); this.Op = op; }
public static MetricComparisonSpec Define <T>(MetricKind Baseline, MetricKind Bench, PrimalKind Primitive, OpKind Operator) where T : struct => new MetricComparisonSpec(Baseline, Bench, PrimalKinds.kind <T>(), Operator);