From 282257ce5719f33194bb5b3bc2e48c34fb27f87a Mon Sep 17 00:00:00 2001 From: Lakshmi Krishnamurthy Date: Fri, 23 Feb 2024 07:21:11 -0500 Subject: [PATCH] Features: Bug Fixes/Re-organization: - Special Function Generator Spherical Bessel First Kind Expansion - Gamma Estimator (1, 2) - Special Function Generator Spherical Bessel First Kind Expansion - Estimator (3, 4) - Special Function Generator Spherical Bessel First Kind Expansion - Constructor (5, 6) - Special Function Generator Spherical Bessel First Kind Expansion - Evaluate (7, 8, 9) - Special Function Generator Spherical Bessel First Kind Expansion - Series Term (10, 11, 12) - Special Function Generator Spherical Bessel First Kind Expansion - Series (13) - Special Function Generator Spherical Bessel Second Kind Expansion (14, 15, 16) - Special Function Generator Spherical Bessel Second Kind Expansion - Gamma Estimator (17, 18) - Special Function Generator Spherical Bessel Second Kind Expansion - Estimator (19, 20) - Special Function Generator Spherical Bessel Second Kind Expansion - Constructor (21, 22) - Special Function Generator Spherical Bessel Second Kind Expansion - Evaluate (23, 24) - Special Function Generator Spherical Bessel Second Kind Expansion - Series Term (25, 26, 27) - Special Function Group Fuchsian Equation (28, 29, 30) - Special Function Group Fuchsian Equation - Isomorphy Order (31, 32) - Special Function Group Fuchsian Equation - Klein Group Function Array (33, 34) - Special Function Group Fuchsian Equation - Constructor (35, 36, 37) - Special Function Group Fuchsian Equation - Coxeter Singularity Index (38) Samples: IdeaDRIP: - Economic Factors as Drivers of the Yield Curve (39-60) --- ReleaseNotes/07_12_2023.txt | 29 ++++++ ScheduleSheet.xlsx | Bin 54177 -> 54180 bytes .../SphericalBesselSecondKindExpansion.java | 97 ++++++++++-------- .../group/FuchsianEquation.java | 64 +++++++----- 4 files changed, 122 insertions(+), 68 deletions(-) create mode 100644 ReleaseNotes/07_12_2023.txt diff --git a/ReleaseNotes/07_12_2023.txt b/ReleaseNotes/07_12_2023.txt new file mode 100644 index 000000000000..f464b6125069 --- /dev/null +++ b/ReleaseNotes/07_12_2023.txt @@ -0,0 +1,29 @@ + +Features: + +Bug Fixes/Re-organization: + + - Special Function Generator Spherical Bessel First Kind Expansion - Gamma Estimator (1, 2) + - Special Function Generator Spherical Bessel First Kind Expansion - Estimator (3, 4) + - Special Function Generator Spherical Bessel First Kind Expansion - Constructor (5, 6) + - Special Function Generator Spherical Bessel First Kind Expansion - Evaluate (7, 8, 9) + - Special Function Generator Spherical Bessel First Kind Expansion - Series Term (10, 11, 12) + - Special Function Generator Spherical Bessel First Kind Expansion - Series (13) + - Special Function Generator Spherical Bessel Second Kind Expansion (14, 15, 16) + - Special Function Generator Spherical Bessel Second Kind Expansion - Gamma Estimator (17, 18) + - Special Function Generator Spherical Bessel Second Kind Expansion - Estimator (19, 20) + - Special Function Generator Spherical Bessel Second Kind Expansion - Constructor (21, 22) + - Special Function Generator Spherical Bessel Second Kind Expansion - Evaluate (23, 24) + - Special Function Generator Spherical Bessel Second Kind Expansion - Series Term (25, 26, 27) + - Special Function Group Fuchsian Equation (28, 29, 30) + - Special Function Group Fuchsian Equation - Isomorphy Order (31, 32) + - Special Function Group Fuchsian Equation - Klein Group Function Array (33, 34) + - Special Function Group Fuchsian Equation - Constructor (35, 36, 37) + - Special Function Group Fuchsian Equation - Coxeter Singularity Index (38) + + +Samples: + +IdeaDRIP: + + - Economic Factors as Drivers of the Yield Curve (39-60) diff --git a/ScheduleSheet.xlsx b/ScheduleSheet.xlsx index eb180c72817447c08b443c6fbde41a51ef8389fb..457d6486ae0fb3b664911386525f86ca401ec8c3 100644 GIT binary patch delta 5181 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 implements the Generating Function and the Expansion Terms for - * the Spherical Bessel Function of the Second Kind. The References are: + * the Spherical Bessel Function of the Second Kind. The References are: * *

*
    @@ -102,60 +110,68 @@ * Wikipedia (2019): Bessel Function https://en.wikipedia.org/wiki/Bessel_function * *
+ * + * It provides the following functionality: * - *

* * + *
+ * + * + * + * + * + * + * + *
Module Computational Core Module
Library Function Analysis Library
Project Special Function Implementation and Analysis
Package Special Function Series Term Generators
+ * * @author Lakshmi Krishnamurthy */ -public class SphericalBesselSecondKindExpansion extends org.drip.specialfunction.generator.SeriesExpansion +public class SphericalBesselSecondKindExpansion extends SeriesExpansion { - private org.drip.function.definition.R1ToR1 _gammaEstimator = null; - private org.drip.specialfunction.definition.SphericalBesselSecondKindEstimator - _sphericalBesselSecondKindEstimator = null; + private R1ToR1 _gammaEstimator = null; + private SphericalBesselSecondKindEstimator _sphericalBesselSecondKindEstimator = null; /** - * SphericalBesselSecondKindExpansion Constructor + * SphericalBesselSecondKindExpansion Constructor * * @param sphericalBesselSecondKindEstimator First Second Spherical Bessel Function Estimator * @param gammaEstimator The Gamma Estimator * - * @throws java.lang.Exception Thrown if the Inputs are Invalid + * @throws Exception Thrown if the Inputs are Invalid */ public SphericalBesselSecondKindExpansion ( - final org.drip.specialfunction.definition.SphericalBesselSecondKindEstimator - sphericalBesselSecondKindEstimator, - final org.drip.function.definition.R1ToR1 gammaEstimator) - throws java.lang.Exception + final SphericalBesselSecondKindEstimator sphericalBesselSecondKindEstimator, + final R1ToR1 gammaEstimator) + throws Exception { if (null == (_sphericalBesselSecondKindEstimator = sphericalBesselSecondKindEstimator) || null == (_gammaEstimator = gammaEstimator)) { - throw new java.lang.Exception - ("SphericalBesselSecondKindExpansion Constructor => Invalid Inputs"); + throw new Exception ("SphericalBesselSecondKindExpansion Constructor => Invalid Inputs"); } } @Override public double evaluate ( final double z, final double t) - throws java.lang.Exception + throws Exception { - if (!org.drip.numerical.common.NumberUtil.IsValid (z) || - !org.drip.numerical.common.NumberUtil.IsValid (t)) - { - throw new java.lang.Exception - ("SphericalBesselSecondKindExpansion::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z) || !NumberUtil.IsValid (t)) { + throw new Exception ("SphericalBesselSecondKindExpansion::evaluate => Invalid Inputs"); } - return java.lang.Math.sin (java.lang.Math.sqrt (z * z + 2. * z * t)) / z; + return Math.sin (Math.sqrt (z * z + 2. * z * t)) / z; } /** @@ -164,8 +180,7 @@ public SphericalBesselSecondKindExpansion ( * @return The Second Kind Spherical Bessel Function Estimator */ - public org.drip.specialfunction.definition.SphericalBesselSecondKindEstimator - sphericalBesselFirstKindEstimator() + public SphericalBesselSecondKindEstimator sphericalBesselSecondKindEstimator() { return _sphericalBesselSecondKindEstimator; } @@ -176,36 +191,30 @@ public SphericalBesselSecondKindExpansion ( * @return The Gamma Estimator */ - public org.drip.function.definition.R1ToR1 gammaEstimator() + public R1ToR1 gammaEstimator() { return _gammaEstimator; } - @Override public org.drip.numerical.estimation.R2ToR1SeriesTerm seriesTerm() + @Override public R2ToR1SeriesTerm seriesTerm() { - return new org.drip.numerical.estimation.R2ToR1SeriesTerm() + return new R2ToR1SeriesTerm() { @Override public double value ( final int order, final double z, final double t) - throws java.lang.Exception + throws Exception { - if (0 > order || - !org.drip.numerical.common.NumberUtil.IsValid (z) || - !org.drip.numerical.common.NumberUtil.IsValid (t)) - { - throw new java.lang.Exception - ("SphericalBesselSecondKindExpansion::seriesTerm::value => Invalid Inputs"); + if (0 > order || !NumberUtil.IsValid (z) || !NumberUtil.IsValid (t)) { + throw new Exception ( + "SphericalBesselSecondKindExpansion::seriesTerm::value => Invalid Inputs" + ); } - return (0 == order % 2 ? 1. : -1.) * java.lang.Math.pow ( - t, - order - ) * _sphericalBesselSecondKindEstimator.evaluate ( - order - 1, - z - ) / _gammaEstimator.evaluate (order + 1); + return (0 == order % 2 ? 1. : -1.) * Math.pow (t, order) * + _sphericalBesselSecondKindEstimator.evaluate (order - 1, z) / + _gammaEstimator.evaluate (order + 1); } }; } diff --git a/src/main/java/org/drip/specialfunction/group/FuchsianEquation.java b/src/main/java/org/drip/specialfunction/group/FuchsianEquation.java index ecc90a46aa37..a0ef9953c846 100644 --- a/src/main/java/org/drip/specialfunction/group/FuchsianEquation.java +++ b/src/main/java/org/drip/specialfunction/group/FuchsianEquation.java @@ -1,11 +1,17 @@ package org.drip.specialfunction.group; +import org.drip.function.definition.R1ToR1; +import org.drip.numerical.common.NumberUtil; + /* * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /*! + * Copyright (C) 2025 Lakshmi Krishnamurthy + * Copyright (C) 2024 Lakshmi Krishnamurthy + * Copyright (C) 2023 Lakshmi Krishnamurthy * Copyright (C) 2022 Lakshmi Krishnamurthy * Copyright (C) 2021 Lakshmi Krishnamurthy * Copyright (C) 2020 Lakshmi Krishnamurthy @@ -78,7 +84,7 @@ /** * FuchsianEquation holds the Isomorphic Order, Coexter Singularity Index, and the Klein-4 - * Transformations of the 2F1 Regular Hyper-geometric Function. The References are: + * Transformations of the 2F1 Regular Hyper-geometric Function. The References are: * *

*
    @@ -103,60 +109,70 @@ * Wikipedia (2019): Hyper-geometric Function https://en.wikipedia.org/wiki/Hypergeometric_function * *
+ * + * It provides the following functionality: * - *

* * + *
+ * + * + * + * + * + * + * + *
Module Computational Core Module
Library Function Analysis Library
Project Special Function Implementation and Analysis
Package Special Function Singularity Solution Group
+ * * @author Lakshmi Krishnamurthy */ public class FuchsianEquation { private int _isomorphyOrder = -1; - private org.drip.function.definition.R1ToR1[] _kleinGroupFunctionArray = null; + private R1ToR1[] _kleinGroupFunctionArray = null; /** - * FuchsianEquation Constructor + * FuchsianEquation Constructor * * @param kleinGroupFunctionArray Array of the Klein Group Isomorphic Functions * - * @throws java.lang.Exception Thrown if the Inputs are Invalid + * @throws Exception Thrown if the Inputs are Invalid */ public FuchsianEquation ( - final org.drip.function.definition.R1ToR1[] kleinGroupFunctionArray) - throws java.lang.Exception + final R1ToR1[] kleinGroupFunctionArray) + throws Exception { - if (null == (_kleinGroupFunctionArray = kleinGroupFunctionArray)) - { - throw new java.lang.Exception ("FuchsianEquation Constructor => Invalid Inputs"); + if (null == (_kleinGroupFunctionArray = kleinGroupFunctionArray)) { + throw new Exception ("FuchsianEquation Constructor => Invalid Inputs"); } int coxeterSingularityIndex = _kleinGroupFunctionArray.length; - if (0 == coxeterSingularityIndex) - { + if (0 == coxeterSingularityIndex) { throw new java.lang.Exception ("FuchsianEquation Constructor => Invalid Inputs"); } - _isomorphyOrder = org.drip.numerical.common.NumberUtil.Factorial (coxeterSingularityIndex); + _isomorphyOrder = NumberUtil.Factorial (coxeterSingularityIndex); - for (int kleinGroupFunctionIndex = 0; - kleinGroupFunctionIndex < coxeterSingularityIndex; + for (int kleinGroupFunctionIndex = 0; kleinGroupFunctionIndex < coxeterSingularityIndex; ++kleinGroupFunctionIndex) { - if (null == _kleinGroupFunctionArray[kleinGroupFunctionIndex]) - { - throw new java.lang.Exception ("FuchsianEquation Constructor => Invalid Inputs"); + if (null == _kleinGroupFunctionArray[kleinGroupFunctionIndex]) { + throw new Exception ("FuchsianEquation Constructor => Invalid Inputs"); } - if (0 != kleinGroupFunctionIndex) - { + if (0 != kleinGroupFunctionIndex) { _isomorphyOrder = _isomorphyOrder * 2; } }