n]      !"#$%&'()*+,-./01 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred @Given an upward-closed predicate on an ordered Fractional type, 3 find the smallest value satisfying the predicate. @Given an upward-closed predicate on an ordered Fractional type, B find the smallest value satisfying the predicate. Starts at the F specified point with the specified stepsize, performs an exponential A search out from there until it finds an interval bracketing the E change-point of the predicate, and then performs a bisection search G to isolate the change point. Note that infinitely-divisible domains  such as 5 cannot be searched by this function because it does I not terminate until it reaches a point where further subdivision of the  interval has no effect.     None The  type doesn'/t expose its constructors, but I need a way to F convert them to and from their raw representation in order to sample  them. As long as  is a newtype wrapping ,   and  9 as defined here will work. Both are implemented using  .     NoneNames of standard  types Names of standard  types &replicateInstances standin types decls will take the template-haskell  s in decls& and substitute every instance of the  standin with  each  in types, producing one copy of the s in decls for every   in types.  For example, # has the following bit of TH code:   $( replicateInstances ''Int integralTypes [d| Y instance Distribution Uniform Int where rvar (Uniform a b) = integralUniform a b \ instance CDF Uniform Int where cdf (Uniform a b) = integralUniformCDF a b  |])MThis code takes those 2 instance declarations and creates identical ones for  every type named in . None A class for "liftable" data structures. Conceptually  an extension of  to allow deep lifting, > but lifting need not be done between monads only. Eg lifting  between  Applicatives is allowed. For instances where m and n have 'return'/'pure' defined,  these instances must satisfy  lift (return x) == return x.  This form of 8 has an extremely general type and is used primarily to  support sample1. Its excessive generality is the main reason it's not  exported from  Data.Random.  is, however, an instance of  +, which in most cases is the preferred way  to do the lifting. BThis instance is again incoherent with the others, but provides a ; more-specific instance to resolve the overlap between the   Lift m (t m) and Lift Identity m instances. 6This instance is incoherent with the others. However,  by the law lift (return x) == return x, the results  must always be the same. NoneLike 2, but using an implicit lifting (provided by the   class) NoneBReturn the cumulative distribution function of this distribution.  That is, a function taking x :: t" to the probability that the next G sample will return a value less than or equal to x, according to some : order or partial order (not necessarily an obvious one). In the case where t is an instance of Ord,  should correspond ( to the CDF with respect to that order. In other cases, 0 is only required to satisfy the following law:  fmap (cdf d) (rvar d) V must be uniformly distributed over (0,1). Inclusion of either endpoint is optional, # though the preferred range is (0,1]. )Note that this definition requires that  for a product type F should _not_ be a joint CDF as commonly defined, as that definition  violates both conditions. I Instead, it should be a univariate CDF over the product type. That is, E it should represent the CDF with respect to the lexicographic order  of the product. EThe present specification is probably only really useful for testing H conformance of a variable to its target distribution, and I am open to G suggestions for more-useful specifications (especially with regard to & the interaction with product types). A . is a data representation of a random variable's probability  structure. For example, in Data.Random.Distribution.Normal, the Normal  distribution is defined as:   data Normal a  = StdNormal  | Normal a a  Where the two parameters of the Normal# data constructor are the mean and J standard deviation of the random variable, respectively. To make use of  the Normal type, one can convert it to an  and manipulate it or  sample it directly:  " x <- sample (rvar (Normal 10 2))  x <- sample (Normal 10 2) A ' is typically more transparent than an  K but less composable (precisely because of that transparency). There are / several practical uses for types implementing :  Typically, a / will expose several parameters of a standard V mathematical model of a probability distribution, such as mean and std deviation for L the normal distribution. Thus, they can be manipulated analytically using M mathematical insights about the distributions they represent. For example, T a collection of bernoulli variables could be simplified into a (hopefully) smaller # collection of binomial variables. H Because they are generally just containers for parameters, they can be E easily serialized to persistent storage or read from user-supplied < configurations (eg, initialization data for a simulation). ' If a type additionally implements the  subclass, which extends  9 with a cumulative density function, an arbitrary random  variable x3 can be tested against the distribution by testing  fmap (cdf dist) x for uniformity. On the other hand, most #s will not be closed under all the  same operations as 4 (which, being a monad, has a fully turing-complete G internal computational model). The sum of two uniformly-distributed L variables, for example, is not uniformly distributed. To support general  composition, the  class defines a function  to 1 construct the more-abstract and more-composable  representation  of a random variable. 1Return a random variable with this distribution. QReturn a random variable with the given distribution, pre-lifted to an arbitrary .  Any arbitrary  can also be converted to an 'RVarT m' for an arbitrary m, using  either  or sample. NoneA name for the "standard"$ uniform distribution over the type t,  if one exists. See also -. For  and  types that are also  , this is ; the uniform distribution over the full range of the type.  For un-  types this is not defined.  For 4 types this is a random variable in the range [0,1) 4 (that is, 0 to 1 including 0 but not including 1). 5A definition of a uniform distribution over the type t . See also +. AA uniform distribution defined by a lower and upper range bound.  For  and % types, the range is inclusive. For  = types the range includes the lower bound but not the upper. Compute a random 2 value between the 2 values provided (inclusive). Compute a random value for a  type, between  and   (inclusive for  or  types, in [, ) for Fractional types.) Compute a random value for a   type, between  and   (inclusive) !Compute a uniform random  value in the range [0,1) "Compute a uniform random  value in the range [0,1) #:Compute a uniform random value in the range [0,1) for any  type $Compute a uniform random $ value in the range [0,1), with any  desired precision. %The CDF of the random variable #. '(internal) basic linear interpolation; lerp x y is a linear function whose  value is x at 0 and y at 1 &floatUniform a b computes a uniform random  value in the range [a,b) 'doubleUniform a b computes a uniform random  value in the range [a,b) (realFloatUniform a b8 computes a uniform random value in the range [a,b) for  any  type )fixedUniform a b computes a uniform random  value in the range $ [a,b), with any desired precision. *realUniformCDF a b# is the CDF of the random variable realFloatUniform a b. realFloatUniform a b8 computes a uniform random value in the range [a,b) for  any  type -Get a "standard"! uniformly distributed variable. J For integral types, this means uniformly distributed over the full range & of the type (there is no support for ). For fractional @ types, this means uniformly distributed on the interval [0,1). .Get a "standard" uniformly distributed process. J For integral types, this means uniformly distributed over the full range & of the type (there is no support for ). For fractional @ types, this means uniformly distributed on the interval [0,1). Like -2, but returns only positive or zero values. Not D exported because it is not truly uniform: nonzero values are twice $ as likely as zero on signed types. /Like -# but only returns positive values. 0Like -# but only returns positive values. M !"#$%&'()*+,-./0  !"#$%&'()*+,-./0+,-./0(&') #$!"%*K !"#$%&'()*+,-./0 None1DA random variable returning an arbitrary element of the given list. G Every element has equal probability of being chosen. Because it is a  pure  it has no memory - that is, it "draws with replacement." 3GA random variable that returns the given list in an arbitrary shuffled ; order. Every ordering of the list has equal probability. 5DA random variable that shuffles a list of a known length (or a list I prefix of the specified length). Useful for shuffling large lists when I the length is known in advance. Avoids needing to traverse the list to < discover its length. Each ordering has equal probability. 7QA random variable that selects N arbitrary elements of a list of known length M. 12345678123456781234567812345678 None;>Generate a Bernoulli variate with the given probability. For Bool results,   bernoulli p< will return True (p*100)% of the time and False otherwise. < For numerical types, True is replaced by 1 and False by 0. <>Generate a Bernoulli process with the given probability. For Bool results,   bernoulli p< will return True (p*100)% of the time and False otherwise. < For numerical types, True is replaced by 1 and False by 0. =!A random variable whose value is   the given fraction of the time  and   the rest. ?generalBernoulli t f p, generates a random variable whose value is t  with probability p and f with probability 1-p. 9:;<=>?@  9:;<=>?@;<=>?@9:9:;<=>?@   None AMCategorical distribution; a list of events with corresponding probabilities. J The sum of the probabilities must be 1, and no event should have a zero K or negative probability (at least, at time of sampling; very clever users I can do what they want with the numbers before sampling, just make sure  that if you'>re one of those clever ones, you at least eliminate negative  weights before sampling). B Construct a A. random variable from a list of probabilities 7 and categories, where the probabilities all sum to 1. C Construct a A. random process from a list of probabilities 7 and categories, where the probabilities all sum to 1. D Construct a A. random variable from a list of probabilities 7 and categories, where the probabilities all sum to 1. E Construct a A. random process from a list of probabilities 7 and categories, where the probabilities all sum to 1. F Construct a A2 distribution from a list of weighted categories. J Construct a A3 distribution from a list of weighted categories, 0 where the weights do not necessarily sum to 1. K Construct a A0 distribution from a list of observed outcomes. N Equivalent events will be grouped and counted, and the probabilities of each K event in the returned distribution will be proportional to the number of  occurrences of that event. LLike ;, but for the probabilities of a categorical distribution. MCAdjust all the weights of a categorical distribution so that they ? sum to unity and remove all events whose probability is zero. NLSimplify a categorical distribution by combining equivalent events (the new G event will have a probability equal to the sum of all the originals). OLSimplify a categorical distribution by combining equivalent events (the new B event will have a weight equal to the sum of all the originals). N The comparator function is used to identify events to combine. Once chosen, K the events and their weights are combined by the provided probability and  event aggregation function. ABCDEFGHIJKLMNOABCDEFGHIJKLMNOABCDEFGHIJKLMNOABCDEFGHIJKLMNO NonePQRSTUPQRSTUPQRSTUPQRSTU NoneVWXYZ[ !VWXYZ[VWXYZ[VWXYZ[ !None\8A data structure containing all the data that is needed  to implement Marsaglia & Tang's "ziggurat" algorithm for 1 sampling certain kinds of random distributions. IThe documentation here is probably not sufficient to tell a user exactly J how to build one of these from scratch, but it is not really intended to 9 be. There are several helper functions that will build \s. 1 The pathologically curious may wish to read the f source. J That is the ultimate specification of the semantics of all these fields. ^?The X locations of each bin in the distribution. Bin 0 is the  infinite one. >In the case of bin 0, the value given is sort of magical - x[0] is  defined to be V/ f(R). It')s not actually the location of any bin, G but a value computed to make the algorithm more concise and slightly A faster by not needing to specially-handle bin 0 quite as often. 2 If you really need to know why it works, see the f  source or "the literature" - it's a fairly standard setup. _The ratio of each bin's Y value to the next bin' s Y value `"The Y value (zFunc x) of each bin a0An RVar providing a random tuple consisting of: / a bin index, uniform over [0,c) :: Int (where c is the " number of bins in the tables) 9 a uniformly distributed fractional value, from -1 to 1 , if not mirrored, from 0 to 1 otherwise. This is provided as a single  because it can be implemented > more efficiently than naively sampling 2 separate values - a > single random word (64 bits) can be efficiently converted to B a double (using 52 bits) and a bin number (using up to 12 bits),  for example. bThe distribution for the final "virtual" bin 7 (the ziggurat algorithm does not handle distributions @ that wander off to infinity, so another distribution is needed  to handle the last "bin" that stretches to infinity) c8A copy of the uniform RVar generator for the base type,  so that Distribution Uniform t is not needed when sampling 7 from a Ziggurat (makes it a bit more self-contained). d9The (one-sided antitone) PDF, not necessarily normalized e5A flag indicating whether the distribution should be 6 mirrored about the origin (the ziggurat algorithm in < its native form only samples from one-sided distributions. ; By mirroring, we can extend it to symmetric distributions " such as the normal distribution) f*Sample from the distribution encoded in a \ data structure. g"Build the tables to implement the "ziggurat algorithm" devised by  Marsaglia &7 Tang, attempting to automatically compute the R and V  values.  Arguments: 4 flag indicating whether to mirror the distribution : the (one-sided antitone) PDF, not necessarily normalized  the inverse of the PDF  the number of bins ! R, the x value of the first bin  V, the volume of each bin  an RVar providing the a random tuple 9 an RVar sampling from the tail (the region where x > R) h"Build the tables to implement the "ziggurat algorithm" devised by  Marsaglia &7 Tang, attempting to automatically compute the R and V  values. Arguments are the same as for i, with an additional B argument for the tail distribution as a function of the selected  R value. iEBuild a lazy recursive ziggurat. Uses a lazily-constructed ziggurat B as its tail distribution (with another as its tail, ad nauseam).  Arguments: 4 flag indicating whether to mirror the distribution : the (one-sided antitone) PDF, not necessarily normalized  the inverse of the PDF , the integral of the PDF (definite, from 0) : the estimated volume under the PDF (from 0 to +infinity) = the chunk size (number of bins in each layer). 64 seems to  perform well in practice.  an RVar providing the a random tuple jI suspect this isn'.t completely right, but it works well so far. 5 Search the distribution for an appropriate R and V.  Arguments:  Number of bins F target function (one-sided antitone PDF, not necessarily normalized)  function inverse * function definite integral (from 0 to _) G estimate of total volume under function (integral from 0 to infinity) Result: (R,V) \]^_`abcdefghi"#$%&j'\]^_`abcdefghij\]^_`abcdeihgjf \ ]^_`abcdefghi"#$%&j'Nonek7A specification of a normal distribution over the type a. l Normal m s$ is a normal distribution with mean m and stddev sd. mThe "standard"( normal distribution - mean 0, stddev 1 n6A random variable that produces a pair of independent  normally-distributed values. o6A random variable that produces a pair of independent D normally-distributed values, computed using the Box-Muller method. - This algorithm is slightly slower than Knuth's method but using a " constant amount of entropy (Knuth'!s method is a rejection method). ( It is also slightly more general (Knuth's method require an (  instance). p6A random variable that produces a pair of independent 2 normally-distributed values, computed using Knuth's polar method.  Slightly faster than o when it accepts on the ' first try, but does not always do so. qSDraw from the tail of a normal distribution (the region beyond the provided value) ) Construct a \+ for sampling a normal distribution, given   logBase 2 c and the a implementation. *GZiggurat target function (upper half of a non-normalized gaussian PDF) + inverse of * , integral of * - volume of * rAA random variable sampling from the standard normal distribution  over any 0 type (subject to the rest of the constraints -  it builds and uses a \ internally, which requires the .  class). Because it computes a \", it is very expensive to use for G just one evaluation, or even for multiple evaluations if not used and H reused monomorphically (to enable the ziggurat table to be let-floated  out). If you don'3t know whether your use case fits this description  then you'<re probably better off using a different algorithm, such as  o or p. And of course if  you don'6t need the full generality of this definition then you're much  better off using s or t. @As far as I know, this should be safe to use in any monomorphic  Distribution Normal instance declaration. sAA random variable sampling from the standard normal distribution  over the  type. tAA random variable sampling from the standard normal distribution  over the  type. uu( is a normal variable with distribution m. vv' is a normal process with distribution m. w normal m s( is a random variable with distribution k m s. x normalT m s' is a random process with distribution k m s. klmnopq)*+,-rs/012t34567uvwx89:klmnopqrstuvwxkmlwxuvstrqnopkmlnopq)*+,-rs/012t34567uvwx89:None}derived from Marsaglia & Tang, /A Simple Method for generating gamma variablesL, ACM Transactions on Mathematical Software, Vol 26, No 3 (2000), p363-372. yz{|}~;<=> yz{|}~ {|~yz} yz{|}~;<=>None??None @A @ANoneBBNoneCDCDNoneEENone FG FGNone1The rayleigh distribution with a specified mode ("sigma" ) parameter.  Its mean will be  sigma*sqrt(pi,2)@ and its variance will be @sigma^2*(4-pi)2 2(therefore if you want one with a particular mean m, sigma should be m*sqrt(2/pi)) HIHINoneFA description of a triangular distribution - a distribution whose PDF E is a triangle ramping up from a lower bound to a specified midpoint G and back down to the upper bound. This is a very simple distribution E that does not generally occur naturally but is used sometimes as an G estimate of a true distribution when only the range of the values and 9 an approximate mode of the true distribution are known. _The lower bound of the triangle in the PDF (the smallest number the distribution can generate) AThe midpoint of the triangle (also the mode of the distribution) WThe upper bound of the triangle (and the largest number the distribution can generate) (Compute a triangular distribution for a J type. triangularCDF a b c is the CDF of realFloatTriangular a b c. KLKLNoneMNMNNoneA typeclass allowing s and s to be sampled. Both may  also be sampled via  or  , but I find it psychologically I pleasing to be able to sample both using this function, as they are two @ separate abstractions for one base concept: a random variable. [Directly sample from a distribution or random variable, using the given source of entropy. ESample a random variable using the default source of entropy for the % monad in which the sampling occurs. Sample a random variable in a " functional" style. Typical instantiations  of s are System.Random.StdGen or $System.Random.Mersenne.Pure64.PureMT. Sample a random variable in a "semi-functional" style. Typical instantiations  of s are System.Random.StdGen or $System.Random.Mersenne.Pure64.PureMT. OPOPNone*+,-.1357klmuvwx{|~*+,-.kmlwuxv{|~1357NoneQRQRS ! "#$%#$&#$'#$()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMN O P Q R S T U V W W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w xyyz{|}~      !"#$%&'( ) * + , - . / 012 ^ 3 4 5 6 7 8 9 : ; < = >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsrandom-fu-0.2.4.0 Data.RandomData.Random.RVarData.Random.Internal.FindData.Random.Internal.FixedData.Random.Internal.THData.Random.LiftData.Random.Distribution Data.Random.Distribution.UniformData.Random.List"Data.Random.Distribution.Bernoulli$Data.Random.Distribution.Categorical$Data.Random.Distribution.Exponential-Data.Random.Distribution.StretchedExponential!Data.Random.Distribution.ZigguratData.Random.Distribution.NormalData.Random.Distribution.GammaData.Random.Distribution.Beta!Data.Random.Distribution.Binomial$Data.Random.Distribution.Multinomial"Data.Random.Distribution.ChiSquare"Data.Random.Distribution.Dirichlet Data.Random.Distribution.Poisson!Data.Random.Distribution.Rayleigh#Data.Random.Distribution.Triangular Data.Random.Distribution.WeibullData.Random.SampleData.Random.Distribution.ParetoUniformrandom-source-0.3.0.6Data.Random.Source.Std StdRandomData.Random.Internal.Source MonadRandom RandomSource rvar-0.2.0.1 Data.RVar runRVarTWithrunRVarRVarRVarTfindMaxfindMin findMinFrom resolutionOf resolutionOf2mkFixed unMkFixed integralTypesrealFloatTypesreplicateInstancesLiftliftrunRVarTCDFcdf DistributionrvarrvarT StdUniformintegralUniformboundedStdUniformboundedEnumStdUniformfloatStdUniformdoubleStdUniformrealFloatStdUniformfixedStdUniformrealStdUniformCDF floatUniform doubleUniformrealFloatUniform fixedUniformrealUniformCDFuniformuniformT stdUniform stdUniformT stdUniformPosstdUniformPosT randomElementrandomElementTshuffleshuffleTshuffleN shuffleNT shuffleNofM shuffleNofMT Bernoulli bernoulli bernoulliT boolBernoulliboolBernoulliCDFgeneralBernoulligeneralBernoulliCDF Categorical categorical categoricalTweightedCategoricalweightedCategoricalTfromListtoList totalWeight numEventsfromWeightedListfromObservationsmapCategoricalPsnormalizeCategoricalPs collectEventscollectEventsBy ExponentialExpfloatingExponentialfloatingExponentialCDF exponential exponentialTStretchedExponential StretchedExpfloatingStretchedExponentialfloatingStretchedExponentialCDFstretchedExponentialstretchedExponentialTZiggurat zTable_xszTable_y_ratios zTable_yszGetIU zTailDistzUniformzFunczMirror runZiggurat mkZiggurat_ mkZiggurat mkZigguratRecfindBin0Normal StdNormal normalPairboxMullerNormalPairknuthPolarNormalPair normalTailrealFloatStdNormaldoubleStdNormalfloatStdNormal stdNormal stdNormalTnormalnormalTErlangGammamtGammagammagammaTerlangerlangTBetafractionalBetabetabetaTBinomialintegralBinomialintegralBinomialCDFfloatingBinomialfloatingBinomialCDFbinomial binomialT Multinomial multinomial multinomialT ChiSquare chiSquare chiSquareT DirichletfractionalDirichlet dirichlet dirichletTPoissonintegralPoissonintegralPoissonCDFfractionalPoissonfractionalPoissonCDFpoissonpoissonTRayleighfloatingRayleighrayleigh rayleighT rayleighCDF TriangulartriLowertriMidtriUpperfloatingTriangular triangularCDFWeibull weibullLambdaweibullK Sampleable sampleFromsample sampleState sampleStateTParetoparetoparetoTbaseGHC.RealRational Data.FixedFixed integer-gmpGHC.Integer.TypeInteger Unsafe.Coerce unsafeCoerceIntegral GHC.Float RealFloattemplate-haskellLanguage.Haskell.TH.SyntaxDecName replaceNametransformers-0.3.0.0Control.Monad.Trans.Class MonadTrans$fLiftIdentityt$fLiftIdentitym$fLiftRVarTRVarT$fLiftmm$fLiftmtGHC.EnumEnumBounded FractionalminBoundmaxBoundghc-prim GHC.TypesFloatDoublelerp enumUniformstdUniformNonnegintegralUniform'integralUniformCDF bytesNeeded powersOf256boundedStdUniformCDFboundedEnumStdUniformCDFenumUniformCDF$fCDFUniform()$fDistributionUniform()$fCDFStdUniformFixed$fDistributionStdUniformFixed$fCDFUniformFixed$fDistributionUniformFixed$fCDFStdUniformDouble$fCDFStdUniformFloat$fDistributionStdUniformDouble$fDistributionStdUniformFloat$fCDFUniformDouble$fCDFUniformFloat$fDistributionUniformDouble$fDistributionUniformFloat$fCDFStdUniformInt$fCDFStdUniformInt64$fCDFStdUniformInt32$fCDFStdUniformInt16$fCDFStdUniformInt8$fCDFStdUniformWord$fCDFStdUniformWord64$fCDFStdUniformWord32$fCDFStdUniformWord16$fCDFStdUniformWord8$fDistributionStdUniformWord$fDistributionStdUniformInt$fDistributionStdUniformInt64$fDistributionStdUniformInt32$fDistributionStdUniformInt16$fDistributionStdUniformInt8$fDistributionStdUniformWord64$fDistributionStdUniformWord32$fDistributionStdUniformWord16$fDistributionStdUniformWord8$fDistributionUniformInteger$fCDFStdUniformOrdering $fDistributionStdUniformOrdering$fCDFStdUniformChar$fDistributionStdUniformChar$fCDFStdUniformBool$fDistributionStdUniformBool$fCDFStdUniform()$fDistributionStdUniform()$fDistributionUniformChar0TrueFalse$fCDFBernoulliBool$fDistributionBernoulliBool$fDistributionBernoulliInteger$fCDFBernoulliComplex$fDistributionBernoulliComplex$fCDFBernoulliRatio$fDistributionBernoulliRatio$fDistributionBernoulliFloat0GHC.Basefmap$fApplicativeCategorical$fMonadCategorical$fTraversableCategorical$fFoldableCategorical$fFunctorCategorical$fDistributionCategoricala$fReadCategorical$fShowCategorical$fCDFExponentiala$fDistributionExponentiala$fCDFStretchedExponentiala#$fDistributionStretchedExponentialamkTail zigguratTablezigguratExcess zigguratXsprecomputeRatios$fDistributionZigguratt GHC.ClassesOrdnormalZnormalF normalFInv normalFInt normalFVol erf-2.0.0.0Data.Number.ErfErfdoubleStdNormalCdoubleStdNormalRdoubleStdNormalVdoubleStdNormalZfloatStdNormalCfloatStdNormalRfloatStdNormalVfloatStdNormalZ normalCdf $fCDFNormala$fDistributionNormalFloat$fDistributionNormalDouble $fCDFErlangb$fDistributionErlangb $fCDFGammaa$fDistributionGammaa$fDistributionBetaFloat0$fDistributionBinomialInteger$fDistributionBinomialFloat0$fDistributionMultinomial[]$fCDFChiSquaret$fDistributionChiSquaret$fDistributionDirichlet[]$fDistributionPoissonInteger$fDistributionPoissonFloat0$fCDFRayleigha$fDistributionRayleighaFloating$fCDFTriangulara$fDistributionTriangulara $fCDFWeibulla$fDistributionWeibulla$fSampleableRVarTnt$fSampleabledmt $fCDFParetoa$fDistributionParetoa