h$Ε      !"#$%&'()*+,- . / 0 1 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 [ \ ] ^ _ ` 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 { | } ~                                                                        $Handle acceptance rates(c) 2021 Dominik SchrempfGPL-3.0-or-laterdominik.schrempf@gmail.com experimentalportableNone mcmc For each key k6, store the number of accepted and rejected proposals.mcmcAcceptance rate.mcmc$In the beginning there was the Word.8Initialize an empty storage of accepted/rejected values.mcmcFor key k:, prepend an accepted (True) or rejected (False) proposal. mcmcReset acceptance storage. mcmcTransform keys using the given lists. Keys not provided will not be present in the new  variable. mcmc3Acceptance counts and rate for a specific proposal.Return  if no proposals have been accepted or rejected (division by zero). mcmc#Acceptance rates for all proposals. Set rate to  if no proposals have been accepted or rejected (division by zero).   !ByteString tools(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportable Safe-Inferred5mcmcFor a given width, align string to the right; use given fill character.mcmcFor a given width, align string to the right; use given fill character; trim on the left if string is longer.mcmcFor a given width, align string to the right; trim on the left if string is longer.mcmcFor a given width, align string to the left; use given fill character; trim on the right if string is longer.mcmcFor a given width, align string to the left; trim on the right if string is longer.8Generalized gamma function for automatic differentiation(c) 2021 Dominik SchrempfGPL-3.0-or-laterdominik.schrempf@gmail.com experimentalportableNone mcmcSee "#.$Tools for random calculations(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonemcmcSplit a generator.Splitting an MWC pseudo number generator is not good practice. However, I have to go with this solution for now, and wait for proper support of spittable pseudo random number generators such as splitmix.mcmcSave a generator to a seed.mcmcLoad a generator from a seed.%Shuffle a list(c) Dominik Schrempf 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoneEmcmcShuffle a vector.mcmcgrabble xs m n is O(m*n'), where n' = min n (length xs) . Choose n' elements from xs , without replacement, and that m times.9Types and convenience functions for computing likelihoods(c) 2021 Dominik SchrempfGPL-3.0-or-laterdominik.schrempf@gmail.com experimentalportable Safe-Inferredmcmc Generalized likelihood function.mcmcLikelihood function.mcmcGeneralized likelihood.mcmc+Likelihood values are stored in log domain.mcmc;Flat likelihood function. Useful for testing and debugging.Monitor logarithmic values(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonemcmcPrint a log value.Monitor parameters(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonemcmc)Instruction about a parameter to monitor.?Convert a parameter monitor from one data type to another with .For example, monitor a ( value being the first entry of a tuple: mon = fst >$< monitorDouble mcmcName of parameter.mcmc>Instruction about how to extract the parameter from the state.mcmcMonitor .mcmcMonitor , with eight decimal places (half precision).mcmcMonitor  with full precision computing the shortest string of digits that correctly represent the number. mcmcMonitor * in exponential format and half precision.mcmcName.mcmcName.mcmcName. mcmcName.   Batch monitor parameters(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone"mcmcInstruction about a parameter to monitor via batch means. Usually, the monitored parameter is averaged over the batch size. However, arbitrary functions performing more complicated analyses on the states in the batch can be provided.;Convert a batch monitor from one data type to another with .For example, batch monitor the mean of the first entry of a tuple: mon = fst >$< monitorBatchMean Batch monitors may be slow because the monitored parameter has to be extracted from the state for each iteration.$mcmc"Name of batch monitored parameter.%mcmc2For a given batch, extract the summary statistics.&mcmcBatch mean monitor.:Print the mean with eight decimal places (half precision).'mcmcBatch mean monitor.Print the mean with full precision computing the shortest string of digits that correctly represent the number.(mcmcBatch mean monitor.(Print the real float parameters such as 4 with scientific notation and eight decimal places.&mcmcName.'mcmcName.(mcmcName."#$%&'("#$%&'(Print time related values(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportable Safe-Inferred j*mcmc;Adapted from System.ProgressBar.renderDuration of package  ?https://hackage.haskell.org/package/terminal-progress-bar-0.4.1terminal-progressbar-0.4.1.+mcmcRender duration in seconds.,mcmcRender a time stamp.*+,*+, (Types for posterior values and functions(c) 2021 Dominik SchrempfGPL-3.0-or-laterdominik.schrempf@gmail.com experimentalportable Safe-Inferred!-mcmcGeneralized posterior function..mcmcPosterior function./mcmcGeneralized posterior.0mcmc*Posterior values are stored in log domain.-./00/.- 8Proposals are instruction to move around the state space(c) Dominik Schrempf 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone <==%1mcmcCompute new auxiliary tuning parameters from a given trace and the old auxiliary tuning parameters.2mcmc1Auxiliary tuning parameters; vector may be empty.Auxiliary tuning parameters are not shown in proposal summaries.3mcmcCompute new tuning parameter from a given acceptance rate and the old tuning parameter.4mcmcTuning parameter.The larger the tuning parameter, the larger the proposal and the lower the expected acceptance rate; and vice versa.5mcmcTune proposal?8mcmcRequired information to tune Cs.>mcmcGiven the tuning parameter, and the auxiliary tuning parameters, get the tuned simple proposal.Should return : if the vector of auxiliary tuning parameters is invalid.?mcmc+Simple proposal without tuning information.Instruction about randomly moving from the current state to a new state, given some source of randomness.In order to calculate the Metropolis-Hastings-Green ratio, we need to know the ratio of the backward to forward kernels (the B> or the probability masses or probability densities) and the A.6For unbiased proposals, these values are 1.0 such that 3proposalSimpleUnbiased x g = return (x', 1.0, 1.0) For biased proposals, the kernel ratio is qYX / qXY, where qXY is the probability density to move from X to Y, and the absolute value of the determinant of the Jacobian matrix differs from 1.0.@mcmcFunction calculating the A of a proposal.Amcmc9Absolute value of the determinant of the Jacobian matrix.!Part of the MHG acceptance ratio. See also A.BmcmcRatio of the proposal kernels.!Part of the MHG acceptance ratio. See also A.NOTE: Actually the A should be part of the B. However, it is more declarative to have them separate. Like so, we are constantly reminded: Is the Jacobian modifier different from 1.0?CmcmcA C is an instruction about how the Markov chain will traverse the state space a. Essentially, it is a probability mass or probability density conditioned on the current state (i.e., a Markov kernel).A C may be tuneable in that it contains information about how to enlarge or shrink the proposal size to decrease or increase the acceptance rate.Predefined proposals are provided. To create custom proposals, one may use the convenience function [.EmcmcName of the affected variable.Fmcmc0Description of the proposal type and parameters.GmcmcDimension of the proposal. The dimension is used to calculate the optimal acceptance rate, and does not have to be exact.Hmcmc"The weight determines how often a C0 is executed per iteration of the Markov chain.Imcmc=Simple proposal without name, weight, and tuning information.JmcmcTuning is disabled if set to .KmcmcProposal dimension./The number of affected, independent parameters.Usually, the optimal acceptance rate of low dimensional proposals is higher than for high dimensional ones. However, this is not always true (see below).Further, optimal acceptance rates are still subject to controversies. To my knowledge, research has focused on random walk proposals with multivariate normal distributions of dimension d<. In this case, the following acceptance rates are desired:(one dimension: 0.44 (numerical results);4five and more dimensions: 0.234 (numerical results);infinite dimensions: 0.234 (theorem for specific target distributions).4See Handbook of Markov chain Monte Carlo, chapter 4.Of course, many proposals may not be classical random walk proposals. For example, the beta proposal on a simplex (&) samples one new variable of the simplex from a beta distribution while rescaling all other variables. What is the dimension of this proposal? Here, the dimension is set to 2. The reason is that if the dimension of the simplex is 2, two variables are changed. If the dimension of the simplex is high, one variable is changed substantially, while all others are changed marginally.Further, if a proposal changes a number of variables in the same way (and not independently like in a random walk proposal), the dimension of the proposal is set to the number of variables changed.Moreover, proposals of unknown dimension are assumed to have high dimension, and the optimal acceptance rate 0.234 is used.Finally, special proposals may have completely different desired acceptance rates. For example. the Hamiltonian Monte Carlo proposal (see Mcmc.Proposal.Hamiltonian.hmc) has a desired acceptance rate of 0.65. Specific acceptance rates can be set with N.NmcmcProvide dimension () and desired acceptance rate ().Omcmc+The positive weight determines how often a C is executed per iteration of the Markov chain. Abstract data type; for construction, see W.QmcmcProposal description.TmcmcProposal name.Wmcmc Check if the weight is positive.Call  if weight is zero or negative.Xmcmc.Lift a proposal from one data type to another.Assume the Jacobian is 1.0. For example: %scaleFirstEntryOfTuple = _1 @~ scale  See also Z.YmcmcSee X.Zmcmc.Lift a proposal from one data type to another.A function to calculate the Jacobian has to be provided (but see X).&For further reference, please see the  https://github.com/dschrempf/mcmc/blob/master/mcmc-examples/Pair/Pair.hs example Pair.[mcmc1Create a proposal with a single tuning parameter.Proposals with arbitrary tuning parameters have to be created manually. See 8 for more information, and  ' for an example.\mcmcDefault tuning function.Subject to change.]mcmc Do not tune.Useful if auxiliary tuning parameters are tuned, but not the main tuning parameter.^mcmc!Do not tune auxiliary parameters._mcmc,Minimal tuning parameter; subject to change.`mcmc,Maximal tuning parameter; subject to change.amcmcTune a C.The size of the proposal is proportional to the tuning parameter which has positive lower and upper boundaries of _ and `, respectively.4Auxiliary tuning parameters may also be used by the 8 of the proposal.Return  if:the C is not tuneable;,the auxiliary tuning parameters are invalid.Used by (.bmcmcSee K.cmcmcHeader of proposal summaries.dmcmcProposal summary.[mcmc0Description of the proposal type and parameters.mcmcFunction creating a simple proposal for a given tuning parameter.mcmc Dimension.mcmcName.mcmcWeight.mcmcActivate tuning?4123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd4TUVQRSOPWKLMNCDEFGHIJBA@XYZ?[89:;<=>5674321\]^_`abcdX7 A cycle is a list of proposals(c) 2021 Dominik SchrempfGPL-3.0-or-laterdominik.schrempf@gmail.com experimentalportableNone E tmcmc In brief, a t is a list of proposals.s are executed sequentially, in the order they appear in the t. Cs with weight w>1 are repeated immediately w2 times (and not appended to the end of the list).ymcmc Similar to w5. However, a reversed copy of the list of shuffled Cs is appended such that the resulting Markov chain is reversible. Note: the total number of C.s executed per cycle is twice the number of w.zmcmc Similar to x. However, a reversed copy of the list of sequentially ordered Cs is appended such that the resulting Markov chain is reversible.{mcmc Create a t from a list of Cs.|mcmcSet the order of Cs in a t.}mcmc Replicate C7s according to their weights and possibly shuffle them.~mcmc.Calculate acceptance rates and auto tunes the C s in the t.Do not change Cs that are not tuneable.mcmc&Horizontal line of proposal summaries.mcmcSummarize the C s in the t. Also report acceptance rates. tuvwxyz{|}~ vwxyztu{|}~ (Generic interface for creating proposals(c) Dominik Schrempf 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoneO#mcmcGeneric function to create proposals for continuous parameters (e.g., ).!The procedure is as follows: Let  \mathbb{X} be the state space and x be the current state. Let D- be a continuous probability distribution on  \mathbb{D}#; sample an auxiliary variable epsilon \sim D.Suppose 3\odot : \mathbb{X} \times \mathbb{D} \to \mathbb{X}. Propose a new state x' = x \odot \epsilon.If the proposal is unbiased, the Metropolis-Hastings-Green ratio can directly be calculated using the posterior function.However, if the proposal is biased: Suppose (g : mathbb{D} to mathbb{D}) inverses the auxiliary variable \epsilon such that (x = x' odot g(epsilon)). Calculate the Metropolis-Hastings-Green ratio using the posterior function, g, D, \epsilon', and possibly a Jacobian function.mcmcGeneric function to create proposals for discrete parameters (e.g., ).See .mcmcProbability distributionmcmcForward operator \odot.For example, for a multiplicative proposal on one variable the forward operator is (*) , so that  x * u = y.mcmcInverse operator g of the auxiliary variable. For example, 7 for a multiplicative proposal on one variable, since %y * (recip u) = x * u * (recip u) = x.Required for biased proposals.mcmcFunction to compute the absolute value of the determinant of the Jacobian matrix. For example, for a multiplicative proposal on one variable, we have &detJacobian _ u = Exp $ log $ recip u That is, the determinant of the Jacobian matrix of multiplication is just the reciprocal value of u! (with conversion to log domain).Required for proposals for which the absolute value of the determinant of the Jacobian differs from 1.0.Conversion to log domain is necessary, because some determinants of Jacobians are very small (or large).mcmcProbability distribution.mcmcForward operator.&For example, (+), so that x + dx = x'.mcmcInverse operator g of the auxiliary variable. For example, , so that x' + (negate dx) = x.#Only required for biased proposals.  Hamiltonian Monte Carlo proposal(c) 2021 Dominik SchrempfGPL-3.0-or-laterdominik.schrempf@gmail.com experimentalportableNonec mcmc4Specifications of the Hamilton Monte Carlo proposal.mcmcExtract values to be manipulated by the Hamiltonian proposal from the state.mcmc%Put those values back into the state.mcmcTuning settings.mcmc Tune masses?The masses are tuned according to the (co)variances of the parameters obtained from the posterior distribution over the last auto tuning interval.mcmcDiagonal only: The variances of the parameters are calculated and the masses are amended using the old masses and the inverted variances. If, for a specific coordinate, the sample size is 60 or lower, or if the calculated variance is out of predefined bounds [1e-6, 1e6], the mass of the affected position is not changed.mcmcAll masses: The covariance matrix of the parameters is estimated and the inverted matrix (sometimes called precision matrix) is used as mass matrix. This procedure is error prone, but models with high correlations between parameters it is necessary to tune off-diagonal entries. The full mass matrix is only tuned if more than 200 samples are available. For these reasons, when tuning all masses it is recommended to use tuning settings such as BurnInWithCustomAutoTuning ([10, 20 .. 200] ++ replicate 5 500) mcmcTune leapfrog parameters?mcmcWe expect that the larger the leapfrog scaling factor the lower the acceptance ratio. Consequently, if the acceptance rate is too low, the leapfrog scaling factor is decreased and vice versa. Further, the leapfrog trajectory length is scaled such that the product of the leapfrog scaling factor and leapfrog trajectory length stays roughly constant.mcmc Mean of leapfrog scaling factor \epsilon.*Determines the size of each leapfrog step.To avoid problems with ergodicity, the actual leapfrog scaling factor is sampled per proposal from a continuous uniform distribution over the interval (0.8\epsilon,1.2\epsilon].For a discussion of ergodicity and reasons why randomization is important, see [1] p. 15; also mentioned in [2] p. 304.Usually set such that  L \epsilon = 1.0 , but smaller values may be required if acceptance rates are low. NOTE: Call  if value is zero or negative.mcmc Mean leapfrog trajectory length L.&Number of leapfrog steps per proposal.To avoid problems with ergodicity, the actual number of leapfrog steps is sampled per proposal from a discrete uniform distribution over the interval )[\text{floor}(0.8L),\text{ceiling}(1.2L)].For a discussion of ergodicity and reasons why randomization is important, see [1] p. 15; also mentioned in [2] p. 304.6Usually set to 10, but larger values may be desirable.NOTE: To avoid errors, the left bound has an additional hard minimum of 1, and the right bound is required to be larger equal than the left bound. NOTE: Call  if value is less than 1.mcmcParameter mass matrix.The masses roughly describe how reluctant the particles move through the state space. If a parameter has higher mass, the momentum in this direction will be changed less by the provided gradient, than when the same parameter has lower mass. Off-diagonal entries describe the covariance structure. If two parameters are negatively correlated, their generated initial momenta are likely to have opposite signs.The proposal is more efficient if masses are assigned according to the inverse (co)-variance structure of the posterior function. That is, parameters changing on larger scales should have lower masses than parameters changing on lower scales. In particular, the optimal entries of the diagonal of the mass matrix are the inverted variances of the parameters distributed according to the posterior function.Of course, the scales of the parameters of the posterior function are usually unknown. Often, it is sufficient toset the diagonal entries of the mass matrix to identical values roughly scaled with the inverted estimated average variance of the posterior function; or even toset all diagonal entries of the mass matrix to 1.0, and all other entries to 0.0, and trust the tuning algorithm (see  ) to find the correct values.mcmcFunction validating the state.%Useful if parameters are constrained.Also the validity of the state may depend on parameters untouched by the Hamiltonian proposal.mcmc'Gradient of the log posterior function.The gradient has to be provided for the complete state. The reason is that the gradient may change if parameters untouched by the Hamiltonian proposal are altered by other proposals.mcmcThe Hamiltonian proposal acts on a vector of floating point values.mcmc!Hamiltonian Monte Carlo proposal.mcmcThe sample state is used for error checks and to calculate the dimension of the proposal.,Types indicating properties of distributions(c) 2021 Dominik SchrempfGPL-3.0-or-laterdominik.schrempf@gmail.com experimentalportable Safe-Inferrede mcmc!Upper boundary of a distribution.mcmc!Lower boundary of a distribution.mcmcSize of a distribution.For example, the size of the interval of the uniform distribution.mcmcDimension of a distribution.mcmcRate of a distribution.mcmcScale of a distribution.mcmcShape of a distribution.mcmcVariance of a distribution.mcmc%Standard deviation of a distribution.mcmcMean of a distribution.  Additive proposals(c) Dominik Schrempf 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNoneipmcmcAdditive proposal.3A normal distribution is used to sample the addend.mcmcSee .Use a normal distribution with mean zero. This proposal is fast, because the Metropolis-Hastings-Green ratio does not include calculation of the forwards and backwards kernels.mcmcSee .Use a uniformly distributed kernel with mean zero. This proposal is fast, because the Metropolis-Hastings-Green ratio does not include calculation of the forwards and backwards kernels.mcmcSee ."Use a normally distributed kernel.The two values are slid contrarily so that their sum stays constant. Contrary proposals are useful when parameters are confounded.Proposals on simplices(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonesXmcmcAn element of a simplex./A vector of non-negative values summing to one.The nomenclature is not very consistent, because a K-dimensional simplex is usually considered to be the set containing all K-dimensional vectors with non-negative elements that sum to 1.0. However, I couldn't come up with a better name. Maybe SimplexElement, but that was too long.mcmc8Ensure that the value vector is an element of a simplex.Return  if: - The value vector is empty. - The value vector contains negative elements. - The value vector is not normalized.mcmc8Create the uniform element of the K-dimensional simplex.Set all values to 1/D.mcmc Dirichlet proposal on a simplex.For a given element of a K-dimensional simplex, propose a new element of the K-dimensional simplex. The new element is sampled from the multivariate Dirichlet distribution with parameter vector being proportional to the current element of the simplex.The tuning parameter is used to determine the concentration of the Dirichlet distribution: the lower the tuning parameter, the higher the concentration.The proposal dimension, which is the dimension of the simplex, is used to determine the optimal acceptance rate.For high dimensional simplices, this proposal may have low acceptance rates. In this case, please see the coordinate wise  proposal.mcmc'Beta proposal on a specific coordinate i on a simplex.For a given element of a K-dimensional simplex, propose a new element of the K-dimensional simplex. The coordinate i of the new element is sampled from the beta distribution. The other coordinates are normalized such that the values sum to 1.0. The parameters of the beta distribution are chosen such that the expected value of the beta distribution is the value of the old coordinate.The tuning parameter is used to determine the concentration of the beta distribution: the lower the tuning parameter, the higher the concentration. See also the  proposal.No "out of bounds" checks are performed during compile time. Run time errors can occur if i is negative, or if i-1 is larger than the length of the element vector of the simplex.This proposal has been assigned a dimension of 2. See the discussion at K.Multiplicative proposals(c) Dominik Schrempf 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonevmcmcMultiplicative proposal.The gamma distribution is used to sample the multiplier. Therefore, this and all derived proposals are log-additive in that they do not change the sign of the state. Further, the value zero is never proposed when having a strictly positive value.Consider using )6 to allow proposition of values having opposite sign.mcmcSee .The scale of the gamma distribution is set to (shape)^{-1}, so that the mean of the gamma distribution is 1.0.mcmcSee .The two values are scaled contrarily so that their product stays constant. Contrary proposals are useful when parameters are confounded.Bactrian proposals(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonez mcmc,Type synonym indicating the spike parameter.mcmcAdditive symmetric proposal with kernel similar to the silhouette of a Bactrian camel.The  https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3845170/figure/fig01Bactrian kernel is a mixture of two symmetrically arranged normal distributions. The spike parameter  m \in (0, 1) loosely determines the standard deviations of the individual humps while the second parameter s > 0 refers to the standard deviation of the complete Bactrian kernel.See  5https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3845170/.mcmcMultiplicative proposal with kernel similar to the silhouette of a Bactrian camel.See *, and .4Types and convenience functions for computing priors(c) Dominik Schrempf, 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNonemcmcGeneralized prior function.mcmcPrior function.mcmcGeneralized prior.mcmc&Prior values are stored in log domain.mcmc6Flat prior function. Useful for testing and debugging.mcmcContinue an MCMC algorithm for the given number of iterations.Currently, it is only possible to continue MCMC algorithms that have completed successfully. This restriction is necessary, because for parallel chains, it is hardly possible to ensure all chains are synchronized when the process is killed or fails.See:12 !Calculate the marginal likelihood(c) Dominik Schrempf 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone mcmc/Settings of the marginal likelihood estimation.mcmc2Initial burn in at the starting point of the path.mcmc-Repetitive burn in at each point on the path.mcmc1The number of iterations performed at each point.mcmc0Algorithms to calculate the marginal likelihood.mcmcUse a classical path integral. Also known as thermodynamic integration. In particular, Annealing-Melting Integration is used.See Lartillot, N., & Philippe, H., Computing Bayes Factors Using Thermodynamic Integration, Systematic Biology, 55(2), 195@207 (2006). +http://dx.doi.org/10.1080/10635150500433722mcmcUse stepping stone sampling.See Xie, W., Lewis, P. O., Fan, Y., Kuo, L., & Chen, M., Improving marginal likelihood estimation for Bayesian phylogenetic model selection, Systematic Biology, 60(2), 150@160 (2010). 'http://dx.doi.org/10.1093/sysbio/syq085Or Fan, Y., Wu, R., Chen, M., Kuo, L., & Lewis, P. O., Choosing among partition models in bayesian phylogenetics, Molecular Biology and Evolution, 28(1), 523@532 (2010). 'http://dx.doi.org/10.1093/molbev/msq224mcmc;The number of points used to approximate the path integral.mcmc4Marginal likelihood values are stored in log domain.mcmc!Estimate the marginal likelihood.mcmcA source of randomness. For reproducible runs, make sure to use generators with the same seed.5Markov chain Monte Carlo samplers, batteries included(c) Dominik Schrempf 2021GPL-3.0-or-laterdominik.schrempf@gmail.comunstableportableNone "#$%&'(-./0567@COPTUVWXYZtvwxyz{|-TUVOPWC@XYZ567t{vwxyz|34567867967:;<=>?@ABCDEFGHIJKLMNOPPQRSTUVWXXYZ[\]^_`a b c d e f g h i j j k l l m n o p q r s t u v v w x y z { | } } ~                                                                                        )&*.(12//0                                3!!!!!$$$%%3333--------#mcmc-0.6.2.0-1LXoqWwgvZ6JWmyheS0wGaMcmc.Monitor.ParameterMcmcMcmc.AcceptanceMcmc.Internal.GammaMcmc.LikelihoodMcmc.Monitor.LogMcmc.Monitor.ParameterBatchMcmc.Monitor.TimeMcmc.Posterior Mcmc.Proposal Mcmc.CycleMcmc.Proposal.GenericMcmc.Proposal.HamiltonianMcmc.Statistics.TypesMcmc.Proposal.SlideMcmc.Proposal.SimplexMcmc.Proposal.ScaleMcmc.Proposal.Bactrian Mcmc.PriorMcmc.Chain.LinkMcmc.Chain.Trace Mcmc.Logger Mcmc.Settings Mcmc.MonitorMcmc.Chain.ChainMcmc.Chain.SaveMcmc.AlgorithmMcmc.Algorithm.MHGMcmc.Algorithm.MC3Mcmc.Environment Mcmc.McmcMcmc.MarginalLikelihoodMcmc.Internal.ByteStringNumeric.SpecFunctionslogGammaMcmc.Internal.RandomMcmc.Internal.Shufflebeta HamiltonianfromSavedChainslidescaleSeethaw Paths_mcmc MonitorBatch Environment mcmcContinuemhgLoadmc3LoadbaseData.Functor.Contravariant>$<(log-domain-0.13.2-7YmMsuH2KmRFmVhusuGPZ7 Numeric.LoglnExpLog AcceptancefromAcceptanceAcceptanceRateemptyApushAresetAtransformKeysAacceptanceRateacceptanceRates$fFromJSONAcceptance$fToJSONAcceptance$fEqAcceptance$fReadAcceptance$fShowAcceptance logGammaGLikelihoodFunctionGLikelihoodFunction LikelihoodG Likelihood noLikelihood renderLogMonitorParametermpNamempFunc monitorInt monitorDoublemonitorDoubleFmonitorDoubleE$fContravariantMonitorParameterMonitorParameterBatchmbpNamembpFuncmonitorBatchMeanmonitorBatchMeanFmonitorBatchMeanE$$fContravariantMonitorParameterBatchrenderDurationrenderDurationS renderTimePosteriorFunctionGPosteriorFunction PosteriorG PosteriorAuxiliaryTuningFunctionAuxiliaryTuningParametersTuningFunctionTuningParameterTuneNoTuneTunertTuningParametertTuningFunctiontAuxiliaryTuningParameterstAuxiliaryTuningFunctiontGetSimpleProposalProposalSimpleJacobianFunctionJacobian KernelRatioProposalprName prDescription prDimensionprWeightprSimpleprTuner PDimensionPDimensionUnknownPSpecialPWeight fromPWeight PDescriptionfromPDescriptionPName fromPNamepWeight@~ liftProposalliftProposalWithcreateProposaldefaultTuningFunctionWithnoTuningFunctionnoAuxiliaryTuningFunctiontuningParameterMintuningParameterMaxtuneWithTuningParametersgetOptimalRateproposalHeadersummarizeProposal $fOrdProposal $fEqProposal $fShowTune$fEqTune $fShowPWeight $fEqPWeight $fOrdPWeight$fShowPDescription$fEqPDescription$fOrdPDescription $fShowPName $fEqPName $fOrdPName $fMonoidPName$fSemigroupPNameCycle ccProposalsOrderRandomO SequentialORandomReversibleOSequentialReversibleO cycleFromListsetOrderprepareProposals autoTuneCycle proposalHLinesummarizeCycle$fDefaultOrder $fEqOrder $fShowOrdergenericContinuousgenericDiscrete HSettings hToVectorhFromVectorWith hGradienthMaybeValidatehMasseshLeapfrogTrajectoryLengthhLeapfrogScalingFactorhTuneHTune HTuneMasses HNoTuneMassesHTuneDiagonalMassesOnlyHTuneAllMasses HTuneLeapfrogHNoTuneLeapfrogLeapfrogScalingFactorLeapfrogTrajectoryLengthMassesValidateGradientValues hamiltonian $fEqHTune $fShowHTune$fEqHTuneMasses$fShowHTuneMasses$fEqHTuneLeapfrog$fShowHTuneLeapfrog UpperBoundary LowerBoundarySize DimensionRateScaleShapeVarianceStandardDeviationMeanslideSymmetricslideUniformSymmetricslideContrarilySimplextoVector $fEqSimplex $fShowSimplexsimplexFromVectorsimplexUniform dirichlet$fFromJSONSimplex$fToJSONSimplex scaleUnbiasedscaleContrarilySpikeParameter slideBactrian scaleBactrianPriorFunctionG PriorFunctionPriorGPriornoPrior greaterThanpositivelessThannegative exponentialgammagammaMeanVariance gammaMeanOnegammaShapeScaleToMeanVariancegammaMeanVarianceToShapeScalenormaluniformpoissonproduct'Linkstateprior likelihood$fFromJSONLink $fToJSONLink$fEqLink $fOrdLink $fShowLink $fReadLinkTrace replicateTlengthTpushTheadTtakeTfreezeTthawTLogModeLogStdOutAndFile LogStdOutOnly LogFileOnly $fEqLogMode $fReadLogMode $fShowLogMode VerbosityQuietWarnInfoDebug$fFromJSONLogMode$fToJSONLogMode $fEqVerbosity$fOrdVerbosity$fReadVerbosity$fShowVerbosityLogger HasVerbosity getVerbosity HasLogMode getLogModeHasStartingTimegetStartingTime HasLogHandles getLogHandlesHasLockgetLocklogOutB logDebugB logDebugSlogWarnBlogWarnSlogInfoBlogInfoS logInfoHeaderlogInfoStartingTimelogInfoEndTime$fFromJSONVerbosity$fToJSONVerbosity AnalysisNamefromAnalysisName$fEqAnalysisName$fReadAnalysisName$fShowAnalysisName$fMonoidAnalysisName$fSemigroupAnalysisNameBurnInSettingsNoBurnInBurnInWithoutAutoTuningBurnInWithAutoTuningBurnInWithCustomAutoTuningHasAnalysisNamegetAnalysisName$fFromJSONAnalysisName$fToJSONAnalysisName$fEqBurnInSettings$fReadBurnInSettings$fShowBurnInSettings IterationsfromIterationsburnInIterations$fFromJSONBurnInSettings$fToJSONBurnInSettings$fEqIterations$fReadIterations$fShowIterations TraceLength TraceAuto TraceMinimum$fFromJSONIterations$fToJSONIterations$fEqTraceLength$fShowTraceLength ExecutionModeFail OverwriteContinue$fFromJSONTraceLength$fToJSONTraceLength$fEqExecutionMode$fReadExecutionMode$fShowExecutionModeParallelizationMode SequentialParallelHasExecutionModegetExecutionModeopenWithExecutionMode$fFromJSONExecutionMode$fToJSONExecutionMode$fEqParallelizationMode$fReadParallelizationMode$fShowParallelizationModeSaveModeNoSaveSave$fFromJSONParallelizationMode$fToJSONParallelizationMode $fEqSaveMode$fReadSaveMode$fShowSaveModeSettings sAnalysisNamesBurnIn sIterations sTraceLengthsExecutionModesParallelizationMode sSaveModesLogMode sVerbosity$fFromJSONSaveMode$fToJSONSaveMode$fHasVerbositySettings$fHasLogModeSettings$fHasExecutionModeSettings$fHasAnalysisNameSettings $fEqSettings$fShowSettings settingsSave settingsLoad settingsChecksettingsPrettyPrint$fFromJSONSettings$fToJSONSettings BatchSize MonitorFile MonitorStdOutPeriodMonitormStdOutmFilesmBatches simpleMonitor monitorStdOutmsHeader monitorFile monitorBatchgetMonitorBatchSizemOpenmExecmCloseChainchainIdlink iterationtrace acceptance generatorstart priorFunctionlikelihoodFunctioncyclemonitor InitialState SavedChainsavedId savedLinksavedIteration savedTracesavedAcceptance savedSeedsavedTuningParameters$fEqSavedChain$fReadSavedChain$fShowSavedChain toSavedChain$fFromJSONSavedChain$fToJSONSavedChain AlgorithmaName aIterationaIsInValidStateaIterate aAutoTuneaResetAcceptanceaSummarizeCycle aOpenMonitorsaExecuteMonitorsaStdMonitorHeaderaCloseMonitorsaSaveMHGRatioMHGfromMHGmhgmhgSave mhgAccept$fAlgorithmMHGNChains fromNChains $fEqNChains $fReadNChains $fShowNChains SwapPeriodfromSwapPeriod$fFromJSONNChains$fToJSONNChains$fEqSwapPeriod$fReadSwapPeriod$fShowSwapPeriodNSwaps fromNSwaps$fFromJSONSwapPeriod$fToJSONSwapPeriod $fEqNSwaps $fReadNSwaps $fShowNSwaps MC3Settings mc3NChains mc3SwapPeriod mc3NSwaps$fFromJSONNSwaps$fToJSONNSwaps$fEqMC3Settings$fReadMC3Settings$fShowMC3SettingsReciprocalTemperatures MHGChains$fFromJSONMC3Settings$fToJSONMC3Settings $fEqSavedMC3$fReadSavedMC3$fShowSavedMC3MC3 mc3Settings mc3MHGChainsmc3ReciprocalTemperatures mc3Iterationmc3SwapAcceptance mc3Generatormc3mc3Save$fFromJSONSavedMC3$fToJSONSavedMC3$fAlgorithmMC3settings logHandlesoutLock startingTimeinitializeEnvironmentcloseEnvironment$fHasVerbosityEnvironment$fHasLogModeEnvironment$fHasStartingTimeEnvironment$fHasLogHandlesEnvironment$fHasLockEnvironment$fHasExecutionModeEnvironment$fEqEnvironmentmcmc MLSettingsmlAnalysisName mlAlgorithm mlNPointsmlInitialBurnIn mlPointBurnIn mlIterationsmlExecutionMode mlLogMode mlVerbosity MLAlgorithmThermodynamicIntegrationSteppingStoneSamplingNPoints fromNPointsMarginalLikelihoodmarginalLikelihood$fHasVerbosityMLSettings$fHasLogModeMLSettings$fHasExecutionModeMLSettings$fHasAnalysisNameMLSettings$fEqMLSettings$fReadMLSettings$fShowMLSettings$fEqMLAlgorithm$fReadMLAlgorithm$fShowMLAlgorithm $fEqNPoints $fReadNPoints $fShowNPoints GHC.MaybeNothingalignRightWithNoTrimalignRightWith alignRight alignLeftWith alignLeftsplitGensaveGenloadGenshufflegrabbleghc-prim GHC.TypesDoubleInt Data.EitherLeftGHC.ErrerrorGHC.RealrecipGHC.Numnegate'circular-0.4.0.2-HgbpwfAmuMGI3QkDimAqJUData.Stack.Circulargettakefreezeversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameIO