ninputs utility
This commit is contained in:
parent
a99bb03830
commit
671640acd6
@ -4,9 +4,11 @@ splitnode(v, n) = vertex(Split(n), v)
|
|||||||
|
|
||||||
inputnode(n) = splitnode(constant(ModelInput()), n)
|
inputnode(n) = splitnode(constant(ModelInput()), n)
|
||||||
|
|
||||||
|
isinput(v::IVertex) = isa(value(v), Split) && value(v[1]) == Constant(ModelInput())
|
||||||
|
|
||||||
function bumpinputs(v::IVertex)
|
function bumpinputs(v::IVertex)
|
||||||
prewalk(v) do v
|
prewalk(v) do v
|
||||||
isa(value(v), Split) && value(v[1]) == Constant(ModelInput()) ?
|
isinput(v) ?
|
||||||
inputnode(value(v).n + 1) :
|
inputnode(value(v).n + 1) :
|
||||||
v
|
v
|
||||||
end
|
end
|
||||||
@ -21,6 +23,15 @@ end
|
|||||||
spliceinputs(v::IVertex, inputs::Vertex...) =
|
spliceinputs(v::IVertex, inputs::Vertex...) =
|
||||||
spliceinput(v, vertex(Group(), inputs...))
|
spliceinput(v, vertex(Group(), inputs...))
|
||||||
|
|
||||||
|
function ninputs(v::IVertex)
|
||||||
|
n = 0
|
||||||
|
prewalk(v) do v
|
||||||
|
isinput(v) && (n = max(n, value(v).n))
|
||||||
|
v
|
||||||
|
end
|
||||||
|
return n
|
||||||
|
end
|
||||||
|
|
||||||
function detuple(v::IVertex)
|
function detuple(v::IVertex)
|
||||||
postwalk(v) do v
|
postwalk(v) do v
|
||||||
if isa(value(v), Split) && isa(value(v[1]), Group)
|
if isa(value(v), Split) && isa(value(v[1]), Group)
|
||||||
|
Loading…
Reference in New Issue
Block a user