public static bool IsGeneric(this MetricKind metric) => Generic.Contains(metric);
internal void AssertExportedInt64( string name, MetricKind kind, long value, params (string, string)[] labels)
public OpMetricAttribute(MetricKind Metric, OpKind Op) { this.Metric = Metric; this.Op = Op; }
public static MetricComparisonSpec DefineComparison(this MetricKind Baseline, MetricKind Bench, PrimalKind Primitive, OpKind Operator) => MetricComparisonSpec.Define(Baseline, Bench, Primitive, Operator);
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 static void Deconstruct(this MetricId metric, out MetricKind Classifier, out PrimalKind Primitive, out OpKind Operator) { Classifier = metric.Classifier; Primitive = metric.Primitive; Operator = metric.Operator; }
public static MetricId Identify(this MetricKind metric, PrimalKind primitive, OpKind op) => MetricId.Define(metric, primitive, op);
public static MetricConfig Define(MetricKind metric, int runs, int cycles, int samples) => new MetricConfig(metric, runs, cycles, samples);
public static MetricId Define(MetricKind Classifier, PrimalKind Primitive, OpKind Operator) => new MetricId(Classifier, Primitive, Operator);
public static MetricComparisonSpec Define(MetricKind Baseline, MetricKind Bench, PrimalKind Primitive, OpKind Operator) => new MetricComparisonSpec(Baseline, Bench, Primitive, Operator);
public static MetricComparisonSpec Define <T>(MetricKind Baseline, MetricKind Bench, PrimalKind Primitive, OpKind Operator) where T : struct => new MetricComparisonSpec(Baseline, Bench, PrimalKinds.kind <T>(), Operator);