/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.12
 *
 * 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 NoArbSabrInterpolatedSmileSection extends SmileSection {
  private transient long swigCPtr;

  protected NoArbSabrInterpolatedSmileSection(long cPtr, boolean cMemoryOwn) {
    super(QuantLibJNI.NoArbSabrInterpolatedSmileSection_SWIGUpcast(cPtr), cMemoryOwn);
    swigCPtr = cPtr;
  }

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

  protected void finalize() {
    delete();
  }

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

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t endCriteria, SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t method, DayCounter dc) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_0(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t.getCPtr(endCriteria), SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t.getCPtr(method), DayCounter.getCPtr(dc), dc), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t endCriteria, SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t method) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_1(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t.getCPtr(endCriteria), SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t.getCPtr(method)), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t endCriteria) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_2(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t.getCPtr(endCriteria)), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_3(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_4(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_5(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_6(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho, boolean isAlphaFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_7(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho, isAlphaFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, QuoteHandle forward, DoubleVector strikes, boolean hasFloatingStrikes, QuoteHandle atmVolatility, QuoteHandleVector volHandles, double alpha, double beta, double nu, double rho) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_8(Date.getCPtr(optionDate), optionDate, QuoteHandle.getCPtr(forward), forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, QuoteHandle.getCPtr(atmVolatility), atmVolatility, QuoteHandleVector.getCPtr(volHandles), volHandles, alpha, beta, nu, rho), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t endCriteria, SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t method, DayCounter dc) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_9(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t.getCPtr(endCriteria), SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t.getCPtr(method), DayCounter.getCPtr(dc), dc), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t endCriteria, SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t method) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_10(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t.getCPtr(endCriteria), SWIGTYPE_p_boost__shared_ptrT_OptimizationMethod_t.getCPtr(method)), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t endCriteria) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_11(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted, SWIGTYPE_p_boost__shared_ptrT_EndCriteria_t.getCPtr(endCriteria)), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed, boolean vegaWeighted) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_12(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed, vegaWeighted), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed, boolean isRhoFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_13(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed, isRhoFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed, boolean isNuFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_14(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed, isNuFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed, boolean isBetaFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_15(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed, isBetaFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho, boolean isAlphaFixed) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_16(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho, isAlphaFixed), true);
  }

  public NoArbSabrInterpolatedSmileSection(Date optionDate, double forward, DoubleVector strikes, boolean hasFloatingStrikes, double atmVolatility, DoubleVector vols, double alpha, double beta, double nu, double rho) {
    this(QuantLibJNI.new_NoArbSabrInterpolatedSmileSection__SWIG_17(Date.getCPtr(optionDate), optionDate, forward, DoubleVector.getCPtr(strikes), strikes, hasFloatingStrikes, atmVolatility, DoubleVector.getCPtr(vols), vols, alpha, beta, nu, rho), true);
  }

  public double alpha() {
    return QuantLibJNI.NoArbSabrInterpolatedSmileSection_alpha(swigCPtr, this);
  }

  public double beta() {
    return QuantLibJNI.NoArbSabrInterpolatedSmileSection_beta(swigCPtr, this);
  }

  public double nu() {
    return QuantLibJNI.NoArbSabrInterpolatedSmileSection_nu(swigCPtr, this);
  }

  public double rho() {
    return QuantLibJNI.NoArbSabrInterpolatedSmileSection_rho(swigCPtr, this);
  }

  public double rmsError() {
    return QuantLibJNI.NoArbSabrInterpolatedSmileSection_rmsError(swigCPtr, this);
  }

  public double maxError() {
    return QuantLibJNI.NoArbSabrInterpolatedSmileSection_maxError(swigCPtr, this);
  }

  public EndCriteria.Type endCriteria() {
    return EndCriteria.Type.swigToEnum(QuantLibJNI.NoArbSabrInterpolatedSmileSection_endCriteria(swigCPtr, this));
  }

}
