#include <time.h>#include <QSettings>#include <DinverCore.h>#include <DinverGui.h>#include <SciFigs.h>#include "dinverInstallPath.h"#include "dinverVersion.h"#include "PluginSelector.h"Functions | |
| bool | checkRemainingArguments (int argc, char **argv) |
| ApplicationHelp * | help () |
| int | main (int argc, char **argv) |
| int | modeGui (int argc, char **argv) |
| int | modeImportanceSampling (int argc, char **argv, const QString &baseFileName) |
| int | modeNeighborhoodOptimization (int argc, char **argv) |
| int | modeSnoopOptimization (int argc, char **argv) |
| PACKAGE_INFO (dinver, DINVER) | |
Variables | |
| bool | debugStream = false |
| QString | pluginTag |
| bool checkRemainingArguments | ( | int | argc, |
| char ** | argv | ||
| ) |
References QGpCoreTools::endl(), and QGpCoreTools::tr().
Referenced by modeExport(), modeGroupList(), modeGui(), modeNeighborhoodOptimization(), modeTool(), and modeWaveform().
| ApplicationHelp* help | ( | ) |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
References debugStream, help(), mode, modeGui(), modeImportanceSampling(), modeNeighborhoodOptimization(), modeSnoopOptimization(), pluginTag, and DinverCore::DinverCoreObject::printPluginList().
{
// Basic options: selection of the main modes and plugin
enum Mode {Gui, SnoopOptimization, NeighborhoodOptimization, ImportanceSampling};
Mode mode=Gui;
QString baseFileName;
// Check arguments
int j=1;
for(int i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-debug-stream") {
debugStream= true;
} else if(arg=="-plugin-list") {
CoreApplication a(argc, argv,help);
DinverGui::printPluginList();
return 0;
} else if(arg=="-i") {
CoreApplication::checkOptionArg(i, argc, argv);
pluginTag=argv[i];
} else if(arg=="-na-optimization" || arg=="-optimization") { // Kept for compatibility
mode=NeighborhoodOptimization;
} else if(arg=="-snoop-optimization") {
mode=SnoopOptimization;
} else if(arg=="-importance-sampling") {
CoreApplication::checkOptionArg(i, argc, argv);
baseFileName=argv[i];
mode=ImportanceSampling;
} else {
argv[j++]=argv[i];
}
} else {
argv[j++]=argv[i];
}
}
if(j < argc) {
argv[j]=0;
argc=j;
}
switch(mode) {
case Gui:
return modeGui(argc, argv);
case NeighborhoodOptimization:
return modeNeighborhoodOptimization(argc, argv);
case SnoopOptimization:
return modeSnoopOptimization(argc, argv);
case ImportanceSampling:
return modeImportanceSampling(argc, argv, baseFileName);
};
return 0;
}
| int modeGui | ( | int | argc, |
| char ** | argv | ||
| ) |
References QGpGuiTools::LogWidget::addView(), checkRemainingArguments(), debugStream, QGpCoreTools::endl(), help(), DinverGui::logs(), DinverGui::open(), DinverGui::pluginSelector(), pluginTag, QGpGuiTools::Application::setConsoleMessage(), QGpGuiTools::LogWidget::setDebugMode(), DinverGui::setPlugin(), QGpCoreTools::tr(), and w.
Referenced by main().
{
Application a(argc, argv, help);
a.setConsoleMessage();
// Options
QString dinverFile;
// Check arguments
int j=1;
for(int i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-env") {
Application::checkOptionArg(i, argc, argv);
dinverFile=argv[i];
} else if(arg=="-clear-plugins") {
QSettings reg;
reg.remove( "Plugins" );
} else {
App::stream() << tr("dinver: bad option %1, see --help").arg(argv[i]) << endl;
return 2;
}
} else {
argv[j++]=argv[i];
}
}
if(j < argc) {
argv[j]=0;
argc=j;
}
if(!checkRemainingArguments(argc,argv)) {
return 2;
}
SciFigsGlobal s;
Application::instance()->setGuiMessage();
QString pluginFile=DinverGui::pluginSelector(pluginTag, debugStream);
if(pluginFile.isEmpty()) {
App::stream() << tr("No plugin selected") << endl;
return 2;
}
DinverGui * w=new DinverGui;
w->setObjectName("dinver");
if(!w->setPlugin(pluginFile)) {
delete w;
App::stream() << tr("Cannot load plugin %1").arg(pluginFile) << endl;
return 2;
}
w->logs()->setDebugMode(debugStream);
// Add main message board (after debug mode switch)
w->logs()->addView(QThread::currentThread(), tr("Messages"));
w->show();
if( !dinverFile.isEmpty()) w->open(dinverFile);
return qApp->exec();
}
| int modeImportanceSampling | ( | int | argc, |
| char ** | argv, | ||
| const QString & | baseFileName | ||
| ) |
References debugStream, DinverCore::dinverCore, QGpCoreTools::endl(), help(), DinverCore::BatchRun::importanceSampling(), DinverCore::DinverCoreObject::pluginFile(), pluginTag, reportAction, DinverCore::BatchRun::setParameters(), DinverCore::DinverCoreObject::setPlugin(), and QGpCoreTools::tr().
Referenced by main().
{
CoreApplication a(argc, argv, help);
if(pluginTag.isEmpty()) {
App::stream() << tr("dinver: no plugin selected (option -i)") << endl;
return 2;
}
DinverCoreObject dinverCore;
QString pluginFile=dinverCore.pluginFile(pluginTag, debugStream);
if(!dinverCore.setPlugin(pluginFile, debugStream)) {
App::stream() << tr("dinver: cannot set plugin with tag %1").arg(pluginTag) << endl;
return 2;
}
// Options
QString paramFile;
int ns=5000;
int seed=0;
QString outputFileName="run.report";
ReportWriter::Action reportAction=ReportWriter::Ask;
// Check arguments
int j=1;
for(int i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-param") {
Application::checkOptionArg(i, argc, argv);
paramFile=argv[i];
} else if(arg=="-ns") {
CoreApplication::checkOptionArg(i, argc, argv);
ns=atoi(argv[i]);
} else if(arg=="-seed") {
CoreApplication::checkOptionArg(i, argc, argv);
seed=atoi(argv[i]);
} else if(arg=="-o") {
CoreApplication::checkOptionArg(i, argc, argv);
outputFileName=argv[i];
} else if(arg=="-f") {
reportAction=ReportWriter::Overwrite;
} else if(arg=="-resume") {
reportAction=ReportWriter::Append;
} else if(arg=="dof") {
CoreApplication::checkOptionArg(i, argc, argv);
PdfPoint::setDegreesOfFreedom(atof(argv[i]));
}
} else {
argv[j++]=argv[i];
}
}
if(paramFile.isEmpty()) {
App::stream() << tr("dinver: missing parameters, option '-param'") << endl;
return 2;
}
BatchRun r;
if(!r.setParameters(paramFile)) {
App::stream() << tr("dinver: error reading parameters from file %1").arg(paramFile) << endl;
return 2;
}
if(!r.importanceSampling(ns, seed, baseFileName, outputFileName, reportAction)) {
return 2;
}
return 0;
}
| int modeNeighborhoodOptimization | ( | int | argc, |
| char ** | argv | ||
| ) |
References checkRemainingArguments(), debugStream, DinverCore::dinverCore, QGpCoreTools::endl(), help(), DinverCore::BatchRun::neighborhoodOptimization(), DinverCore::DinverCoreObject::plugin(), DinverCore::DinverCoreObject::pluginFile(), pluginTag, reportAction, DinverCore::DinverInterface::setArguments(), DinverCore::BatchRun::setParameters(), DinverCore::DinverCoreObject::setPlugin(), DinverCore::BatchRun::setTargets(), and QGpCoreTools::tr().
Referenced by main().
{
CoreApplication a(argc, argv, help);
if(pluginTag.isEmpty()) {
App::stream() << tr("dinver: no plugin selected (option -i)") << endl;
return 2;
}
App::setStream(new StandardStream(stdout));
DinverCoreObject dinverCore;
QString pluginFile=dinverCore.pluginFile(pluginTag, debugStream);
if(!dinverCore.setPlugin(pluginFile, debugStream)) {
App::stream() << tr("dinver: cannot set plugin with tag %1").arg(pluginTag) << endl;
return 2;
}
// Options
QString paramFile;
QString targetFile;
int expectedBestModelCount=RAND_MAX;
double maximumSavedMisfit=1e99;
int ns0=50;
int ns=2500;
int nr=50;
ReportWriter::Action reportAction=ReportWriter::Ask;
QString outputFileName="run.report";
// Check arguments
int j=1;
for(int i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-param") {
Application::checkOptionArg(i, argc, argv);
paramFile=argv[i];
} else if(arg=="-target") {
Application::checkOptionArg(i, argc, argv);
targetFile=argv[i];
} else if(arg=="-ns0") {
CoreApplication::checkOptionArg(i, argc, argv);
ns0=atoi(argv[i]);
} else if(arg=="-ns") {
CoreApplication::checkOptionArg(i, argc, argv);
ns=atoi(argv[i]);
} else if(arg=="-nr") {
CoreApplication::checkOptionArg(i, argc, argv);
nr=atoi(argv[i]);
} else if(arg=="-max-nr") {
CoreApplication::checkOptionArg(i, argc, argv);
expectedBestModelCount=atoi(argv[i]);
} else if(arg=="-max-misfit") {
CoreApplication::checkOptionArg(i, argc, argv);
maximumSavedMisfit=atof(argv[i])*(1.0+1e-15);
} else if(arg=="-o") {
CoreApplication::checkOptionArg(i, argc, argv);
outputFileName=argv[i];
} else if(arg=="-f") {
reportAction=ReportWriter::Overwrite;
} else if(arg=="-resume") {
reportAction=ReportWriter::Append;
} else {
argv[j++]=argv[i];
}
} else {
argv[j++]=argv[i];
}
}
argc=j;
if(!dinverCore.plugin()->setArguments(argc, argv) ||
!checkRemainingArguments(argc, argv)) {
return 2;
}
BatchRun r;
if(!paramFile.isEmpty()) {
if(!r.setParameters(paramFile)) {
App::stream() << tr("dinver: error reading parameters from file %1").arg(paramFile) << endl;
return 2;
}
}
if(!targetFile.isEmpty()) {
if(!r.setTargets(targetFile)) {
App::stream() << tr("dinver: error reading targets from file %1").arg(targetFile) << endl;
return 2;
}
}
if(!r.neighborhoodOptimization(ns0, ns, nr, expectedBestModelCount, maximumSavedMisfit,
outputFileName, reportAction)) {
return 2;
}
return 0;
}
| int modeSnoopOptimization | ( | int | argc, |
| char ** | argv | ||
| ) |
References debugStream, DinverCore::dinverCore, QGpCoreTools::endl(), help(), DinverCore::DinverCoreObject::pluginFile(), pluginTag, reportAction, DinverCore::BatchRun::setParameters(), DinverCore::DinverCoreObject::setPlugin(), DinverCore::BatchRun::setTargets(), DinverCore::BatchRun::snoopOptimization(), and QGpCoreTools::tr().
Referenced by main().
{
CoreApplication a(argc, argv, help);
if(pluginTag.isEmpty()) {
App::stream() << tr("dinver: no plugin selected (option -i)") << endl;
return 2;
}
DinverCoreObject dinverCore;
QString pluginFile=dinverCore.pluginFile(pluginTag, debugStream);
if(!dinverCore.setPlugin(pluginFile, debugStream)) {
App::stream() << tr("dinver: cannot set plugin with tag %1").arg(pluginTag) << endl;
return 2;
}
// Options
QString paramFile;
QString targetFile;
int seed=0;
ReportWriter::Action reportAction=ReportWriter::Ask;
QString outputFileName="run.report";
// Check arguments
int j=1;
for(int i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-param") {
Application::checkOptionArg(i, argc, argv);
paramFile=argv[i];
} else if(arg=="-target") {
Application::checkOptionArg(i, argc, argv);
targetFile=argv[i];
} else if(arg=="-seed") {
CoreApplication::checkOptionArg(i, argc, argv);
seed=atoi(argv[i]);
} else if(arg=="-o") {
CoreApplication::checkOptionArg(i, argc, argv);
outputFileName=argv[i];
} else if(arg=="-f") {
reportAction=ReportWriter::Overwrite;
} else if(arg=="-resume") {
reportAction=ReportWriter::Append;
}
} else {
argv[j++]=argv[i];
}
}
if(paramFile.isEmpty()) {
App::stream() << tr("dinver: missing parameters, option '-param'") << endl;
return 2;
}
if(targetFile.isEmpty()) {
App::stream() << tr("dinver: missing targets, option '-target'") << endl;
return 2;
}
BatchRun r;
if(!r.setParameters(paramFile)) {
App::stream() << tr("dinver: error reading parameters from file %1").arg(paramFile) << endl;
return 2;
}
if(!r.setTargets(targetFile)) {
App::stream() << tr("dinver: error reading targets from file %1").arg(targetFile) << endl;
return 2;
}
if(!r.snoopOptimization(seed, outputFileName, reportAction)) {
return 2;
}
return 0;
}
| PACKAGE_INFO | ( | dinver | , |
| DINVER | |||
| ) |
| bool debugStream = false |
Referenced by main(), modeGui(), modeImportanceSampling(), modeNeighborhoodOptimization(), and modeSnoopOptimization().
| QString pluginTag |