depends = ('ITKPyBase', 'ITKStatistics', )
templates = (
  ('SingleValuedCostFunction', 'itk::SingleValuedCostFunction', 'itkSingleValuedCostFunction', True),
  ('SingleValuedVnlCostFunctionAdaptor', 'itk::SingleValuedVnlCostFunctionAdaptor', 'itkSingleValuedVnlCostFunctionAdaptor', True),
  ('MultipleValuedCostFunction', 'itk::MultipleValuedCostFunction', 'itkMultipleValuedCostFunction', True),
  ('MultipleValuedVnlCostFunctionAdaptor', 'itk::MultipleValuedVnlCostFunctionAdaptor', 'itkMultipleValuedVnlCostFunctionAdaptor', True),
  ('CumulativeGaussianCostFunction', 'itk::CumulativeGaussianCostFunction', 'itkCumulativeGaussianCostFunction', True),
  ('Optimizer', 'itk::Optimizer', 'itkOptimizer', True),
  ('NonLinearOptimizer', 'itk::NonLinearOptimizer', 'itkNonLinearOptimizer', True),
  ('SingleValuedNonLinearOptimizer', 'itk::SingleValuedNonLinearOptimizer', 'itkSingleValuedNonLinearOptimizer', True),
  ('SingleValuedNonLinearVnlOptimizer', 'itk::SingleValuedNonLinearVnlOptimizer', 'itkSingleValuedNonLinearVnlOptimizer', True),
  ('MultipleValuedNonLinearOptimizer', 'itk::MultipleValuedNonLinearOptimizer', 'itkMultipleValuedNonLinearOptimizer', True),
  ('MultipleValuedNonLinearVnlOptimizer', 'itk::MultipleValuedNonLinearVnlOptimizer', 'itkMultipleValuedNonLinearVnlOptimizer', True),
  ('ConjugateGradientOptimizer', 'itk::ConjugateGradientOptimizer', 'itkConjugateGradientOptimizer', True),
  ('GradientDescentOptimizer', 'itk::GradientDescentOptimizer', 'itkGradientDescentOptimizer', True),
  ('LBFGSOptimizer', 'itk::LBFGSOptimizer', 'itkLBFGSOptimizer', True),
  ('LevenbergMarquardtOptimizer', 'itk::LevenbergMarquardtOptimizer', 'itkLevenbergMarquardtOptimizer', True),
  ('OnePlusOneEvolutionaryOptimizer', 'itk::OnePlusOneEvolutionaryOptimizer', 'itkOnePlusOneEvolutionaryOptimizer', True),
  ('QuaternionRigidTransformGradientDescentOptimizer', 'itk::QuaternionRigidTransformGradientDescentOptimizer', 'itkQuaternionRigidTransformGradientDescentOptimizer', True),
  ('RegularStepGradientDescentBaseOptimizer', 'itk::RegularStepGradientDescentBaseOptimizer', 'itkRegularStepGradientDescentBaseOptimizer', True),
  ('RegularStepGradientDescentOptimizer', 'itk::RegularStepGradientDescentOptimizer', 'itkRegularStepGradientDescentOptimizer', True),
  ('VersorTransformOptimizer', 'itk::VersorTransformOptimizer', 'itkVersorTransformOptimizer', True),
  ('AmoebaOptimizer', 'itk::AmoebaOptimizer', 'itkAmoebaOptimizer', True),
  ('CumulativeGaussianOptimizer', 'itk::CumulativeGaussianOptimizer', 'itkCumulativeGaussianOptimizer', True),
  ('ExhaustiveOptimizer', 'itk::ExhaustiveOptimizer', 'itkExhaustiveOptimizer', True),
  ('FRPROptimizer', 'itk::FRPROptimizer', 'itkFRPROptimizer', True),
  ('LBFGSBOptimizer', 'itk::LBFGSBOptimizer', 'itkLBFGSBOptimizer', True),
  ('PowellOptimizer', 'itk::PowellOptimizer', 'itkPowellOptimizer', True),
  ('SPSAOptimizer', 'itk::SPSAOptimizer', 'itkSPSAOptimizer', True),
  ('VersorRigid3DTransformOptimizer', 'itk::VersorRigid3DTransformOptimizer', 'itkVersorRigid3DTransformOptimizer', True),
  ('ParticleSwarmOptimizerBase', 'itk::ParticleSwarmOptimizerBase', 'itkParticleSwarmOptimizerBase', True),
  ('ParticleSwarmOptimizer', 'itk::ParticleSwarmOptimizer', 'itkParticleSwarmOptimizer', True),
  ('InitializationBiasedParticleSwarmOptimizer', 'itk::InitializationBiasedParticleSwarmOptimizer', 'itkInitializationBiasedParticleSwarmOptimizer', True),
  ('CostFunctionTemplate', 'itk::CostFunctionTemplate', 'itkCostFunctionTemplateD', False, 'double'),
  ('CostFunctionTemplate', 'itk::CostFunctionTemplate', 'itkCostFunctionTemplateF', False, 'float'),
)
