8 #ifndef iOptimizerADMMLim_HH 9 #define iOptimizerADMMLim_HH 1 11 #include "gVariables.hh" 12 #include "sAddonManager.hh" 16 #define ADMMLIM_NOT_ADAPTIVE 0 17 #define ADMMLIM_ADAPTIVE_ALPHA 1 18 #define ADMMLIM_ADAPTIVE_ALPHA_AND_TAU 2 19 #define ADMMLIM_NOT_DEFINED -1 21 #define ADMMLIM_DO_NOT_SAVE_SINOGRAMS 0 22 #define ADMMLIM_SAVE_SINOGRAMS 1 94 int a_bed,
int a_timeFrame,
int a_respGate,
int a_cardGate,
113 int a_bed,
int a_timeFrame,
int a_respGate,
int a_cardGate,
131 int a_bed,
int a_timeFrame,
int a_respGate,
int a_cardGate,
196 FLTNB a_multiplicativeCorrections,
FLTNB a_additiveCorrections,
FLTNB a_blankValue,
216 FLTNB a_multiplicativeCorrections,
FLTNB a_additiveCorrections,
FLTNB a_blankValue,
235 FLTNB a_sensitivity,
FLTNB* ap_correctionValues,
236 INTNB a_voxel,
int a_tbf = -1,
int a_rbf = -1,
int a_cbf = -1 );
HPFLTNB * mp_projGradSquareNorm
int CheckSpecificParameters()
A private function used to check the parameters settings specific to the child optimizer.
int m_criterionReachedIteration
HPFLTNB * mp_squareNorm_v
FLTNB **** m4p_currentGrad
HPFLTNB * mp_gradSquareNorm
HPFLTNB * mp_primalSquareNorm
bool m_firstIterationIsPassed
iOptimizerADMMLim()
The constructor of iOptimizerADMMLim.
virtual int DataStep4Optional(oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread)
HPFLTNB * mp_penaltyGradSquareNorm
virtual int DataStep6Optional(oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread)
A public function to compute the analytical solution of ADMM equation on v and update u...
bool m_criterionReachedIsPassed
int ReadConfigurationFile(const string &a_configurationFile)
A function used to read options from a configuration file.
void ShowHelpSpecific()
A function used to show help about the child optimizer.
Declaration of class vOptimizer.
virtual int DataStep5ComputeCorrections(oProjectionLine *ap_Line, vEvent *ap_Event, int a_bed, int a_timeFrame, int a_respGate, int a_cardGate, int a_thread)
A public function used to compute the correction terms in the data space, for the provided event...
FLTNB ** m2p_rBackgroundEvents
FLTNB **** m4p_firstDerivativePenaltyImage
~iOptimizerADMMLim()
The destructor of iOptimizerADMMLim.
FLTNB m_relativePrimalSquareNorm
FLTNB **** m4p_currentGradFrameGates
Declaration of class iPenaltyMarkovRandomField.
#define FUNCTION_OPTIMIZER(CLASS)
#define CLASS_OPTIMIZER(NAME, CLASS)
This class is designed to generically described any iterative optimizer.
This class is designed to manage and store system matrix elements associated to a vEvent...
int ReadOptionsList(const string &a_optionsList)
A function used to read options from a list of options.
virtual int PreDataUpdateSpecificStep()
A private function used to compute some norms for the image update.
FLTNB m_relativeDualSquareNorm
This class implements the ADMM with non-negativity on projection space.
Mother class for the Event objects.
int PreImageUpdateSpecificStep()
A private function used to compute the penalty term update adaptive alpha of the ADMM algorithm...
virtual int ImageUpdateStep()
A public function used to perform the image update step of the optimizer.
int InitializeSpecific()
This function is used to initialize specific stuff to the child optimizer.
int DataSpaceSpecificOperations(FLTNB a_data, FLTNB a_forwardModel, FLTNB *ap_backwardValues, FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue, FLTNB a_quantificationFactor, oProjectionLine *ap_Line)
This function performs the data space operations specific to the optimizer (computes the values to be...
HPFLTNB * mp_squareNorm_Ax
FLTNB m_stoppingCriterionValue
int ImageSpaceSpecificOperations(FLTNB a_currentImageValue, FLTNB *apImageValue, FLTNB a_sensitivity, FLTNB *ap_correctionValues, INTNB a_voxel, int a_tbf=-1, int a_rbf=-1, int a_cbf=-1)
This function perform the image update step specific to the optimizer.
int SensitivitySpecificOperations(FLTNB a_data, FLTNB a_forwardModel, FLTNB *ap_weight, FLTNB a_multiplicativeCorrections, FLTNB a_additiveCorrections, FLTNB a_blankValue, FLTNB a_quantificationFactor, oProjectionLine *ap_Line)
This function compute the weight associated to the provided event (for sensitivity computation) ...