# 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 _ITKFiniteDifferencePython



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

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.itkImagePython
import itk.itkVectorPython
import itk.vnl_vectorPython
import itk.stdcomplexPython
import itk.pyBasePython
import itk.vnl_matrixPython
import itk.vnl_vector_refPython
import itk.itkFixedArrayPython
import itk.itkCovariantVectorPython
import itk.itkOffsetPython
import itk.itkSizePython
import itk.itkPointPython
import itk.ITKCommonBasePython
import itk.itkMatrixPython
import itk.vnl_matrix_fixedPython
import itk.itkIndexPython
import itk.itkRGBAPixelPython
import itk.itkRGBPixelPython
import itk.itkSymmetricSecondRankTensorPython
import itk.itkImageRegionPython
import itk.itkFiniteDifferenceImageFilterPython
import itk.itkInPlaceImageFilterAPython
import itk.itkImageToImageFilterAPython
import itk.itkImageSourcePython
import itk.itkImageSourceCommonPython
import itk.itkVectorImagePython
import itk.itkVariableLengthVectorPython
import itk.itkPhasedArray3DSpecialCoordinatesImagePython
import itk.itkImageToImageFilterCommonPython
import itk.itkImageToImageFilterBPython
import itk.itkFiniteDifferenceFunctionPython
class itkDenseFiniteDifferenceImageFilterICVF22ICVF22(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterICVF22ICVF22):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterICVF22ICVF22 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF22ICVF22_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF22ICVF22_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF22ICVF22_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF22ICVF22_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterICVF22ICVF22

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF22ICVF22_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterICVF22ICVF22 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF22ICVF22_swigregister(itkDenseFiniteDifferenceImageFilterICVF22ICVF22)
class itkDenseFiniteDifferenceImageFilterICVF23ICVF23(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterICVF23ICVF23):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterICVF23ICVF23 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF23ICVF23_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF23ICVF23_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF23ICVF23_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF23ICVF23_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterICVF23ICVF23

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF23ICVF23_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterICVF23ICVF23 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF23ICVF23_swigregister(itkDenseFiniteDifferenceImageFilterICVF23ICVF23)
class itkDenseFiniteDifferenceImageFilterICVF32ICVF32(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterICVF32ICVF32):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterICVF32ICVF32 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF32ICVF32_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF32ICVF32_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF32ICVF32_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF32ICVF32_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterICVF32ICVF32

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF32ICVF32_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterICVF32ICVF32 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF32ICVF32_swigregister(itkDenseFiniteDifferenceImageFilterICVF32ICVF32)
class itkDenseFiniteDifferenceImageFilterICVF33ICVF33(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterICVF33ICVF33):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterICVF33ICVF33 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF33ICVF33_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF33ICVF33_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF33ICVF33_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF33ICVF33_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterICVF33ICVF33

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF33ICVF33_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterICVF33ICVF33 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF33ICVF33_swigregister(itkDenseFiniteDifferenceImageFilterICVF33ICVF33)
class itkDenseFiniteDifferenceImageFilterICVF42ICVF42(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterICVF42ICVF42):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterICVF42ICVF42 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF42ICVF42_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF42ICVF42_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF42ICVF42_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF42ICVF42_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterICVF42ICVF42

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF42ICVF42_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterICVF42ICVF42 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF42ICVF42_swigregister(itkDenseFiniteDifferenceImageFilterICVF42ICVF42)
class itkDenseFiniteDifferenceImageFilterICVF43ICVF43(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterICVF43ICVF43):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterICVF43ICVF43 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF43ICVF43_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF43ICVF43_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF43ICVF43_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF43ICVF43_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterICVF43ICVF43

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF43ICVF43_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterICVF43ICVF43 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterICVF43ICVF43_swigregister(itkDenseFiniteDifferenceImageFilterICVF43ICVF43)
class itkDenseFiniteDifferenceImageFilterIF2IF2(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIF2IF2):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIF2IF2 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF2IF2_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF2IF2_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF2IF2_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF2IF2_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIF2IF2

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF2IF2_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIF2IF2 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF2IF2_swigregister(itkDenseFiniteDifferenceImageFilterIF2IF2)
class itkDenseFiniteDifferenceImageFilterIF3IF3(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIF3IF3):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIF3IF3 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF3IF3_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF3IF3_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF3IF3_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF3IF3_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIF3IF3

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF3IF3_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIF3IF3 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIF3IF3_swigregister(itkDenseFiniteDifferenceImageFilterIF3IF3)
class itkDenseFiniteDifferenceImageFilterIVF22IVF22(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIVF22IVF22):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIVF22IVF22 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF22IVF22_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF22IVF22_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF22IVF22_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF22IVF22_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIVF22IVF22

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF22IVF22_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIVF22IVF22 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF22IVF22_swigregister(itkDenseFiniteDifferenceImageFilterIVF22IVF22)
class itkDenseFiniteDifferenceImageFilterIVF23IVF23(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIVF23IVF23):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIVF23IVF23 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF23IVF23_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF23IVF23_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF23IVF23_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF23IVF23_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIVF23IVF23

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF23IVF23_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIVF23IVF23 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF23IVF23_swigregister(itkDenseFiniteDifferenceImageFilterIVF23IVF23)
class itkDenseFiniteDifferenceImageFilterIVF32IVF32(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIVF32IVF32):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIVF32IVF32 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF32IVF32_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF32IVF32_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF32IVF32_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF32IVF32_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIVF32IVF32

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF32IVF32_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIVF32IVF32 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF32IVF32_swigregister(itkDenseFiniteDifferenceImageFilterIVF32IVF32)
class itkDenseFiniteDifferenceImageFilterIVF33IVF33(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIVF33IVF33):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIVF33IVF33 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF33IVF33_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF33IVF33_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF33IVF33_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF33IVF33_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIVF33IVF33

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF33IVF33_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIVF33IVF33 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF33IVF33_swigregister(itkDenseFiniteDifferenceImageFilterIVF33IVF33)
class itkDenseFiniteDifferenceImageFilterIVF42IVF42(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIVF42IVF42):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIVF42IVF42 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF42IVF42_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF42IVF42_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF42IVF42_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF42IVF42_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIVF42IVF42

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF42IVF42_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIVF42IVF42 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF42IVF42_swigregister(itkDenseFiniteDifferenceImageFilterIVF42IVF42)
class itkDenseFiniteDifferenceImageFilterIVF43IVF43(itk.itkFiniteDifferenceImageFilterPython.itkFiniteDifferenceImageFilterIVF43IVF43):
    r"""Proxy of C++ itkDenseFiniteDifferenceImageFilterIVF43IVF43 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
    OutputTimesDoubleCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF43IVF43_OutputTimesDoubleCheck
    
    OutputAdditiveOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF43IVF43_OutputAdditiveOperatorsCheck
    
    OutputAdditiveAndAssignOperatorsCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF43IVF43_OutputAdditiveAndAssignOperatorsCheck
    
    InputConvertibleToOutputCheck = _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF43IVF43_InputConvertibleToOutputCheck
    
    __swig_destroy__ = _itkDenseFiniteDifferenceImageFilterPython.delete_itkDenseFiniteDifferenceImageFilterIVF43IVF43

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

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

        """
        return _itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF43IVF43_cast(obj)

# Register itkDenseFiniteDifferenceImageFilterIVF43IVF43 in _itkDenseFiniteDifferenceImageFilterPython:
_itkDenseFiniteDifferenceImageFilterPython.itkDenseFiniteDifferenceImageFilterIVF43IVF43_swigregister(itkDenseFiniteDifferenceImageFilterIVF43IVF43)

from itk.support import helpers
import itk.support.types as itkt
from typing import Sequence, Tuple, Union

@helpers.accept_array_like_xarray_torch
def dense_finite_difference_image_filter(*args: itkt.ImageLike,  difference_function=..., number_of_iterations: int=..., use_image_spacing: bool=..., maximum_rms_error: float=..., rms_change: float=..., manual_reinitialization: bool=..., is_initialized: bool=...,**kwargs)-> itkt.ImageSourceReturn:
    """Functional interface for DenseFiniteDifferenceImageFilter"""
    import itk

    kwarg_typehints = { 'difference_function':difference_function,'number_of_iterations':number_of_iterations,'use_image_spacing':use_image_spacing,'maximum_rms_error':maximum_rms_error,'rms_change':rms_change,'manual_reinitialization':manual_reinitialization,'is_initialized':is_initialized }
    specified_kwarg_typehints = { k:v for (k,v) in kwarg_typehints.items() if kwarg_typehints[k] is not ... }
    kwargs.update(specified_kwarg_typehints)


    instance = itk.DenseFiniteDifferenceImageFilter.New(*args, **kwargs)

    return instance.__internal_call__()

def dense_finite_difference_image_filter_init_docstring():
    import itk
    from itk.support import template_class

    filter_class = itk.ITKFiniteDifference.DenseFiniteDifferenceImageFilter
    dense_finite_difference_image_filter.process_object = filter_class
    is_template = isinstance(filter_class, template_class.itkTemplate)
    if is_template:
        filter_object = filter_class.values()[0]
    else:
        filter_object = filter_class

    dense_finite_difference_image_filter.__doc__ = filter_object.__doc__



