def capital_repaid(i, n, t, P): return P * compound.v(i, n - t)
def Price(i, n, coupon, redemption): return coupon * annuity.a(i, n) + redemption * compound.v(i, n)
def capital_gain(i, p, t1, t2, D, R, n): if compound.i_p(i, p) * R > D * (1 - t1): return 1 - t2 * compound.v(i, n) else: return 1
def interest_due(i, n, t, P): return P * (1 - compound.v(i, n - t))
def price(i, p, n, R, D, t1, t2): factor = capital_gain(i, p, t1, t2, D, R, n) return ((1 - t1) * D * a_n_p(i, n, p) + R * compound.v(i, n)) / factor
def I_a_const_rate(i, n, r): i_dash = (i - r) / (1 + r) return compound.v(i, 1) * a_due(i_dash, n)
def I_cont_a(i, n): return (a_cont(i, n) - n * compound.v(i, n)) / compound.delta(i)
def a(i, n): return (1 - compound.v(i, n)) / i
def I_a(i, n): return (a_due(i, n) - n * compound.v(i, n)) / i