OpenASIP 2.2
Loading...
Searching...
No Matches
Private Member Functions | Private Attributes | Static Private Attributes | List of all members
FrequencySweepExplorer Class Reference
Inheritance diagram for FrequencySweepExplorer:
Inheritance graph
Collaboration diagram for FrequencySweepExplorer:
Collaboration graph

Private Member Functions

 PLUGIN_DESCRIPTION ("Frequency sweep algorithm.")
 
 FrequencySweepExplorer ()
 
virtual bool requiresStartingPointArchitecture () const
 
virtual bool producesArchitecture () const
 
virtual bool requiresHDB () const
 
virtual bool requiresSimulationData () const
 
virtual std::vector< RowIDexplore (const RowID &startPointConfigurationID, const unsigned int &)
 
void readParameters ()
 
void openHDBs ()
 
bool fastEnough (const RowID &id, const int &freq, DSDBManager &dsdb)
 
DSDBManager::MachineConfiguration callPlugin (DesignSpaceExplorerPlugin *plugin, const RowID &arch, DSDBManager &dsdb)
 

Private Attributes

ComponentImplementationSelector selector_
 Selector used by the plugin.
 
unsigned int startMHz_
 
unsigned int endMHz_
 
unsigned int stepMHz_
 
std::string icDec_
 name of the ic decoder plugin for idf
 
std::string icDecHDB_
 name of the hdb used by ic decoder
 
unsigned int superiority_
 Superirity percentage for the GrowMachine plugin.
 

Static Private Attributes

static const int busCountDefault_ = 4
 Default value of busCount_.
 
static const unsigned int immSlotBusIndexDefault_ = 0
 
static const int registerFileSizeDefault_ = 4
 
static const int maxNumberOfRegisterFilesDefault_ = 16
 
static const int rfReadPortsDefault_ = 1
 
static const int rfWritePortsDefault_ = 1
 
static const std::string startMHzPN_
 
static const std::string endMHzPN_
 
static const std::string stepMHzPN_
 
static const std::string icDecPN_
 
static const std::string icDecHDBPN_
 
static const std::string superiorityPN_
 
static const std::string talo
 

Additional Inherited Members

- Public Types inherited from DesignSpaceExplorerPlugin
typedef std::pair< std::string, ExplorerPluginParameterParameter
 
typedef std::map< std::string, ExplorerPluginParameterParameterMap
 
typedef std::map< std::string, ExplorerPluginParameter >::iterator PMIt
 
typedef std::map< std::string, ExplorerPluginParameter >::const_iterator PMCIt
 
- Public Member Functions inherited from DesignSpaceExplorerPlugin
virtual bool requiresApplication () const
 
virtual std::string description () const
 
void addParameter (TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="")
 
template<typename T >
void readCompulsoryParameter (const std::string paramName, T &param) const
 
template<typename T >
void readOptionalParameter (const std::string paramName, T &param) const
 
template<typename RT >
RT parameterValue (const std::string &paramName) const
 
virtual ~DesignSpaceExplorerPlugin ()
 
virtual void giveParameter (const std::string &name, const std::string &value)
 
virtual std::string name () const
 
virtual void setPluginName (const std::string &pluginName)
 
virtual bool hasParameter (const std::string &paramName) const
 
ParameterMap parameters () const
 
virtual bool booleanValue (const std::string &parameter) const
 
- Public Member Functions inherited from DesignSpaceExplorer
 DesignSpaceExplorer ()
 
virtual ~DesignSpaceExplorer ()
 
virtual void setDSDB (DSDBManager &dsdb)
 
virtual bool evaluate (const DSDBManager::MachineConfiguration &configuration, CostEstimates &results=dummyEstimate_, bool estimate=false)
 
virtual DSDBManagerdb ()
 
std::vector< DesignSpaceExplorerPlugin * > getPlugins ()
 
RowID createImplementationAndStore (const DSDBManager::MachineConfiguration &conf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb")
 
bool createImplementation (const DSDBManager::MachineConfiguration &conf, DSDBManager::MachineConfiguration &newConf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb")
 
IDF::MachineImplementationselectComponents (const TTAMachine::Machine &mach, const double &frequency=0.0, const double &maxArea=0.0, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") const
 
void createEstimateData (const TTAMachine::Machine &mach, const IDF::MachineImplementation &idf, CostEstimator::AreaInGates &area, CostEstimator::DelayInNanoSeconds &longestPathDelay)
 
RowID addConfToDSDB (const DSDBManager::MachineConfiguration &conf)
 
- Static Public Member Functions inherited from DesignSpaceExplorer
static DesignSpaceExplorerPluginloadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL)
 
- Protected Member Functions inherited from DesignSpaceExplorerPlugin
 DesignSpaceExplorerPlugin ()
 
void checkParameters () const
 
- Protected Member Functions inherited from DesignSpaceExplorer
TTAProgram::Programschedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3")
 
const ExecutionTracesimulate (const TTAProgram::Program &program, const TTAMachine::Machine &machine, const TestApplication &testApplication, const ClockCycleCount &maxCycles, ClockCycleCount &runnedCycles, const bool tracing, const bool useCompiledSimulation=false, std::vector< ClockCycleCount > *executionCounts=NULL)
 
- Protected Attributes inherited from DesignSpaceExplorerPlugin
std::string pluginName_
 the name of the explorer plugin
 
ParameterMap parameters_
 Parameters for the plugin.
 

Detailed Description

Explorer plugin for finding processor configurations that satisfy the runtime requirements with certain clock frequencies.

Sweeps the user-set allowed frequency range with the given steps and collects all configurations that are suitable for running the given applications in the given clock frequencies.

Uses all HDBs found in the HDB registry to create the configurations.

Supported parameters:

Definition at line 102 of file FrequencySweepExplorer.cc.

Constructor & Destructor Documentation

◆ FrequencySweepExplorer()

FrequencySweepExplorer::FrequencySweepExplorer ( )
inlineprivate

Definition at line 105 of file FrequencySweepExplorer.cc.

106 icDec_("DefaultICDecoder"),
107 icDecHDB_("asic_130nm_1.5V.hdb"),
108 superiority_(10) {
109
110 // compulsory parameters
114
115 // parameters that have a default value
120 }
#define UINT(OPERAND)
Definition OSAL.hh:313
static std::string toString(const T &source)
void addParameter(TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="")
static const std::string icDecPN_
std::string icDecHDB_
name of the hdb used by ic decoder
static const std::string superiorityPN_
std::string icDec_
name of the ic decoder plugin for idf
static const std::string endMHzPN_
unsigned int superiority_
Superirity percentage for the GrowMachine plugin.
static const std::string stepMHzPN_
static const std::string startMHzPN_
static const std::string icDecHDBPN_

References DesignSpaceExplorerPlugin::addParameter(), endMHzPN_, icDec_, icDecHDB_, icDecHDBPN_, icDecPN_, startMHzPN_, stepMHzPN_, STRING, superiority_, superiorityPN_, Conversion::toString(), and UINT.

Here is the call graph for this function:

Member Function Documentation

◆ callPlugin()

DSDBManager::MachineConfiguration FrequencySweepExplorer::callPlugin ( DesignSpaceExplorerPlugin plugin,
const RowID arch,
DSDBManager dsdb 
)
inlineprivate

Calls an explorer plugin.

Parameters
pluginThe plugin to be called.
archRow id of the architechture to be passed to the plugin.
Returns
dsdb Design space database to be used.

Definition at line 393 of file FrequencySweepExplorer.cc.

396 {
397
398 vector<RowID> resultConfs = plugin->explore(arch);
399
401 if (resultConfs.size() == 1) {
402 resultConf = dsdb.configuration(resultConfs.at(0));
403 } else {
404 throw InvalidData(
405 __FILE__, __LINE__, __func__,
406 (boost::format(
407 "%s failed to optimize "
408 "configuration %d. Possible bug in Optimizer,"
409 " Estimator or missing data from HDB."
410 ) % arch % plugin->name()).str());
411 }
412
413 if (Application::verboseLevel() > 2) {
414 std::ostringstream msg(std::ostringstream::out);
415 msg << plugin->name()
416 << " plugin produced config: "
417 << resultConfs.at(0) << endl;
418 verboseLog(msg.str())
419 }
420
421 return resultConf;
422 }
#define verboseLog(text)
#define __func__
static int verboseLevel()
MachineConfiguration configuration(RowID id) const
virtual std::string name() const
virtual std::vector< RowID > explore(const RowID &startPointConfigurationID, const unsigned int &maxIter=0)

References __func__, DSDBManager::configuration(), DesignSpaceExplorerPlugin::explore(), DesignSpaceExplorerPlugin::name(), Application::verboseLevel(), and verboseLog.

Referenced by explore().

Here is the call graph for this function:

◆ explore()

virtual std::vector< RowID > FrequencySweepExplorer::explore ( const RowID startPointConfigurationID,
const unsigned int &   
)
inlineprivatevirtual

Explores from the given start configuration.

Parameters
startPointConfigurationIDConfiguration ID to start the exploration from.
Returns
Returns a set of best found configuration IDs.
Todo:
Optimization of the instruction size not required for 1st version!
Todo:
Final optimization/tuning not required for 1st version!

Reimplemented from DesignSpaceExplorerPlugin.

Definition at line 136 of file FrequencySweepExplorer.cc.

136 {
137
140
141 openHDBs();
142 std::vector<RowID> result;
143
144 RowID startPointConfID = startPointConfigurationID;
145
146 // other explorer plugins used
147 DesignSpaceExplorerPlugin* icOptimizer =
149 "SimpleICOptimizer", &db());
150 DesignSpaceExplorerPlugin* minimizeMachine =
152 "MinimizeMachine", &db());
153 DesignSpaceExplorerPlugin* growMachine =
155 "GrowMachine", &db());
156
157 DSDBManager& dsdb = db();
158
159 // Sweep is always done from the lowest frequency towards the highest
160 // frequency.
161 if (startMHz_ > endMHz_) {
162 int tempMHz = startMHz_;
164 endMHz_ = tempMHz;
165 }
166
167 // helper for returning the stepped frequencies in order
169
170 // parameters for GrowMachine plugin
171 growMachine->giveParameter("superiority", Conversion::toString(superiority_));
172
173 // find new configurations by adding components until the cycle
174 // count stops going down
175 vector<RowID> cycleOptimizedConfs =
176 growMachine->explore(startPointConfID);
177 if (Application::verboseLevel() > 1) {
178 std::ostringstream msg(std::ostringstream::out);
179 msg << "GrowMachine plugin produced initial configs: ";
180 for (unsigned int i = 0; i < cycleOptimizedConfs.size(); ++i) {
181 msg << cycleOptimizedConfs.at(i) << " ";
182 }
183 msg << endl;
184 verboseLog(msg.str())
185 }
186 delete growMachine;
187 growMachine = NULL;
188
189 int currentFrequencyMHz = sweeper.nextFrequency();
190 vector<RowID>::const_iterator archIter;
191 while (currentFrequencyMHz != 0) {
192
193 verboseLogC("Testing frequency: " + Conversion::toString(
194 currentFrequencyMHz), 3)
195 /* Find the configurations that are fast enough for the
196 real time requirements of the applications at the
197 currently examined frequency. */
198 for (archIter = cycleOptimizedConfs.begin();
199 archIter != cycleOptimizedConfs.end();
200 archIter++) {
201
202 verboseLogC("Testing (fast enough) init config: " +
203 Conversion::toString(*archIter), 3)
204 // if is fast enough for all apps
205 if (fastEnough(*archIter, currentFrequencyMHz, dsdb)) {
206 verboseLogC("Calling minimize machine for init config: " +
207 Conversion::toString(*archIter), 3)
208
209 // calling MimimizeMachine plugin with confToMinimize
210 // (architer) and currentFrequencyMHz
211 minimizeMachine->giveParameter("frequency",
212 Conversion::toString(currentFrequencyMHz));
213 DSDBManager::MachineConfiguration minConf =
214 callPlugin(minimizeMachine, *archIter, dsdb);
215
216 // create implementation for configuration
217 RowID selectedConf = createImplementationAndStore(minConf,
218 currentFrequencyMHz, 0, true, icDec_, icDecHDB_);
219
220 verboseLogC("Implementation selection produced a config: "
221 + Conversion::toString(selectedConf), 3)
222
223 // check if component selection failed
224 if (selectedConf == 0) {
225 verboseLogC("Component selection failed for minimized"
226 " arch: " + Conversion::toString(
227 minConf.architectureID), 3)
228 continue;
229 }
230
231 // IC optimization with SimpleICOptimizer plugin
232 vector<RowID> icOptimizedResult =
233 icOptimizer->explore(selectedConf);
234 if (icOptimizedResult.size() == 1) {
236 std::ostringstream msg(std::ostringstream::out);
237 msg << "Config " << icOptimizedResult.at(0)
238 << " created for frequency "
239 << currentFrequencyMHz << "." << endl;
240 verboseLogC(msg.str(), 1)
241 }
242 result.push_back(icOptimizedResult.at(0));
243 } else {
244 // simpleICOptimizer can make a machine not fully
245 // connected, and so, register file requirements can
246 // change. Meaning evaluating the machine can fail in
247 // the plugin.
248 verboseLogC("SimpleICOptimzer failed for arch: "
249 + Conversion::toString(selectedConf), 3)
250 continue;
251 }
252
253 /// @todo Optimization of the instruction size
254 /// not required for 1st version!
255
256 /// @todo Final optimization/tuning
257 /// not required for 1st version!
258
259 } else {
260 verboseLogC("Init config was too slow.", 3)
261 // the architecture was too slow
262 }
263
264 }
265 // advance to next frequency
266 currentFrequencyMHz = sweeper.nextFrequency();
267 }
268
269 delete minimizeMachine;
270 minimizeMachine = NULL;
271 delete icOptimizer;
272 icOptimizer = NULL;
273
274 // Idea:
275 // All results will be given to a result explorer that returns
276 // the given number of best configuration id:s that can be returned
277 // to the user.
278 // BestResultExplorer resultExplorer(dsdb, explorer.results());
279 // result = resultExplorer.find(5);
280
281 return result;
282 }
#define verboseLogC(text, neededVerbosity)
int RowID
Type definition of row ID in relational databases.
Definition DBTypes.hh:37
virtual void giveParameter(const std::string &name, const std::string &value)
RowID createImplementationAndStore(const DSDBManager::MachineConfiguration &conf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb")
virtual DSDBManager & db()
static DesignSpaceExplorerPlugin * loadExplorerPlugin(const std::string &pluginName, DSDBManager *dsdb=NULL)
virtual std::vector< RowID > explore(const RowID &startPointConfigurationID, const unsigned int &)
DSDBManager::MachineConfiguration callPlugin(DesignSpaceExplorerPlugin *plugin, const RowID &arch, DSDBManager &dsdb)
bool fastEnough(const RowID &id, const int &freq, DSDBManager &dsdb)

References DSDBManager::MachineConfiguration::architectureID, callPlugin(), DesignSpaceExplorerPlugin::checkParameters(), DesignSpaceExplorer::createImplementationAndStore(), DesignSpaceExplorer::db(), endMHz_, DesignSpaceExplorerPlugin::explore(), fastEnough(), DesignSpaceExplorerPlugin::giveParameter(), icDec_, icDecHDB_, DesignSpaceExplorer::loadExplorerPlugin(), FrequencySweep::nextFrequency(), openHDBs(), readParameters(), startMHz_, stepMHz_, superiority_, Conversion::toString(), Application::verboseLevel(), verboseLog, and verboseLogC.

Here is the call graph for this function:

◆ fastEnough()

bool FrequencySweepExplorer::fastEnough ( const RowID id,
const int &  freq,
DSDBManager dsdb 
)
inlineprivate

Check if architecture is fast enough.

Parameters
idRow id of the architecture.
freqFrequency in MHz for testing the run time.
dsdbDesing Space Explorer database.

Definition at line 356 of file FrequencySweepExplorer.cc.

356 {
357 set<RowID>::const_iterator applicationIter;
358 set<RowID> applicationIDs = dsdb.applicationIDs();
359 DSDBManager::MachineConfiguration configuration =
360 dsdb.configuration(id);
361 for (applicationIter = applicationIDs.begin();
362 applicationIter != applicationIDs.end();
363 applicationIter++) {
364
365 ClockCycleCount cycleCount =
366 dsdb.cycleCount(
367 *applicationIter, configuration.architectureID);
368 TestApplication testApplication(
369 dsdb.applicationPath(*applicationIter));
370 // test if application max runtime is set
371 if (testApplication.maxRuntime() <= 0) {
372 continue;
373 }
374
375 if ((static_cast<double>(cycleCount) / (static_cast<double>(freq) * static_cast<double>(1000000))) >
376 testApplication.maxRuntime()) {
377 // we can skip this architecture since it won't
378 // meet the speed requirements
379 return false;
380 }
381 }
382 return true;
383 }
CycleCount ClockCycleCount
Alias for ClockCycleCount.
ClockCycleCount cycleCount(RowID application, RowID architecture) const
std::set< RowID > applicationIDs() const
std::string applicationPath(RowID id) const

References DSDBManager::applicationIDs(), DSDBManager::applicationPath(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), DSDBManager::cycleCount(), and TestApplication::maxRuntime().

Referenced by explore().

Here is the call graph for this function:

◆ openHDBs()

void FrequencySweepExplorer::openHDBs ( )
inlineprivate

Loads HDBs that are used into the registry.

Definition at line 339 of file FrequencySweepExplorer.cc.

339 {
340 HDBRegistry& hdbRegistry = HDBRegistry::instance();
341
342 // if HDBRegistry contains no HDBManagers load from default paths
343 if (hdbRegistry.hdbCount() == 0) {
344 hdbRegistry.loadFromSearchPaths();
345 }
346 }
static HDBRegistry & instance()
void loadFromSearchPaths()

References HDB::HDBRegistry::hdbCount(), HDB::HDBRegistry::instance(), and HDB::HDBRegistry::loadFromSearchPaths().

Referenced by explore().

Here is the call graph for this function:

◆ PLUGIN_DESCRIPTION()

FrequencySweepExplorer::PLUGIN_DESCRIPTION ( "Frequency sweep algorithm."  )
private

◆ producesArchitecture()

virtual bool FrequencySweepExplorer::producesArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 123 of file FrequencySweepExplorer.cc.

123{ return false; }

◆ readParameters()

void FrequencySweepExplorer::readParameters ( )
inlineprivate

Reads the parameters given to the plugin.

Definition at line 323 of file FrequencySweepExplorer.cc.

323 {
324 // compulsory parameters
328
329 // optional parameters
333 }
void readCompulsoryParameter(const std::string paramName, T &param) const
void readOptionalParameter(const std::string paramName, T &param) const

References endMHz_, endMHzPN_, icDec_, icDecHDB_, icDecHDBPN_, icDecPN_, DesignSpaceExplorerPlugin::readCompulsoryParameter(), DesignSpaceExplorerPlugin::readOptionalParameter(), startMHz_, startMHzPN_, stepMHz_, stepMHzPN_, superiority_, and superiorityPN_.

Referenced by explore().

Here is the call graph for this function:

◆ requiresHDB()

virtual bool FrequencySweepExplorer::requiresHDB ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 124 of file FrequencySweepExplorer.cc.

124{ return true; }

◆ requiresSimulationData()

virtual bool FrequencySweepExplorer::requiresSimulationData ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 125 of file FrequencySweepExplorer.cc.

125{ return false; }

◆ requiresStartingPointArchitecture()

virtual bool FrequencySweepExplorer::requiresStartingPointArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 122 of file FrequencySweepExplorer.cc.

122{ return true; }

Member Data Documentation

◆ busCountDefault_

const int FrequencySweepExplorer::busCountDefault_ = 4
staticprivate

Default value of busCount_.

Definition at line 288 of file FrequencySweepExplorer.cc.

◆ endMHz_

unsigned int FrequencySweepExplorer::endMHz_
private

Definition at line 308 of file FrequencySweepExplorer.cc.

Referenced by explore(), and readParameters().

◆ endMHzPN_

const std::string FrequencySweepExplorer::endMHzPN_
staticprivate

Definition at line 299 of file FrequencySweepExplorer.cc.

Referenced by FrequencySweepExplorer(), and readParameters().

◆ icDec_

std::string FrequencySweepExplorer::icDec_
private

name of the ic decoder plugin for idf

Definition at line 312 of file FrequencySweepExplorer.cc.

Referenced by explore(), FrequencySweepExplorer(), and readParameters().

◆ icDecHDB_

std::string FrequencySweepExplorer::icDecHDB_
private

name of the hdb used by ic decoder

Definition at line 314 of file FrequencySweepExplorer.cc.

Referenced by explore(), FrequencySweepExplorer(), and readParameters().

◆ icDecHDBPN_

const std::string FrequencySweepExplorer::icDecHDBPN_
staticprivate

Definition at line 303 of file FrequencySweepExplorer.cc.

Referenced by FrequencySweepExplorer(), and readParameters().

◆ icDecPN_

const std::string FrequencySweepExplorer::icDecPN_
staticprivate

Definition at line 302 of file FrequencySweepExplorer.cc.

Referenced by FrequencySweepExplorer(), and readParameters().

◆ immSlotBusIndexDefault_

const unsigned int FrequencySweepExplorer::immSlotBusIndexDefault_ = 0
staticprivate

Definition at line 290 of file FrequencySweepExplorer.cc.

◆ maxNumberOfRegisterFilesDefault_

const int FrequencySweepExplorer::maxNumberOfRegisterFilesDefault_ = 16
staticprivate

Definition at line 293 of file FrequencySweepExplorer.cc.

◆ registerFileSizeDefault_

const int FrequencySweepExplorer::registerFileSizeDefault_ = 4
staticprivate

Definition at line 292 of file FrequencySweepExplorer.cc.

◆ rfReadPortsDefault_

const int FrequencySweepExplorer::rfReadPortsDefault_ = 1
staticprivate

Definition at line 294 of file FrequencySweepExplorer.cc.

◆ rfWritePortsDefault_

const int FrequencySweepExplorer::rfWritePortsDefault_ = 1
staticprivate

Definition at line 295 of file FrequencySweepExplorer.cc.

◆ selector_

ComponentImplementationSelector FrequencySweepExplorer::selector_
private

Selector used by the plugin.

Definition at line 286 of file FrequencySweepExplorer.cc.

◆ startMHz_

unsigned int FrequencySweepExplorer::startMHz_
private

Definition at line 307 of file FrequencySweepExplorer.cc.

Referenced by explore(), and readParameters().

◆ startMHzPN_

const std::string FrequencySweepExplorer::startMHzPN_
staticprivate

Definition at line 298 of file FrequencySweepExplorer.cc.

Referenced by FrequencySweepExplorer(), and readParameters().

◆ stepMHz_

unsigned int FrequencySweepExplorer::stepMHz_
private

Definition at line 309 of file FrequencySweepExplorer.cc.

Referenced by explore(), and readParameters().

◆ stepMHzPN_

const std::string FrequencySweepExplorer::stepMHzPN_
staticprivate

Definition at line 300 of file FrequencySweepExplorer.cc.

Referenced by FrequencySweepExplorer(), and readParameters().

◆ superiority_

unsigned int FrequencySweepExplorer::superiority_
private

Superirity percentage for the GrowMachine plugin.

Definition at line 316 of file FrequencySweepExplorer.cc.

Referenced by explore(), FrequencySweepExplorer(), and readParameters().

◆ superiorityPN_

const std::string FrequencySweepExplorer::superiorityPN_
staticprivate

Definition at line 304 of file FrequencySweepExplorer.cc.

Referenced by FrequencySweepExplorer(), and readParameters().

◆ talo

const std::string FrequencySweepExplorer::talo
staticprivate

Definition at line 318 of file FrequencySweepExplorer.cc.


The documentation for this class was generated from the following file: