|
1 | 1 | """
|
2 | 2 | struct Model{F,argnames,defaultnames,missings,Targs,Tdefaults}
|
3 |
| - name::Symbol |
4 | 3 | f::F
|
5 | 4 | args::NamedTuple{argnames,Targs}
|
6 | 5 | defaults::NamedTuple{defaultnames,Tdefaults}
|
@@ -34,53 +33,49 @@ Model{typeof(f),(:x, :y),(:x,),(:y,),Tuple{Float64,Float64},Tuple{Int64}}(f, (x
|
34 | 33 | """
|
35 | 34 | struct Model{F,argnames,defaultnames,missings,Targs,Tdefaults,Ctx<:AbstractContext} <:
|
36 | 35 | AbstractProbabilisticProgram
|
37 |
| - name::Symbol |
38 | 36 | f::F
|
39 | 37 | args::NamedTuple{argnames,Targs}
|
40 | 38 | defaults::NamedTuple{defaultnames,Tdefaults}
|
41 | 39 | context::Ctx
|
42 | 40 |
|
43 | 41 | @doc """
|
44 |
| - Model{missings}(name::Symbol, f, args::NamedTuple, defaults::NamedTuple) |
| 42 | + Model{missings}(f, args::NamedTuple, defaults::NamedTuple) |
45 | 43 |
|
46 |
| - Create a model of name `name` with evaluation function `f` and missing arguments |
47 |
| - overwritten by `missings`. |
| 44 | + Create a model with evaluation function `f` and missing arguments overwritten by |
| 45 | + `missings`. |
48 | 46 | """
|
49 | 47 | function Model{missings}(
|
50 |
| - name::Symbol, |
51 | 48 | f::F,
|
52 | 49 | args::NamedTuple{argnames,Targs},
|
53 | 50 | defaults::NamedTuple{defaultnames,Tdefaults},
|
54 | 51 | context::Ctx=DefaultContext(),
|
55 | 52 | ) where {missings,F,argnames,Targs,defaultnames,Tdefaults,Ctx}
|
56 | 53 | return new{F,argnames,defaultnames,missings,Targs,Tdefaults,Ctx}(
|
57 |
| - name, f, args, defaults, context |
| 54 | + f, args, defaults, context |
58 | 55 | )
|
59 | 56 | end
|
60 | 57 | end
|
61 | 58 |
|
62 | 59 | """
|
63 |
| - Model(name::Symbol, f, args::NamedTuple[, defaults::NamedTuple = ()]) |
| 60 | + Model(f, args::NamedTuple[, defaults::NamedTuple = ()]) |
64 | 61 |
|
65 |
| -Create a model of name `name` with evaluation function `f` and missing arguments deduced |
66 |
| -from `args`. |
| 62 | +Create a model with evaluation function `f` and missing arguments deduced from `args`. |
67 | 63 |
|
68 | 64 | Default arguments `defaults` are used internally when constructing instances of the same
|
69 | 65 | model with different arguments.
|
70 | 66 | """
|
71 | 67 | @generated function Model(
|
72 |
| - name::Symbol, |
73 | 68 | f::F,
|
74 | 69 | args::NamedTuple{argnames,Targs},
|
75 | 70 | defaults::NamedTuple=NamedTuple(),
|
76 | 71 | context::AbstractContext=DefaultContext(),
|
77 | 72 | ) where {F,argnames,Targs}
|
78 | 73 | missings = Tuple(name for (name, typ) in zip(argnames, Targs.types) if typ <: Missing)
|
79 |
| - return :(Model{$missings}(name, f, args, defaults, context)) |
| 74 | + return :(Model{$missings}(f, args, defaults, context)) |
80 | 75 | end
|
81 | 76 |
|
82 | 77 | function contextualize(model::Model, context::AbstractContext)
|
83 |
| - return Model(model.name, model.f, model.args, model.defaults, context) |
| 78 | + return Model(model.f, model.args, model.defaults, context) |
84 | 79 | end
|
85 | 80 |
|
86 | 81 | """
|
@@ -518,7 +513,8 @@ getmissings(model::Model{_F,_a,_d,missings}) where {missings,_F,_a,_d} = missing
|
518 | 513 |
|
519 | 514 | Get the name of the `model` as `Symbol`.
|
520 | 515 | """
|
521 |
| -Base.nameof(model::Model) = model.name |
| 516 | +Base.nameof(model::Model) = Symbol(model.f) |
| 517 | +Base.nameof(model::Model{<:Function}) = nameof(model.f) |
522 | 518 |
|
523 | 519 | """
|
524 | 520 | rand([rng=Random.GLOBAL_RNG], [T=NamedTuple], model::Model)
|
|
0 commit comments