yobx.xshape.simplify_expressions

class yobx.xshape.simplify_expressions.CommonTransformer(expr: str | None = None)[source][source]

Base class for custom AST transformers.

Parameters:

expr – used only for error messages.

class yobx.xshape.simplify_expressions.CommonVisitor(expr: str | None = None)[source][source]

Base class for custom AST visitors.

Parameters:

expr – used only for error messages.

class yobx.xshape.simplify_expressions.ExactMulDivConstantFolderTransformer(expr: str | None = None)[source][source]

Folds integer constants in multiplicative chains with true division, but only when exact (no remainder). Example: 1024*a//2 -> 512*a

class yobx.xshape.simplify_expressions.ExpressionSimplifierAddVisitor(expr: str | None = None)[source][source]

Simplifies expression such as 2*x-x.

generic_visit(node)[source][source]

Called if no explicit visitor function exists for a node.

class yobx.xshape.simplify_expressions.MaxToXorTransformer(expr: str | None = None)[source][source]

Replaces Max(a,b) by a^b.

class yobx.xshape.simplify_expressions.MulDivCancellerTransformer(expr: str | None = None)[source][source]

Simplifies 2*x//2 into x.

class yobx.xshape.simplify_expressions.ReorderCommutativeOpsTransformer(expr: str | None = None)[source][source]

Sorts terms in additions or multiplications b+a -> a+b.

class yobx.xshape.simplify_expressions.SimpleSimpliflyTransformer(expr: str | None = None)[source][source]

Simplifies expressions such as batch^batch, x+0, x*1.

class yobx.xshape.simplify_expressions.SimplifyParensTransformer(expr: str | None = None)[source][source]

To simplify parenthesis.

yobx.xshape.simplify_expressions.simplify_expression(expr: str | int) str | int[source][source]

Simplifies an expression.

yobx.xshape.simplify_expressions.simplify_two_expressions(expr1: str, expr2: str) Dict[str, int][source][source]

Simplifies an expression exp1 == exp2.