graph op fixes

This commit is contained in:
Mike J Innes 2016-10-26 00:39:16 +01:00
parent eb78f67a93
commit ba60c4596b

View File

@ -2,16 +2,16 @@ immutable ModelInput end
inputnode(n) = vertex(Split(n), constant(ModelInput())) inputnode(n) = vertex(Split(n), constant(ModelInput()))
# isinput(x) = isa(x, Constant) && value(x) == Input() function bumpinputs(v::IVertex)
prewalk(v) do v
# function bumpinput(v::IVertex) isa(value(v), Split) && value(v[1]) == Constant(ModelInput()) ?
# prewalk(v) do v inputnode(value(v).n + 1) :
# isa(value(v), Split) && value(v[1]) == Input() ? v
# end end
# end end
function spliceinput(v::IVertex, input::IVertex) function spliceinput(v::IVertex, input::IVertex)
prewalk(v) do v postwalk(v) do v
value(v) == Constant(ModelInput()) ? input : v value(v) == Constant(ModelInput()) ? input : v
end end
end end
@ -20,7 +20,7 @@ spliceinputs(v::IVertex, inputs::Vertex...) =
spliceinput(v, vertex(Group(), inputs...)) spliceinput(v, vertex(Group(), inputs...))
function detuple(v::IVertex) function detuple(v::IVertex)
prewalk(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)
v[1][value(v).n] v[1][value(v).n]
else else