diff options
| author | Myrice <[email protected]> | 2015-04-07 14:43:05 -0700 |
|---|---|---|
| committer | Myrice <[email protected]> | 2015-04-07 14:43:05 -0700 |
| commit | 6b9eb92bd0b03d69a2f2e9c075a8af99d860d4d1 (patch) | |
| tree | c741ac460cb86219446070765be97536143def55 /src/intersim2/.svn/pristine/6c | |
| parent | 4dc9d53085b568aea0cefe75d599f87bb5e0841f (diff) | |
Booksim2 abandoned svn and moved to github (https://github.com/booksim/booksim2). This .svn folder is useless now and should be deleted.
For further integration, a git submodule/git subtree may be used. Since I modified their source code, we cannot use git submodule/git subtree easily.
Signed-off-by: Myrice <[email protected]>
Diffstat (limited to 'src/intersim2/.svn/pristine/6c')
| -rw-r--r-- | src/intersim2/.svn/pristine/6c/6c86a0b772d76fae9d90046d17b6ec12b77551d0.svn-base | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/src/intersim2/.svn/pristine/6c/6c86a0b772d76fae9d90046d17b6ec12b77551d0.svn-base b/src/intersim2/.svn/pristine/6c/6c86a0b772d76fae9d90046d17b6ec12b77551d0.svn-base deleted file mode 100644 index 58a3ba5..0000000 --- a/src/intersim2/.svn/pristine/6c/6c86a0b772d76fae9d90046d17b6ec12b77551d0.svn-base +++ /dev/null @@ -1,130 +0,0 @@ -// $Id$ - -/* - Copyright (c) 2007-2012, Trustees of The Leland Stanford Junior University - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 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 - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - - 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 OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*stats.cpp - * - *class stores statistics gnerated by the trafficmanager such as the latency - *hope count of the the flits - * - *reset option resets the min and max alues of this statistiscs - */ - -#include "booksim.hpp" -#include <iostream> -#include <sstream> -#include <limits> -#include <cmath> -#include <cstdio> - -#include "stats.hpp" - -Stats::Stats( Module *parent, const string &name, - double bin_size, int num_bins ) : - Module( parent, name ), _num_bins( num_bins ), _bin_size( bin_size ) -{ - Clear(); -} - -void Stats::Clear( ) -{ - _num_samples = 0; - _sample_sum = 0.0; - _sample_squared_sum = 0.0; - - _hist.assign(_num_bins, 0); - - _min = numeric_limits<double>::quiet_NaN(); - _max = -numeric_limits<double>::quiet_NaN(); - - // _reset = true; -} - -double Stats::Average( ) const -{ - return _sample_sum / (double)_num_samples; -} - -double Stats::Variance( ) const -{ - return (_sample_squared_sum * (double)_num_samples - _sample_sum * _sample_sum) / ((double)_num_samples * (double)_num_samples); -} - -double Stats::Min( ) const -{ - return _min; -} - -double Stats::Max( ) const -{ - return _max; -} - -double Stats::Sum( ) const -{ - return _sample_sum; -} - -double Stats::SquaredSum( ) const -{ - return _sample_squared_sum; -} - -int Stats::NumSamples( ) const -{ - return _num_samples; -} - -void Stats::AddSample( double val ) -{ - ++_num_samples; - _sample_sum += val; - - // NOTE: the negation ensures that NaN values are handled correctly! - _max = !(val <= _max) ? val : _max; - _min = !(val >= _min) ? val : _min; - - //double clamp between 0 and num_bins-1 - int b = (int)fmax(floor( val / _bin_size ), 0.0); - b = (b >= _num_bins) ? (_num_bins - 1) : b; - - _hist[b]++; -} - -void Stats::Display( ostream & os ) const -{ - os << *this << endl; -} - -ostream & operator<<(ostream & os, const Stats & s) { - vector<int> const & v = s._hist; - os << "[ "; - for(size_t i = 0; i < v.size(); ++i) { - os << v[i] << " "; - } - os << "]"; - return os; -} |
