# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.3.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.


import collections

from sys import version_info as _version_info
if _version_info < (3, 7, 0):
    raise RuntimeError("Python 3.7 or later required")

from . import _ITKCommonPython


from . import _ITKOptimizersv4Python



from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _itkCommandIterationUpdatev4Python
else:
    import _itkCommandIterationUpdatev4Python

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


if _swig_python_version_info[0:2] >= (3, 3):
    import collections.abc
else:
    import collections

import itk.itkGradientDescentLineSearchOptimizerv4Python
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.vnl_matrixPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_vectorPython
import itk.itkVectorPython
import itk.vnl_vector_refPython
import itk.itkFixedArrayPython
import itk.itkPointPython
import itk.itkCovariantVectorPython
import itk.vnl_matrix_fixedPython
import itk.itkGradientDescentOptimizerv4Python
import itk.itkGradientDescentOptimizerBasev4Python
import itk.itkArrayPython
import itk.itkObjectToObjectOptimizerBasePython
import itk.itkOptimizerParameterScalesEstimatorPython
import itk.itkOptimizerParametersPython
import itk.itkObjectToObjectMetricBasePython
import itk.itkSingleValuedCostFunctionv4Python
import itk.itkCostFunctionPython
import itk.itkIndexPython
import itk.itkSizePython
import itk.itkOffsetPython
import itk.itkLBFGSBOptimizerv4Python
import itk.itkLBFGSOptimizerBasev4Python
import itk.itkSingleValuedNonLinearVnlOptimizerv4Python
import itk.itkLBFGSOptimizerBaseHelperv4Python
import itk.itkVnlTypesPython
import itk.vnl_cost_functionPython
import itk.vnl_unary_functionPython
import itk.itkPowellOptimizerv4Python
import itk.itkQuasiNewtonOptimizerv4Python
import itk.itkLBFGSOptimizerv4Python
import itk.itkMultiGradientOptimizerv4Python
import itk.itkMultiStartOptimizerv4Python
import itk.itkAmoebaOptimizerv4Python
import itk.itkConjugateGradientLineSearchOptimizerv4Python
import itk.itkOnePlusOneEvolutionaryOptimizerv4Python
import itk.itkRegularStepGradientDescentOptimizerv4Python
import itk.itkExhaustiveOptimizerv4Python

def itkCommandIterationUpdatev4itkAmoebaOptimizerv4_New():
    return itkCommandIterationUpdatev4itkAmoebaOptimizerv4.New()

class itkCommandIterationUpdatev4itkAmoebaOptimizerv4(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkAmoebaOptimizerv4 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkAmoebaOptimizerv4_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkAmoebaOptimizerv4_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkAmoebaOptimizerv4 *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkAmoebaOptimizerv4

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkAmoebaOptimizerv4

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkAmoebaOptimizerv4

        Create a new object of the class itkCommandIterationUpdatev4itkAmoebaOptimizerv4 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkAmoebaOptimizerv4.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkAmoebaOptimizerv4.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkAmoebaOptimizerv4.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkAmoebaOptimizerv4 in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkAmoebaOptimizerv4_swigregister(itkCommandIterationUpdatev4itkAmoebaOptimizerv4)

def itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_New():
    return itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD.New()

class itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkConjugateGradientLineSearchOptimizerv4TemplateD *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD

        Create a new object of the class itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD_swigregister(itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateD)

def itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_New():
    return itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF.New()

class itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkConjugateGradientLineSearchOptimizerv4TemplateF *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF

        Create a new object of the class itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF_swigregister(itkCommandIterationUpdatev4itkConjugateGradientLineSearchOptimizerv4TemplateF)

def itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_New():
    return itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D.New()

class itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkExhaustiveOptimizerv4D *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D

        Create a new object of the class itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D_swigregister(itkCommandIterationUpdatev4itkExhaustiveOptimizerv4D)

def itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_New():
    return itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F.New()

class itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkExhaustiveOptimizerv4F *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F

        Create a new object of the class itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F_swigregister(itkCommandIterationUpdatev4itkExhaustiveOptimizerv4F)

def itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_New():
    return itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD.New()

class itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkGradientDescentLineSearchOptimizerv4TemplateD *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD

        Create a new object of the class itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD_swigregister(itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateD)

def itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_New():
    return itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF.New()

class itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkGradientDescentLineSearchOptimizerv4TemplateF *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF

        Create a new object of the class itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF_swigregister(itkCommandIterationUpdatev4itkGradientDescentLineSearchOptimizerv4TemplateF)

def itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_New():
    return itkCommandIterationUpdatev4itkLBFGSBOptimizerv4.New()

class itkCommandIterationUpdatev4itkLBFGSBOptimizerv4(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkLBFGSBOptimizerv4 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkLBFGSBOptimizerv4 *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkLBFGSBOptimizerv4

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkLBFGSBOptimizerv4

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkLBFGSBOptimizerv4

        Create a new object of the class itkCommandIterationUpdatev4itkLBFGSBOptimizerv4 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkLBFGSBOptimizerv4.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkLBFGSBOptimizerv4.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkLBFGSBOptimizerv4.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkLBFGSBOptimizerv4 in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSBOptimizerv4_swigregister(itkCommandIterationUpdatev4itkLBFGSBOptimizerv4)

def itkCommandIterationUpdatev4itkLBFGSOptimizerv4_New():
    return itkCommandIterationUpdatev4itkLBFGSOptimizerv4.New()

class itkCommandIterationUpdatev4itkLBFGSOptimizerv4(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkLBFGSOptimizerv4 class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkLBFGSOptimizerv4_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkLBFGSOptimizerv4_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkLBFGSOptimizerv4 *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkLBFGSOptimizerv4

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkLBFGSOptimizerv4

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkLBFGSOptimizerv4

        Create a new object of the class itkCommandIterationUpdatev4itkLBFGSOptimizerv4 and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkLBFGSOptimizerv4.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkLBFGSOptimizerv4.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkLBFGSOptimizerv4.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkLBFGSOptimizerv4 in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkLBFGSOptimizerv4_swigregister(itkCommandIterationUpdatev4itkLBFGSOptimizerv4)

def itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_New():
    return itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD.New()

class itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkMultiGradientOptimizerv4TemplateD *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD

        Create a new object of the class itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD_swigregister(itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateD)

def itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_New():
    return itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF.New()

class itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkMultiGradientOptimizerv4TemplateF *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF

        Create a new object of the class itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF_swigregister(itkCommandIterationUpdatev4itkMultiGradientOptimizerv4TemplateF)

def itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_New():
    return itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD.New()

class itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkMultiStartOptimizerv4TemplateD *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD

        Create a new object of the class itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD_swigregister(itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateD)

def itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_New():
    return itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF.New()

class itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkMultiStartOptimizerv4TemplateF *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF

        Create a new object of the class itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF_swigregister(itkCommandIterationUpdatev4itkMultiStartOptimizerv4TemplateF)

def itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_New():
    return itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D.New()

class itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkOnePlusOneEvolutionaryOptimizerv4D *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D

        Create a new object of the class itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D_swigregister(itkCommandIterationUpdatev4itkOnePlusOneEvolutionaryOptimizerv4D)

def itkCommandIterationUpdatev4itkPowellOptimizerv4D_New():
    return itkCommandIterationUpdatev4itkPowellOptimizerv4D.New()

class itkCommandIterationUpdatev4itkPowellOptimizerv4D(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkPowellOptimizerv4D class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkPowellOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkPowellOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkPowellOptimizerv4D *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkPowellOptimizerv4D

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkPowellOptimizerv4D

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkPowellOptimizerv4D

        Create a new object of the class itkCommandIterationUpdatev4itkPowellOptimizerv4D and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkPowellOptimizerv4D.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkPowellOptimizerv4D.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkPowellOptimizerv4D.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkPowellOptimizerv4D in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4D_swigregister(itkCommandIterationUpdatev4itkPowellOptimizerv4D)

def itkCommandIterationUpdatev4itkPowellOptimizerv4F_New():
    return itkCommandIterationUpdatev4itkPowellOptimizerv4F.New()

class itkCommandIterationUpdatev4itkPowellOptimizerv4F(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkPowellOptimizerv4F class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkPowellOptimizerv4F_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkPowellOptimizerv4F_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkPowellOptimizerv4F *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkPowellOptimizerv4F

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkPowellOptimizerv4F

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkPowellOptimizerv4F

        Create a new object of the class itkCommandIterationUpdatev4itkPowellOptimizerv4F and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkPowellOptimizerv4F.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkPowellOptimizerv4F.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkPowellOptimizerv4F.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkPowellOptimizerv4F in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkPowellOptimizerv4F_swigregister(itkCommandIterationUpdatev4itkPowellOptimizerv4F)

def itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_New():
    return itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD.New()

class itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkQuasiNewtonOptimizerv4TemplateD *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD

        Create a new object of the class itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD_swigregister(itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateD)

def itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_New():
    return itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF.New()

class itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkQuasiNewtonOptimizerv4TemplateF *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF

        Create a new object of the class itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF_swigregister(itkCommandIterationUpdatev4itkQuasiNewtonOptimizerv4TemplateF)

def itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_New():
    return itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D.New()

class itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkRegularStepGradientDescentOptimizerv4D *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D

        Create a new object of the class itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D_swigregister(itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4D)

def itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_New():
    return itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F.New()

class itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F(itk.ITKCommonBasePython.itkCommand):
    r"""Proxy of C++ itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F class."""

    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Execute(self, *args):
        r"""
        Execute(self, caller, event)

        Parameters
        ----------
        caller: itkObject *
        event: itkEventObject const &

        Execute(self, arg0, event)

        Parameters
        ----------
        arg0: itkObject const *
        event: itkEventObject const &

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_Execute(self, *args)

    @staticmethod
    def __New_orig__():
        r"""__New_orig__() -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F___New_orig__()

    def Clone(self):
        r"""Clone(self) -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_Pointer"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_Clone(self)

    def SetOptimizer(self, optimizer):
        r"""
        SetOptimizer(self, optimizer)

        Parameters
        ----------
        optimizer: itkRegularStepGradientDescentOptimizerv4F *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_SetOptimizer(self, optimizer)

    def SetPrintParameters(self, _arg):
        r"""
        SetPrintParameters(self, _arg)

        Parameters
        ----------
        _arg: bool

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_SetPrintParameters(self, _arg)

    def GetPrintParameters(self):
        r"""GetPrintParameters(self) -> bool"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_GetPrintParameters(self)

    def PrintParametersOn(self):
        r"""PrintParametersOn(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_PrintParametersOn(self)

    def PrintParametersOff(self):
        r"""PrintParametersOff(self)"""
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_PrintParametersOff(self)
    __swig_destroy__ = _itkCommandIterationUpdatev4Python.delete_itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F

    @staticmethod
    def cast(obj):
        r"""
        cast(obj) -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F

        Parameters
        ----------
        obj: itkLightObject *

        """
        return _itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_cast(obj)

    def New(*args, **kargs):
        """New() -> itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F

        Create a new object of the class itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F and set the input and the parameters if some
        named or non-named arguments are passed to that method.

        New() tries to assign all the non named parameters to the input of the new objects - the
        first non named parameter in the first input, etc.

        The named parameters are used by calling the method with the same name prefixed by 'Set'.

        Ex:

          itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F.New(reader, threshold=10)

        is (most of the time) equivalent to:

          obj = itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F.New()
          obj.SetInput(0, reader.GetOutput())
          obj.SetThreshold(10)
        """
        obj = itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F.__New_orig__()
        from itk.support import template_class
        template_class.New(obj, *args, **kargs)
        return obj
    New = staticmethod(New)


# Register itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F in _itkCommandIterationUpdatev4Python:
_itkCommandIterationUpdatev4Python.itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F_swigregister(itkCommandIterationUpdatev4itkRegularStepGradientDescentOptimizerv4F)

