/*
* (c) Copyright Christian P. Fries, Germany. All rights reserved. Contact: email@christianfries.com.
*
* Created on 24.01.2016
*/
package net.finmath.montecarlo.interestrate.modelplugins;
import net.finmath.time.TimeDiscretizationInterface;
/**
* Interface for piecewise constant short rate volatility models with
* piecewise constant instantaneous short rate volatility \( t \mapsto \sigma(t) \)
* and piecewise constant short rate mean reversion speed \( t \mapsto a(t) \).
*
* @author Christian Fries
*/
public interface ShortRateVolailityModelInterface {
/**
* Returns the time discretization \( \{ t_{i} \} \) associated
* with the piecewise constant functions.
*
* @return the time discretization \( \{ t_{i} \} \)
*/
TimeDiscretizationInterface getTimeDiscretization();
/**
* Returns the value of \( \sigma(t) \) for \( t_{i} \leq t < t_{i+1} \).
*
* @param timeIndex The index \( i \).
* @return the value of \( \sigma(t) \) for \( t_{i} \leq t < t_{i+1} \)
*/
double getVolatility(int timeIndex);
/**
* Returns the value of \( a(t) \) for \( t_{i} \leq t < t_{i+1} \).
*
* @param timeIndex The index \( i \).
* @return the value of \( a(t) \) for \( t_{i} \leq t < t_{i+1} \)
*/
double getMeanReversion(int timeIndex);
}