Set of values corresponding to a given SpectrumModel. More...
#include "spectrum-value.h"
Public Types | |
typedef void(* | TracedCallback) (Ptr< SpectrumValue > value) |
TracedCallback signature for SpectrumValue. More... | |
Public Member Functions | |
SpectrumValue (Ptr< const SpectrumModel > sm) | |
SpectrumValue constructor. More... | |
SpectrumValue () | |
Bands::const_iterator | ConstBandsBegin () const |
Bands::const_iterator | ConstBandsEnd () const |
Values::const_iterator | ConstValuesBegin () const |
Values::const_iterator | ConstValuesEnd () const |
Ptr< SpectrumValue > | Copy () const |
Ptr< const SpectrumModel > | GetSpectrumModel () const |
SpectrumModelUid_t | GetSpectrumModelUid () const |
SpectrumValue & | operator*= (const SpectrumValue &rhs) |
Multiply *this by the Right Hand Side of the operator, component by component. More... | |
SpectrumValue & | operator*= (double rhs) |
Multiply every component of *this by the value of the Right Hand Side of the operator. More... | |
SpectrumValue & | operator+= (const SpectrumValue &rhs) |
Add the Right Hand Side of the operator to *this, component by component. More... | |
SpectrumValue & | operator+= (double rhs) |
Add the value of the Right Hand Side of the operator to all components of *this. More... | |
SpectrumValue & | operator-= (const SpectrumValue &rhs) |
Subtract the Right Hand Side of the operator from *this, component by component. More... | |
SpectrumValue & | operator-= (double rhs) |
Subtract the value of the Right Hand Side of the operator from all components of *this. More... | |
SpectrumValue & | operator/= (const SpectrumValue &rhs) |
Divide *this by the Right Hand Side of the operator, component by component. More... | |
SpectrumValue & | operator/= (double rhs) |
Divide every component of *this by the value of the Right Hand Side of the operator. More... | |
SpectrumValue | operator<< (int n) const |
left shift operator More... | |
SpectrumValue & | operator= (double rhs) |
Assign each component of *this to the value of the Right Hand Side of the operator. More... | |
SpectrumValue | operator>> (int n) const |
right shift operator More... | |
double & | operator[] (size_t index) |
Access value at given frequency index. More... | |
const double & | operator[] (size_t index) const |
Access value at given frequency index. More... | |
Values::iterator | ValuesBegin () |
Values::iterator | ValuesEnd () |
Public Member Functions inherited from ns3::SimpleRefCount< SpectrumValue > | |
SimpleRefCount () | |
Default constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
Private Member Functions | |
void | Add (const SpectrumValue &x) |
Add a SpectrumValue (element to element addition) More... | |
void | Add (double s) |
Add a flat value to all the current elements. More... | |
void | ChangeSign () |
Change the values sign. More... | |
void | Divide (const SpectrumValue &x) |
Divides by a SpectrumValue (element to element division) More... | |
void | Divide (double s) |
Divides by a flat value to all the current elements. More... | |
void | Exp (double base) |
Modifies each element so that it is the base raised to each element value. More... | |
void | Log () |
Applies a Log to each the elements. More... | |
void | Log10 () |
Applies a Log10 to each the elements. More... | |
void | Log2 () |
Applies a Log2 to each the elements. More... | |
void | Multiply (const SpectrumValue &x) |
Multiplies for a SpectrumValue (element to element multiplication) More... | |
void | Multiply (double s) |
Multiplies for a flat value to all the current elements. More... | |
void | Pow (double exp) |
Modifies each element so that it each element is raised to the exponent. More... | |
void | ShiftLeft (int n) |
Shift the values to the left. More... | |
void | ShiftRight (int n) |
Shift the values to the right. More... | |
void | Subtract (const SpectrumValue &x) |
Subtracts a SpectrumValue (element by element subtraction) More... | |
void | Subtract (double s) |
Subtracts a flat value to all the current elements. More... | |
Private Attributes | |
Ptr< const SpectrumModel > | m_spectrumModel |
The spectrum model. More... | |
Values | m_values |
Set of values which implement the codomain of the functions in the Function Space defined by SpectrumValue. More... | |
Friends | |
double | Integral (const SpectrumValue &arg) |
SpectrumValue | Log (const SpectrumValue &arg) |
SpectrumValue | Log10 (const SpectrumValue &arg) |
SpectrumValue | Log2 (const SpectrumValue &arg) |
double | Norm (const SpectrumValue &x) |
SpectrumValue | operator* (const SpectrumValue &lhs, const SpectrumValue &rhs) |
multiplication component-by-component (Schur product) More... | |
SpectrumValue | operator* (const SpectrumValue &lhs, double rhs) |
multiplication by a scalar More... | |
SpectrumValue | operator* (double lhs, const SpectrumValue &rhs) |
multiplication of a scalar More... | |
SpectrumValue | operator+ (const SpectrumValue &lhs, const SpectrumValue &rhs) |
addition operator More... | |
SpectrumValue | operator+ (const SpectrumValue &lhs, double rhs) |
addition operator More... | |
SpectrumValue | operator+ (double lhs, const SpectrumValue &rhs) |
addition operator More... | |
SpectrumValue | operator+ (const SpectrumValue &rhs) |
unary plus operator More... | |
SpectrumValue | operator- (const SpectrumValue &lhs, const SpectrumValue &rhs) |
subtraction operator More... | |
SpectrumValue | operator- (const SpectrumValue &lhs, double rhs) |
subtraction operator More... | |
SpectrumValue | operator- (double lhs, const SpectrumValue &rhs) |
subtraction operator More... | |
SpectrumValue | operator- (const SpectrumValue &rhs) |
unary minus operator More... | |
SpectrumValue | operator/ (const SpectrumValue &lhs, const SpectrumValue &rhs) |
division component-by-component More... | |
SpectrumValue | operator/ (const SpectrumValue &lhs, double rhs) |
division by a scalar More... | |
SpectrumValue | operator/ (double lhs, const SpectrumValue &rhs) |
division of a scalar More... | |
SpectrumValue | Pow (const SpectrumValue &lhs, double rhs) |
SpectrumValue | Pow (double lhs, const SpectrumValue &rhs) |
double | Prod (const SpectrumValue &x) |
double | Sum (const SpectrumValue &x) |
Set of values corresponding to a given SpectrumModel.
This class implements a Function Space which can represent any function
Every instance of this class represent a particular function . The domain of the function space, i.e., , is implemented by Bands. The codomain of the function space is implemented by Values.
To every possible value of corresponds a different Function Space. Mathematical operations are defined in this Function Space; these operations are implemented by means of operator overloading.
The intended use of this class is to represent frequency-dependent things, such as power spectral densities, frequency-dependent propagation losses, spectral masks, etc.
Definition at line 58 of file spectrum-value.h.
typedef void(* ns3::SpectrumValue::TracedCallback) (Ptr< SpectrumValue > value) |
TracedCallback signature for SpectrumValue.
[in] | value | Value of the traced variable. |
Ptr<SpectrumPhy>
argument is deprecated and will be changed to Ptr<const SpectrumPhy>
in a future release. Definition at line 514 of file spectrum-value.h.
ns3::SpectrumValue::SpectrumValue | ( | Ptr< const SpectrumModel > | sm | ) |
SpectrumValue constructor.
sm | pointer to the SpectrumModel which implements the set of frequencies to which the values will be referring. |
Definition at line 34 of file spectrum-value.cc.
ns3::SpectrumValue::SpectrumValue | ( | ) |
Definition at line 30 of file spectrum-value.cc.
|
private |
Add a SpectrumValue (element to element addition)
x | SpectrumValue |
Definition at line 107 of file spectrum-value.cc.
References m_spectrumModel, m_values, NS_ASSERT, and sample-rng-plot::x.
Referenced by ns3::operator+(), operator+=(), ns3::operator-(), and Subtract().
|
private |
Add a flat value to all the current elements.
s | flat value |
Definition at line 125 of file spectrum-value.cc.
References m_values.
|
private |
Change the values sign.
Definition at line 232 of file spectrum-value.cc.
References m_values.
Referenced by ns3::operator-().
Bands::const_iterator ns3::SpectrumValue::ConstBandsBegin | ( | ) | const |
Definition at line 94 of file spectrum-value.cc.
References ns3::SpectrumModel::Begin(), and m_spectrumModel.
Referenced by ns3::WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity(), ns3::WifiSpectrumValueHelper::CreateRfFilter(), ns3::WifiSpectrumValueHelper::CreateSpectrumMaskForOfdm(), ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), TvSpectrumTransmitterTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::Integral(), and ns3::WriteAveragePowerSpectralDensityReport().
Bands::const_iterator ns3::SpectrumValue::ConstBandsEnd | ( | ) | const |
Definition at line 100 of file spectrum-value.cc.
References ns3::SpectrumModel::End(), and m_spectrumModel.
Referenced by ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), TvSpectrumTransmitterTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::Integral(), and ns3::WriteAveragePowerSpectralDensityReport().
Values::const_iterator ns3::SpectrumValue::ConstValuesBegin | ( | ) | const |
Definition at line 69 of file spectrum-value.cc.
References m_values.
Referenced by ns3::LteAmc::CreateCqiFeedbacks(), ns3::LteEnbPhy::CreatePuschCqiReport(), ns3::LteEnbPhy::CreateSrsCqiReport(), LteFrTestCase::DlDataRxStart(), LteFrAreaTestCase::DlDataRxStart(), TvSpectrumTransmitterTestCase::DoRun(), WifiOfdmMaskSlopesTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::LteUePhy::GenerateCqiRsrpRsrq(), ns3::Integral(), ns3::operator<<(), ns3::LteUePhy::ReceivePss(), ns3::LteUePhy::ReportRsReceivedPower(), LteFrTestCase::UlDataRxStart(), LteFrAreaTestCase::UlDataRxStart(), and ns3::WriteAveragePowerSpectralDensityReport().
Values::const_iterator ns3::SpectrumValue::ConstValuesEnd | ( | ) | const |
Definition at line 75 of file spectrum-value.cc.
References m_values.
Referenced by ns3::LteAmc::CreateCqiFeedbacks(), ns3::LteEnbPhy::CreatePuschCqiReport(), ns3::LteEnbPhy::CreateSrsCqiReport(), LteFrTestCase::DlDataRxStart(), LteFrAreaTestCase::DlDataRxStart(), TvSpectrumTransmitterTestCase::DoRun(), WifiOfdmMaskSlopesTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::LteUePhy::GenerateCqiRsrpRsrq(), ns3::Integral(), ns3::operator<<(), ns3::LteUePhy::ReceivePss(), ns3::LteUePhy::ReportRsReceivedPower(), LteFrTestCase::UlDataRxStart(), LteFrAreaTestCase::UlDataRxStart(), and ns3::WriteAveragePowerSpectralDensityReport().
Ptr< SpectrumValue > ns3::SpectrumValue::Copy | ( | void | ) | const |
Definition at line 409 of file spectrum-value.cc.
References m_spectrumModel.
Referenced by ns3::LrWpanInterferenceHelper::GetSignalPsd(), LteUplinkSrsSinrTestCase::ReportSinr(), ns3::LteSpectrumValueCatcher::ReportValue(), and ns3::SpectrumSignalParameters::SpectrumSignalParameters().
|
private |
Divides by a SpectrumValue (element to element division)
x | SpectrumValue |
Definition at line 198 of file spectrum-value.cc.
References m_spectrumModel, m_values, NS_ASSERT, and sample-rng-plot::x.
Referenced by ns3::operator/(), and operator/=().
|
private |
Divides by a flat value to all the current elements.
s | flat value |
Definition at line 216 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Modifies each element so that it is the base raised to each element value.
base | the base |
Definition at line 294 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
Referenced by ns3::Pow().
Ptr< const SpectrumModel > ns3::SpectrumValue::GetSpectrumModel | ( | void | ) | const |
Definition at line 62 of file spectrum-value.cc.
References m_spectrumModel.
Referenced by ns3::WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity(), ns3::WifiSpectrumValueHelper::CreateHeOfdmTxPowerSpectralDensity(), ns3::WifiSpectrumValueHelper::CreateHtOfdmTxPowerSpectralDensity(), ns3::WifiSpectrumValueHelper::CreateOfdmTxPowerSpectralDensity(), ns3::WifiSpectrumValueHelper::CreateRfFilter(), ns3::WifiSpectrumValueHelper::CreateSpectrumMaskForOfdm(), SpectrumValueTestCase::DoRun(), ns3::LteChunkProcessor::EvaluateChunk(), ns3::SpectrumAnalyzer::GenerateReport(), ns3::HalfDuplexIdealPhy::GetRxSpectrumModel(), ns3::LrWpanPhy::GetRxSpectrumModel(), ns3::WifiSpectrumValueHelper::NormalizeSpectrumMask(), and Bug2483TestCase::StoreDistinctTuple().
SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid | ( | ) | const |
Definition at line 55 of file spectrum-value.cc.
References ns3::SpectrumModel::GetUid(), and m_spectrumModel.
Referenced by LteDownlinkPowerControlSpectrumValueTestCase::DoRun(), LteNoisePsdTestCase::DoRun(), and LteTxPsdTestCase::DoRun().
|
private |
Applies a Log to each the elements.
Definition at line 335 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Applies a Log10 to each the elements.
Definition at line 308 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Applies a Log2 to each the elements.
Definition at line 321 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Multiplies for a SpectrumValue (element to element multiplication)
x | SpectrumValue |
Definition at line 165 of file spectrum-value.cc.
References m_spectrumModel, m_values, NS_ASSERT, and sample-rng-plot::x.
Referenced by ns3::operator*(), and operator*=().
|
private |
Multiplies for a flat value to all the current elements.
s | flat value |
Definition at line 183 of file spectrum-value.cc.
References m_values.
SpectrumValue & ns3::SpectrumValue::operator*= | ( | const SpectrumValue & | rhs | ) |
Multiply *this by the Right Hand Side of the operator, component by component.
rhs | the Right Hand Side |
Definition at line 621 of file spectrum-value.cc.
References Multiply().
SpectrumValue & ns3::SpectrumValue::operator*= | ( | double | rhs | ) |
Multiply every component of *this by the value of the Right Hand Side of the operator.
rhs | the Right Hand Side |
Definition at line 650 of file spectrum-value.cc.
References Multiply().
SpectrumValue & ns3::SpectrumValue::operator+= | ( | const SpectrumValue & | rhs | ) |
Add the Right Hand Side of the operator to *this, component by component.
rhs | the Right Hand Side |
Definition at line 607 of file spectrum-value.cc.
References Add().
SpectrumValue & ns3::SpectrumValue::operator+= | ( | double | rhs | ) |
Add the value of the Right Hand Side of the operator to all components of *this.
rhs | the Right Hand Side |
Definition at line 636 of file spectrum-value.cc.
References Add().
SpectrumValue & ns3::SpectrumValue::operator-= | ( | const SpectrumValue & | rhs | ) |
Subtract the Right Hand Side of the operator from *this, component by component.
rhs | the Right Hand Side |
Definition at line 614 of file spectrum-value.cc.
References Subtract().
SpectrumValue & ns3::SpectrumValue::operator-= | ( | double | rhs | ) |
Subtract the value of the Right Hand Side of the operator from all components of *this.
rhs | the Right Hand Side |
Definition at line 643 of file spectrum-value.cc.
References Subtract().
SpectrumValue & ns3::SpectrumValue::operator/= | ( | const SpectrumValue & | rhs | ) |
Divide *this by the Right Hand Side of the operator, component by component.
rhs | the Right Hand Side |
Definition at line 628 of file spectrum-value.cc.
References Divide().
SpectrumValue & ns3::SpectrumValue::operator/= | ( | double | rhs | ) |
Divide every component of *this by the value of the Right Hand Side of the operator.
rhs | the Right Hand Side |
Definition at line 657 of file spectrum-value.cc.
References Divide().
SpectrumValue ns3::SpectrumValue::operator<< | ( | int | n | ) | const |
left shift operator
n | position to shift |
Definition at line 680 of file spectrum-value.cc.
References sample-rng-plot::n, and ShiftLeft().
SpectrumValue & ns3::SpectrumValue::operator= | ( | double | rhs | ) |
Assign each component of *this to the value of the Right Hand Side of the operator.
rhs |
Definition at line 665 of file spectrum-value.cc.
References m_values.
SpectrumValue ns3::SpectrumValue::operator>> | ( | int | n | ) | const |
right shift operator
n | position to shift |
Definition at line 688 of file spectrum-value.cc.
References sample-rng-plot::n, and ShiftRight().
double & ns3::SpectrumValue::operator[] | ( | size_t | index | ) |
Access value at given frequency index.
index | the given frequency index |
Definition at line 42 of file spectrum-value.cc.
References m_values.
const double & ns3::SpectrumValue::operator[] | ( | size_t | index | ) | const |
Access value at given frequency index.
index | the given frequency index |
Definition at line 48 of file spectrum-value.cc.
References m_values.
|
private |
Modifies each element so that it each element is raised to the exponent.
exp | the exponent |
Definition at line 280 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
|
private |
Shift the values to the left.
Definition at line 245 of file spectrum-value.cc.
References m_values, and sample-rng-plot::n.
Referenced by operator<<().
|
private |
Shift the values to the right.
Definition at line 262 of file spectrum-value.cc.
References m_values, and sample-rng-plot::n.
Referenced by operator>>().
|
private |
Subtracts a SpectrumValue (element by element subtraction)
x | SpectrumValue |
Definition at line 139 of file spectrum-value.cc.
References m_spectrumModel, m_values, NS_ASSERT, and sample-rng-plot::x.
Referenced by ns3::operator-(), and operator-=().
|
private |
Subtracts a flat value to all the current elements.
s | flat value |
Definition at line 157 of file spectrum-value.cc.
References Add().
Values::iterator ns3::SpectrumValue::ValuesBegin | ( | ) |
Definition at line 82 of file spectrum-value.cc.
References m_values.
Referenced by ns3::SpectrumConverter::Convert(), ns3::WifiSpectrumValueHelper::CreateDsssTxPowerSpectralDensity(), ns3::WifiSpectrumValueHelper::CreateRfFilter(), ns3::WifiSpectrumValueHelper::CreateSpectrumMaskForOfdm(), ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), ns3::LteMiErrorModel::GetPcfichPdcchError(), and ns3::WifiSpectrumValueHelper::NormalizeSpectrumMask().
Values::iterator ns3::SpectrumValue::ValuesEnd | ( | ) |
Definition at line 88 of file spectrum-value.cc.
References m_values.
Referenced by ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), and ns3::LteMiErrorModel::GetPcfichPdcchError().
|
friend |
arg | the argument |
Definition at line 390 of file spectrum-value.cc.
|
friend |
arg | the argument |
Definition at line 599 of file spectrum-value.cc.
Referenced by ns3::Log().
|
friend |
arg | the argument |
Definition at line 583 of file spectrum-value.cc.
Referenced by ns3::Log10().
|
friend |
arg | the argument |
Definition at line 591 of file spectrum-value.cc.
Referenced by ns3::Log2().
|
friend |
x | the operand |
Definition at line 348 of file spectrum-value.cc.
|
friend |
multiplication component-by-component (Schur product)
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 496 of file spectrum-value.cc.
|
friend |
multiplication by a scalar
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 505 of file spectrum-value.cc.
|
friend |
multiplication of a scalar
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 514 of file spectrum-value.cc.
|
friend |
addition operator
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 441 of file spectrum-value.cc.
|
friend |
addition operator
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 450 of file spectrum-value.cc.
|
friend |
addition operator
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 459 of file spectrum-value.cc.
|
friend |
unary plus operator
rhs | Right Hand Side of the operator |
Definition at line 550 of file spectrum-value.cc.
|
friend |
subtraction operator
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 468 of file spectrum-value.cc.
|
friend |
subtraction operator
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 479 of file spectrum-value.cc.
|
friend |
subtraction operator
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 488 of file spectrum-value.cc.
|
friend |
unary minus operator
rhs | Right Hand Side of the operator |
Definition at line 556 of file spectrum-value.cc.
|
friend |
division component-by-component
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 523 of file spectrum-value.cc.
|
friend |
division by a scalar
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 532 of file spectrum-value.cc.
|
friend |
division of a scalar
lhs | Left Hand Side of the operator |
rhs | Right Hand Side of the operator |
Definition at line 541 of file spectrum-value.cc.
|
friend |
lhs | the base |
rhs | the exponent |
Definition at line 574 of file spectrum-value.cc.
Referenced by ns3::Pow().
|
friend |
lhs | the base |
rhs | the exponent |
Definition at line 565 of file spectrum-value.cc.
|
friend |
x | the operand |
Definition at line 377 of file spectrum-value.cc.
|
friend |
x | the operand |
Definition at line 362 of file spectrum-value.cc.
|
private |
The spectrum model.
Definition at line 596 of file spectrum-value.h.
Referenced by Add(), ConstBandsBegin(), ConstBandsEnd(), Copy(), Divide(), GetSpectrumModel(), GetSpectrumModelUid(), Multiply(), and Subtract().
|
private |
Set of values which implement the codomain of the functions in the Function Space defined by SpectrumValue.
There is no restriction on what these values represent (a transmission power density, a propagation loss, etc.).
Definition at line 606 of file spectrum-value.h.
Referenced by Add(), ChangeSign(), ConstValuesBegin(), ConstValuesEnd(), Divide(), Exp(), Log(), Log10(), Log2(), Multiply(), operator=(), operator[](), Pow(), ShiftLeft(), ShiftRight(), Subtract(), ValuesBegin(), and ValuesEnd().