def multiplies_var(main_var: basic.Basic, arb_var: basic.Basic, expr: basic.Basic) -> bool: """ This function takes in the following parameters: main_var [sympy.core.basic.Basic]: the main variable arb_var [sympy.core.basic.Basic]: an arbitrary variable expr [sympy.core.basic.Basic]: an algebraic expression Check to see if an arbitrary variable multiplies a sub expression that contains the main variable. If it does, return True else False. The following examples should clarify what this function does: >>> expr = parse_expr("a*sinh(k*x) + c") >>> multiplies_var(abc.x, abc.a, expr) True >>> multiplies_var(abc.x, abc.k, expr) True >>> multiplies_var(abc.x, abc.b, expr) False >>> expr = parse_expr("w*a**pi*sin(k**10*tan(y*x)*z) + d + e**10*tan(f)") >>> multiplies_var(abc.x, abc.w, expr) True >>> multiplies_var(abc.x, abc.a, expr) True >>> multiplies_var(abc.x, abc.k, expr) True >>> multiplies_var(abc.x, abc.z, expr) True >>> multiplies_var(abc.x, abc.y, expr) True >>> multiplies_var(abc.x, abc.d, expr) False >>> multiplies_var(abc.x, abc.e, expr) False >>> multiplies_var(abc.x, abc.f, expr) False """ arg_list = [] for arg1 in expr.args: if arg1.has(main_var): arg_list.append(arg1) for arg2 in expr.args: if ((arg2 is arb_var or (arg2.is_Pow and arg2.has(arb_var))) and expr.has(arg1 * arg2)): return True return any([ multiplies_var(main_var, arb_var, arg) for arg in arg_list if (arg is not main_var) ])
def multiplies_var(main_var: basic.Basic, arb_var: basic.Basic, expr: basic.Basic) -> bool: arg_list = [] for arg1 in expr.args: if arg1.has(main_var): arg_list.append(arg1) for arg2 in expr.args: if ((arg2 is arb_var or (arg2.is_Pow and arg2.has(arb_var))) and expr.has(arg1 * arg2)): return True return any([ multiplies_var(main_var, arb_var, arg) for arg in arg_list if (arg is not main_var) ])
def multiplies_var(main_var: basic.Basic, arb_var: basic.Basic, expr: basic.Basic) -> bool: """ This function takes in the following parameters: main_var [sympy.core.basic.Basic]: the main variable arb_var [sympy.core.basic.Basic]: an arbitrary variable expr [sympy.core.basic.Basic]: an algebraic expression Check to see if an arbitrary variable multiplies a sub expression that contains the main variable. If it does, return True else False. """ arg_list = [] for arg1 in expr.args: if arg1.has(main_var): arg_list.append(arg1) for arg2 in expr.args: if ((arg2 is arb_var or (arg2.is_Pow and arg2.has(arb_var))) and expr.has(arg1 * arg2)): return True return any([ multiplies_var(main_var, arb_var, arg) for arg in arg_list if (arg is not main_var) ])