public FixedLocalVolSurface(Date referenceDate, List <double> times, List <double> strikes, Matrix localVolMatrix, DayCounter dayCounter, Extrapolation lowerExtrapolation = Extrapolation.ConstantExtrapolation, Extrapolation upperExtrapolation = Extrapolation.ConstantExtrapolation) : base(referenceDate, null, BusinessDayConvention.Following, dayCounter) { maxDate_ = Utils.time2Date(referenceDate, dayCounter, times.Last()); times_ = times; localVolMatrix_ = localVolMatrix; strikes_ = new InitializedList <List <double> >(times.Count, new List <double>(strikes)); localVolInterpol_ = new List <Interpolation>(); lowerExtrapolation_ = lowerExtrapolation; upperExtrapolation_ = upperExtrapolation; Utils.QL_REQUIRE(times[0] >= 0.0, () => "cannot have times[0] < 0"); checkSurface(); setInterpolation <Linear>(); }