public SwaptionVolatilityMatrix(
Calendar calendar,
BusinessDayConvention bdc,
List<Period> optionTenors,
List<Period> swapTenors,
Matrix vols,
DayCounter dayCounter)
: base(optionTenors, swapTenors, 0, calendar, bdc, dayCounter)
{
volHandles_ = new InitializedList<List<Handle<Quote>>>(vols.rows());
volatilities_ = new Matrix(vols.rows(), vols.columns());
checkInputs(vols.rows(), vols.columns());
// fill dummy handles to allow generic handle-based
// computations later on
for (int i=0; i<vols.rows(); ++i) {
volHandles_[i] = new InitializedList<Handle<Quote>>(vols.columns());
for (int j=0; j<vols.columns(); ++j)
volHandles_[i][j] = new Handle<Quote>((new
SimpleQuote(vols[i,j])));
}
interpolation_ =
new BilinearInterpolation(swapLengths_, swapLengths_.Count,
optionTimes_, optionTimes_.Count,
volatilities_);
}