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 FdmSchemeDesc implements org.quantlib.helpers.QuantLibJNIHelpers.AutoCloseable { 012 private transient long swigCPtr; 013 protected transient boolean swigCMemOwn; 014 015 protected FdmSchemeDesc(long cPtr, boolean cMemoryOwn) { 016 swigCMemOwn = cMemoryOwn; 017 swigCPtr = cPtr; 018 } 019 020 protected static long getCPtr(FdmSchemeDesc obj) { 021 return (obj == null) ? 0 : obj.swigCPtr; 022 } 023 024 protected static long swigRelease(FdmSchemeDesc 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_FdmSchemeDesc(swigCPtr); 046 } 047 swigCPtr = 0; 048 } 049 } 050 051 public FdmSchemeDesc(FdmSchemeDesc.FdmSchemeType type, double theta, double mu) { 052 this(QuantLibJNI.new_FdmSchemeDesc(type.swigValue(), theta, mu), true); 053 } 054 055 public FdmSchemeDesc.FdmSchemeType getType() { 056 return FdmSchemeDesc.FdmSchemeType.swigToEnum(QuantLibJNI.FdmSchemeDesc_type_get(swigCPtr, this)); 057 } 058 059 public double getTheta() { 060 return QuantLibJNI.FdmSchemeDesc_theta_get(swigCPtr, this); 061 } 062 063 public double getMu() { 064 return QuantLibJNI.FdmSchemeDesc_mu_get(swigCPtr, this); 065 } 066 067 public static FdmSchemeDesc Douglas() { 068 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_Douglas(), true); 069 } 070 071 public static FdmSchemeDesc CrankNicolson() { 072 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_CrankNicolson(), true); 073 } 074 075 public static FdmSchemeDesc ImplicitEuler() { 076 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_ImplicitEuler(), true); 077 } 078 079 public static FdmSchemeDesc ExplicitEuler() { 080 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_ExplicitEuler(), true); 081 } 082 083 public static FdmSchemeDesc CraigSneyd() { 084 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_CraigSneyd(), true); 085 } 086 087 public static FdmSchemeDesc ModifiedCraigSneyd() { 088 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_ModifiedCraigSneyd(), true); 089 } 090 091 public static FdmSchemeDesc Hundsdorfer() { 092 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_Hundsdorfer(), true); 093 } 094 095 public static FdmSchemeDesc ModifiedHundsdorfer() { 096 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_ModifiedHundsdorfer(), true); 097 } 098 099 public static FdmSchemeDesc MethodOfLines(double eps, double relInitStepSize) { 100 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_MethodOfLines__SWIG_0(eps, relInitStepSize), true); 101 } 102 103 public static FdmSchemeDesc MethodOfLines(double eps) { 104 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_MethodOfLines__SWIG_1(eps), true); 105 } 106 107 public static FdmSchemeDesc MethodOfLines() { 108 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_MethodOfLines__SWIG_2(), true); 109 } 110 111 public static FdmSchemeDesc TrBDF2() { 112 return new FdmSchemeDesc(QuantLibJNI.FdmSchemeDesc_TrBDF2(), true); 113 } 114 115 public final static class FdmSchemeType { 116 public final static FdmSchemeDesc.FdmSchemeType HundsdorferType = new FdmSchemeDesc.FdmSchemeType("HundsdorferType"); 117 public final static FdmSchemeDesc.FdmSchemeType DouglasType = new FdmSchemeDesc.FdmSchemeType("DouglasType"); 118 public final static FdmSchemeDesc.FdmSchemeType CraigSneydType = new FdmSchemeDesc.FdmSchemeType("CraigSneydType"); 119 public final static FdmSchemeDesc.FdmSchemeType ModifiedCraigSneydType = new FdmSchemeDesc.FdmSchemeType("ModifiedCraigSneydType"); 120 public final static FdmSchemeDesc.FdmSchemeType ImplicitEulerType = new FdmSchemeDesc.FdmSchemeType("ImplicitEulerType"); 121 public final static FdmSchemeDesc.FdmSchemeType ExplicitEulerType = new FdmSchemeDesc.FdmSchemeType("ExplicitEulerType"); 122 public final static FdmSchemeDesc.FdmSchemeType MethodOfLinesType = new FdmSchemeDesc.FdmSchemeType("MethodOfLinesType"); 123 public final static FdmSchemeDesc.FdmSchemeType TrBDF2Type = new FdmSchemeDesc.FdmSchemeType("TrBDF2Type"); 124 public final static FdmSchemeDesc.FdmSchemeType CrankNicolsonType = new FdmSchemeDesc.FdmSchemeType("CrankNicolsonType"); 125 126 public final int swigValue() { 127 return swigValue; 128 } 129 130 public String toString() { 131 return swigName; 132 } 133 134 public static FdmSchemeType swigToEnum(int swigValue) { 135 if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue) 136 return swigValues[swigValue]; 137 for (int i = 0; i < swigValues.length; i++) 138 if (swigValues[i].swigValue == swigValue) 139 return swigValues[i]; 140 throw new IllegalArgumentException("No enum " + FdmSchemeType.class + " with value " + swigValue); 141 } 142 143 private FdmSchemeType(String swigName) { 144 this.swigName = swigName; 145 this.swigValue = swigNext++; 146 } 147 148 private FdmSchemeType(String swigName, int swigValue) { 149 this.swigName = swigName; 150 this.swigValue = swigValue; 151 swigNext = swigValue+1; 152 } 153 154 private FdmSchemeType(String swigName, FdmSchemeType swigEnum) { 155 this.swigName = swigName; 156 this.swigValue = swigEnum.swigValue; 157 swigNext = this.swigValue+1; 158 } 159 160 private static FdmSchemeType[] swigValues = { HundsdorferType, DouglasType, CraigSneydType, ModifiedCraigSneydType, ImplicitEulerType, ExplicitEulerType, MethodOfLinesType, TrBDF2Type, CrankNicolsonType }; 161 private static int swigNext = 0; 162 private final int swigValue; 163 private final String swigName; 164 } 165 166}