Пример #1
0
    def visit_assignment(self, assignment, **kwargs):
        prefix = kwargs.get('prefix', '')
        prefix_excludes = kwargs.get('prefix_excludes', [])

        lhs = self.prefix_variable(assignment.lhs, **kwargs)
        rhs = MathUtil.get_prefixed_rhs_string(
            expr_obj=assignment, prefix=prefix, exclude=prefix_excludes)

        return assignment.__class__(lhs=lhs, rhs=rhs)
Пример #2
0
    def visit_timederivative(self, time_derivative, **kwargs):
        prefix = kwargs.get('prefix', '')
        prefix_excludes = kwargs.get('prefix_excludes', [])

        dep = self.prefix_variable(time_derivative.dependent_variable, **kwargs)

        rhs = MathUtil.get_prefixed_rhs_string(
            expr_obj=time_derivative, prefix=prefix, exclude=prefix_excludes)
        return time_derivative.__class__(dependent_variable=dep, rhs=rhs)
Пример #3
0
    def test_get_prefixed_rhs_string(self):
        # Signature: name(cls, expr_obj, prefix='', exclude=None)
        # No Docstring
        # from nineml.abstraction_layer.component.util import MathUtil

        e = StrToExpr.alias("a := b*c + d/(e*sin(f+g/e)) + b1 + e_ / exp(12*g)")

        rhs_sub = MathUtil.get_prefixed_rhs_string(e, prefix="U_", exclude=["c", "e_"])
        self.assertEqual(rhs_sub, "U_b*c + U_d/(e*sin(U_f+U_g/e)) + U_b1 + e_ / exp(12*U_g)")
Пример #4
0
 def visit_condition(self, condition, **kwargs):
     prefix = kwargs.get('prefix', '')
     prefix_excludes = kwargs.get('prefix_excludes', [])
     rhs = MathUtil.get_prefixed_rhs_string(
         expr_obj=condition, prefix=prefix, exclude=prefix_excludes)
     return condition.__class__(rhs=rhs)