ChannelFacetScalar.C
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #include "Channels/ChannelFacetScalar.H"
00039 #include "Channels/ComplexChannel.H"
00040 #include "Channels/SingleChannel.H"
00041 #include "Component/ParamMap.H"
00042 #include "Util/sformat.H"
00043
00044
00045
00046 ChannelFacetScalar::ChannelFacetScalar(const uint siz, const double initval)
00047 :
00048 itsVals(siz, initval)
00049 { }
00050
00051
00052 ChannelFacetScalar::~ChannelFacetScalar()
00053 { }
00054
00055
00056
00057 ChannelFacetScalarSingle::
00058 ChannelFacetScalarSingle(const SingleChannel& chan, const double initval)
00059 :
00060 ChannelFacetScalar(chan.getLevelSpec().maxIndex(), initval),
00061 itsLevelSpec(chan.getLevelSpec())
00062 { }
00063
00064
00065 ChannelFacetScalarSingle::~ChannelFacetScalarSingle()
00066 { }
00067
00068
00069 void ChannelFacetScalarSingle::
00070 setVal(const uint clev, const uint slev, const double val)
00071 {
00072 itsVals[itsLevelSpec.csToIndex(clev, slev)] = val;
00073 }
00074
00075
00076 void ChannelFacetScalarSingle::
00077 setVal(const uint idx, const double val)
00078 {
00079 ASSERT(idx < itsVals.size());
00080 itsVals[idx] = val;
00081 }
00082
00083
00084 double ChannelFacetScalarSingle::
00085 getVal(const uint clev, const uint slev) const
00086 {
00087 return itsVals[itsLevelSpec.csToIndex(clev, slev)];
00088 }
00089
00090
00091 double ChannelFacetScalarSingle::
00092 getVal(const uint idx) const
00093 {
00094 ASSERT(idx < itsVals.size());
00095 return itsVals[idx];
00096 }
00097
00098
00099 void ChannelFacetScalarSingle::writeTo(ParamMap& pmap) const
00100 {
00101 for (uint i = 0; i < itsLevelSpec.maxIndex(); ++i)
00102 {
00103 uint c, s; itsLevelSpec.indexToCS(i, c, s);
00104 const std::string pname = sformat("value(%d,%d)", c, s);
00105 pmap.putDoubleParam(pname, itsVals[i]);
00106 }
00107 }
00108
00109
00110 void ChannelFacetScalarSingle::readFrom(const ParamMap& pmap)
00111 {
00112 for (uint i = 0; i < itsLevelSpec.maxIndex(); ++i)
00113 {
00114 uint c, s; itsLevelSpec.indexToCS(i, c, s);
00115 const std::string pname = sformat("value(%d,%d)", c, s);
00116 if (!pmap.hasParam(pname))
00117 LFATAL("no such value in ParamMap: '%s'", pname.c_str());
00118 itsVals[i] = pmap.getDoubleParam(pname);
00119 }
00120 }
00121
00122
00123
00124 ChannelFacetScalarComplex::
00125 ChannelFacetScalarComplex(const ComplexChannel& chan, const double initval)
00126 :
00127 ChannelFacetScalar(chan.numChans(), initval)
00128 { }
00129
00130
00131 ChannelFacetScalarComplex::~ChannelFacetScalarComplex()
00132 { }
00133
00134
00135 void ChannelFacetScalarComplex::
00136 setVal(const uint subchan, const double val)
00137 {
00138 ASSERT(subchan < itsVals.size());
00139 itsVals[subchan] = val;
00140 }
00141
00142
00143 double ChannelFacetScalarComplex::
00144 getVal(const uint subchan) const
00145 {
00146 ASSERT(subchan < itsVals.size());
00147 return itsVals[subchan];
00148 }
00149
00150
00151 void ChannelFacetScalarComplex::writeTo(ParamMap& pmap) const
00152 {
00153 for (uint i = 0; i < itsVals.size(); ++i)
00154 {
00155 const std::string pname = sformat("value(%d)", i);
00156 pmap.putDoubleParam(pname, itsVals[i]);
00157 }
00158 }
00159
00160
00161 void ChannelFacetScalarComplex::readFrom(const ParamMap& pmap)
00162 {
00163 for (uint i = 0; i < itsVals.size(); ++i)
00164 {
00165 const std::string pname = sformat("value(%d)", i);
00166 if (!pmap.hasParam(pname))
00167 LFATAL("no such value in ParamMap: '%s'", pname.c_str());
00168 itsVals[i] = pmap.getDoubleParam(pname);
00169 }
00170 }
00171
00172
00173
00174
00175
00176
00177