@@ -14,25 +14,25 @@ function generate_basis(eq, x; homotopy=false)
1414
1515 if homotopy
1616 if isdependent (p, x)
17- C₂ = generate_homotopy2 (p, x)
17+ C₂ = generate_homotopy (p, x)
1818 else
1919 C₂ = 1
2020 end
2121 else
22- C₂ = find_candidates_nonsolvable (p, x)
22+ C₂ = find_candidates (p, x)
2323 end
2424
2525 for c₁ in C₁
26- enqueue_expr_ex ! (S, c₁, x)
26+ enqueue_expr ! (S, c₁, x)
2727 end
2828
2929 for c₂ in C₂
30- enqueue_expr_ex ! (S, c₂, x)
30+ enqueue_expr ! (S, c₂, x)
3131 end
3232
3333 for c₁ in C₁
3434 for c₂ in C₂
35- enqueue_expr_ex ! (S, expand (c₁* c₂), x)
35+ enqueue_expr ! (S, expand (c₁* c₂), x)
3636 end
3737 end
3838 end
@@ -53,26 +53,26 @@ function closure(eq, x; max_terms=50)
5353 D = Differential (x)
5454 S = Set {Any} ()
5555 q = Queue {Any} ()
56- enqueue_expr_ex ! (S, q, eq, x)
56+ enqueue_expr ! (S, q, eq, x)
5757
5858 while ! isempty (q) && length (S) < max_terms
5959 y = dequeue! (q)
60- enqueue_expr_ex ! (S, q, expand_derivatives (D (y)), x)
60+ enqueue_expr ! (S, q, expand_derivatives (D (y)), x)
6161 end
6262 unique ([one (x); [s for s in S]; [s* x for s in S]])
6363end
6464
65- function find_candidates_nonsolvable (eq, x)
65+ function find_candidates (eq, x)
6666 eq = apply_d_rules (eq)
6767 D = Differential (x)
6868
6969 S = Set {Any} ()
7070 q = Queue {Any} ()
71- enqueue_expr_ex ! (S, q, eq, x)
71+ enqueue_expr ! (S, q, eq, x)
7272
7373 for y in q
7474 ∂y = expand_derivatives (D (y))
75- enqueue_expr_ex ! (S, ∂y, x)
75+ enqueue_expr ! (S, ∂y, x)
7676 end
7777
7878 return unique ([one (x); [s for s in S]])
@@ -146,43 +146,22 @@ function enqueue_expr!(S, q, eq::SymbolicUtils.Add, x)
146146end
147147
148148function enqueue_expr! (S, q, eq, x)
149- y = eq / coef (eq, x)
150- if y ∉ S && isdependent (y, x) # && all(u->u>=0, extract_power(y))
151- enqueue! (q, y)
152- push! (S, y)
153- end
154- end
155-
156- function enqueue_expr_ex! (S, q, eq:: SymbolicUtils.Add , x)
157- for t in arguments (eq)
158- enqueue_expr_ex! (S, q, t, x)
159- end
160- end
161-
162- function enqueue_expr_ex! (S, q, eq, x)
163149 y = eq / coef (eq, x)
164150 if y ∉ S && isdependent (y, x)
165151 enqueue! (q, y)
166152 push! (S, y)
167153 end
168154end
169155
170- function enqueue_expr_ex ! (S, eq:: SymbolicUtils.Add , x)
156+ function enqueue_expr ! (S, eq:: SymbolicUtils.Add , x)
171157 for t in arguments (eq)
172- enqueue_expr_ex ! (S, t, x)
158+ enqueue_expr ! (S, t, x)
173159 end
174160end
175161
176- function enqueue_expr_ex ! (S, eq, x)
162+ function enqueue_expr ! (S, eq, x)
177163 y = eq / coef (eq, x)
178164 if y ∉ S && isdependent (y, x)
179165 push! (S, y)
180166 end
181167end
182-
183- # ##############################################################################
184-
185- extract_power (eq:: SymbolicUtils.Pow ) = [arguments (eq)[2 ]]
186- extract_power (eq:: SymbolicUtils.Term ) = [1 ]
187- extract_power (eq:: SymbolicUtils.Mul ) = union ([extract_power (t) for t in arguments (eq)]. .. )
188- extract_power (eq) = []
0 commit comments