|
1 | 1 | module Tilde
|
2 | 2 |
|
3 |
| -# Write your package code here. |
| 3 | +import Base.rand |
| 4 | +using Random |
| 5 | +using Reexport: @reexport |
4 | 6 |
|
| 7 | +@reexport using StatsFuns |
| 8 | +@reexport using MeasureTheory |
| 9 | +using MeasureBase: productmeasure, Returns |
| 10 | + |
| 11 | +import DensityInterface: logdensityof |
| 12 | +import DensityInterface: densityof |
| 13 | +import DensityInterface: DensityKind |
| 14 | +using DensityInterface |
| 15 | + |
| 16 | + |
| 17 | +using NamedTupleTools |
| 18 | +using SampleChains |
| 19 | +# using SymbolicCodegen |
| 20 | + |
| 21 | +# using SymbolicUtils: Symbolic |
| 22 | +# const MaybeSym{T} = Union{T, Symbolic{T}} |
| 23 | + |
| 24 | +# MeasureTheory.For(f, dims::MaybeSym{<: Integer}...) = ProductMeasure(mappedarray(i -> f(Tuple(i)...), CartesianIndices(dims))) |
| 25 | +# MeasureTheory.For(f, dims::MaybeSym{<: AbstractUnitRange}...) = ProductMeasure(mappedarray(i -> f(Tuple(i)...), CartesianIndices(dims))) |
| 26 | + |
| 27 | +import MacroTools: prewalk, postwalk, @q, striplines, replace, @capture |
| 28 | +import MacroTools |
| 29 | +import MLStyle |
| 30 | +# import MonteCarloMeasurements |
| 31 | +# using MonteCarloMeasurements: Particles, StaticParticles, AbstractParticles |
| 32 | + |
| 33 | +using Requires |
| 34 | +using ArrayInterface: StaticInt |
| 35 | +using Static |
| 36 | + |
| 37 | +using IfElse: ifelse |
| 38 | +using TransformVariables: as, asℝ, as𝕀, asℝ₊ |
| 39 | +import TransformVariables as TV |
| 40 | + |
| 41 | +# using SimplePosets: SimplePoset |
| 42 | +# import SimplePosets |
| 43 | + |
| 44 | + |
| 45 | +using GeneralizedGenerated |
| 46 | +using RuntimeGeneratedFunctions |
| 47 | +RuntimeGeneratedFunctions.init(@__MODULE__) |
| 48 | +using MeasureBase: AbstractKleisli |
| 49 | + |
| 50 | + |
| 51 | +using NestedTuples: TypelevelExpr |
| 52 | + |
| 53 | +using MeasureTheory: ∞ |
| 54 | +import MeasureTheory: xform |
| 55 | + |
| 56 | + |
| 57 | +""" |
| 58 | +we use this to avoid introduce static type parameters |
| 59 | +for generated functions |
| 60 | +""" |
| 61 | +_unwrap_type(a::Type{<:Type}) = a.parameters[1] |
| 62 | + |
| 63 | +export model, Model, tilde, @model |
| 64 | + |
| 65 | +using MLStyle |
| 66 | +# include("callify.jl") |
| 67 | +import GeneralizedGenerated as GG |
| 68 | + |
| 69 | +@generated function MeasureTheory.For(f::GG.Closure{F,Free}, inds::I) where {F,Free,I<:Tuple} |
| 70 | + freetypes = Free.types |
| 71 | + eltypes = eltype.(I.types) |
| 72 | + T = Core.Compiler.return_type(F, Tuple{freetypes..., eltypes...}) |
| 73 | + quote |
| 74 | + $(Expr(:meta, :inline)) |
| 75 | + For{$T,GG.Closure{F,Free},I}(f, inds) |
| 76 | + end |
| 77 | +end |
| 78 | + |
| 79 | +include("tildeargs.jl") |
| 80 | +include("optics.jl") |
| 81 | +include("maybe.jl") |
| 82 | +# include("noted.jl") |
| 83 | +include("core/models/abstractmodel.jl") |
| 84 | +# include("core/models/dagmodel/statement.jl") |
| 85 | +include("core/models/astmodel/astmodel.jl") |
| 86 | +# include("core/models/dagmodel/dagmodel.jl") |
| 87 | +include("core/models/model.jl") |
| 88 | +# include("core/canonical.jl") |
| 89 | +include("core/dependencies.jl") |
| 90 | +# include("core/toposort.jl") |
| 91 | +# include("core/weighted.jl") |
| 92 | +include("core/utils.jl") |
| 93 | +include("core/models/closure.jl") |
| 94 | +include("core/models/posterior.jl") |
| 95 | +include("primitives/interpret.jl") |
| 96 | +# include("distributions/dist.jl") |
| 97 | +# include("distributions/for.jl") |
| 98 | +include("distributions/iid.jl") |
| 99 | +# include("distributions/mix.jl") |
| 100 | +# include("distributions/flat.jl") |
| 101 | +# include("distributions/markovchain.jl") |
| 102 | + |
| 103 | +include("primitives/rand.jl") |
| 104 | +# include("primitives/simulate.jl") |
| 105 | +include("primitives/logdensity.jl") |
| 106 | +# include("primitives/xform.jl") |
| 107 | +# include("primitives/likelihood-weighting.jl") |
| 108 | +include("primitives/insupport.jl") |
| 109 | +# include("primitives/gg.jl") |
| 110 | +# @init @require Bijectors="76274a88-744f-5084-9051-94815aaf08c4" begin |
| 111 | +# include("primitives/bijectors.jl") |
| 112 | +# end |
| 113 | + |
| 114 | +# include("primitives/basemeasure.jl") |
| 115 | +include("primitives/testvalue.jl") |
| 116 | +include("primitives/testparams.jl") |
| 117 | +# include("primitives/entropy.jl") |
| 118 | + |
| 119 | + |
| 120 | +include("transforms/predict.jl") |
| 121 | +# include("transforms/markovblanket.jl") |
| 122 | +include("transforms/utils.jl") |
| 123 | +# include("transforms/basictransforms.jl") |
| 124 | +# include("transforms/withmeasures.jl") |
| 125 | + |
| 126 | +# include("symbolic/symcall.jl") |
| 127 | +# include("symbolic/symify.jl") |
| 128 | +# include("symbolic/rules.jl") |
| 129 | +# include("symbolic/symbolic.jl") |
| 130 | +# include("symbolic/codegen.jl") |
| 131 | + |
| 132 | +# include("particles.jl") |
| 133 | +include("plots.jl") |
| 134 | + |
| 135 | +# include("inference/rejection.jl") |
| 136 | +# include("inference/dynamicHMC.jl") |
| 137 | +# include("inference/advancedhmc.jl") |
| 138 | +# include("inference/power-posterior.jl") |
| 139 | +# include("inference/Δlogdensity.jl") |
| 140 | + |
| 141 | +# |
| 142 | +# # include("graph.jl") |
| 143 | +# # # include("optim.jl") |
| 144 | +# include("importance.jl") |
| 145 | +# |
| 146 | + |
| 147 | + |
| 148 | +function __init__() |
| 149 | + @require SampleChainsDynamicHMC = "6d9fd711-e8b2-4778-9c70-c1dfb499d4c4" begin |
| 150 | + include("samplechains/dynamichmc.jl") |
| 151 | + end |
5 | 152 | end
|
| 153 | + |
| 154 | +# # # include("sobols.jl") |
| 155 | +# # # include("fromcube.jl") |
| 156 | +# # # include("tocube.jl") |
| 157 | +end # module |
0 commit comments