<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def rough_time_estimate(m1, m2, flow, fudge_length=1.1, fudge_min=0.02):
 """ A very rough estimate of the duration of the waveform. An estimate of the waveform duration starting from flow. This is intended to be fast but not necessarily accurate. It should be an overestimate of the length. It is derived from a simplification of the 0PN post-newtonian terms and includes a fudge factor for possible ringdown, etc. Parameters m1: float mass of first component object in solar masses m2: float mass of second component object in solar masses flow: float starting frequency of the waveform fudge_length: optional, {1.1, float} Factor to multiply length estimate by to ensure it is a convservative value fudge_min: optional, {0.2, float} Minimum signal duration that can be returned. This should be long enough to encompass the ringdown and errors in the precise end time. Returns ------- time: float Time from flow untill the end of the waveform """

    m = m1 + m2
    msun = m * lal.MTSUN_SI
    t =  5.0 / 256.0 * m * m * msun / (m1 * m2) / \
        (numpy.pi * msun * flow) **  (8.0 / 3.0)

    # fudge factoriness
    return .022 if t < 0 else (t + fudge_min) * fudge_length