001/* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (https://www.swig.org).
003 * Version 4.1.1
004 *
005 * Do not make changes to this file unless you know what you are doing - modify
006 * the SWIG interface file instead.
007 * ----------------------------------------------------------------------------- */
008
009package org.quantlib;
010
011public class AnalyticHestonEngine_Integration implements org.quantlib.helpers.QuantLibJNIHelpers.AutoCloseable {
012  private transient long swigCPtr;
013  protected transient boolean swigCMemOwn;
014
015  protected AnalyticHestonEngine_Integration(long cPtr, boolean cMemoryOwn) {
016    swigCMemOwn = cMemoryOwn;
017    swigCPtr = cPtr;
018  }
019
020  protected static long getCPtr(AnalyticHestonEngine_Integration obj) {
021    return (obj == null) ? 0 : obj.swigCPtr;
022  }
023
024  protected static long swigRelease(AnalyticHestonEngine_Integration obj) {
025    long ptr = 0;
026    if (obj != null) {
027      if (!obj.swigCMemOwn)
028        throw new RuntimeException("Cannot release ownership as memory is not owned");
029      ptr = obj.swigCPtr;
030      obj.swigCMemOwn = false;
031      obj.delete();
032    }
033    return ptr;
034  }
035
036  @SuppressWarnings("deprecation")
037  protected void finalize() {
038    delete();
039  }
040
041  public synchronized void delete() {
042    if (swigCPtr != 0) {
043      if (swigCMemOwn) {
044        swigCMemOwn = false;
045        QuantLibJNI.delete_AnalyticHestonEngine_Integration(swigCPtr);
046      }
047      swigCPtr = 0;
048    }
049  }
050
051  public static AnalyticHestonEngine_Integration gaussLaguerre(long integrationOrder) {
052    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussLaguerre__SWIG_0(integrationOrder), true);
053  }
054
055  public static AnalyticHestonEngine_Integration gaussLaguerre() {
056    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussLaguerre__SWIG_1(), true);
057  }
058
059  public static AnalyticHestonEngine_Integration gaussLegendre(long integrationOrder) {
060    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussLegendre__SWIG_0(integrationOrder), true);
061  }
062
063  public static AnalyticHestonEngine_Integration gaussLegendre() {
064    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussLegendre__SWIG_1(), true);
065  }
066
067  public static AnalyticHestonEngine_Integration gaussChebyshev(long integrationOrder) {
068    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussChebyshev__SWIG_0(integrationOrder), true);
069  }
070
071  public static AnalyticHestonEngine_Integration gaussChebyshev() {
072    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussChebyshev__SWIG_1(), true);
073  }
074
075  public static AnalyticHestonEngine_Integration gaussChebyshev2nd(long integrationOrder) {
076    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussChebyshev2nd__SWIG_0(integrationOrder), true);
077  }
078
079  public static AnalyticHestonEngine_Integration gaussChebyshev2nd() {
080    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussChebyshev2nd__SWIG_1(), true);
081  }
082
083  public static AnalyticHestonEngine_Integration gaussLobatto(double relTolerance, double absTolerance, long maxEvaluations) {
084    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussLobatto__SWIG_0(relTolerance, absTolerance, maxEvaluations), true);
085  }
086
087  public static AnalyticHestonEngine_Integration gaussLobatto(double relTolerance, double absTolerance) {
088    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussLobatto__SWIG_1(relTolerance, absTolerance), true);
089  }
090
091  public static AnalyticHestonEngine_Integration gaussKronrod(double absTolerance, long maxEvaluations) {
092    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussKronrod__SWIG_0(absTolerance, maxEvaluations), true);
093  }
094
095  public static AnalyticHestonEngine_Integration gaussKronrod(double absTolerance) {
096    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_gaussKronrod__SWIG_1(absTolerance), true);
097  }
098
099  public static AnalyticHestonEngine_Integration simpson(double absTolerance, long maxEvaluations) {
100    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_simpson__SWIG_0(absTolerance, maxEvaluations), true);
101  }
102
103  public static AnalyticHestonEngine_Integration simpson(double absTolerance) {
104    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_simpson__SWIG_1(absTolerance), true);
105  }
106
107  public static AnalyticHestonEngine_Integration trapezoid(double absTolerance, long maxEvaluations) {
108    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_trapezoid__SWIG_0(absTolerance, maxEvaluations), true);
109  }
110
111  public static AnalyticHestonEngine_Integration trapezoid(double absTolerance) {
112    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_trapezoid__SWIG_1(absTolerance), true);
113  }
114
115  public static AnalyticHestonEngine_Integration discreteSimpson(long evaluation) {
116    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_discreteSimpson__SWIG_0(evaluation), true);
117  }
118
119  public static AnalyticHestonEngine_Integration discreteSimpson() {
120    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_discreteSimpson__SWIG_1(), true);
121  }
122
123  public static AnalyticHestonEngine_Integration discreteTrapezoid(long evaluation) {
124    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_discreteTrapezoid__SWIG_0(evaluation), true);
125  }
126
127  public static AnalyticHestonEngine_Integration discreteTrapezoid() {
128    return new AnalyticHestonEngine_Integration(QuantLibJNI.AnalyticHestonEngine_Integration_discreteTrapezoid__SWIG_1(), true);
129  }
130
131  public static double andersenPiterbargIntegrationLimit(double c_inf, double epsilon, double v0, double t) {
132    return QuantLibJNI.AnalyticHestonEngine_Integration_andersenPiterbargIntegrationLimit(c_inf, epsilon, v0, t);
133  }
134
135  public double calculate(double c_inf, SWIGTYPE_p_ext__functionT_double_fdoubleF_t f, double maxBound) {
136    return QuantLibJNI.AnalyticHestonEngine_Integration_calculate__SWIG_0(swigCPtr, this, c_inf, SWIGTYPE_p_ext__functionT_double_fdoubleF_t.getCPtr(f), maxBound);
137  }
138
139  public double calculate(double c_inf, SWIGTYPE_p_ext__functionT_double_fdoubleF_t f) {
140    return QuantLibJNI.AnalyticHestonEngine_Integration_calculate__SWIG_1(swigCPtr, this, c_inf, SWIGTYPE_p_ext__functionT_double_fdoubleF_t.getCPtr(f));
141  }
142
143  public long numberOfEvaluations() {
144    return QuantLibJNI.AnalyticHestonEngine_Integration_numberOfEvaluations(swigCPtr, this);
145  }
146
147  public boolean isAdaptiveIntegration() {
148    return QuantLibJNI.AnalyticHestonEngine_Integration_isAdaptiveIntegration(swigCPtr, this);
149  }
150
151}