Copyright | 2021 Dominik Schrempf |
---|---|
License | GPL-3.0-or-later |
Maintainer | dominik.schrempf@gmail.com |
Stability | unstable |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Creation date: Tue Jun 16 10:18:54 2020.
Save and load chains. It is easy to save and restore the current state and likelihood (or the trace), but it is not feasible to store all the proposals and so on, so they have to be provided again when continuing a run.
Synopsis
- data SavedChain a = SavedChain {
- savedLink :: Link a
- savedIteration :: Int
- savedTrace :: Stack Vector (Link a)
- savedAcceptances :: Acceptances Int
- savedSeed :: (Word64, Word64)
- savedTuningParameters :: [Maybe (TuningParameter, AuxiliaryTuningParameters)]
- toSavedChain :: Chain a -> IO (SavedChain a)
- fromSavedChain :: PriorFunction a -> LikelihoodFunction a -> Cycle a -> Monitor a -> SavedChain a -> IO (Chain a)
- fromSavedChainUnsafe :: PriorFunction a -> LikelihoodFunction a -> Cycle a -> Monitor a -> SavedChain a -> IO (Chain a)
Documentation
data SavedChain a Source #
Storable values of a Markov chain.
See toSavedChain
.
SavedChain | |
|
Instances
FromJSON a => FromJSON (SavedChain a) Source # | |
Defined in Mcmc.Chain.Save parseJSON :: Value -> Parser (SavedChain a) # parseJSONList :: Value -> Parser [SavedChain a] # | |
ToJSON a => ToJSON (SavedChain a) Source # | |
Defined in Mcmc.Chain.Save toJSON :: SavedChain a -> Value # toEncoding :: SavedChain a -> Encoding # toJSONList :: [SavedChain a] -> Value # toEncodingList :: [SavedChain a] -> Encoding # | |
Show a => Show (SavedChain a) Source # | |
Defined in Mcmc.Chain.Save showsPrec :: Int -> SavedChain a -> ShowS # show :: SavedChain a -> String # showList :: [SavedChain a] -> ShowS # | |
Eq a => Eq (SavedChain a) Source # | |
Defined in Mcmc.Chain.Save (==) :: SavedChain a -> SavedChain a -> Bool # (/=) :: SavedChain a -> SavedChain a -> Bool # |
toSavedChain :: Chain a -> IO (SavedChain a) Source #
Save a chain.
fromSavedChain :: PriorFunction a -> LikelihoodFunction a -> Cycle a -> Monitor a -> SavedChain a -> IO (Chain a) Source #
Load a saved chain.
Perform some safety checks:
Check that the number of proposals is equal.
Recompute and check the prior and likelihood for the last state because the functions may have changed. Of course, we cannot test for the same function, but having the same prior and likelihood at the last state is already a good indicator.
fromSavedChainUnsafe :: PriorFunction a -> LikelihoodFunction a -> Cycle a -> Monitor a -> SavedChain a -> IO (Chain a) Source #
See fromSavedChain
but do not perform sanity checks. Useful when
restarting a run with changed prior function, likelihood function or
proposals.