MCPcopy Index your code
hub / github.com/SLiCAP/SLiCAP_python / assumePosParams

Function assumePosParams

SLiCAP/SLiCAPmath.py:697–734  ·  view source on GitHub ↗

Returns the sympy expression 'expr' in which variables, except the Laplace variable, have been redefined as positive. :param expr: Sympy expression :type expr: sympy.Expr, sympy.Symbol :param params: List with variable names (*str*), or 'all' or a variable name (*str*). :

(expr, params='all')

Source from the content-addressed store, hash-verified

695 return expr
696
697def assumePosParams(expr, params='all'):
698 """
699 Returns the sympy expression 'expr' in which variables, except the
700 Laplace variable, have been redefined as positive.
701
702 :param expr: Sympy expression
703 :type expr: sympy.Expr, sympy.Symbol
704
705 :param params: List with variable names (*str*), or 'all' or a variable name (*str*).
706 :type params: list, str
707
708 :return: Expression with redefined variables.
709 :rtype: sympy.Expr, sympy.Symbol
710 """
711 if type(params) == list:
712 for i in range(len(params)):
713 if params[i] == 't':
714 expr = expr.replace(sp.Heaviside(sp.Symbol('t')), 1)
715 expr = expr.xreplace(
716 {sp.Symbol(params[i]): sp.Symbol(params[i], positive=True)})
717 elif type(params) == str:
718 if params == 'all':
719 params = list(expr.atoms(sp.Symbol))
720 for param in params:
721 if param != ini.laplace and param != ini.frequency:
722 if param == sp.Symbol('t'):
723 expr = expr.replace(sp.Heaviside(sp.Symbol('t')), 1)
724 expr = expr.xreplace(
725 {param: sp.Symbol(str(param), positive=True)})
726 elif params == 't':
727 expr = expr.replace(sp.Heaviside(sp.Symbol('t')), 1)
728 else:
729 expr = expr.xreplace(
730 {sp.Symbol(params): sp.Symbol(params, positive=True)})
731 else:
732 print("Error: expected type 'str' or 'lst', got '{0}'.".format(
733 type(params)))
734 return expr
735
736def clearAssumptions(expr, params='all'):
737 """

Callers 2

_doCDSintFunction · 0.85
_doVarNoiseDataFunction · 0.85

Calls 1

formatMethod · 0.80

Tested by

no test coverage detected