#include <Stats.h>
Public Methods | |
| ACE_Stats_Value (const u_int precision) | |
| u_int | precision (void) const |
| Accessor for precision. More... | |
| void | whole (const ACE_UINT32) |
| Set the whole_ field. More... | |
| ACE_UINT32 | whole (void) const |
| Accessor for the whole_ field. More... | |
| void | fractional (const ACE_UINT32) |
| Set the fractional_ field. More... | |
| ACE_UINT32 | fractional (void) const |
| Accessor for the fractional_ field. More... | |
| ACE_UINT32 | fractional_field (void) const |
| Calculates the maximum value of the fractional portion, given its precision. More... | |
| void | scaled_value (ACE_UINT64 &) const |
| void | dump (void) const |
| Print to stdout. More... | |
Private Methods | |
| ACE_Stats_Value (void) | |
Private Attributes | |
| ACE_UINT32 | whole_ |
| The integer portion of the value. More... | |
| ACE_UINT32 | fractional_ |
| The fractional portion of the value. More... | |
| u_int | precision_ |
Container struct for 64-bit signed quantity and its precision. It would be nicer to use a fixed-point class, but this is sufficient. Users typically don't need to use this class directly; see ACE_Stats below.
Definition at line 40 of file Stats.h.
|
|
Constructor, which requires precision in terms of number of decimal digits. The more variation in the data, and the greater the data values, the smaller the precision must be to avoid overflow in the standard deviation calculation. 3 might be a good value, or maybe 4. 5 will probably be too large for non-trivial data sets. Definition at line 5 of file Stats.i.
00006 : whole_ (0), 00007 fractional_ (0), 00008 precision_ (precision) 00009 { 00010 } |
|
|
|
|
|
Print to stdout.
Definition at line 56 of file Stats.i. References ACE_DEBUG, ACE_LIB_TEXT, fractional_, LM_DEBUG, precision_, and whole_.
00057 {
00058 ACE_DEBUG ((LM_DEBUG,
00059 ACE_LIB_TEXT ("precision: %u digits; whole: %u, fractional: %u\n"),
00060 precision_, whole_, fractional_));
00061 }
|
|
|
Accessor for the fractional_ field.
Definition at line 42 of file Stats.i. References fractional_. Referenced by scaled_value.
00043 {
00044 return fractional_;
00045 }
|
|
|
Set the fractional_ field.
Definition at line 35 of file Stats.i. References fractional_. Referenced by ACE_Stats::mean, ACE_Stats::print_summary, ACE_Stats::quotient, ACE_Stats::square_root, and ACE_Stats::std_dev.
00036 {
00037 fractional_ = value;
00038 }
|
|
|
Calculates the maximum value of the fractional portion, given its precision.
Definition at line 14 of file Stats.cpp. References precision. Referenced by ACE_Stats::quotient, scaled_value, ACE_Stats::square_root, and ACE_Stats::std_dev.
|
|
|
Accessor for precision.
Definition at line 14 of file Stats.i. References precision_. Referenced by fractional_field, ACE_Stats::quotient, ACE_Stats::square_root, and ACE_Stats::std_dev.
00015 {
00016 return precision_;
00017 }
|
|
|
Access the value as an _unsigned_ 64 bit quantity. It scales the value up by <precision> decimal digits, so that no precision will be lost. It assumes that <whole_> is >= 0. Definition at line 49 of file Stats.i. References ACE_UINT64, fractional, fractional_field, and whole. Referenced by ACE_Stats::std_dev.
00050 {
00051 sv = whole () * fractional_field () + fractional ();
00052 }
|
|
|
Accessor for the whole_ field.
Definition at line 28 of file Stats.i. References whole_. Referenced by scaled_value.
00029 {
00030 return whole_;
00031 }
|
|
|
Set the whole_ field.
Definition at line 21 of file Stats.i. References whole_. Referenced by ACE_High_Res_Timer::calibrate, ACE_Stats::mean, ACE_Stats::print_summary, ACE_Stats::quotient, ACE_Stats::square_root, and ACE_Stats::std_dev.
00022 {
00023 whole_ = value;
00024 }
|
|
|
The fractional portion of the value.
Definition at line 87 of file Stats.h. Referenced by dump, and fractional. |
|
|
The number of decimal digits of precision represented by <fractional_>. Not declared const, so the only way to change it is via the assignment operator. |
|
|
The integer portion of the value.
|
1.2.14 written by Dimitri van Heesch,
© 1997-2002