SST
8.0.0
StructuralSimulationToolkit
|
Performs Unit math in full precision. More...
#include <unitAlgebra.h>
Public Member Functions | |
UnitAlgebra (std::string val) | |
Create a new UnitAlgebra instance, and pre-populate with a parsed value. More... | |
void | print (std::ostream &stream) |
Print to an ostream the value. | |
void | printWithBestSI (std::ostream &stream) |
Print to an ostream the value Formats the number using SI-prefixes. | |
std::string | toString () const |
Return a string representation of this value. | |
std::string | toStringBestSI () const |
Return a string representation of this value Formats the number using SI-prefixes. | |
UnitAlgebra & | operator= (const std::string &v) |
UnitAlgebra & | operator*= (const UnitAlgebra &v) |
Multiply by an argument;. | |
template<typename T > | |
UnitAlgebra & | operator*= (const T &v) |
Multiply by an argument;. | |
UnitAlgebra & | operator/= (const UnitAlgebra &v) |
Divide by an argument;. | |
template<typename T > | |
UnitAlgebra & | operator/= (const T &v) |
Divide by an argument;. | |
UnitAlgebra & | operator+= (const UnitAlgebra &v) |
Add an argument;. | |
template<typename T > | |
UnitAlgebra & | operator+= (const T &v) |
Multiply by an argument;. | |
UnitAlgebra & | operator-= (const UnitAlgebra &v) |
Subtract an argument;. | |
template<typename T > | |
UnitAlgebra & | operator-= (const T &v) |
Divide by an argument;. | |
bool | operator> (const UnitAlgebra &v) const |
Compare if this object is greater than the argument. | |
bool | operator>= (const UnitAlgebra &v) const |
Compare if this object is greater than, or equal to, the argument. | |
bool | operator< (const UnitAlgebra &v) const |
Compare if this object is less than the argument. | |
bool | operator<= (const UnitAlgebra &v) const |
Compare if this object is less than, or equal to, the argument. | |
UnitAlgebra & | invert () |
Apply a reciprocal operation to the object. | |
bool | hasUnits (std::string u) const |
Returns true if the units in the parameter string are found in this object. | |
sst_big_num | getValue () const |
Return the raw value. | |
int64_t | getRoundedValue () const |
Return the rounded value as a 64bit integer. | |
void | serialize_order (SST::Core::Serialization::serializer &ser) override |
Public Member Functions inherited from SST::Core::Serialization::serializable | |
virtual const char * | cls_name () const =0 |
virtual uint32_t | cls_id () const =0 |
virtual std::string | serialization_name () const =0 |
Additional Inherited Members | |
Protected Types inherited from SST::Core::Serialization::serializable | |
enum | cxn_flag_t { ConstructorFlag } |
Static Protected Member Functions inherited from SST::Core::Serialization::serializable | |
static void | serializable_abort (uint32_t line, const char *file, const char *func, const char *obj) |
Performs Unit math in full precision.
Allows operations such as multiplying a frequency by 2.
UnitAlgebra::UnitAlgebra | ( | std::string | val | ) |
Create a new UnitAlgebra instance, and pre-populate with a parsed value.
val | Value to parse. It is of the following format: val := NUMBER( )?UNITS
NUMBER := (-)?[0-9]+(.[0-9]+)?
UNITS := UNITGROUP(/UNITGROUP)
UNITGROUP := UNIT(-UNIT)*
UNIT := (SIPREFIX)?(BASEUNIT|COMPUNIT)
SIPREFIX := {a,f,p,n,u,m,[kKMGTPE]i?}
BASEUNIT := {s,B,b,events}
COMPUNIT := {Hz,hz,Bps,bps,event}
|