Skip to content

Commit

Permalink
Features:
Browse files Browse the repository at this point in the history
Bug Fixes/Re-organization:

	- Special Function Definition Hyper-geometric Estimator - Parameters (1)
	- Special Function Definition Hyper-geometric Estimator - Constructor (2, 3)
	- Special Function Definition Confluent Hypergeometric Estimator - Constructor (4)
	- Special Function Definition Confluent Hypergeometric Estimator - Evaluate (5)
	- Special Function Definition Confluent Hypergeometric Estimator (6)
	- Special Function Definition Elliptic E Integral Estimator #1 (7, 8)
	- Special Function Definition Elliptic E Integral Estimator - Constructor (9)
	- Special Function Definition Elliptic E Integral Estimator #2 (10)
	- Special Function Definition Elliptic K Integral Estimator #1 (11, 12)
	- Special Function Definition Elliptic K Integral Estimator - Constructor (13)
	- Special Function Definition Elliptic K Integral Estimator #2 (14)
	- Special Function Definition Elliptic E Integral Estimator - Evaluate (15)
	- Special Function Definition Elliptic K Integral Estimator - Evaluate (16)
	- Special Function Definition Hankel First Kind Estimator (17, 18, 19)
	- Special Function Definition Hankel First Kind Estimator - Big H1 (20)
	- Special Function Definition Hankel First Kind Estimator - Evaluate (21)
	- Special Function Definition Hankel First Kind Estimator - Large Z Asymptote (22, 23)
	- Special Function Definition Hankel Second Kind Estimator (24, 25, 26)
	- Special Function Definition Hankel Second Kind Estimator - Big H2 (27)
	- Special Function Definition Hankel Second Kind Estimator - Evaluate (28)
	- Special Function Definition Hankel Second Kind Estimator - Large Z Asymptote (29, 30)
	- Special Function Definition Jacobi Estimator #1 (31, 32, 33)
	- Special Function Definition Jacobi Estimator - n (34, 35)
	- Special Function Definition Jacobi Estimator - Constructor (36, 37)
	- Special Function Definition Jacobi Estimator - Alpha (38)
	- Special Function Definition Jacobi Estimator - Beta (39)
	- Special Function Definition Jacobi Estimator #2 (40)
	- Special Function Definition Legendre Estimator (41, 42, 43)
	- Special Function Definition Legendre Estimator - Constructor (44, 45)
	- Special Function Definition Jacobi Estimator - Alpha (46)
	- Special Function Definition Jacobi Estimator - Ceta (47)
	- Special Function Definition Jacobi Estimator - Evaluate (48, 49)
	- Special Function Definition Modified Bessel First Kind Estimator (50, 51, 52)
	- Special Function Definition Modified Bessel First Kind Estimator - Alpha Positive Asymptote (53, 54, 55)
	- Special Function Definition Modified Bessel First Kind Estimator - Big I (56)
	- Special Function Definition Modified Bessel First Kind Estimator - Evaluate (57)
	- Special Function Definition Modified Bessel Second Kind Estimator (58, 59, 60)


Samples:

IdeaDRIP:
  • Loading branch information
Lakshmik committed Feb 3, 2024
1 parent d162fc6 commit 81ed333
Show file tree
Hide file tree
Showing 12 changed files with 309 additions and 164 deletions.
47 changes: 47 additions & 0 deletions ReleaseNotes/06_08_2023.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@

Features:

Bug Fixes/Re-organization:

- Special Function Definition Hyper-geometric Estimator - Parameters (1)
- Special Function Definition Hyper-geometric Estimator - Constructor (2, 3)
- Special Function Definition Confluent Hypergeometric Estimator - Constructor (4)
- Special Function Definition Confluent Hypergeometric Estimator - Evaluate (5)
- Special Function Definition Confluent Hypergeometric Estimator (6)
- Special Function Definition Elliptic E Integral Estimator #1 (7, 8)
- Special Function Definition Elliptic E Integral Estimator - Constructor (9)
- Special Function Definition Elliptic E Integral Estimator #2 (10)
- Special Function Definition Elliptic K Integral Estimator #1 (11, 12)
- Special Function Definition Elliptic K Integral Estimator - Constructor (13)
- Special Function Definition Elliptic K Integral Estimator #2 (14)
- Special Function Definition Elliptic E Integral Estimator - Evaluate (15)
- Special Function Definition Elliptic K Integral Estimator - Evaluate (16)
- Special Function Definition Hankel First Kind Estimator (17, 18, 19)
- Special Function Definition Hankel First Kind Estimator - Big H1 (20)
- Special Function Definition Hankel First Kind Estimator - Evaluate (21)
- Special Function Definition Hankel First Kind Estimator - Large Z Asymptote (22, 23)
- Special Function Definition Hankel Second Kind Estimator (24, 25, 26)
- Special Function Definition Hankel Second Kind Estimator - Big H2 (27)
- Special Function Definition Hankel Second Kind Estimator - Evaluate (28)
- Special Function Definition Hankel Second Kind Estimator - Large Z Asymptote (29, 30)
- Special Function Definition Jacobi Estimator #1 (31, 32, 33)
- Special Function Definition Jacobi Estimator - n (34, 35)
- Special Function Definition Jacobi Estimator - Constructor (36, 37)
- Special Function Definition Jacobi Estimator - Alpha (38)
- Special Function Definition Jacobi Estimator - Beta (39)
- Special Function Definition Jacobi Estimator #2 (40)
- Special Function Definition Legendre Estimator (41, 42, 43)
- Special Function Definition Legendre Estimator - Constructor (44, 45)
- Special Function Definition Jacobi Estimator - Alpha (46)
- Special Function Definition Jacobi Estimator - Ceta (47)
- Special Function Definition Jacobi Estimator - Evaluate (48, 49)
- Special Function Definition Modified Bessel First Kind Estimator (50, 51, 52)
- Special Function Definition Modified Bessel First Kind Estimator - Alpha Positive Asymptote (53, 54, 55)
- Special Function Definition Modified Bessel First Kind Estimator - Big I (56)
- Special Function Definition Modified Bessel First Kind Estimator - Evaluate (57)
- Special Function Definition Modified Bessel Second Kind Estimator (58, 59, 60)


Samples:

IdeaDRIP:
Binary file modified ScheduleSheet.xlsx
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,8 @@ public abstract class ConfluentHypergeometricEstimator extends HypergeometricEst
{

protected ConfluentHypergeometricEstimator (
final org.drip.specialfunction.definition.HypergeometricParameters hypergeometricParameters)
throws java.lang.Exception
final HypergeometricParameters hypergeometricParameters)
throws Exception
{
super (hypergeometricParameters);
}
Expand All @@ -154,10 +154,10 @@ protected ConfluentHypergeometricEstimator (
*
* @return Confluent Hyper-geometric Value
*
* @throws java.lang.Exception Thrown if the Inputs are Invalid
* @throws Exception Thrown if the Inputs are Invalid
*/

public abstract double confluentHypergeometric (
final double z)
throws java.lang.Exception;
throws Exception;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
*/

/*!
* 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
Expand Down Expand Up @@ -78,7 +81,7 @@

/**
* <i>EllipticEIntegralEstimator</i> exposes the Stubs for estimating the Elliptic E-Integral and its
* Jacobian using the 2F1 Hyper-geometric Function. The References are:
* Jacobian using the 2F1 Hyper-geometric Function. The References are:
*
* <br><br>
* <ul>
Expand All @@ -103,37 +106,42 @@
* Wikipedia (2019): Hyper-geometric Function https://en.wikipedia.org/wiki/Hypergeometric_function
* </li>
* </ul>
*
* It provides the following functionality:
*
* <br><br>
* <ul>
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FunctionAnalysisLibrary.md">Function Analysis Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/README.md">Special Function Implementation Analysis</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/definition/README.md">Definition of Special Function Estimators</a></li>
* <li>Evaluate The Elliptic E Integral Function</li>
* </ul>
*
* <br>
* <style>table, td, th {
* padding: 1px; border: 2px solid #008000; border-radius: 8px; background-color: #dfff00;
* text-align: center; color: #0000ff;
* }
* </style>
*
* <table style="border:1px solid black;margin-left:auto;margin-right:auto;">
* <tr><td><b>Module </b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ProductCore.md">Product Core Module</a></td></tr>
* <tr><td><b>Library</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FixedIncomeAnalyticsLibrary.md">Fixed Income Analytics</a></td></tr>
* <tr><td><b>Project</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/README.md">Special Function Implementation and Analysis</a></td></tr>
* <tr><td><b>Package</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/definition/README.md">Definition of Special Function Estimators</a></td></tr>
* </table>
*
* @author Lakshmi Krishnamurthy
*/

public abstract class EllipticEIntegralEstimator extends
org.drip.specialfunction.definition.HypergeometricEstimator
public abstract class EllipticEIntegralEstimator extends HypergeometricEstimator
{

protected EllipticEIntegralEstimator()
throws java.lang.Exception
throws Exception
{
super (
new org.drip.specialfunction.definition.HypergeometricParameters (
-0.5,
0.5,
1.0
)
);
super (new HypergeometricParameters (-0.5, 0.5, 1.));
}

@Override public double evaluate (
final double k)
throws java.lang.Exception
throws Exception
{
return ellipticEIntegral (k);
}
Expand All @@ -145,10 +153,10 @@ protected EllipticEIntegralEstimator()
*
* @return The Elliptic E Integral Function Value
*
* @throws java.lang.Exception Thrown if the Inputs are Invalid
* @throws Exception Thrown if the Inputs are Invalid
*/

public abstract double ellipticEIntegral (
final double k)
throws java.lang.Exception;
throws Exception;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
*/

/*!
* 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
Expand Down Expand Up @@ -78,7 +81,7 @@

/**
* <i>EllipticKIntegralEstimator</i> exposes the Stubs for estimating the Elliptic K-Integral and its
* Jacobian using the 2F1 Hyper-geometric Function. The References are:
* Jacobian using the 2F1 Hyper-geometric Function. The References are:
*
* <br><br>
* <ul>
Expand All @@ -103,37 +106,42 @@
* Wikipedia (2019): Hyper-geometric Function https://en.wikipedia.org/wiki/Hypergeometric_function
* </li>
* </ul>
*
* It provides the following functionality:
*
* <br><br>
* <ul>
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FunctionAnalysisLibrary.md">Function Analysis Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/README.md">Special Function Implementation Analysis</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/definition/README.md">Definition of Special Function Estimators</a></li>
* <li>Evaluate The Elliptic K Integral Function</li>
* </ul>
*
* <br>
* <style>table, td, th {
* padding: 1px; border: 2px solid #008000; border-radius: 8px; background-color: #dfff00;
* text-align: center; color: #0000ff;
* }
* </style>
*
* <table style="border:1px solid black;margin-left:auto;margin-right:auto;">
* <tr><td><b>Module </b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ProductCore.md">Product Core Module</a></td></tr>
* <tr><td><b>Library</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FixedIncomeAnalyticsLibrary.md">Fixed Income Analytics</a></td></tr>
* <tr><td><b>Project</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/README.md">Special Function Implementation and Analysis</a></td></tr>
* <tr><td><b>Package</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/definition/README.md">Definition of Special Function Estimators</a></td></tr>
* </table>
*
* @author Lakshmi Krishnamurthy
*/

public abstract class EllipticKIntegralEstimator extends
org.drip.specialfunction.definition.HypergeometricEstimator
public abstract class EllipticKIntegralEstimator extends HypergeometricEstimator
{

protected EllipticKIntegralEstimator()
throws java.lang.Exception
throws Exception
{
super (
new org.drip.specialfunction.definition.HypergeometricParameters (
0.5,
0.5,
1.0
)
);
super (new HypergeometricParameters (0.5, 0.5, 1.));
}

@Override public double evaluate (
final double k)
throws java.lang.Exception
throws Exception
{
return ellipticKIntegral (k);
}
Expand All @@ -145,10 +153,10 @@ protected EllipticKIntegralEstimator()
*
* @return The Elliptic K Integral Function Value
*
* @throws java.lang.Exception Thrown if the Inputs are Invalid
* @throws Exception Thrown if the Inputs are Invalid
*/

public abstract double ellipticKIntegral (
final double k)
throws java.lang.Exception;
throws Exception;
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@

package org.drip.specialfunction.definition;

import org.drip.function.definition.CartesianComplexNumber;
import org.drip.function.definition.R2ToZ1;
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
Expand Down Expand Up @@ -78,7 +85,7 @@

/**
* <i>HankelFirstKindEstimator</i> exposes the Estimator for the Hankel Function of the First Kind. The
* References are:
* References are:
*
* <br><br>
* <ul>
Expand All @@ -102,19 +109,32 @@
* Wikipedia (2019): Bessel Function https://en.wikipedia.org/wiki/Bessel_function
* </li>
* </ul>
*
* It provides the following functionality:
*
* <br><br>
* <ul>
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FunctionAnalysisLibrary.md">Function Analysis Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/README.md">Special Function Implementation Analysis</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/definition/README.md">Definition of Special Function Estimators</a></li>
* <li>Construct the Large z Asymptotic Form of Hankel First Kind Estimator</li>
* <li>Evaluate Hankel Function First Kind H1 given Alpha and z</li>
* </ul>
*
* <br>
* <style>table, td, th {
* padding: 1px; border: 2px solid #008000; border-radius: 8px; background-color: #dfff00;
* text-align: center; color: #0000ff;
* }
* </style>
*
* <table style="border:1px solid black;margin-left:auto;margin-right:auto;">
* <tr><td><b>Module </b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ProductCore.md">Product Core Module</a></td></tr>
* <tr><td><b>Library</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FixedIncomeAnalyticsLibrary.md">Fixed Income Analytics</a></td></tr>
* <tr><td><b>Project</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/README.md">Special Function Implementation and Analysis</a></td></tr>
* <tr><td><b>Package</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/specialfunction/definition/README.md">Definition of Special Function Estimators</a></td></tr>
* </table>
*
* @author Lakshmi Krishnamurthy
*/

public abstract class HankelFirstKindEstimator implements org.drip.function.definition.R2ToZ1
public abstract class HankelFirstKindEstimator implements R2ToZ1
{

/**
Expand All @@ -125,17 +145,15 @@ public abstract class HankelFirstKindEstimator implements org.drip.function.defi

public static final HankelFirstKindEstimator LargeZAsymptote()
{
return new HankelFirstKindEstimator()
{
@Override public org.drip.function.definition.CartesianComplexNumber bigH1 (
return new HankelFirstKindEstimator() {
@Override public CartesianComplexNumber bigH1 (
final double alpha,
final double z)
{
return !org.drip.numerical.common.NumberUtil.IsValid (alpha) ||
!org.drip.numerical.common.NumberUtil.IsValid (z) ? null :
org.drip.function.definition.CartesianComplexNumber.FromPolar (
java.lang.Math.sqrt (2. / java.lang.Math.PI / z),
z - 0.5 * java.lang.Math.PI * alpha - 0.25 * java.lang.Math.PI
return !NumberUtil.IsValid (alpha) || !NumberUtil.IsValid (z) ? null :
CartesianComplexNumber.FromPolar (
Math.sqrt (2. / Math.PI / z),
z - 0.5 * Math.PI * alpha - 0.25 * Math.PI
);
}
};
Expand All @@ -150,17 +168,15 @@ public static final HankelFirstKindEstimator LargeZAsymptote()
* @return Hankel Function First Kind H1 Value
*/

public abstract org.drip.function.definition.CartesianComplexNumber bigH1 (
public abstract CartesianComplexNumber bigH1 (
final double alpha,
final double z);
final double z
);

@Override public org.drip.function.definition.CartesianComplexNumber evaluate (
@Override public CartesianComplexNumber evaluate (
final double alpha,
final double z)
{
return bigH1 (
alpha,
z
);
return bigH1 (alpha, z);
}
}
Loading

0 comments on commit 81ed333

Please sign in to comment.