# Path: fuzzy/norm/Max.py
# class Max(Norm):
# 
#     def __init__(self):
#         Norm.__init__(self,Norm.S_NORM)
# 
#     def __call__(self,*args):
#         """Return maximum of given values."""
#         return max(args)
# 
# Path: fuzzy/norm/Min.py
# class Min(Norm):
# 
#     def __init__(self):
#         Norm.__init__(self,Norm.T_NORM)
# 
#     def __call__(self,*args):
#         """Return minimum of given values."""
#         return min(args)
# 
# Path: fuzzy/set/Set.py
# class Set(object):
#     class IntervalGenerator(object):
#     def __call__(self,x):
#         def nextInterval(self,prev,next):
#     def getIntervalGenerator(self):
#     def getCOG(self):


from fuzzy.norm.Max import Max
from fuzzy.norm.Min import Min
from fuzzy.set.Set import norm,merge
import fuzzy.Exception
# this program; if not, see <http://www.gnu.org/licenses/>. 
#

__revision__ = "$Id: Base.py,v 1.7 2009/08/07 07:19:18 rliebscher Exp $"



class DefuzzificationException(fuzzy.Exception.Exception):
    pass

class Base(object):
    """Abstract base class for defuzzification
       which results in a numeric value.
       
        @ivar INF: inference norm, used with set of adjective and given value for it
        @type INF: L{fuzzy.norm.Norm.Norm}
        @ivar ACC: norm for accumulation of set of adjectives
        @type ACC: L{fuzzy.norm.Norm.Norm}
        @cvar _INF: default value when INF is None
        @type _INF: L{fuzzy.norm.Norm.Norm}
        @cvar _ACC: default value when ACC is None
        @type _ACC: L{fuzzy.norm.Norm.Norm}
        @ivar activated_sets: results of activation of adjectives of variable.
        @type activated_sets: {string:L{fuzzy.set.Polygon.Polygon}}
        @ivar accumulated_set: result of accumulation of activated sets
        @type accumulated_set: L{fuzzy.set.Polygon.Polygon}
       """

    # default values if instance values are not set 
    _INF = Min()

# Path: fuzzy/norm/Max.py
# class Max(Norm):
# 
#     def __init__(self):
#         Norm.__init__(self,Norm.S_NORM)
# 
#     def __call__(self,*args):
#         """Return maximum of given values."""
#         return max(args)
# 
# Path: fuzzy/norm/Min.py
# class Min(Norm):
# 
#     def __init__(self):
#         Norm.__init__(self,Norm.T_NORM)
# 
#     def __call__(self,*args):
#         """Return minimum of given values."""
#         return min(args)
# 
# Path: fuzzy/set/Set.py
# class Set(object):
#     class IntervalGenerator(object):
#     def __call__(self,x):
#         def nextInterval(self,prev,next):
#     def getIntervalGenerator(self):
#     def getCOG(self):


# Path: fuzzy/defuzzify/Base.py
from fuzzy.norm.Max import Max
from fuzzy.norm.Min import Min
from fuzzy.set.Set import norm,merge
import fuzzy.Exception

# this program; if not, see <http://www.gnu.org/licenses/>. 
#

__revision__ = "$Id: Base.py,v 1.7 2009/08/07 07:19:18 rliebscher Exp $"



class DefuzzificationException(fuzzy.Exception.Exception):
    pass

class Base(object):
    """Abstract base class for defuzzification
       which results in a numeric value.
       
        @ivar INF: inference norm, used with set of adjective and given value for it
        @type INF: L{fuzzy.norm.Norm.Norm}
        @ivar ACC: norm for accumulation of set of adjectives
        @type ACC: L{fuzzy.norm.Norm.Norm}
        @cvar _INF: default value when INF is None
        @type _INF: L{fuzzy.norm.Norm.Norm}
        @cvar _ACC: default value when ACC is None
        @type _ACC: L{fuzzy.norm.Norm.Norm}
        @ivar activated_sets: results of activation of adjectives of variable.
        @type activated_sets: {string:L{fuzzy.set.Polygon.Polygon}}
        @ivar accumulated_set: result of accumulation of activated sets
        @type accumulated_set: L{fuzzy.set.Polygon.Polygon}
       """

    # default values if instance values are not set 
    _INF = Min()

    _ACC = Max()