def METHOD_NAME(equation, sols):
    rhss = {}
    tst.report('%s:' % equation.name)
    tst.report('evaluating terms, "<=" is solution, "=>" is the rhs:')
    for term in equation.terms:
        if not hasattr(term, 'symbolic'):
            tst.report('term %s has no symbolic description!' % term.name)
            raise ValueError
        expr = term.symbolic['expression']
        arg_map = term.symbolic['map']
        tst.report('%s(%s)' % (term.name, ', '.join(term.ats)))
        tst.report('multiplicator: %f' % term.sign)
        tst.report('  symbolic:', expr)
        tst.report('  using argument map:', arg_map)
        for sol_name, sol in sols.items():
            rhs = _eval_term(sol[1], term, sops)
            srhs = "(%s * (%s))" % (term.sign, rhs)
            rhss.setdefault(sol_name, []).append(srhs)
    for key, val in rhss.items():
        rhss[key] = '+'.join(val)
    return rhss