Package jline.lib.lti
Class iltcme
java.lang.Object
jline.lib.lti.iltcme
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classOne row of the pre-computed CME parameter table. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe evaluation budget used when a caller does not name one. -
Method Summary
Modifier and TypeMethodDescriptionstatic double[]ilt(UnaryOperator<org.apache.commons.math3.complex.Complex> fun, double[] T) ilt with the default budget and the default "cme" method.static double[]ilt(UnaryOperator<org.apache.commons.math3.complex.Complex> fun, double[] T, int maxFnEvals) ILT with the default method "cme".static double[]ilt(UnaryOperator<org.apache.commons.math3.complex.Complex> fun, double[] T, int maxFnEvals, String method) static double[]ilt(UnaryOperator<org.apache.commons.math3.complex.Complex> fun, double[] T, String method) ilt with the default budget.static double[][][]iltMatrix(Function<org.apache.commons.math3.complex.Complex, org.apache.commons.math3.complex.Complex[][]> fun, double[] T, int maxFnEvals) static double[][][]iltMatrix(Function<org.apache.commons.math3.complex.Complex, org.apache.commons.math3.complex.Complex[][]> fun, double[] T, int maxFnEvals, String method) Matrix-valued inverse Laplace transform.static List<iltcme.CmeEntry>Returns the pre-computed CME parameter table from iltcme.json.
-
Field Details
-
DEFAULT_MAX_FN_EVALS
public static final int DEFAULT_MAX_FN_EVALSThe evaluation budget used when a caller does not name one. 41 is the EULER optimum in double precision, and harmless for the other two methods. Euler's weights carry 10^((n-1)/6) against an ALTERNATING sum, so accuracy is a race between the series converging and the cancellation eating the mantissa: on F(s) = 2/(s+2), whose inverse is 2*exp(-2t), the worst relative error over t in {0.1, 0.5, 1, 2} is 4.4e-3 at 11, 1.6e-10 at 41, 4.7e-8 at 51 and 1.4e+0 at 99 -- where the scale reaches 2.2e16, past what a double resolves, and the answer goes NEGATIVE.- See Also:
-
-
Method Details
-
parameters
Returns the pre-computed CME parameter table from iltcme.json. The table is loaded once and cached, and is shared by the inverse Laplace transform below and by the CME distribution class. The returned list is the cached object, so callers must not modify it.- Returns:
- the CME parameter table
-
ilt
ilt with the default budget and the default "cme" method. -
ilt
public static double[] ilt(UnaryOperator<org.apache.commons.math3.complex.Complex> fun, double[] T, String method) ilt with the default budget. -
ilt
public static double[] ilt(UnaryOperator<org.apache.commons.math3.complex.Complex> fun, double[] T, int maxFnEvals, String method) -
iltMatrix
public static double[][][] iltMatrix(Function<org.apache.commons.math3.complex.Complex, org.apache.commons.math3.complex.Complex[][]> fun, double[] T, int maxFnEvals, String method) Matrix-valued inverse Laplace transform. Evaluates the matrix-valued transformfunonce per Abate-Whitt node and accumulates the full (complex) matrix, sharing the eta/beta weights with the scalar overload.- Parameters:
fun- Laplace transform F(s) returning an nr x nc complex matrixT- array of time points (must be positive)maxFnEvals- maximum number of function evaluations allowedmethod- "cme" (default), "euler", or "gaver"- Returns:
- f(t) as a double[T.length][nr][nc] array (real part)
-
iltMatrix
public static double[][][] iltMatrix(Function<org.apache.commons.math3.complex.Complex, org.apache.commons.math3.complex.Complex[][]> fun, double[] T, int maxFnEvals) -
ilt
public static double[] ilt(UnaryOperator<org.apache.commons.math3.complex.Complex> fun, double[] T, int maxFnEvals) ILT with the default method "cme".
-