sympy¶
import ampform.sympy
Tools that facilitate in building sympy
expressions.
- class UnevaluatedExpression(*args: Any, name: Optional[str] = None, **hints: Any)[source]¶
Bases:
sympy.core.expr.Expr
Base class for classes that expressions with an
evaluate()
method.Derive from this class when decorating a class with
implement_expr()
orimplement_doit_method()
. It is important to derive fromUnevaluatedExpression
, because anevaluate()
method has to be implemented.
- create_expression(cls: Type[UnevaluatedExpression], *args: Any, evaluate: bool = False, name: Optional[str] = None, **kwargs: Any) Expr [source]¶
Helper function for implementing
Expr.__new__
.See e.g. source code of
BlattWeisskopfSquared
.
- create_symbol_matrix(name: str, m: int, n: int) MutableDenseMatrix [source]¶
Create a
Matrix
with symbols as elements.The
MatrixSymbol
has some issues when one is interested in the elements of the matrix. This function instead creates aMatrix
where the elements areIndexed
instances.To convert these
Indexed
instances to aSymbol
, usesymplot.substitute_indexed_symbols()
.>>> create_symbol_matrix("A", m=2, n=3) Matrix([ [A[0, 0], A[0, 1], A[0, 2]], [A[1, 0], A[1, 1], A[1, 2]]])
- implement_doit_method(decorated_class: Type[UnevaluatedExpression]) Type[UnevaluatedExpression] [source]¶
Implement
doit()
method for anUnevaluatedExpression
class.Implement a
doit
method for a class that derives fromExpr
(viaUnevaluatedExpression
).
- implement_expr(n_args: int) Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]] [source]¶
Decorator for classes that derive from
UnevaluatedExpression
.Implement a
__new__
anddoit
method for a class that derives fromExpr
(viaUnevaluatedExpression
).
- implement_new_method(n_args: int) Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]] [source]¶
Implement
__new__()
method for anUnevaluatedExpression
class.Implement a
__new__
method for a class that derives fromExpr
(viaUnevaluatedExpression
).
- make_commutative() Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]] [source]¶
Submodules and Subpackages