26 #include <biogears/cdm/Macros.h>
27 #include <biogears/cdm/utils/unitconversion/CompoundUnitElement.h>
91 size_t shorter = std::min<size_t>(
m_EList.size(), rhs.
m_EList.size());
92 size_t longer = std::max<size_t>(
m_EList.size(), rhs.
m_EList.size());
94 for (
size_t i = 0; i < shorter; ++i) {
102 for (
size_t i = shorter; i < longer; ++i) {
103 if (longerList[i] != 0.0) {
114 return !(*
this == rhs);
122 size_t shorter = std::min<size_t>(
m_EList.size(), rhs.
m_EList.size());
123 size_t longer = std::max<size_t>(
m_EList.size(), rhs.
m_EList.size());
125 for (
size_t i = 0; i < shorter; ++i) {
131 if ((longer > shorter) && (rhs.
m_EList.size() == longer)) {
133 for (
size_t i = shorter; i < longer; ++i) {
142 size_t shorter = std::min<size_t>(
m_EList.size(), rhs.
m_EList.size());
143 size_t longer = std::max<size_t>(
m_EList.size(), rhs.
m_EList.size());
145 for (
size_t i = 0; i < shorter; ++i) {
151 if ((longer > shorter) && (rhs.
m_EList.size() == longer)) {
153 for (
size_t i = shorter; i < longer; ++i) {
176 for (
size_t i = 0; i < len; ++i) {
194 if (fundIdx >= len) {
199 for (
size_t i = 0; i < len; ++i) {
201 requiredVal = ((i == fundIdx) ? 1 : 0);
202 if (
m_EList[i] != requiredVal) {
213 for (
size_t i = 0; i < len; ++i) {
230 size_t shorter = std::min<size_t>(
m_EList.size(), rhs.
m_EList.size());
231 size_t longer = std::max<size_t>(
m_EList.size(), rhs.
m_EList.size());
233 for (
size_t i = 0; i < shorter; ++i) {
245 if (shorter == longer) {
255 for (
size_t i = shorter; i < longer; ++i) {
266 for (
size_t i = shorter; i < longer; ++i) {
269 }
else if (rhs.
m_EList[i] < 0.0) {
289 return !(*
this > rhs);
294 return !(*
this < rhs);
301 ExponentList::const_iterator iend =
m_EList.end();
302 ExponentList::const_iterator ibgn =
m_EList.begin();
304 while ((iend != ibgn) && *--iend == 0)
CUnitDimension()
Definition: UnitDimension.cpp:23
size_t hash_value(const CQuantityConversionKey &ref)
Definition: QuantityConversionKey.h:86
const CUnitDimension operator*(const double &rhs) const
Definition: UnitDimension.h:182
bool IsDimensionless() const
Definition: UnitDimension.h:210
CUnitDimension & operator-=(const CUnitDimension &rhs)
Definition: UnitDimension.h:140
CUnitDimension & operator*=(const double &rhs)
Definition: UnitDimension.h:173
CCompoundUnitElement::ExponentType & operator[](size_t pos)
Definition: UnitDimension.h:68
size_t operator()(const biogears::CUnitDimension &ref) const
Definition: UnitDimension.h:336
size_t size() const
Definition: UnitDimension.h:49
CUnitDimension(const CUnitDimension &src)
Definition: UnitDimension.h:44
bool operator==(const CUnitDimension &rhs) const
Definition: UnitDimension.h:86
bool IsFundamentalQuantity(size_t fundIdx) const
Definition: UnitDimension.h:189
const CUnitDimension operator-(const CUnitDimension &rhs) const
Definition: UnitDimension.h:165
SEScalar operator*(double lhs, const SEScalar &rhs)
Definition: SEScalar.h:123
bool operator!=(const CUnitDimension &rhs) const
Definition: UnitDimension.h:112
bool operator<=(const CUnitDimension &rhs) const
Definition: UnitDimension.h:287
CSnapValue ExponentType
Definition: CompoundUnitElement.h:42
size_t hash_value() const
Definition: UnitDimension.h:299
const CUnitDimension operator+(const CUnitDimension &rhs) const
Definition: UnitDimension.h:160
CCompoundUnitElement::ExponentType const & operator[](size_t pos) const
Definition: UnitDimension.h:75
std::vector< ExponentType > ExponentList
Definition: UnitDimension.h:38
CUnitDimension & operator=(const CUnitDimension &rhs)
Definition: UnitDimension.h:60
bool operator>=(const CUnitDimension &rhs) const
Definition: UnitDimension.h:292
Definition: SnapValue.h:46
Definition: UnitDimension.h:35
CUnitDimension & operator+=(const CUnitDimension &rhs)
Definition: UnitDimension.h:120
size_t _Hash_value(_InIt _Begin, _InIt _End)
Definition: Macros.h:25
bool operator>(const CUnitDimension &rhs) const
Definition: UnitDimension.h:282
bool operator<(const CUnitDimension &rhs) const
Definition: UnitDimension.h:228
ExponentList m_EList
Definition: UnitDimension.h:313
Definition: SEElectricalCircuit.h:18
void InitElems()
Definition: UnitDimension.cpp:32