úÎTNI@      !"#$%&'()*+,-./0123456789:;<=>? Safe-Inferred2468=K£Specifically for fuzzy sets, as opposed to fuzzy values. Support is all elements of domain for which membership is non-zero. Hedge is a modifier of fuzzy sets. . is for application of a value to a fuzzy set.A single value of the domain.BA list of values from the domain for which membership is non-zero.BDegree of membership from applying a value to membership function.§Standard operations on fuzzy sets. Instantiated for each kind of fuzzy set. If you want to overload with a t-norm, instantiate against a newtype or instantiated set.Union over fuzzy values. Intersection over fuzzy values. Fuzzy complement.@DFuzOp is used to denote functions expecting operators on fuzzy sets.A|Used internally to represent type-1 membership functions. Not exported for safety reasons. Library users, use the newtype. .Type representing type-1 membership functions. (Produces the dual t-conorm from a t-norm&Standard t-norm used for intersection.»Ensure that input list is correctly ordered for desired performance. I.e. if desired property is that for a u with 2 values of z, max is chosen, order descending on right value of tuple. Used for type-2 defuzzification.B9Instance for tuple needed for interval type-2 fuzzy sets.C)Fuzzy operators for membership functions.D>Standard definitions for operations as defined by Zadeh (1965)3 @A EFGHIJKLMNOPQRSTBUCD    ) @A  EFGHIJKLMNOPQRSTBUCD  Safe-Inferred2468=K%Overloaded defuzzification functions. 8Allows overloading of functions used in rule definition.!Firing strength"Scaling implication.#Truncate implication.$ Weight a rule  !"#$VWXY !"#$ !"#$ !"#$VWXY"# Safe-Inferred2468=K%dType-1 fuzzy sets, with associated membership function and domain. Use smart constructors to create.(ySmart constructor for continuous membership functions. Warning, fine resolutions will make this a very slow construction.)TSmart constructor for discrete continuous membership functions. Avoid large domains.*XOnly use this if you're sure your membership functions are safe, or your domain is huge.+8Cuts a type-1 fuzzy set at a given degree of membership.,HPerforms a cut and then finds the x values on the curve at point of cut.Z/Type-1 fuzzy sets are the most basic fuzzy set.[eFuzzy operators are supported on T1Sets. Applies operator to membership functions inside T1Set type. %\&'()*+,]Z[ %&'()*+,%&' ()*+, %\&'()*+,]Z[ Safe-Inferred2468=K^!Simple type-1 fuzzy rule systems._^ !"#$ !"#$_^ Safe-Inferred2468=K-xInterval Type-2 Fuzzy sets. Defined entirely by the footprint of uncertainty, lmf and umf are the bounds of this area.1\Smart constructor for continuos interval type-2 membership functions. Watch that resolution!2\Smart constructor for discrete interval type-2 membership functions. Be wary of domain size.3DOnly use this if you trust your functions or have no other recourse.4&Used in zSlices type-2 defuzzification`"Enables use of support, hedge and  on interval type-2 fuzzy sets.a“Interval Type-2 fuzzy sets allow us to work in type-1 concepts. Operators are defined through application to lower and upper membership functions. -b./01234`a -./01234-./0 1234-b./01234`a Safe-Inferred2468=K5RA zSlices based type-2 set requires the number of z levels, and a list of zslices.:ŒSmart constructor for continuous type-2 fuzzy membership functions. Works only on the base interval set, make sure you trust your zSlices.;ŠSmart constructor for discrete type-2 fuzzy membership functions. Works only on the base interval set, make sure you trust your zSlices.<\Unsafe constructor, only use if you trust your membership functions or domain is very large.=Used in defuzzification.>ÿeConstructor for triangular type-2 fuzzy set. Arguements are pairs of points for defining a base Interval type-2 fuzzy set. The left element of each pair is for the lower membership function, The right element is for the upper membership function, Order is: left corner, peak, right corner. Int is number of zSlices desired, the level of discretisation.c/Currently the most complex supported fuzzy set.dgOperations on zSlices fuzzy sets are simply defined as higher order funcitons over the list of zSlices. 5e6789:;<=>cd 56789:;<=>5678 :;<=>9 5e6789:;<=>cd Safe-Inferred2468=K?9Karnik-Mendel algorithm. Currently needs a big overhaul. ?fghijklmno  !"#$? !"#$? ?fghijklmno Safe-Inferred2468=Kp<In zSlices type-2 fuzzy sets, both implicators are the same.qp !"#$ !"#$qpr      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz huzzy-0.1.5.5Huzzy.Base.SetsHuzzy.Base.SystemsHuzzy.TypeOne.SetsHuzzy.TypeTwo.Interval.SetsHuzzy.TypeTwo.ZSlices.SetsHuzzy.TypeTwo.Interval.SystemsHuzzy.TypeOne.SystemsHuzzy.TypeTwo.ZSlices.SystemsFSetValueSupportReturnedsupporthedgeisFuzzy?&&?||fnotMFtCotGodeltProdtLuktDrastNilMintHamdiscrete singletonupdowntritrapgausbellsig DefuzzifierResultcentroidFRule Antecedent=*>=|>weightT1SetmfdomcontT1discT1 unsafeMkT1alphafindCutsIT2SetlmfumfidomcontIT2discIT2 unsafeMkIT2cylExtT2ZSetzLevelszSliceszdom zLevelAxiscontZT2discZT2 unsafeZT2cylExtT2mkT2TrikmFuzOpMF' $fFuzzy(,) $fFuzzy(->) $fFuzzyDoublesupport'hedge'very' extremely' somewhat' slightly' discrete' singleton'up'down'tri'trap'gaus'bell'sig'$fNumMF $fFuzzyMFruleBase $fFRuleMF $fFRule(->) $fFRuleDouble $fFSetT1Set $fFuzzyT1SetT1S $fNumT1Set $fFRuleT1Set$fDefuzzifierT1Set $fFSetIT2Set $fFuzzyIT2SetIT2S $fFSetT2ZSet $fFuzzyT2ZSetT2ZSkmrgetXSgetWS getWeights weightedSumfindKlWeightsrWeights$fDefuzzifierIT2Set $fFRuleIT2Set $fFRuleT2ZSet$fDefuzzifierT2ZSet