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 HestonSLVFokkerPlanckFdmParams implements org.quantlib.helpers.QuantLibJNIHelpers.AutoCloseable {
012  private transient long swigCPtr;
013  protected transient boolean swigCMemOwn;
014
015  protected HestonSLVFokkerPlanckFdmParams(long cPtr, boolean cMemoryOwn) {
016    swigCMemOwn = cMemoryOwn;
017    swigCPtr = cPtr;
018  }
019
020  protected static long getCPtr(HestonSLVFokkerPlanckFdmParams obj) {
021    return (obj == null) ? 0 : obj.swigCPtr;
022  }
023
024  protected static long swigRelease(HestonSLVFokkerPlanckFdmParams 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_HestonSLVFokkerPlanckFdmParams(swigCPtr);
046      }
047      swigCPtr = 0;
048    }
049  }
050
051  public HestonSLVFokkerPlanckFdmParams(long xGrid, long vGrid, long tMaxStepsPerYear, long tMinStepsPerYear, double tStepNumberDecay, long nRannacherTimeSteps, long predictionCorretionSteps, double x0Density, double localVolEpsProb, long maxIntegrationIterations, double vLowerEps, double vUpperEps, double vMin, double v0Density, double vLowerBoundDensity, double vUpperBoundDensity, double leverageFctPropEps, FdmHestonGreensFct.Algorithm greensAlgorithm, FdmSquareRootFwdOp.TransformationType trafoType, FdmSchemeDesc schemeDesc) {
052    this(QuantLibJNI.new_HestonSLVFokkerPlanckFdmParams(xGrid, vGrid, tMaxStepsPerYear, tMinStepsPerYear, tStepNumberDecay, nRannacherTimeSteps, predictionCorretionSteps, x0Density, localVolEpsProb, maxIntegrationIterations, vLowerEps, vUpperEps, vMin, v0Density, vLowerBoundDensity, vUpperBoundDensity, leverageFctPropEps, greensAlgorithm.swigValue(), trafoType.swigValue(), FdmSchemeDesc.getCPtr(schemeDesc), schemeDesc), true);
053  }
054
055}