-
Notifications
You must be signed in to change notification settings - Fork 5
/
ValueShapes.jl
56 lines (43 loc) · 1.15 KB
/
ValueShapes.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# This file is a part of ValueShapes.jl, licensed under the MIT License (MIT).
__precompile__(true)
"""
ValueShapes
Provides a Julia API to describe the shape of values, like scalars, arrays
and structures.
"""
module ValueShapes
using Base: @propagate_inbounds
using ArgCheck
using ArraysOfArrays
using ChangesOfVariables
using Distributions
using ElasticArrays
using FillArrays
using InverseFunctions
using Random
using Statistics
using StatsBase
using DensityInterface
import Adapt
import ChainRulesCore
import IntervalSets
import Tables
import TypedTables
# Long-term, ChainRulesCore should be sufficient:
import ZygoteRules
using ChainRulesCore: AbstractTangent, Tangent, AbstractZero, NoTangent, ZeroTangent
using ChainRulesCore: AbstractThunk, ProjectTo, unthunk, backing
using Random123: Philox4x
include("tangent_utils.jl")
include("value_shape.jl")
include("value_accessor.jl")
include("scalar_shape.jl")
include("array_shape.jl")
include("const_value_shape.jl")
include("named_tuple_shape.jl")
include("functions.jl")
include("distributions.jl")
include("const_value_dist.jl")
include("named_tuple_dist.jl")
include("reshaped_dist.jl")
end # module