Skip to content

Commit

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

	- Special Function ODE Second Order Modified Bessel - Constructor (1, 2)
	- Special Function ODE Second Order Modified Bessel - Standard #1 (3, 4)
	- Special Function ODE Second Order Modified Bessel - Standard #2 (5, 6)
	- Special Function ODE Second Order Modified Bessel - Standard #3 (7, 8, 9)
	- Special Function ODE Second Order Riccati Bessel (10, 11, 12)
	- Special Function ODE Second Order Riccati Bessel - Alpha (13, 14)
	- Special Function ODE Second Order Riccati Bessel - Ordered Regular Singular Points (15)
	- Special Function ODE Second Order Riccati Bessel - Constructor (16, 17)
	- Special Function ODE Second Order Riccati Bessel - Standard #1 (18, 19)
	- Special Function ODE Second Order Riccati Bessel - Standard #2 (20, 21, 22)
	- Special Function ODE Hille Q-Form 2F1 #1 (23, 24, 25)
	- Special Function ODE Hille Q-Form 2F1 #2 (26, 27)
	- Special Function ODE Hille Q-Form 2F1 - v (28, 29)
	- Special Function ODE Hille Q-Form 2F1 - Constructor (30, 31)
	- Special Function ODE Hille Q-Form 2F1 - Standard #1 (32, 33)
	- Special Function ODE Hille Q-Form 2F1 - Standard #2 (34, 35, 36)
	- Special Function ODE Hille Q-Form 2F1 - Standard #3 (37, 38, 39)
	- Special Function ODE Hille Q-Form 2F1 - Standard #4 (40, 41, 42)
	- Special Function ODE Hille Q-Form 2F1 - Add (45, 46, 47)
	- Special Function ODE Independent Linear Solution List #1 (48, 49, 50)
	- Special Function ODE Independent Linear Solution List #2 (51, 52)
	- Special Function ODE Independent Linear Solution List - Add (53, 54, 55)
	- Special Function ODE Independent Linear Solution List - Constructor (56)
	- Special Function ODE Independent Linear Solution List 2F1 Z0 (57, 58)
	- Special Function ODE Independent Linear Solution List 2F1 Z0 #1 (59, 60)


Samples:

IdeaDRIP:
  • Loading branch information
Lakshmik committed Mar 16, 2024
1 parent 2e110a1 commit 1e65e70
Show file tree
Hide file tree
Showing 5 changed files with 244 additions and 194 deletions.
35 changes: 35 additions & 0 deletions ReleaseNotes/08_21_2023.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@

Features:

Bug Fixes/Re-organization:

- Special Function ODE Second Order Modified Bessel - Constructor (1, 2)
- Special Function ODE Second Order Modified Bessel - Standard #1 (3, 4)
- Special Function ODE Second Order Modified Bessel - Standard #2 (5, 6)
- Special Function ODE Second Order Modified Bessel - Standard #3 (7, 8, 9)
- Special Function ODE Second Order Riccati Bessel (10, 11, 12)
- Special Function ODE Second Order Riccati Bessel - Alpha (13, 14)
- Special Function ODE Second Order Riccati Bessel - Ordered Regular Singular Points (15)
- Special Function ODE Second Order Riccati Bessel - Constructor (16, 17)
- Special Function ODE Second Order Riccati Bessel - Standard #1 (18, 19)
- Special Function ODE Second Order Riccati Bessel - Standard #2 (20, 21, 22)
- Special Function ODE Hille Q-Form 2F1 #1 (23, 24, 25)
- Special Function ODE Hille Q-Form 2F1 #2 (26, 27)
- Special Function ODE Hille Q-Form 2F1 - v (28, 29)
- Special Function ODE Hille Q-Form 2F1 - Constructor (30, 31)
- Special Function ODE Hille Q-Form 2F1 - Standard #1 (32, 33)
- Special Function ODE Hille Q-Form 2F1 - Standard #2 (34, 35, 36)
- Special Function ODE Hille Q-Form 2F1 - Standard #3 (37, 38, 39)
- Special Function ODE Hille Q-Form 2F1 - Standard #4 (40, 41, 42)
- Special Function ODE Hille Q-Form 2F1 - Add (45, 46, 47)
- Special Function ODE Independent Linear Solution List #1 (48, 49, 50)
- Special Function ODE Independent Linear Solution List #2 (51, 52)
- Special Function ODE Independent Linear Solution List - Add (53, 54, 55)
- Special Function ODE Independent Linear Solution List - Constructor (56)
- Special Function ODE Independent Linear Solution List 2F1 Z0 (57, 58)
- Special Function ODE Independent Linear Solution List 2F1 Z0 #1 (59, 60)


Samples:

IdeaDRIP:
132 changes: 63 additions & 69 deletions src/main/java/org/drip/specialfunction/ode/HilleQForm2F1.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@

package org.drip.specialfunction.ode;

import org.drip.function.definition.R1ToR1;
import org.drip.function.definition.R2ToR1;
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>HilleQForm2F1</i> exposes the Coefficient Terms on the Q-form 2F1 Hyper-geometric ODE. The References
* are:
* are:
*
* <br><br>
* <ul>
Expand All @@ -103,22 +110,36 @@
* 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/ode/README.md">Special Function Ordinary Differential Equations</a></li>
* <li>Construct the Hille Q-Form of 2F1 ODE</li>
* <li>Retrieve the Q Form Function</li>
* <li>Retrieve the v 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/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/ode/README.md">Special Function Ordinary Differential Equations</a></td></tr>
* </table>
*
* @author Lakshmi Krishnamurthy
*/

public class HilleQForm2F1 extends org.drip.specialfunction.ode.SecondOrder
public class HilleQForm2F1 extends SecondOrder
{
private org.drip.function.definition.R1ToR1 _q = null;
private org.drip.function.definition.R1ToR1 _v = null;
private R1ToR1 _q = null;
private R1ToR1 _v = null;

/**
* Construct the Hille Q-Form of 2F1 ODE
Expand All @@ -135,23 +156,17 @@ public static final HilleQForm2F1 Standard (
final double b,
final double c)
{
if (!org.drip.numerical.common.NumberUtil.IsValid (a) ||
!org.drip.numerical.common.NumberUtil.IsValid (b) ||
!org.drip.numerical.common.NumberUtil.IsValid (c))
{
if (!NumberUtil.IsValid (a) || !NumberUtil.IsValid (b) || !NumberUtil.IsValid (c)) {
return null;
}

final org.drip.function.definition.R1ToR1 q = new org.drip.function.definition.R1ToR1 (null)
{
final R1ToR1 q = new R1ToR1 (null) {
@Override public double evaluate (
final double z)
throws java.lang.Exception
throws Exception
{
if (!org.drip.numerical.common.NumberUtil.IsValid (z))
{
throw new java.lang.Exception
("HilleQForm2F1::Standard::q::evaluate => Invalid Inputs");
if (!NumberUtil.IsValid (z)) {
throw new Exception ("HilleQForm2F1::Standard::q::evaluate => Invalid Inputs");
}

double aMinusB = a - b;
Expand All @@ -162,95 +177,74 @@ public static final HilleQForm2F1 Standard (
}
};

try
{
try {
return new HilleQForm2F1 (
new org.drip.function.definition.R2ToR1()
{
new R2ToR1() {
@Override public double evaluate (
final double z,
final double u)
throws java.lang.Exception
throws Exception
{
return 1.;
}
},
new org.drip.function.definition.R2ToR1()
{
new R2ToR1() {
@Override public double evaluate (
final double z,
final double w)
throws java.lang.Exception
throws Exception
{
return 0.;
}
},
new org.drip.function.definition.R2ToR1()
{
new R2ToR1() {
@Override public double evaluate (
final double z,
final double u)
throws java.lang.Exception
throws Exception
{
if (!org.drip.numerical.common.NumberUtil.IsValid (u))
{
throw new java.lang.Exception
("HilleQForm2F1::Standard::ZeroOrder::evaluate => Invalid Inputs");
if (!NumberUtil.IsValid (u)) {
throw new Exception (
"HilleQForm2F1::Standard::ZeroOrder::evaluate => Invalid Inputs"
);
}

return q.evaluate (z) * u;
}
},
q,
new org.drip.function.definition.R1ToR1 (null)
{
new R1ToR1 (null) {
@Override public double evaluate (
final double z)
throws java.lang.Exception
throws Exception
{
if (!org.drip.numerical.common.NumberUtil.IsValid (z))
{
throw new java.lang.Exception
("HilleQForm2F1::Standard::v::evaluate => Invalid Inputs");
if (!NumberUtil.IsValid (z)) {
throw new Exception ("HilleQForm2F1::Standard::v::evaluate => Invalid Inputs");
}

return java.lang.Math.pow (
z,
-0.5 * c
) * java.lang.Math.pow (
1. - z,
0.5 * (c - a - b - 1.)
);
return Math.pow (z, -0.5 * c) * Math.pow (1. - z, 0.5 * (c - a - b - 1.));
}
}
);
}
catch (java.lang.Exception e)
{
} catch (Exception e) {
e.printStackTrace();
}

return null;
}

private HilleQForm2F1 (
final org.drip.function.definition.R2ToR1 secondDerivativeCoefficient,
final org.drip.function.definition.R2ToR1 firstDerivativeCoefficient,
final org.drip.function.definition.R2ToR1 zeroDerivativeCoefficient,
final org.drip.function.definition.R1ToR1 q,
final org.drip.function.definition.R1ToR1 v)
throws java.lang.Exception
final R2ToR1 secondDerivativeCoefficient,
final R2ToR1 firstDerivativeCoefficient,
final R2ToR1 zeroDerivativeCoefficient,
final R1ToR1 q,
final R1ToR1 v)
throws Exception
{
super (
secondDerivativeCoefficient,
firstDerivativeCoefficient,
zeroDerivativeCoefficient
);
super (secondDerivativeCoefficient, firstDerivativeCoefficient, zeroDerivativeCoefficient);

if (null == (_q = q) ||
null == (_v = v))
{
throw new java.lang.Exception ("HilleQForm2F1 Constructor => Invalid Inputs");
if (null == (_q = q) || null == (_v = v)) {
throw new Exception ("HilleQForm2F1 Constructor => Invalid Inputs");
}
}

Expand All @@ -260,7 +254,7 @@ private HilleQForm2F1 (
* @return The Q Form Function
*/

public org.drip.function.definition.R1ToR1 q()
public R1ToR1 q()
{
return _q;
}
Expand All @@ -271,7 +265,7 @@ public org.drip.function.definition.R1ToR1 q()
* @return The v Function
*/

public org.drip.function.definition.R1ToR1 v()
public R1ToR1 v()
{
return _v;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@

package org.drip.specialfunction.ode;

import java.util.ArrayList;
import java.util.List;

import org.drip.function.definition.R1ToR1;

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

/**
* <i>IndependentLinearSolutionList</i> holds the Array of Linearly Independent Solutions at a Regular
* Singularity. The References are:
* Singularity. The References are:
*
* <br><br>
* <ul>
Expand All @@ -103,24 +111,38 @@
* 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/ode/README.md">Special Function Ordinary Differential Equations</a></li>
* <li>Empty <i>IndependentLinearSolutionList</i></li>
* <li>Add the Solution Function</li>
* <li>Retrieve the Solution Function List</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/ode/README.md">Special Function Ordinary Differential Equations</a></td></tr>
* </table>
*
* @author Lakshmi Krishnamurthy
*/

public class IndependentLinearSolutionList
{
private java.util.List<org.drip.function.definition.R1ToR1> _solutionFunctionList = null;
private List<R1ToR1> _solutionFunctionList = null;

/**
* Empty IndependentLinearSolutionList
* Empty <i>IndependentLinearSolutionList</i>
*/

public IndependentLinearSolutionList()
Expand All @@ -136,16 +158,14 @@ public IndependentLinearSolutionList()
*/

public boolean add (
final org.drip.function.definition.R1ToR1 solutionFunction)
final R1ToR1 solutionFunction)
{
if (null == solutionFunction)
{
if (null == solutionFunction) {
return false;
}

if (null == _solutionFunctionList)
{
_solutionFunctionList = new java.util.ArrayList<org.drip.function.definition.R1ToR1>();
if (null == _solutionFunctionList) {
_solutionFunctionList = new ArrayList<R1ToR1>();
}

_solutionFunctionList.add (solutionFunction);
Expand All @@ -159,7 +179,7 @@ public boolean add (
* @return The Solution Function List
*/

public java.util.List<org.drip.function.definition.R1ToR1> solutionFunctionList()
public List<R1ToR1> solutionFunctionList()
{
return _solutionFunctionList;
}
Expand Down
Loading

0 comments on commit 1e65e70

Please sign in to comment.