diff options
| author | Nick <[email protected]> | 2019-09-13 05:31:29 -0400 |
|---|---|---|
| committer | Nick <[email protected]> | 2019-09-13 05:31:29 -0400 |
| commit | 9c9b1341613e767f306b2b73b5b8a5317b6ee563 (patch) | |
| tree | dbdd4b0edd3e587f3ab5fc2d6a00dda4ddb7c444 /src/gpgpu-sim/histogram.cc | |
| parent | 26ca8de4a6ec9bfe422a14cbe325a5f257df453b (diff) | |
Add src/gpgpu-sim formatting
Diffstat (limited to 'src/gpgpu-sim/histogram.cc')
| -rw-r--r-- | src/gpgpu-sim/histogram.cc | 164 |
1 files changed, 89 insertions, 75 deletions
diff --git a/src/gpgpu-sim/histogram.cc b/src/gpgpu-sim/histogram.cc index 67f5c18..02c6c66 100644 --- a/src/gpgpu-sim/histogram.cc +++ b/src/gpgpu-sim/histogram.cc @@ -7,14 +7,16 @@ // // Redistributions of source code must retain the above copyright notice, this // list of conditions and the following disclaimer. -// Redistributions in binary form must reproduce the above copyright notice, this +// Redistributions in binary form must reproduce the above copyright notice, +// this // list of conditions and the following disclaimer in the documentation and/or // other materials provided with the distribution. // Neither the name of The University of British Columbia nor the names of its // contributors may be used to endorse or promote products derived from this // software without specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE @@ -29,96 +31,108 @@ #include <assert.h> -binned_histogram::binned_histogram (std::string name, int nbins, int* bins) - : m_name(name), m_nbins(nbins), m_bins(NULL), m_bin_cnts(new int[m_nbins]), m_maximum(0), m_sum(0) -{ - if (bins) { - m_bins = new int[m_nbins]; - for (int i = 0; i < nbins; i++) { - m_bins[i] = bins[i]; - } - } +binned_histogram::binned_histogram(std::string name, int nbins, int* bins) + : m_name(name), + m_nbins(nbins), + m_bins(NULL), + m_bin_cnts(new int[m_nbins]), + m_maximum(0), + m_sum(0) { + if (bins) { + m_bins = new int[m_nbins]; + for (int i = 0; i < nbins; i++) { + m_bins[i] = bins[i]; + } + } - reset_bins(); + reset_bins(); } -binned_histogram::binned_histogram (const binned_histogram& other) - : m_name(other.m_name), m_nbins(other.m_nbins), m_bins(NULL), - m_bin_cnts(new int[m_nbins]), m_maximum(0), m_sum(0) -{ - for (int i = 0; i < m_nbins; i++) { - m_bin_cnts[i] = other.m_bin_cnts[i]; - } +binned_histogram::binned_histogram(const binned_histogram& other) + : m_name(other.m_name), + m_nbins(other.m_nbins), + m_bins(NULL), + m_bin_cnts(new int[m_nbins]), + m_maximum(0), + m_sum(0) { + for (int i = 0; i < m_nbins; i++) { + m_bin_cnts[i] = other.m_bin_cnts[i]; + } } -void binned_histogram::reset_bins () { - for (int i = 0; i < m_nbins; i++) { - m_bin_cnts[i] = 0; - } +void binned_histogram::reset_bins() { + for (int i = 0; i < m_nbins; i++) { + m_bin_cnts[i] = 0; + } } -void binned_histogram::add2bin (int sample) { - assert(0); - m_maximum = (sample > m_maximum)? sample : m_maximum; +void binned_histogram::add2bin(int sample) { + assert(0); + m_maximum = (sample > m_maximum) ? sample : m_maximum; } -void binned_histogram::fprint (FILE *fout) const -{ - if (m_name.c_str() != NULL) fprintf(fout, "%s = ", m_name.c_str()); - int total_sample = 0; - for (int i = 0; i < m_nbins; i++) { - fprintf(fout, "%d ", m_bin_cnts[i]); - total_sample += m_bin_cnts[i]; - } - fprintf(fout, "max=%d ", m_maximum); - float avg = 0.0f; - if (total_sample > 0) { - avg = (float)m_sum / total_sample; - } - fprintf(fout, "avg=%0.2f ", avg); +void binned_histogram::fprint(FILE* fout) const { + if (m_name.c_str() != NULL) fprintf(fout, "%s = ", m_name.c_str()); + int total_sample = 0; + for (int i = 0; i < m_nbins; i++) { + fprintf(fout, "%d ", m_bin_cnts[i]); + total_sample += m_bin_cnts[i]; + } + fprintf(fout, "max=%d ", m_maximum); + float avg = 0.0f; + if (total_sample > 0) { + avg = (float)m_sum / total_sample; + } + fprintf(fout, "avg=%0.2f ", avg); } -binned_histogram::~binned_histogram () { - if (m_bins) delete[] m_bins; - delete[] m_bin_cnts; +binned_histogram::~binned_histogram() { + if (m_bins) delete[] m_bins; + delete[] m_bin_cnts; } -pow2_histogram::pow2_histogram (std::string name, int nbins, int* bins) - : binned_histogram (name, nbins, bins) {} +pow2_histogram::pow2_histogram(std::string name, int nbins, int* bins) + : binned_histogram(name, nbins, bins) {} -void pow2_histogram::add2bin (int sample) { - assert(sample >= 0); - - int bin; - int v = sample; - register unsigned int shift; +void pow2_histogram::add2bin(int sample) { + assert(sample >= 0); - bin = (v > 0xFFFF) << 4; v >>= bin; - shift = (v > 0xFF ) << 3; v >>= shift; bin |= shift; - shift = (v > 0xF ) << 2; v >>= shift; bin |= shift; - shift = (v > 0x3 ) << 1; v >>= shift; bin |= shift; - bin |= (v >> 1); - bin += (sample > 0)? 1:0; - - m_bin_cnts[bin] += 1; - - m_maximum = (sample > m_maximum)? sample : m_maximum; - m_sum += sample; -} + int bin; + int v = sample; + register unsigned int shift; + + bin = (v > 0xFFFF) << 4; + v >>= bin; + shift = (v > 0xFF) << 3; + v >>= shift; + bin |= shift; + shift = (v > 0xF) << 2; + v >>= shift; + bin |= shift; + shift = (v > 0x3) << 1; + v >>= shift; + bin |= shift; + bin |= (v >> 1); + bin += (sample > 0) ? 1 : 0; + + m_bin_cnts[bin] += 1; -linear_histogram::linear_histogram (int stride, const char *name, int nbins, int* bins) - : binned_histogram (name, nbins, bins), m_stride(stride) -{ + m_maximum = (sample > m_maximum) ? sample : m_maximum; + m_sum += sample; } -void linear_histogram::add2bin (int sample) { - assert(sample >= 0); +linear_histogram::linear_histogram(int stride, const char* name, int nbins, + int* bins) + : binned_histogram(name, nbins, bins), m_stride(stride) {} + +void linear_histogram::add2bin(int sample) { + assert(sample >= 0); + + int bin = sample / m_stride; + if (bin >= m_nbins) bin = m_nbins - 1; + + m_bin_cnts[bin] += 1; - int bin = sample / m_stride; - if (bin >= m_nbins) bin = m_nbins - 1; - - m_bin_cnts[bin] += 1; - - m_maximum = (sample > m_maximum)? sample : m_maximum; - m_sum += sample; + m_maximum = (sample > m_maximum) ? sample : m_maximum; + m_sum += sample; } |
