314 void Histogram::WriteAsciiHeader(const SampleSet& snapshot, 315 Count sample_count, 316 std::string* output) const { 317 StringAppendF(output, 318 "Histogram: %s recorded %d samples", 319 histogram_name().c_str(), 320 sample_count); 321 if (0 == sample_count) { 322 DCHECK_EQ(snapshot.sum(), 0); 323 } else { 324 double average = static_cast<float>(snapshot.sum()) / sample_count; 325 double variance = static_cast<float>(snapshot.square_sum())/sample_count 326 - average * average; 327 double standard_deviation = sqrt(variance); 328 329 StringAppendF(output, 330 ", average = %.1f, standard deviation = %.1f", 331 average, standard_deviation); 332 } 333 if (flags_ & ~kHexRangePrintingFlag ) 334 StringAppendF(output, " (flags = 0x%x)", flags_ & ~kHexRangePrintingFlag); 335 }