FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread > Class Template Reference
[Setup optimization metric]

This class is the base class for all multi threaded metrices. More...

#include <freSetupOptimizationMultiThreadMetric.h>

Inheritance diagram for FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >:

Inheritance graph
FREE::AccuracySOMetric\< FREE::AccuracySOMetricMonitor, FREE::AccuracySOMetricThread\< VImageDimension \> \>FREE::ImageClassificationSOMetric\< FREE::ImageClassificationSOMetricMonitor, FREE::ImageClassificationSOMetricThread\< VImageDimension \> \>FREE::ImageDifferenceSOMetric\< FREE::ImageDifferenceSOMetricMonitor, FREE::ImageDifferenceSOMetricThread\< VImageDimension \> \>FREE::SetupOptimizationMetricFREE::ConstrainedAccuracySOMetric\< VImageDimension \>FREE::ConstrainedImageClassificationSOMetric\< VImageDimension \>FREE::ConstrainedImageDifferenceSOMetric\< VImageDimension \>
[legend]
Collaboration diagram for FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >:

Collaboration graph
FREE::SetupOptimizationMetricFREE::SetupOptimizationMultiThreadMetric\< FREE::AccuracySOMetricMonitor, FREE::AccuracySOMetricThread\< VImageDimension \> \>FREE::StatisticsFREE::XMLStreamObjectFREE::IDPathFREE::ProgressEvent\< Self \>FREE::ProgressEventBaseFREE::NotificationEventBaseFREE::AccuracySOMetric\< VImageDimension \>
[legend]

List of all members.

Public Types

typedef
SetupOptimizationMultiThreadMetric
< TMonitor, TThread > 
Self
typedef
SetupOptimizationMetric 
Superclass
typedef
itk::SmartPointer
< Self
Pointer
typedef
itk::SmartPointer
< const Self
ConstPointer
typedef TMonitor MonitorType
typedef
MonitorType::Pointer 
MonitorPointer
typedef TThread ThreadType
typedef
ThreadType::Pointer 
ThreadPointer
typedef
MonitorType::ResultType 
EvaluationResultType

Public Member Functions

virtual const char * GetNameOfClass () const
virtual void SetNumberOfThreads (const long _arg)
virtual long GetNumberOfThreads ()

Protected Types

typedef std::vector
< ThreadPointer
ThreadListType

Protected Member Functions

 SetupOptimizationMultiThreadMetric ()
virtual ~SetupOptimizationMultiThreadMetric ()
virtual
DecomposedMeasureType 
ComputeDecomposedValue (const ParametersType &parameters) const
virtual void InitializeValueComputation () const =0
virtual void InitializeMonitor (MonitorType &monitor) const =0
virtual void InitializeThread (ThreadType &thread) const =0
virtual
DecomposedMeasureType 
ComputeMeasure (MonitorType &monitor) const =0
void OnMonitorEvaluationProgress (const long status, const std::string &sComment, void *pSender, long threadID)
void OnMonitorEvaluationDone (const long status, const std::string &sComment, void *pSender, long threadID)
void OnOnMonitorNextAdaptation (const long status, const std::string &sComment, void *pSender, long threadID)
void OnOnMonitorEvaluationFailed (const long status, const std::string &sComment, void *pSender, long threadID)

Static Protected Member Functions

static
ITK_THREAD_RETURN_TYPE 
ThreadExecution (void *arg)

Protected Attributes

long m_NumberOfThreads
ProgressEvent< Self >
::Pointer 
fnOnMonitorEvaluationProgress
ProgressEvent< Self >
::Pointer 
fnOnMonitorEvaluationDone
ProgressEvent< Self >
::Pointer 
fnOnMonitorNextAdaptation
ProgressEvent< Self >
::Pointer 
fnOnMonitorEvaluationFailed

Private Member Functions

 SetupOptimizationMultiThreadMetric (const Self &)
void operator= (const Self &)


Detailed Description

template<typename TMonitor, typename TThread>
class FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >

This class is the base class for all multi threaded metrices.

SetupOptimizationMultiThreadMetric is used as base class for metrices that evaluate a setup by using multiple threads processing the adaptations simultaneously. To use this facility you have to specify a metric monitor with result type and a metric thread class that will do the evaluation for a single adaptation.

Definition at line 45 of file freSetupOptimizationMultiThreadMetric.h.


Member Typedef Documentation

template<typename TMonitor, typename TThread>
typedef SetupOptimizationMultiThreadMetric<TMonitor, TThread> FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::Self

Standard class typedefs.

Reimplemented from FREE::SetupOptimizationMetric.

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ConstrainedAccuracySOMetric< VImageDimension >, FREE::ConstrainedImageClassificationSOMetric< VImageDimension >, FREE::ConstrainedImageDifferenceSOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 50 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef SetupOptimizationMetric FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::Superclass

Reimplemented from FREE::SetupOptimizationMetric.

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ConstrainedAccuracySOMetric< VImageDimension >, FREE::ConstrainedImageClassificationSOMetric< VImageDimension >, FREE::ConstrainedImageDifferenceSOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 51 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef itk::SmartPointer<Self> FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::Pointer

Reimplemented from FREE::SetupOptimizationMetric.

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ConstrainedAccuracySOMetric< VImageDimension >, FREE::ConstrainedImageClassificationSOMetric< VImageDimension >, FREE::ConstrainedImageDifferenceSOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 52 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef itk::SmartPointer<const Self> FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ConstPointer

Reimplemented from FREE::SetupOptimizationMetric.

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ConstrainedAccuracySOMetric< VImageDimension >, FREE::ConstrainedImageClassificationSOMetric< VImageDimension >, FREE::ConstrainedImageDifferenceSOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 53 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef TMonitor FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::MonitorType

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 55 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef MonitorType::Pointer FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::MonitorPointer

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 56 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef TThread FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ThreadType

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 57 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef ThreadType::Pointer FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ThreadPointer

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 58 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef MonitorType::ResultType FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::EvaluationResultType

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 59 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
typedef std::vector<ThreadPointer> FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ThreadListType [protected]

Definition at line 89 of file freSetupOptimizationMultiThreadMetric.h.


Constructor & Destructor Documentation

template<typename TMonitor, typename TThread>
FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetupOptimizationMultiThreadMetric (  )  [inline, protected]

Definition at line 105 of file freSetupOptimizationMultiThreadMetric.txx.

References FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationDone, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationFailed, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationProgress, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorNextAdaptation, and FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::m_NumberOfThreads.

template<typename TMonitor, typename TThread>
FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::~SetupOptimizationMultiThreadMetric (  )  [inline, protected, virtual]

Definition at line 117 of file freSetupOptimizationMultiThreadMetric.txx.

template<typename TMonitor, typename TThread>
FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetupOptimizationMultiThreadMetric ( const Self  )  [private]


Member Function Documentation

template<typename TMonitor, typename TThread>
virtual const char* FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::GetNameOfClass (  )  const [inline, virtual]

Run-time type information (and related methods).

Reimplemented from FREE::SetupOptimizationMetric.

Reimplemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ConstrainedAccuracySOMetric< VImageDimension >, FREE::ConstrainedImageClassificationSOMetric< VImageDimension >, FREE::ConstrainedImageDifferenceSOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Definition at line 62 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
virtual void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetNumberOfThreads ( const long  _arg  )  [inline, virtual]

Definition at line 64 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
virtual long FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::GetNumberOfThreads (  )  [inline, virtual]

Definition at line 65 of file freSetupOptimizationMultiThreadMetric.h.

template<typename TMonitor, typename TThread>
SetupOptimizationMultiThreadMetric< TMonitor, TThread >::DecomposedMeasureType FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue ( const ParametersType parameters  )  const [inline, protected, virtual]

Handles the metric value computation. Reimplement, if you want to alter the whole process. This version calls InitializeValueComputation(). Then the monitor will be created and all standard events end properties will be set. Afterwards InitializeMonitor() will be called. Followed by the creation of the threads. Every thread will be added to the thread list, gets an unique thread ID and the pointer to the monitor. For every thread InitializeThread will be called. Then the multi threading will be started. When all threads are finisched ComputeMeasure() will be called to compute the decomposed value via the results stored in the monitor.

Definition at line 33 of file freSetupOptimizationMultiThreadMetric.txx.

References catchAllNPassMacro, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeMeasure(), FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationDone, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationFailed, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationProgress, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorNextAdaptation, FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::InitializeMonitor(), FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::InitializeThread(), FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::InitializeValueComputation(), FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::m_NumberOfThreads, FREE::SetupOptimizationMetric::m_smpAdaptations, FREE::SetupOptimizationMetric::m_Transform, and throwExceptionMacro.

Referenced by FREE::ConstrainedImageDifferenceSOMetric< VImageDimension >::ComputeDecomposedValue(), FREE::ConstrainedImageClassificationSOMetric< VImageDimension >::ComputeDecomposedValue(), and FREE::ConstrainedAccuracySOMetric< VImageDimension >::ComputeDecomposedValue().

Here is the call graph for this function:

FREE::SetupOptimizationMultiThreadMetric::ComputeMeasureFREE::SetupOptimizationMultiThreadMetric::InitializeMonitorFREE::SetupOptimizationMultiThreadMetric::InitializeThreadFREE::SetupOptimizationMultiThreadMetric::InitializeValueComputation

template<typename TMonitor, typename TThread>
virtual void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::InitializeValueComputation (  )  const [protected, pure virtual]

Implemented in FREE::AccuracySOMetric< VImageDimension >, FREE::ImageClassificationSOMetric< VImageDimension >, and FREE::ImageDifferenceSOMetric< VImageDimension >.

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue().

template<typename TMonitor, typename TThread>
virtual void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::InitializeMonitor ( MonitorType monitor  )  const [protected, pure virtual]

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue().

template<typename TMonitor, typename TThread>
virtual void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::InitializeThread ( ThreadType thread  )  const [protected, pure virtual]

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue().

template<typename TMonitor, typename TThread>
virtual DecomposedMeasureType FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeMeasure ( MonitorType monitor  )  const [protected, pure virtual]

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue().

template<typename TMonitor, typename TThread>
void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::OnMonitorEvaluationProgress ( const long  status,
const std::string &  sComment,
void *  pSender,
long  threadID 
) [inline, protected]

Definition at line 124 of file freSetupOptimizationMultiThreadMetric.txx.

References FREE::SetupOptimizationMetric::fnOnEvaluationProgress.

template<typename TMonitor, typename TThread>
void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::OnMonitorEvaluationDone ( const long  status,
const std::string &  sComment,
void *  pSender,
long  threadID 
) [inline, protected]

Definition at line 134 of file freSetupOptimizationMultiThreadMetric.txx.

References FREE::SetupOptimizationMetric::fnOnEvaluationDone.

template<typename TMonitor, typename TThread>
void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::OnOnMonitorNextAdaptation ( const long  status,
const std::string &  sComment,
void *  pSender,
long  threadID 
) [inline, protected]

Definition at line 144 of file freSetupOptimizationMultiThreadMetric.txx.

References FREE::SetupOptimizationMetric::fnOnNextAdaptation.

template<typename TMonitor, typename TThread>
void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::OnOnMonitorEvaluationFailed ( const long  status,
const std::string &  sComment,
void *  pSender,
long  threadID 
) [inline, protected]

Definition at line 154 of file freSetupOptimizationMultiThreadMetric.txx.

References FREE::SetupOptimizationMetric::fnOnEvaluationFailed.

template<typename TMonitor, typename TThread>
void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ThreadExecution ( void *  arg  )  [inline, static, protected]

Definition at line 164 of file freSetupOptimizationMultiThreadMetric.txx.

References throwStaticExceptionMacro.

template<typename TMonitor, typename TThread>
void FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::operator= ( const Self  )  [private]

Reimplemented from FREE::SetupOptimizationMetric.


Member Data Documentation

template<typename TMonitor, typename TThread>
long FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::m_NumberOfThreads [protected]

Definition at line 87 of file freSetupOptimizationMultiThreadMetric.h.

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue(), and FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetupOptimizationMultiThreadMetric().

template<typename TMonitor, typename TThread>
ProgressEvent<Self>::Pointer FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationProgress [protected]

Definition at line 92 of file freSetupOptimizationMultiThreadMetric.h.

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue(), and FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetupOptimizationMultiThreadMetric().

template<typename TMonitor, typename TThread>
ProgressEvent<Self>::Pointer FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationDone [protected]

Definition at line 94 of file freSetupOptimizationMultiThreadMetric.h.

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue(), and FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetupOptimizationMultiThreadMetric().

template<typename TMonitor, typename TThread>
ProgressEvent<Self>::Pointer FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorNextAdaptation [protected]

Definition at line 96 of file freSetupOptimizationMultiThreadMetric.h.

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue(), and FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetupOptimizationMultiThreadMetric().

template<typename TMonitor, typename TThread>
ProgressEvent<Self>::Pointer FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::fnOnMonitorEvaluationFailed [protected]

Definition at line 98 of file freSetupOptimizationMultiThreadMetric.h.

Referenced by FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::ComputeDecomposedValue(), and FREE::SetupOptimizationMultiThreadMetric< TMonitor, TThread >::SetupOptimizationMultiThreadMetric().


The documentation for this class was generated from the following files:
Generated at Sat Oct 13 18:17:54 2007 for f.r.e.e. - Flexible Registration and Evaluation Engine by doxygen 1.5.3 written by Dimitri van Heesch, © 1997-2000