File tree Expand file tree Collapse file tree 3 files changed +25
-2
lines changed Expand file tree Collapse file tree 3 files changed +25
-2
lines changed Original file line number Diff line number Diff line change 1- export PolyForm, simplify_fractions
1+ export PolyForm, simplify_fractions, quick_cancel
22using Bijections
33using DynamicPolynomials: PolyVar
44
@@ -341,6 +341,27 @@ function quick_cancel(x::Mul, y)
341341 end
342342end
343343
344+ function quick_cancel (x:: Mul , y:: Pow )
345+ if haskey (x. dict, y. base)
346+ d = copy (x. dict)
347+ if x. dict[y. base] > y. exp
348+ d[y. base] -= y. exp
349+ den = 1
350+ elseif x. dict[y. base] == y. exp
351+ delete! (d, y. base)
352+ den = 1
353+ else
354+ den = Pow {symtype(y)} (y. base, y. exp- d[y. base])
355+ delete! (d, y. base)
356+ end
357+ return Mul (symtype (x), x. coeff, d), den
358+ else
359+ return x, y
360+ end
361+ end
362+
363+ quick_cancel (x:: Pow , y:: Mul ) = reverse (quick_cancel (y,x))
364+
344365quick_cancel (y, x:: Mul ) = reverse (quick_cancel (x,y))
345366
346367function quick_cancel (x:: Mul , y:: Mul )
Original file line number Diff line number Diff line change 4343 @eqtest simplify_fractions (2 x^ 3 * y / x) == 2 y* x^ 2
4444 @eqtest simplify_fractions (x / (3 (x^ 3 )* y)) == simplify_fractions (1 / (3 * (y* x^ 2 )))
4545 @eqtest simplify_fractions (2 x / (3 (x^ 3 )* y)) == simplify_fractions (2 / (3 * (y* x^ 2 )))
46+ @eqtest simplify_fractions (x^ 2 / (3 (x^ 3 )* y)) == simplify_fractions (1 / (3 * (y* x)))
47+ @eqtest simplify_fractions ((3 (x^ 3 )* y) / x^ 2 ) == simplify_fractions (3 * (y* x))
4648end
Original file line number Diff line number Diff line change 4242 @eqtest simplify (a + b + 0 * c + d) == simplify (a + b + d)
4343 @eqtest simplify (a * b * c^ 0 * d) == simplify (a * b * d)
4444 @eqtest simplify (a * b * 1 * c * d) == simplify (a * b * c * d)
45- @eqtest repr ( simplify_fractions (x^ 2.0 / (x* y)^ 2.0 )) == " 1 / (y^2.0)"
45+ @eqtest simplify_fractions (x^ 2.0 / (x* y)^ 2.0 ) == simplify_fractions ( 1 / (y^ 2.0 ))
4646
4747 @test simplify (Term (one, [a])) == 1
4848 @test simplify (Term (one, [b+ 1 ])) == 1
You can’t perform that action at this time.
0 commit comments