def _tf_polynomial_to_string(coeffs, var='s'):
    """Convert a transfer function polynomial to a string"""
    thestr = '0'
    N = len(coeffs) - 1
    for k in range(len(coeffs)):
        coefstr = '%.4g' % abs(coeffs[k])
        if coefstr[-4:] == '0000':
            coefstr = coefstr[:-5]
        power = N - k
        if power == 0:
            if coefstr != '0':
                newstr = '%s' % (coefstr,)
            elif k == 0:
                newstr = '0'
            else:
                newstr = ''
        elif power == 1:
            if coefstr == '0':
                newstr = ''
            elif coefstr == '1':
                newstr = var
            else:
                newstr = '%s %s' % (coefstr, var)
        elif coefstr == '0':
            newstr = ''
        elif coefstr == '1':
            newstr = '%s^%d' % (var, power)
        else:
            newstr = '%s %s^%d' % (coefstr, var, power)
        if k > 0:
            if newstr != '':
                if coeffs[k] < 0:
                    thestr = '%s - %s' % (thestr, newstr)
                else:
                    thestr = '%s + %s' % (thestr, newstr)
        elif k == 0 and newstr != '' and coeffs[k] < 0:
            thestr = '-%s' % (newstr,)
        else:
            thestr = newstr
    return thestr
