Skip to content

Commit 006e459

Browse files
change to implicit () + (..) for uncalled
1 parent 6f8cfcc commit 006e459

File tree

4 files changed

+16
-16
lines changed

4 files changed

+16
-16
lines changed

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,14 +166,16 @@ including and excluding empty parentheses. When in call format, variables are
166166
aliased to the given call, allowing implicit use of dependents for convenience.
167167
168168
```julia
169-
@dependent_parameters t() α() σ
170-
@variables w x(t) y() z(t, α, x)
169+
@parameters t α σ(..)
170+
@variables w(..) x(t) y() z(t, α, x)
171171

172172
expr = x + y^α + σ(3) * (z - t) - w(t - 1)
173173
```
174174
175-
`@parameters` is a simplified tool for defining constant parameters, meaning
176-
`@parameters t` is the same as `@dependent_parameters t()`
175+
Note that `@parameters` and `@variables` implicitly add `()` to values that
176+
are not given a call. The former specifies the values as known, while the
177+
latter specifies it as unknown. `(..)` signifies that the value should be
178+
left uncalled.
177179
178180
### Constants
179181

src/variables.jl

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Base.convert(::Type{Expr}, c::Constant) = c.value
2929

3030

3131
# Build variables more easily
32-
function _parse_vars(macroname, known, x, add_call = true)
32+
function _parse_vars(macroname, known, x)
3333
ex = Expr(:block)
3434
var_names = Symbol[]
3535
# if parsing things in the form of
@@ -47,14 +47,15 @@ function _parse_vars(macroname, known, x, add_call = true)
4747

4848
if iscall
4949
var_name = _var.args[1]
50-
expr = :($var_name = $Variable($(Meta.quot(var_name)); known = $known)($(_var.args[2:end]...)))
51-
else
52-
var_name = _var
53-
if add_call
54-
expr = :($var_name = $Variable($(Meta.quot(var_name)); known = $known)())
55-
else
50+
if _var.args[end] == :..
5651
expr = :($var_name = $Variable($(Meta.quot(var_name)); known = $known))
52+
else
53+
expr = :($var_name = $Variable($(Meta.quot(var_name)); known = $known)($(_var.args[2:end]...)))
5754
end
55+
else
56+
# Implicit 0-args call
57+
var_name = _var
58+
expr = :($var_name = $Variable($(Meta.quot(var_name)); known = $known)())
5859
end
5960

6061
push!(var_names, var_name)
@@ -69,6 +70,3 @@ end
6970
macro parameters(xs...)
7071
esc(_parse_vars(:parameters, true, xs))
7172
end
72-
macro dependent_parameters(xs...)
73-
esc(_parse_vars(:parameters, true, xs, false))
74-
end

test/system_construction.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ fwt(FW, u, p, 0.2, 0.1)
6060
du [11, -3, -7]
6161
end
6262

63-
@dependent_parameters σ
63+
@parameters σ(..)
6464
eqs = [D(x) ~ σ(t-1)*(y-x),
6565
D(y) ~ x*-z)-y,
6666
D(z) ~ x*y - β*z]

test/variable_parsing.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ z1 = Variable(:z)(t)
1515
t
1616
s
1717
end
18-
@dependent_parameters σ
18+
@parameters σ(..)
1919

2020
t1 = Variable(:t; known = true)()
2121
s1 = Variable(:s; known = true)()

0 commit comments

Comments
 (0)