Skip to content

Commit 19a8f9c

Browse files
committed
update
1 parent 11cd3ff commit 19a8f9c

File tree

9 files changed

+920
-4
lines changed

9 files changed

+920
-4
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2022 Chad Scherrer <[email protected]> and contributors
3+
Copyright (c) 2020-2022 Chad Scherrer <[email protected]> and contributors
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

Project.toml

Lines changed: 65 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,74 @@ uuid = "73a6ac3c-4b34-4cca-a813-308f7589d80d"
33
authors = ["Chad Scherrer <[email protected]> and contributors"]
44
version = "0.1.0"
55

6+
[deps]
7+
Accessors = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697"
8+
ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
9+
DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d"
10+
DiffResults = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
11+
GeneralizedGenerated = "6b9d7cbe-bcb9-11e9-073f-15a7a543e2eb"
12+
IfElse = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173"
13+
JuliaVariables = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec"
14+
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
15+
MLStyle = "d8e11817-5142-5d16-987a-aa16d5891078"
16+
MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
17+
MappedArrays = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900"
18+
MeasureBase = "fa1605e6-acd5-459c-a1e6-7e635759db14"
19+
MeasureTheory = "eadaa1a4-d27c-401d-8699-e962e1bbc33b"
20+
NamedTupleTools = "d9ec5142-1e00-5aa0-9d6a-321866360f50"
21+
NestedTuples = "a734d2a7-8d68-409b-9419-626914d4061d"
22+
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
23+
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
24+
RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
25+
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
26+
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
27+
RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47"
28+
SampleChains = "754583d1-7fc4-4dab-93b5-5eaca5c9622e"
29+
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
30+
Static = "aedffcd0-7271-4cad-89d0-dc628f76c6d3"
31+
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
32+
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
33+
StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c"
34+
TransformVariables = "84d833dd-6860-57f9-a1a7-6da5db126cff"
35+
TupleVectors = "615932cf-77b6-4358-adcd-5b7eba981d7e"
36+
637
[compat]
7-
julia = "1"
38+
Accessors = "0.1"
39+
ArrayInterface = "3,4"
40+
DensityInterface = "0.4"
41+
DiffResults = "1"
42+
GeneralizedGenerated = "0.3.3"
43+
IfElse = "0.1"
44+
JuliaVariables = "0.2"
45+
MLStyle = "0.3,0.4"
46+
MacroTools = "0.5"
47+
MappedArrays = "0.3, 0.4"
48+
MeasureBase = "0.5"
49+
MeasureTheory = "0.13"
50+
NamedTupleTools = "0.12, 0.13"
51+
NestedTuples = "0.3"
52+
RecipesBase = "1"
53+
Reexport = "1"
54+
Requires = "1"
55+
RuntimeGeneratedFunctions = "0.5"
56+
SampleChains = "0.5"
57+
SpecialFunctions = "1, 2"
58+
Static = "0.5"
59+
StatsBase = "0.33"
60+
StatsFuns = "0.9"
61+
TransformVariables = "0.5"
62+
TupleVectors = "0.1"
63+
julia = "1.5"
864

965
[extras]
66+
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
67+
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
68+
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
69+
Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
70+
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
71+
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
72+
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
1073
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
1174

1275
[targets]
13-
test = ["Test"]
76+
test = ["Aqua", "Documenter", "Literate", "Plots", "Random", "StableRNGs", "Test", "JET"]

src/Tilde.jl

Lines changed: 153 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,157 @@
11
module Tilde
22

3-
# Write your package code here.
3+
import Base.rand
4+
using Random
5+
using Reexport: @reexport
46

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
5152
end
153+
154+
# # # include("sobols.jl")
155+
# # # include("fromcube.jl")
156+
# # # include("tocube.jl")
157+
end # module

0 commit comments

Comments
 (0)