     return samples[index]
   }
 
-  var sampleCount: T { return UInt64(samples.count) }
+  var sampleCount: T { return samples.count }
   var min: T { return samples.first! }
   var max: T { return samples.last! }
-  var mean: T { return UInt64(stats.mean.rounded()) }
-  var sd: T { return UInt64(stats.standardDeviation.rounded()) }
+  var mean: T { return Int(stats.mean.rounded()) }
+  var sd: T { return Int(stats.standardDeviation.rounded()) }
   var median: T { return self[0.5] }
 }
 

    name.withCString { p in stopTrackingObjects(p) }
#endif

    return lastSampleTime / UInt64(numIters) / 1000
  }
}

/// Invoke the benchmark entry point and return the run time in milliseconds.
func runBench(_ test: BenchmarkInfo, _ c: TestConfig) -> BenchResults? {
  var samples = [UInt64](repeating: 0, count: c.numSamples)

  // Before we do anything, check that we actually have a function to
  // run. If we don't it is because the benchmark is not supported on

    var variance: Double { return n < 2 ? 0.0 : S / Double(n - 1) }
    var standardDeviation: Double { return variance.squareRoot() }

    static func collect(_ s: inout Stats, _ x: Int){
        Stats.runningMeanVariance(&s, Double(x))
    }

