úÎ!lLabº      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹None,-.17=>?@ADHMPSUVXk É SciBaseTypesThe smallest value /= 0 for numeric values. SciBaseTypesNumeric epsilon. SciBaseTypes)The class of limits into the transfinite.  None,-.17=>?@ADHMPSUVXk‡  SciBaseTypes4The Viterbi SemiRing. It maximizes over the product. SciBaseTypesUnicode variant of srplus. SciBaseTypesUnicode variant of srmul. SciBaseTypes9The tropical MinPlus SemiRing. It minimizes over the sum.  SciBaseTypes<TODO Shall we have generic instances, or specific ones like SemiRing (Viterbi Prob)?"TODO Consider either a constraint  ProbLike x or the above.- SciBaseTypes9The tropical MaxPlus SemiRing. It maximizes over the sum.2 SciBaseTypesHBe careful, if the numeric limits are hits, underflows, etc will happen.@ SciBaseTypes'The generic semiring, defined over two º and » constructions.It can be used like this: Q zero "7 GSemiring Min Sum Int == maxBound one "7 GSemiring Min Sum Int == 0 BIt is generally useful to still provide explicit instances, since Min requires a Bounded instance.F SciBaseTypes<TODO Shall we have generic instances, or specific ones like SemiRing (Viterbi Prob)?"TODO Consider either a constraint  ProbLike x or the above.0C1D-./@AB0C1D-./@AB67None,-.17=>?@ADHMPSUVXk5ôR SciBaseTypes2A discretized value takes a floating point number n  and produces a discretized value. The actual discretization formula is given on the type level, freeing us from having to carry around some scaling function.%Typically, one might use types likes 100,  (100 :% 1), or (RTyLn 2 :% RTyId 2).The main use of a R& value is to enable calculations with ¼9 while somewhat pretending to use floating point values.(Be careful with certain operations like (*)> as they will easily cause the numbers to arbitrarily wrong. (+) and (-) are fine, however.…NOTE Export and import of data is in the form of floating points, which can lead to additional loss of precision if one is careless! TODO fast ½ methods required!TODO blaze stuff?!TODO We might want to discretize  LogDomain– style values. This requires some thought on in which direction to wrap. Maybe, we want to log-domain Discretized values, which probably just works.W SciBaseTypes%Some discretizations are of the type ln 2 / 2 (PAMO matrices in Blast for example). Using this type, we can annotate as follows: !Discretized (RTyLn 2 :% RTyId 2). One may use Unknown if the scale is not known. For example, the blast matrices use different scales internally and one needs to read the header to get the scale.h SciBaseTypesDiscretizes any Real a into the  Discretized value. This conversion is lossy# and uses a type-level rational of u :% l!¾¿ÀÁRSTUVW\[ZYX]h W\[ZYX]UVRSThNone,-.17=>?@ADHMPSUVXk=Øy SciBaseTypesInstances for  LogDomain x should be for specific types.z SciBaseTypes"The type family to connect a type x with the type Ln x in the log-domain.{ SciBaseTypesTransport a value in x into the log-domain. logdom should throw an exception if log x is not valid.| SciBaseTypes)Unsafely transport x into the log-domain.} SciBaseTypesTransport a value Ln x back into the linear domain x.y}|{zy}|{zNone,-.17=>?@ADHMPSUVXkDË SciBaseTypes©Encodes log-odds that have been rounded or clamped to integral numbers. One advantage this provides is more efficient "maximum/minimum" calculations compared to using Doubles.bNote that these are "explicit" log-odds. Each numeric operation uses the underlying operation on Int). If you want automatic handling, choose  Log Odds.‚ SciBaseTypesOdds. ¾ÂÀÀ‚ƒ„‚ƒ„€None,-.17=>?@ADHMPSUVXkN£ SciBaseTypesProb wraps a Double that encodes probabilities. If Prob is tagged as  Normalized(, the contained values are in the range  [0,...,1]#, otherwise they are in the range  [0,...,"].§ SciBaseTypes-Turns a value into a normalized probability. error# if the value is not in the range  [0,...,1].¨ SciBaseTypesSimple wrapper around  Probability that fixes non-normalization.© SciBaseTypesFThis simple function represents probabilities with characters between '0'  0.0 -- 0.05 up to '9'  0.85 -- 0.95 and finally Ä for >0.95. ¾ÅÀÆžŸ ¢¡§¨©  ¢¡žŸ§¨©None,-.17=>?@ADHMPSUVXkaF¶ SciBaseTypesCThe state probability functions provide conversion from some types aI into non-normalized probabilities. For "real" applications, using the logProbabilityO function is preferred. This functions allows for easy abstraction when types aR are given as fractions of some actual value (say: deka-cal), or are discretized.RThe returned values are not normalized, because we do not now the total evidence Zb until integration over all states has happened -- which is not feasible in a number of problems. TODO replace ()2 with temperature and results with non-normalized P or LogPo, depending. At some point we want to have type-level physical quantities, hence the need for the second type.· SciBaseTypes_Given a temperature and a state "energy", return the corresponding non-normalized probability.· SciBaseTypesthis is k*T SciBaseTypes"the energy (or discretized energy) SciBaseTypesprobability of being in state a, but only proportional up to 1/Z.¸ SciBaseTypesthis is  1/(k * T) SciBaseTypes"the energy (or discretized energy) SciBaseTypesresulting probability¶¸·¶¸·Ç      !"#$$%&'()*+,-./01234556789:;<=>?@ABCDEFGGHIJKLMNOPQRSTUVWXXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„„…††‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿½¾ÀÁÂýÄÅÆÇÈÉÆÇÊËÌͽÎÏÐÑÒ+SciBaseTypes-0.1.0.0-8v1Wd4dQxf86ztFKnvLSrcAlgebra.Structure.SemiringNumeric.LimitsNumeric.DiscretizedNumeric.LogDomainStatistics.OddsStatistics.ProbabilityStatisticalMechanics.Ensemble(semirings-0.3.1.1-HgQP3rCnFkw2OeAN1DNeOD Data.SemiringonetimeszeroplusSemiringNumericEpsilonepsilon NumericLimits minFinite maxFinite$fNumericLimitsDouble$fNumericLimitsInt$fNumericLimitsWord$fNumericEpsilonDoubleViterbi getViterbi⊕⊗ $fEqViterbi $fOrdViterbi $fReadViterbi $fShowViterbi$fBoundedViterbi$fGenericViterbi$fGeneric1Viterbi $fNumViterbiMinPlus getMinPlus V_Viterbi MV_Viterbi$fSemiringViterbi$fNFDataViterbi$fVectorVectorViterbi$fMVectorMVectorViterbi$fUnboxViterbi $fEqMinPlus $fOrdMinPlus $fReadMinPlus $fShowMinPlus$fBoundedMinPlus$fGenericMinPlus$fGeneric1MinPlus $fNumMinPlusMaxPlus getMaxPlus V_MinPlus MV_MinPlus$fSemiringMinPlus$fNumericLimitsMinPlus$fNFDataMinPlus$fVectorVectorMinPlus$fMVectorMVectorMinPlus$fUnboxMinPlus $fEqMaxPlus $fOrdMaxPlus $fReadMaxPlus $fShowMaxPlus$fBoundedMaxPlus$fGenericMaxPlus$fGeneric1MaxPlus $fNumMaxPlus GSemiring getSemiring V_MaxPlus MV_MaxPlus $fSemiringLog$fSemiringMaxPlus$fNumericLimitsMaxPlus$fNFDataMaxPlus$fVectorVectorMaxPlus$fMVectorMVectorMaxPlus$fUnboxMaxPlus$fSemiringGSemiring $fEqGSemiring$fOrdGSemiring$fReadGSemiring$fShowGSemiring$fGenericGSemiring DiscretizedgetDiscretizedRatioTyConstantratioTyConstantRatioTyRTyExpRTyIdRTyLnRTyPlusRTyTimesUnknown $fRatioTyConstantRatioTyRTyTimes$fRatioTyConstantRatioTyRTyPlus$fRatioTyConstantRatioTyRTyLn$fRatioTyConstantRatioTyRTyId$fRatioTyConstantRatioTyRTyExp$fEqDiscretized$fOrdDiscretized$fGenericDiscretized$fShowDiscretized$fReadDiscretizeddiscretizeRatio$fNumericLimitsDiscretized$fSemiringDiscretized$fRealDiscretized$fFractionalDiscretized$fEnumDiscretized$fNumDiscretized$fNumDiscretized0$fHashableDiscretized$fToJSONDiscretized$fFromJSONDiscretized$fSerializeDiscretized$fBinaryDiscretized$fNFDataDiscretized$fVectorVectorDiscretized$fMVectorMVectorDiscretized$fUnboxDiscretized LogDomainLnlogdom unsafelogdomlindom$fLogDomainDouble DiscLogOddsgetDiscLogOddsOddsgetOdds $fGenericOdds$fEqOdds $fOrdOdds $fShowOdds $fReadOdds $fNumOdds$fGenericDiscLogOdds$fEqDiscLogOdds$fOrdDiscLogOdds$fShowDiscLogOdds$fReadDiscLogOdds$fSemiringDiscLogOdds$fNumDiscLogOdds$fSemiringOdds$fNumericLimitsDiscLogOdds$fNFDataDiscLogOdds$fHashableDiscLogOdds$fToJSONDiscLogOdds$fFromJSONDiscLogOdds$fSerializeDiscLogOdds$fBinaryDiscLogOdds$fVectorVectorDiscLogOdds$fMVectorMVectorDiscLogOdds$fUnboxDiscLogOdds ProbabilityProbgetProb IsNormalized Normalized NotNormalized$fEqProbability$fOrdProbability$fShowProbability$fReadProbabilityprobprob'probabilityToChar$fSemiringProbability$fVectorVectorProbability$fMVectorMVectorProbability$fUnboxProbability$fPreciseProbability$fRealFloatProbability$fRealFracProbability$fRealProbability$fFloatingProbability$fFractionalProbability$fNumProbability$fEnumProbabilityStateProbabilitystateProbabilitystateLogProbability$fStateProbabilityDoublebaseGHC.Base SemigroupMonoidghc-prim GHC.TypesIntGHC.ShowShow&vector-0.12.0.2-H1Eu1OCXL0L9y980iV8EwUData.Vector.Unboxed.BaseVector V_DiscretizedMVectorMV_DiscretizedV_DiscretizedLogOddsMV_DiscretizedLogOddsGHC.Num* V_ProbabilityMV_Probability