/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.10
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package org.quantlib;

public class Gaussian1dModel {
  private transient long swigCPtr;
  protected transient boolean swigCMemOwn;

  protected Gaussian1dModel(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  protected static long getCPtr(Gaussian1dModel obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        QuantLibJNI.delete_Gaussian1dModel(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  public SWIGTYPE_p_Gaussian1dModel __deref__() {
    long cPtr = QuantLibJNI.Gaussian1dModel___deref__(swigCPtr, this);
    return (cPtr == 0) ? null : new SWIGTYPE_p_Gaussian1dModel(cPtr, false);
  }

  public boolean isNull() {
    return QuantLibJNI.Gaussian1dModel_isNull(swigCPtr, this);
  }

  public Gaussian1dModel() {
    this(QuantLibJNI.new_Gaussian1dModel(), true);
  }

  public StochasticProcess1D stateProcess() {
    return new StochasticProcess1D(QuantLibJNI.Gaussian1dModel_stateProcess(swigCPtr, this), true);
  }

  public double numeraire(double t, double y, YieldTermStructureHandle yts) {
    return QuantLibJNI.Gaussian1dModel_numeraire__SWIG_0(swigCPtr, this, t, y, YieldTermStructureHandle.getCPtr(yts), yts);
  }

  public double numeraire(double t, double y) {
    return QuantLibJNI.Gaussian1dModel_numeraire__SWIG_1(swigCPtr, this, t, y);
  }

  public double numeraire(double t) {
    return QuantLibJNI.Gaussian1dModel_numeraire__SWIG_2(swigCPtr, this, t);
  }

  public double numeraire(Date referenceDate, double y, YieldTermStructureHandle yts) {
    return QuantLibJNI.Gaussian1dModel_numeraire__SWIG_3(swigCPtr, this, Date.getCPtr(referenceDate), referenceDate, y, YieldTermStructureHandle.getCPtr(yts), yts);
  }

  public double numeraire(Date referenceDate, double y) {
    return QuantLibJNI.Gaussian1dModel_numeraire__SWIG_4(swigCPtr, this, Date.getCPtr(referenceDate), referenceDate, y);
  }

  public double numeraire(Date referenceDate) {
    return QuantLibJNI.Gaussian1dModel_numeraire__SWIG_5(swigCPtr, this, Date.getCPtr(referenceDate), referenceDate);
  }

  public double zerobond(double T, double t, double y, YieldTermStructureHandle yts) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_0(swigCPtr, this, T, t, y, YieldTermStructureHandle.getCPtr(yts), yts);
  }

  public double zerobond(double T, double t, double y) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_1(swigCPtr, this, T, t, y);
  }

  public double zerobond(double T, double t) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_2(swigCPtr, this, T, t);
  }

  public double zerobond(double T) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_3(swigCPtr, this, T);
  }

  public double zerobond(Date maturity, Date referenceDate, double y, YieldTermStructureHandle yts) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_4(swigCPtr, this, Date.getCPtr(maturity), maturity, Date.getCPtr(referenceDate), referenceDate, y, YieldTermStructureHandle.getCPtr(yts), yts);
  }

  public double zerobond(Date maturity, Date referenceDate, double y) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_5(swigCPtr, this, Date.getCPtr(maturity), maturity, Date.getCPtr(referenceDate), referenceDate, y);
  }

  public double zerobond(Date maturity, Date referenceDate) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_6(swigCPtr, this, Date.getCPtr(maturity), maturity, Date.getCPtr(referenceDate), referenceDate);
  }

  public double zerobond(Date maturity) {
    return QuantLibJNI.Gaussian1dModel_zerobond__SWIG_7(swigCPtr, this, Date.getCPtr(maturity), maturity);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike, Date referenceDate, double y, YieldTermStructureHandle yts, double yStdDevs, long yGridPoints, boolean extrapolatePayoff, boolean flatPayoffExtrapolation) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_0(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike, Date.getCPtr(referenceDate), referenceDate, y, YieldTermStructureHandle.getCPtr(yts), yts, yStdDevs, yGridPoints, extrapolatePayoff, flatPayoffExtrapolation);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike, Date referenceDate, double y, YieldTermStructureHandle yts, double yStdDevs, long yGridPoints, boolean extrapolatePayoff) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_1(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike, Date.getCPtr(referenceDate), referenceDate, y, YieldTermStructureHandle.getCPtr(yts), yts, yStdDevs, yGridPoints, extrapolatePayoff);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike, Date referenceDate, double y, YieldTermStructureHandle yts, double yStdDevs, long yGridPoints) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_2(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike, Date.getCPtr(referenceDate), referenceDate, y, YieldTermStructureHandle.getCPtr(yts), yts, yStdDevs, yGridPoints);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike, Date referenceDate, double y, YieldTermStructureHandle yts, double yStdDevs) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_3(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike, Date.getCPtr(referenceDate), referenceDate, y, YieldTermStructureHandle.getCPtr(yts), yts, yStdDevs);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike, Date referenceDate, double y, YieldTermStructureHandle yts) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_4(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike, Date.getCPtr(referenceDate), referenceDate, y, YieldTermStructureHandle.getCPtr(yts), yts);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike, Date referenceDate, double y) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_5(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike, Date.getCPtr(referenceDate), referenceDate, y);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike, Date referenceDate) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_6(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike, Date.getCPtr(referenceDate), referenceDate);
  }

  public double zerobondOption(Option.Type type, Date expiry, Date valueDate, Date maturity, double strike) {
    return QuantLibJNI.Gaussian1dModel_zerobondOption__SWIG_7(swigCPtr, this, type.swigValue(), Date.getCPtr(expiry), expiry, Date.getCPtr(valueDate), valueDate, Date.getCPtr(maturity), maturity, strike);
  }

  public double forwardRate(Date fixing, Date referenceDate, double y, SWIGTYPE_p_boost__shared_ptrT_IborIndex_t iborIdx) {
    return QuantLibJNI.Gaussian1dModel_forwardRate__SWIG_0(swigCPtr, this, Date.getCPtr(fixing), fixing, Date.getCPtr(referenceDate), referenceDate, y, SWIGTYPE_p_boost__shared_ptrT_IborIndex_t.getCPtr(iborIdx));
  }

  public double forwardRate(Date fixing, Date referenceDate, double y) {
    return QuantLibJNI.Gaussian1dModel_forwardRate__SWIG_1(swigCPtr, this, Date.getCPtr(fixing), fixing, Date.getCPtr(referenceDate), referenceDate, y);
  }

  public double forwardRate(Date fixing, Date referenceDate) {
    return QuantLibJNI.Gaussian1dModel_forwardRate__SWIG_2(swigCPtr, this, Date.getCPtr(fixing), fixing, Date.getCPtr(referenceDate), referenceDate);
  }

  public double forwardRate(Date fixing) {
    return QuantLibJNI.Gaussian1dModel_forwardRate__SWIG_3(swigCPtr, this, Date.getCPtr(fixing), fixing);
  }

  public double swapRate(Date fixing, Period tenor, Date referenceDate, double y, SWIGTYPE_p_boost__shared_ptrT_SwapIndex_t swapIdx) {
    return QuantLibJNI.Gaussian1dModel_swapRate__SWIG_0(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor, Date.getCPtr(referenceDate), referenceDate, y, SWIGTYPE_p_boost__shared_ptrT_SwapIndex_t.getCPtr(swapIdx));
  }

  public double swapRate(Date fixing, Period tenor, Date referenceDate, double y) {
    return QuantLibJNI.Gaussian1dModel_swapRate__SWIG_1(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor, Date.getCPtr(referenceDate), referenceDate, y);
  }

  public double swapRate(Date fixing, Period tenor, Date referenceDate) {
    return QuantLibJNI.Gaussian1dModel_swapRate__SWIG_2(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor, Date.getCPtr(referenceDate), referenceDate);
  }

  public double swapRate(Date fixing, Period tenor) {
    return QuantLibJNI.Gaussian1dModel_swapRate__SWIG_3(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor);
  }

  public double swapAnnuity(Date fixing, Period tenor, Date referenceDate, double y, SWIGTYPE_p_boost__shared_ptrT_SwapIndex_t swapIdx) {
    return QuantLibJNI.Gaussian1dModel_swapAnnuity__SWIG_0(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor, Date.getCPtr(referenceDate), referenceDate, y, SWIGTYPE_p_boost__shared_ptrT_SwapIndex_t.getCPtr(swapIdx));
  }

  public double swapAnnuity(Date fixing, Period tenor, Date referenceDate, double y) {
    return QuantLibJNI.Gaussian1dModel_swapAnnuity__SWIG_1(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor, Date.getCPtr(referenceDate), referenceDate, y);
  }

  public double swapAnnuity(Date fixing, Period tenor, Date referenceDate) {
    return QuantLibJNI.Gaussian1dModel_swapAnnuity__SWIG_2(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor, Date.getCPtr(referenceDate), referenceDate);
  }

  public double swapAnnuity(Date fixing, Period tenor) {
    return QuantLibJNI.Gaussian1dModel_swapAnnuity__SWIG_3(swigCPtr, this, Date.getCPtr(fixing), fixing, Period.getCPtr(tenor), tenor);
  }

}
