Skip to content

Commit bdf8af9

Browse files
committed
adapting the conflicts from merge. Also fixed a bunch of badly defined parameters
2 parents f3a53f7 + cfce892 commit bdf8af9

File tree

79 files changed

+9478
-701
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+9478
-701
lines changed

src/Core/Algorithms/Legacy/Inverse/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ SCIRUN_ADD_LIBRARY(Algorithms_Legacy_Inverse
4848
TARGET_LINK_LIBRARIES(Algorithms_Legacy_Inverse
4949
Core_Datatypes #matrices
5050
Core_Datatypes_Legacy_Field
51+
Algorithms_Math
5152
Core_Geometry_Primitives #vectors
5253
Core_Basis #field basis
5354
Core_Algorithms_Legacy_Fields

src/Core/Algorithms/Legacy/Inverse/TikhonovAlgoAbstractBase.cc

Lines changed: 14 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,13 @@ Last modification : April 20 2017
4444
#include <Core/Datatypes/DenseColumnMatrix.h>
4545
#include <Core/Datatypes/SparseRowMatrix.h>
4646
#include <Core/Datatypes/MatrixTypeConversions.h>
47+
#include <Core/Math/MiscMath.h>
4748

4849
// SCIRun structural
4950
#include <Core/Algorithms/Base/AlgorithmPreconditions.h>
51+
#include <Core/Algorithms/Base/AlgorithmVariableNames.h>
5052
#include <Core/Logging/LoggerInterface.h>
53+
#include <Core/Logging/Log.h>
5154
#include <Core/Utils/Exception.h>
5255

5356
using namespace SCIRun;
@@ -66,20 +69,6 @@ const AlgorithmOutputName TikhonovAlgoAbstractBase::InverseSolution("InverseSolu
6669
const AlgorithmOutputName TikhonovAlgoAbstractBase::RegularizationParameter("RegularizationParameter");
6770
const AlgorithmOutputName TikhonovAlgoAbstractBase::RegInverse("RegInverse");
6871

69-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::TikhonovImplementation("TikhonovImplementationOption");
70-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::RegularizationMethod("lambdaMethodComboBox");
71-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::regularizationChoice("regularizationChoice");
72-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LambdaFromDirectEntry("lambdaDoubleSpinBox");
73-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LambdaMin("lambdaMinDoubleSpinBox");
74-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LambdaMax("lambdaMaxDoubleSpinBox");
75-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LambdaNum("lambdaNumberSpinBox");
76-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LambdaResolution("lambdaResolutionDoubleSpinBox");
77-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LambdaSliderValue("lambdaSliderDoubleSpinBox");
78-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LambdaCorner("lCurveLambdaLineEdit");
79-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::LCurveText("lCurveTextEdit");
80-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::regularizationSolutionSubcase("solutionConstraintRadioButton");
81-
// const AlgorithmParameterName TikhonovAlgoAbstractBase::regularizationResidualSubcase("residualConstraintRadioButton");
82-
8372
ALGORITHM_PARAMETER_DEF( Inverse, TikhonovImplementation);
8473
ALGORITHM_PARAMETER_DEF( Inverse, RegularizationMethod);
8574
ALGORITHM_PARAMETER_DEF( Inverse, regularizationChoice);
@@ -96,10 +85,12 @@ ALGORITHM_PARAMETER_DEF( Inverse, regularizationResidualSubcase);
9685

9786
TikhonovAlgoAbstractBase::TikhonovAlgoAbstractBase()
9887
{
99-
addParameter(Parameters::TikhonovImplementation, "NoMethodSelected");
100-
addParameter(Parameters::RegularizationMethod, "lcurve");
101-
addParameter(Parameters::regularizationChoice, "automatic");
102-
addParameter(Parameters::LambdaFromDirectEntry,1e-6);
88+
using namespace Parameters;
89+
90+
addParameter(TikhonovImplementation, "NoMethodSelected" );
91+
addOption(RegularizationMethod, "lcurve", "single|slider|lcurve");
92+
addParameter(regularizationChoice, 0);
93+
addParameter(LambdaFromDirectEntry,1e-6);
10394
// addParameter(lambdaDoubleSpinBox,1e-6);
10495
addParameter(Parameters::LambdaMin,1e-6);
10596
addParameter(Parameters::LambdaMax,1);
@@ -198,15 +189,14 @@ bool TikhonovAlgoAbstractBase::checkInputMatrixSizes( const AlgorithmInput & inp
198189
///////// run()
199190
AlgorithmOutput TikhonovAlgoAbstractBase::run(const AlgorithmInput & input) const
200191
{
201-
THROW_ALGORITHM_PROCESSING_ERROR("We got to run");
202192
// get inputs
203193
auto forwardMatrix_ = input.get<Matrix>(TikhonovAlgoAbstractBase::ForwardMatrix);
204194
auto measuredData_ = input.get<Matrix>(TikhonovAlgoAbstractBase::MeasuredPotentials);
205195
auto sourceWeighting_ = input.get<Matrix>(TikhonovAlgoAbstractBase::WeightingInSourceSpace);
206196
auto sensorWeighting_ = input.get<Matrix>(TikhonovAlgoAbstractBase::WeightingInSensorSpace);
207197

208198
// get Parameters
209-
auto RegularizationMethod_gotten = get(Parameters::RegularizationMethod).toString();
199+
auto RegularizationMethod_gotten = getOption(Parameters::RegularizationMethod);
210200
auto TikhonovImplementation_gotten = get(Parameters::TikhonovImplementation).toString();
211201

212202
// Alocate Variable
@@ -219,18 +209,19 @@ AlgorithmOutput TikhonovAlgoAbstractBase::run(const AlgorithmInput & input) cons
219209

220210
// Determine specific Tikhonov Implementation
221211
TikhonovImpl *algoImpl;
222-
if ( get(Parameters::RegularizationMethod).toInt() == standardTikhonov ){
212+
std::cout << "Selecting Tikhonov: " << TikhonovImplementation_gotten << std::endl;
213+
if ( TikhonovImplementation_gotten == "standardTikhonov" ){
223214
// get Parameters
224215
int regularizationChoice_ = get(Parameters::regularizationChoice).toInt();
225216
int regularizationSolutionSubcase_ = get(Parameters::regularizationSolutionSubcase).toInt();
226217
int regularizationResidualSubcase_ = get(Parameters::regularizationResidualSubcase).toInt();
227218

228219
algoImpl = new SolveInverseProblemWithStandardTikhonovImpl( *castMatrix::toDense(forwardMatrix_), *castMatrix::toDense(measuredData_), *castMatrix::toDense(sourceWeighting_), *castMatrix::toDense(sensorWeighting_), regularizationChoice_, regularizationSolutionSubcase_, regularizationResidualSubcase_);
229220
}
230-
else if ( get(Parameters::RegularizationMethod).toInt() == TikhonovSVD ){
221+
else if ( TikhonovImplementation_gotten == "TikhonovSVD" ){
231222
// algoImpl = new SolveInverseProblemWithTikhonovSVD_impl( *castMatrix::toDense(forwardMatrix_), *castMatrix::toDense(measuredData_), *castMatrix::toDense(sourceWeighting_), *castMatrix::toDense(sensorWeighting_));
232223
}
233-
else if ( get(Parameters::RegularizationMethod).toInt() == TikhonovTSVD ){
224+
else if ( TikhonovImplementation_gotten== "TikhonovTSVD" ){
234225
THROW_ALGORITHM_PROCESSING_ERROR("Tikhonov TSVD not implemented yet");
235226
}
236227
else{

src/Core/Algorithms/Legacy/Inverse/TikhonovAlgoAbstractBase.h

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ namespace Core {
3939
namespace Algorithms {
4040
namespace Inverse {
4141

42+
4243
ALGORITHM_PARAMETER_DECL(TikhonovImplementation);
4344
ALGORITHM_PARAMETER_DECL(RegularizationMethod);
4445
ALGORITHM_PARAMETER_DECL(regularizationChoice);
@@ -69,21 +70,6 @@ namespace Inverse {
6970
static const AlgorithmOutputName RegularizationParameter;
7071
static const AlgorithmOutputName RegInverse;
7172

72-
// define parameter names
73-
// static const AlgorithmParameterName TikhonovImplementation;
74-
// static const AlgorithmParameterName RegularizationMethod;
75-
// static const AlgorithmParameterName regularizationChoice;
76-
// static const AlgorithmParameterName regularizationSolutionSubcase;
77-
// static const AlgorithmParameterName regularizationResidualSubcase;
78-
// static const AlgorithmParameterName LambdaFromDirectEntry;
79-
// static const AlgorithmParameterName LambdaMin;
80-
// static const AlgorithmParameterName LambdaMax;
81-
// static const AlgorithmParameterName LambdaNum;
82-
// static const AlgorithmParameterName LambdaResolution;
83-
// static const AlgorithmParameterName LambdaSliderValue;
84-
// static const AlgorithmParameterName LambdaCorner;
85-
// static const AlgorithmParameterName LCurveText;
86-
8773
// Define algorithm choices
8874
enum TikhonovImplementationChoice {
8975
NoMethodSelected,

0 commit comments

Comments
 (0)