def extract_intersection(m): ma = pc.MulplicityList(m[s.x], pc.multiplication_group, pc.exponentiation, pc.real_field) mb = pc.MulplicityList(m[s.y], pc.multiplication_group, pc.exponentiation, pc.real_field) common = ma.intersection(mb) if len(common) == 0: return False m[s.a] = (ma - common).as_expression() m[s.b] = (mb - common).as_expression() m[s.c] = common.as_expression()
def evaluate_fraction(m): ex, ey = m[s.x], m[s.y]**m[s.n] ma = pc.MulplicityList(ex, pc.multiplication_group, pc.exponentiation, pc.real_field) mb = pc.MulplicityList(ey, pc.multiplication_group, pc.exponentiation, pc.real_field) mbs = {k for k, v in mb} valid = False if not valid: for k, v in ma: if k in mbs: valid = True break if valid: break if valid == False: return False m[s.c] = (ma + mb).as_expression()