@@ -28,9 +28,12 @@ factor!(ex::NTuple; assignments::Vector{Assignment}) = factor!(Expr(:($([i for i
2828factor! (ex:: Tuple ; assignments:: Vector{Assignment} ) = factor! (Expr (:($ ([i for i in ex]. .. ))), assignments= assignments)
2929
3030function factor! (ex:: Number ; assignments = Assignment[])
31- new = Assignment (gensym (:aux ), ex)
32- index = findall (x -> x. rhs== new. rhs, assignments)
31+ index = findall (x -> x. rhs== ex, assignments)
3332 if isempty (index)
33+ newsym = gensym (:aux )
34+ newsym = Symbol (string (newsym)[3 : 5 ] * string (newsym)[7 : end ])
35+ newvar = genvar (newsym)
36+ new = Assignment (newvar, ex)
3437 push! (assignments, new)
3538 else
3639 p = collect (1 : length (assignments))
@@ -41,9 +44,12 @@ function factor!(ex::Number; assignments = Assignment[])
4144 return assignments
4245end
4346function factor! (ex:: Symbol ; assignments = Assignment[])
44- new = Assignment (gensym (:aux ), ex)
45- index = findall (x -> x. rhs== new. rhs, assignments)
47+ index = findall (x -> x. rhs== ex, assignments)
4648 if isempty (index)
49+ newsym = gensym (:aux )
50+ newsym = Symbol (string (newsym)[3 : 5 ] * string (newsym)[7 : end ])
51+ newvar = genvar (newsym)
52+ new = Assignment (newvar, ex)
4753 push! (assignments, new)
4854 else
4955 p = collect (1 : length (assignments))
5763function factor! (ex:: Expr ; assignments = Assignment[])
5864 binarize! (ex)
5965 if is_factor (ex)
60- new = Assignment (gensym (:aux ), ex)
61- index = findall (x -> x. rhs== new. rhs, assignments)
66+ index = findall (x -> x. rhs== ex, assignments)
6267 if isempty (index)
68+ newsym = gensym (:aux )
69+ newsym = Symbol (string (newsym)[3 : 5 ] * string (newsym)[7 : end ])
70+ newvar = genvar (newsym)
71+ new = Assignment (newvar, ex)
6372 push! (assignments, new)
6473 else
6574 p = collect (1 : length (assignments))
0 commit comments