Skip to content

Commit

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

	- Special Function Group Schwarz Triangle Map - Singularity Solution 0 (1)
	- Special Function Group Schwarz Triangle Map - Singularity Solution 1 (2, 3)
	- Special Function Group Schwarz Triangle Map - Singularity Asymptote Order Term (4, 5)
	- Special Function Group Schwarz Triangle Map - Constructor (6, 7, 8)
	- Special Function Group Schwarz Triangle Map - Is Conformal (9)
	- Special Function Group Schwarz Triangle Map - s (10, 11)
	- Special Function Group Schwarz Triangle Map - Christoffel Vertex (12, 13, 14)
	- Special Function Group Riemann Sphere Spanner 2F1 (15, 16)
	- Special Function Group Riemann Sphere Spanner 2F1 - Generate #1 (17, 18, 19)
	- Special Function Group Riemann Sphere Spanner 2F1 - Generate #2 (20, 21, 22)
	- Special Function Group Big H1 From J #1 (23, 24, 25)
	- Special Function Group Big H1 From J - Bessel First Kind Estimator (26, 27)
	- Special Function Group Big H1 From J - Constructor (28, 29)
	- Special Function Group Big H1 From J #2 (30, 31, 32)


Samples:

IdeaDRIP:

	- Regression for Credit Excess Returns (Results in Exhibits 2.10 to 2.12) (33-46)
	- Credit Model 1 (47-53)
	- Credit Model 1A (54-56)
	- Credit Model with Market and Curve Factors (57-60)
  • Loading branch information
lakshmiDRIP committed Feb 24, 2024
1 parent a2189ba commit 8dcfc22
Show file tree
Hide file tree
Showing 4 changed files with 127 additions and 80 deletions.
29 changes: 29 additions & 0 deletions ReleaseNotes/07_19_2023.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

Features:

Bug Fixes/Re-organization:

- Special Function Group Schwarz Triangle Map - Singularity Solution 0 (1)
- Special Function Group Schwarz Triangle Map - Singularity Solution 1 (2, 3)
- Special Function Group Schwarz Triangle Map - Singularity Asymptote Order Term (4, 5)
- Special Function Group Schwarz Triangle Map - Constructor (6, 7, 8)
- Special Function Group Schwarz Triangle Map - Is Conformal (9)
- Special Function Group Schwarz Triangle Map - s (10, 11)
- Special Function Group Schwarz Triangle Map - Christoffel Vertex (12, 13, 14)
- Special Function Group Riemann Sphere Spanner 2F1 (15, 16)
- Special Function Group Riemann Sphere Spanner 2F1 - Generate #1 (17, 18, 19)
- Special Function Group Riemann Sphere Spanner 2F1 - Generate #2 (20, 21, 22)
- Special Function Group Big H1 From J #1 (23, 24, 25)
- Special Function Group Big H1 From J - Bessel First Kind Estimator (26, 27)
- Special Function Group Big H1 From J - Constructor (28, 29)
- Special Function Group Big H1 From J #2 (30, 31, 32)


Samples:

IdeaDRIP:

- Regression for Credit Excess Returns (Results in Exhibits 2.10 to 2.12) (33-46)
- Credit Model 1 (47-53)
- Credit Model 1A (54-56)
- Credit Model with Market and Curve Factors (57-60)
Binary file modified ScheduleSheet.xlsx
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@

package org.drip.specialfunction.group;

import java.util.List;
import java.util.Map;

import org.drip.function.definition.R1ToR1;
import org.drip.specialfunction.definition.RegularHypergeometricEstimator;
import org.drip.specialfunction.ode.IndependentLinearSolutionList;
import org.drip.specialfunction.ode.RegularSingularityIndependentSolution;
import org.drip.specialfunction.ode.RegularSingularityIndependentSolution2F1;

/*
* -*- 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 +90,7 @@

/**
* <i>RiemannSphereSpanner</i> determines the Conformality and Tile Scheme of the Schwarz Singular Triangle
* Maps over the Riemann Sphere composed of the 2F1 Solutions. The References are:
* Maps over the Riemann Sphere composed of the 2F1 Solutions. The References are:
*
* <br><br>
* <ul>
Expand All @@ -103,15 +115,27 @@
* 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/group/README.md">Special Function Singularity Solution Group</a></li>
* <li>Generate the 2F1 Instance of the RiemannSphereSpanner</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/ComputationalCore.md">Computational Core Module</a></td></tr>
* <tr><td><b>Library</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FunctionAnalysisLibrary.md">Function Analysis Library</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/group/README.md">Special Function Singularity Solution Group</a></td></tr>
* </table>
*
* @author Lakshmi Krishnamurthy
*/

Expand All @@ -127,51 +151,42 @@ public class RiemannSphereSpanner2F1
* @return The 2F1 Instance of the RiemannSphereSpanner
*/

public static final org.drip.specialfunction.group.RiemannSphereSpanner Generate (
final org.drip.specialfunction.definition.RegularHypergeometricEstimator
regularHypergeometricEstimator,
public static final RiemannSphereSpanner Generate (
final RegularHypergeometricEstimator regularHypergeometricEstimator,
final double[] connectionCoefficientArray)
{
if (null == connectionCoefficientArray || 3 != connectionCoefficientArray.length)
{
if (null == connectionCoefficientArray || 3 != connectionCoefficientArray.length) {
return null;
}

org.drip.specialfunction.ode.RegularSingularityIndependentSolution
regularSingularityIndependentSolution2F1 =
org.drip.specialfunction.ode.RegularSingularityIndependentSolution2F1.Create
(regularHypergeometricEstimator);
RegularSingularityIndependentSolution regularSingularityIndependentSolution2F1 =
RegularSingularityIndependentSolution2F1.Create (regularHypergeometricEstimator);

if (null == regularSingularityIndependentSolution2F1)
{
if (null == regularSingularityIndependentSolution2F1) {
return null;
}

java.util.Map<java.lang.Double, org.drip.specialfunction.ode.IndependentLinearSolutionList>
linearSolutionFunctionMap = regularSingularityIndependentSolution2F1.linearSolutionFunctionMap();
Map<Double, IndependentLinearSolutionList> linearSolutionFunctionMap =
regularSingularityIndependentSolution2F1.linearSolutionFunctionMap();

if (null == linearSolutionFunctionMap ||
!linearSolutionFunctionMap.containsKey (0.) ||
!linearSolutionFunctionMap.containsKey (1.) ||
!linearSolutionFunctionMap.containsKey (java.lang.Double.POSITIVE_INFINITY))
!linearSolutionFunctionMap.containsKey (Double.POSITIVE_INFINITY))
{
return null;
}

org.drip.specialfunction.group.SchwarzTriangleMap[] schwarzTriangleMapArray = new
org.drip.specialfunction.group.SchwarzTriangleMap[3];
SchwarzTriangleMap[] schwarzTriangleMapArray = new SchwarzTriangleMap[3];

try
{
java.util.List<org.drip.function.definition.R1ToR1> solutionFunctionList0 =
linearSolutionFunctionMap.get (0.).solutionFunctionList();
try {
List<R1ToR1> solutionFunctionList0 = linearSolutionFunctionMap.get (0.).solutionFunctionList();

schwarzTriangleMapArray[0] = new org.drip.specialfunction.group.SchwarzTriangleMap (
schwarzTriangleMapArray[0] = new SchwarzTriangleMap (
0.,
solutionFunctionList0.get (0),
solutionFunctionList0.get (1),
new org.drip.function.definition.R1ToR1 (null)
{
new R1ToR1 (null) {
@Override public double evaluate (
final double z)
{
Expand All @@ -181,15 +196,13 @@ public static final org.drip.specialfunction.group.RiemannSphereSpanner Generate
connectionCoefficientArray[0]
);

java.util.List<org.drip.function.definition.R1ToR1> solutionFunctionList1 =
linearSolutionFunctionMap.get (1.).solutionFunctionList();
List<R1ToR1> solutionFunctionList1 = linearSolutionFunctionMap.get (1.).solutionFunctionList();

schwarzTriangleMapArray[1] = new org.drip.specialfunction.group.SchwarzTriangleMap (
schwarzTriangleMapArray[1] = new SchwarzTriangleMap (
1.,
solutionFunctionList1.get (0),
solutionFunctionList1.get (1),
new org.drip.function.definition.R1ToR1 (null)
{
new R1ToR1 (null) {
@Override public double evaluate (
final double z)
{
Expand All @@ -199,15 +212,15 @@ public static final org.drip.specialfunction.group.RiemannSphereSpanner Generate
connectionCoefficientArray[1]
);

java.util.List<org.drip.function.definition.R1ToR1> solutionFunctionList2 =
linearSolutionFunctionMap.get (java.lang.Double.POSITIVE_INFINITY).solutionFunctionList();
List<R1ToR1> solutionFunctionList2 = linearSolutionFunctionMap.get (
Double.POSITIVE_INFINITY
).solutionFunctionList();

schwarzTriangleMapArray[2] = new org.drip.specialfunction.group.SchwarzTriangleMap (
java.lang.Double.POSITIVE_INFINITY,
schwarzTriangleMapArray[2] = new SchwarzTriangleMap (
Double.POSITIVE_INFINITY,
solutionFunctionList2.get (0),
solutionFunctionList2.get (1),
new org.drip.function.definition.R1ToR1 (null)
{
new R1ToR1 (null) {
@Override public double evaluate (
final double z)
{
Expand All @@ -217,10 +230,8 @@ public static final org.drip.specialfunction.group.RiemannSphereSpanner Generate
connectionCoefficientArray[2]
);

return new org.drip.specialfunction.group.RiemannSphereSpanner (schwarzTriangleMapArray);
}
catch (java.lang.Exception e)
{
return new RiemannSphereSpanner (schwarzTriangleMapArray);
} catch (Exception e) {
e.printStackTrace();
}

Expand Down
79 changes: 43 additions & 36 deletions src/main/java/org/drip/specialfunction/hankel/BigH1FromBigJ.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@

package org.drip.specialfunction.hankel;

import org.drip.function.definition.CartesianComplexNumber;
import org.drip.specialfunction.definition.BesselFirstKindEstimator;
import org.drip.specialfunction.definition.HankelFirstKindEstimator;

/*
* -*- 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>BigH1FromBigJ</i> implements the Estimator for the Cylindrical Hankel Function of the First Kind from
* the Bessel Function of the First Kind. The References are:
* the Bessel Function of the First Kind. The References are:
*
* <br><br>
* <ul>
Expand All @@ -102,37 +109,49 @@
* 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/hankel/README.md">Ordered Hankel Function Variant Estimators</a></li>
* <li><i>BigH1FromBigJ</i> Constructor</li>
* <li>Retrieve the Estimator of the Bessel Function of the First Kind</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/ComputationalCore.md">Computational Core Module</a></td></tr>
* <tr><td><b>Library</b></td> <td><a href = "https://github.com/lakshmiDRIP/DROP/tree/master/FunctionAnalysisLibrary.md">Function Analysis Library</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/hankel/README.md">Ordered Hankel Function Variant Estimators</a></td></tr>
* </table>
*
* @author Lakshmi Krishnamurthy
*/

public class BigH1FromBigJ extends org.drip.specialfunction.definition.HankelFirstKindEstimator
public class BigH1FromBigJ extends HankelFirstKindEstimator
{
private org.drip.specialfunction.definition.BesselFirstKindEstimator _besselFirstKindEstimator = null;
private BesselFirstKindEstimator _besselFirstKindEstimator = null;

/**
* BigH1FromBigJ Constructor
* <i>BigH1FromBigJ</i> Constructor
*
* @param besselFirstKindEstimator Bessel Function of the First Kind Estimator
*
* @throws java.lang.Exception Thrown if the Inputs are Invalid
* @throws Exception Thrown if the Inputs are Invalid
*/

public BigH1FromBigJ (
final org.drip.specialfunction.definition.BesselFirstKindEstimator besselFirstKindEstimator)
throws java.lang.Exception
final BesselFirstKindEstimator besselFirstKindEstimator)
throws Exception
{
if (null == (_besselFirstKindEstimator = besselFirstKindEstimator))
{
throw new java.lang.Exception ("BigH1FromBigJ Constructor => Invalid Inputs");
if (null == (_besselFirstKindEstimator = besselFirstKindEstimator)) {
throw new Exception ("BigH1FromBigJ Constructor => Invalid Inputs");
}
}

Expand All @@ -142,36 +161,24 @@ public BigH1FromBigJ (
* @return Estimator of the Bessel Function of the First Kind
*/

public org.drip.specialfunction.definition.BesselFirstKindEstimator besselFirstKindEstimator()
public BesselFirstKindEstimator besselFirstKindEstimator()
{
return _besselFirstKindEstimator;
}

@Override public org.drip.function.definition.CartesianComplexNumber bigH1 (
@Override public CartesianComplexNumber bigH1 (
final double alpha,
final double z)
{
try
{
return new org.drip.function.definition.CartesianComplexNumber (
_besselFirstKindEstimator.bigJ (
alpha,
z
),
try {
return new CartesianComplexNumber (
_besselFirstKindEstimator.bigJ (alpha, z),
(
_besselFirstKindEstimator.bigJ (
alpha,
z
) * java.lang.Math.cos (java.lang.Math.PI * alpha) -
_besselFirstKindEstimator.bigJ (
-1. * alpha,
z
)
) / java.lang.Math.sin (java.lang.Math.PI * alpha)
_besselFirstKindEstimator.bigJ (alpha, z) * Math.cos (Math.PI * alpha) -
_besselFirstKindEstimator.bigJ (-1. * alpha, z)
) / Math.sin (Math.PI * alpha)
);
}
catch (java.lang.Exception e)
{
} catch (Exception e) {
e.printStackTrace();
}

Expand Down

0 comments on commit 8dcfc22

Please sign in to comment.