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.ExprBase 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
Matrixwith symbols as elements.The
MatrixSymbolhas some issues when one is interested in the elements of the matrix. This function instead creates aMatrixwhere the elements areIndexedinstances.To convert these
Indexedinstances 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() Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]][source]¶
Implement
doit()method for anUnevaluatedExpressionclass.Implement a
doitmethod 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__anddoitmethod for a class that derives fromExpr(viaUnevaluatedExpression).
- implement_new_method(n_args: int) Callable[[Type[UnevaluatedExpression]], Type[UnevaluatedExpression]][source]¶
Implement
__new__()method for anUnevaluatedExpressionclass.Implement a
__new__method for a class that derives fromExpr(viaUnevaluatedExpression).