From 52e0139b259503d7e2aa3debd0c9307797d8a0d7 Mon Sep 17 00:00:00 2001 From: Lakshmi Krishnamurthy Date: Sat, 16 Mar 2024 20:25:03 -0400 Subject: [PATCH] Features: Bug Fixes/Re-organization: - Special Function Property Digamma Equality Lemma - Summation Identity 10 #1 (1, 2, 3) - Special Function Property Digamma Equality Lemma - Summation Identity 10 #2 (4, 5) - Special Function Property Digamma Equality Lemma - Summation Identity 10 #3 (6, 7) - Special Function Property Digamma Inequality Lemma (8, 9, 10) - Special Function Property Digamma Inequality Lemma - Left Asymptote #1 (11, 12, 13) - Special Function Property Digamma Inequality Lemma - Left Asymptote #2 (14, 15, 16) - Special Function Property Digamma Inequality Lemma - Right Asymptote #1 (17, 18, 19) - Special Function Property Digamma Inequality Lemma - Right Asymptote #2 (20, 21, 22) - Special Function Property Digamma Inequality Lemma - Zero One Left Bound #1 (23, 24, 25) - Special Function Property Digamma Inequality Lemma - Zero One Left Bound #2 (26, 27, 28) - Special Function Property Digamma Inequality Lemma - Zero One Right Bound #1 (29, 30, 31) - Special Function Property Digamma Inequality Lemma - Zero One Right Bound #2 (32, 33, 34) - Special Function Property Digamma Inequality Lemma - Bernstein Binet Left Bound #1 (35, 36, 37) - Special Function Property Digamma Inequality Lemma - Bernstein Binet Left Bound #2 (38, 39, 40) - Special Function Property Digamma Inequality Lemma - Bernstein Binet Right Bound #1 (41, 42, 43) - Special Function Property Digamma Inequality Lemma - Bernstein Binet Right Bound #2 (44, 45, 46) - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Right Bound #1 (47, 48, 49) - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Right Bound #2 (50, 51, 52) - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Left Bound #1 (53, 54, 55) - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Left Bound #2 (56, 57, 58) - Special Function Property Digamma Inequality Lemma - Alzer Difference 1997 (59, 60) Samples: IdeaDRIP: --- ReleaseNotes/08_28_2023.txt | 31 ++ ScheduleSheet.xlsx | Bin 56217 -> 56111 bytes .../property/DigammaInequalityLemma.java | 467 +++++++++--------- 3 files changed, 255 insertions(+), 243 deletions(-) create mode 100644 ReleaseNotes/08_28_2023.txt diff --git a/ReleaseNotes/08_28_2023.txt b/ReleaseNotes/08_28_2023.txt new file mode 100644 index 000000000000..34200dbff6ff --- /dev/null +++ b/ReleaseNotes/08_28_2023.txt @@ -0,0 +1,31 @@ + +Features: + +Bug Fixes/Re-organization: + + - Special Function Property Digamma Equality Lemma - Summation Identity 10 #1 (1, 2, 3) + - Special Function Property Digamma Equality Lemma - Summation Identity 10 #2 (4, 5) + - Special Function Property Digamma Equality Lemma - Summation Identity 10 #3 (6, 7) + - Special Function Property Digamma Inequality Lemma (8, 9, 10) + - Special Function Property Digamma Inequality Lemma - Left Asymptote #1 (11, 12, 13) + - Special Function Property Digamma Inequality Lemma - Left Asymptote #2 (14, 15, 16) + - Special Function Property Digamma Inequality Lemma - Right Asymptote #1 (17, 18, 19) + - Special Function Property Digamma Inequality Lemma - Right Asymptote #2 (20, 21, 22) + - Special Function Property Digamma Inequality Lemma - Zero One Left Bound #1 (23, 24, 25) + - Special Function Property Digamma Inequality Lemma - Zero One Left Bound #2 (26, 27, 28) + - Special Function Property Digamma Inequality Lemma - Zero One Right Bound #1 (29, 30, 31) + - Special Function Property Digamma Inequality Lemma - Zero One Right Bound #2 (32, 33, 34) + - Special Function Property Digamma Inequality Lemma - Bernstein Binet Left Bound #1 (35, 36, 37) + - Special Function Property Digamma Inequality Lemma - Bernstein Binet Left Bound #2 (38, 39, 40) + - Special Function Property Digamma Inequality Lemma - Bernstein Binet Right Bound #1 (41, 42, 43) + - Special Function Property Digamma Inequality Lemma - Bernstein Binet Right Bound #2 (44, 45, 46) + - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Right Bound #1 (47, 48, 49) + - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Right Bound #2 (50, 51, 52) + - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Left Bound #1 (53, 54, 55) + - Special Function Property Digamma Inequality Lemma - Elezovic Giordano Pecaric Left Bound #2 (56, 57, 58) + - Special Function Property Digamma Inequality Lemma - Alzer Difference 1997 (59, 60) + + +Samples: + +IdeaDRIP: diff --git a/ScheduleSheet.xlsx b/ScheduleSheet.xlsx index cd4766187707ce718aab10e5a3f025dc486cdf2a..f68d23e1eec0094ab4c15956fcf48f20a1d4b20f 100644 GIT binary patch delta 3951 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 delta 4068 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 E0F9^Do&W#< diff --git a/src/main/java/org/drip/specialfunction/property/DigammaInequalityLemma.java b/src/main/java/org/drip/specialfunction/property/DigammaInequalityLemma.java index 9a0602f0736d..ef597fbd6206 100644 --- a/src/main/java/org/drip/specialfunction/property/DigammaInequalityLemma.java +++ b/src/main/java/org/drip/specialfunction/property/DigammaInequalityLemma.java @@ -1,11 +1,20 @@ package org.drip.specialfunction.property; +import org.drip.function.definition.R1ToR1; +import org.drip.function.definition.R1ToR1Property; +import org.drip.numerical.common.NumberUtil; +import org.drip.specialfunction.digamma.CumulativeSeriesEstimator; +import org.drip.specialfunction.gamma.Definitions; + /* * -*- 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 +87,7 @@ /** * DigammaInequalityLemma contains the Verifiable Inequality Lemmas for the Digamma Function. The - * References are: + * References are: * *

*
    @@ -102,15 +111,36 @@ * Wikipedia (2019): Gamma Function https://en.wikipedia.org/wiki/Gamma_function * *
+ * + * It provides the following functionality: * - *

*
    - *
  • Module = Computational Core Module
  • - *
  • Library = Function Analysis Library
  • - *
  • Project = Special Function Implementation Analysis
  • - *
  • Package = Special Function Property Lemma Verifiers
  • + *
  • Generate the Digamma Asymptotic Left Inequality Verifier
  • + *
  • Generate the Digamma Asymptotic Right Inequality Verifier
  • + *
  • Generate the Digamma (0, 1) Left Bound Inequality Verifier
  • + *
  • Generate the Digamma (0, 1) Right Bound Verifier
  • + *
  • Generate the Bernstein-Binet Left Bound Inequality Verifier
  • + *
  • Generate the Bernstein-Binet Right Bound Inequality Verifier
  • + *
  • Generate the Elezovic-Giordano-Pecaric Left Bound Inequality Verifier
  • + *
  • Generate the Elezovic-Giordano-Pecaric Right Bound Inequality Verifier
  • + *
  • Generate the Alzer (1997) Digamma Difference Lemma Verifier
  • + *
  • Generate the Alzer-Jameson (2017) Inequality Verifier
  • *
* + *
+ * + * + * + * + * + * + * + *
Module Computational Core Module
Library Function Analysis Library
Project Special Function Implementation and Analysis
Package Special Function Property Lemma Verifiers
+ * * @author Lakshmi Krishnamurthy */ @@ -123,50 +153,45 @@ public class DigammaInequalityLemma * @return The Digamma Asymptotic Left Inequality Verifier */ - public static final org.drip.function.definition.R1ToR1Property LeftAsymptote() + public static final R1ToR1Property LeftAsymptote() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.LT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.LT, + 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 - ("DigammaInequalityLemma::LeftAsymptote::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::LeftAsymptote::evaluate => Invalid Inputs" + ); } - return java.lang.Math.log (z - 0.5); + return Math.log (z - 0.5); } }, - 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 - ("DigammaInequalityLemma::LeftAsymptote::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::LeftAsymptote::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -179,50 +204,45 @@ public static final org.drip.function.definition.R1ToR1Property LeftAsymptote() * @return The Digamma Asymptotic Right Inequality Verifier */ - public static final org.drip.function.definition.R1ToR1Property RightAsymptote() + public static final R1ToR1Property RightAsymptote() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.GT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.GT, + 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 - ("DigammaInequalityLemma::RightAsymptote::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::RightAsymptote::evaluate => Invalid Inputs" + ); } - return java.lang.Math.log (z); + return Math.log (z); } }, - 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 - ("DigammaInequalityLemma::RightAsymptote::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::RightAsymptote::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -235,50 +255,45 @@ public static final org.drip.function.definition.R1ToR1Property RightAsymptote() * @return The Digamma (0, 1) Left Bound Inequality Verifier */ - public static final org.drip.function.definition.R1ToR1Property ZeroOneLeftBound() + public static final R1ToR1Property ZeroOneLeftBound() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.LT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.LT, + 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 - ("DigammaInequalityLemma::ZeroOneLeftBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ZeroOneLeftBound::evaluate => Invalid Inputs" + ); } - return -1. / z - org.drip.specialfunction.gamma.Definitions.EULER_MASCHERONI; + return -1. / z - Definitions.EULER_MASCHERONI; } }, - 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 - ("DigammaInequalityLemma::ZeroOneLeftBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ZeroOneLeftBound::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -291,50 +306,45 @@ public static final org.drip.function.definition.R1ToR1Property ZeroOneLeftBound * @return The Digamma (0, 1) Right Bound Verifier */ - public static final org.drip.function.definition.R1ToR1Property ZeroOneRightBound() + public static final R1ToR1Property ZeroOneRightBound() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.GT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.GT, + 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 - ("DigammaInequalityLemma::ZeroOneRightBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ZeroOneRightBound::evaluate => Invalid Inputs" + ); } - return 1. - 1. / z - org.drip.specialfunction.gamma.Definitions.EULER_MASCHERONI; + return 1. - 1. / z - Definitions.EULER_MASCHERONI; } }, - 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 - ("DigammaInequalityLemma::ZeroOneRightBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ZeroOneRightBound::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -347,50 +357,45 @@ public static final org.drip.function.definition.R1ToR1Property ZeroOneRightBoun * @return The Bernstein-Binet Left Bound Inequality Verifier */ - public static final org.drip.function.definition.R1ToR1Property BernsteinBinetLeftBound() + public static final R1ToR1Property BernsteinBinetLeftBound() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.LT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.LT, + 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 - ("DigammaInequalityLemma::BernsteinBinetLeftBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::BernsteinBinetLeftBound::evaluate => Invalid Inputs" + ); } - return java.lang.Math.log (z) - 1. / z; + return Math.log (z) - 1. / z; } }, - 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 - ("DigammaInequalityLemma::BernsteinBinetLeftBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::BernsteinBinetLeftBound::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -403,50 +408,45 @@ public static final org.drip.function.definition.R1ToR1Property BernsteinBinetLe * @return The Bernstein-Binet Right Bound Inequality Verifier */ - public static final org.drip.function.definition.R1ToR1Property BernsteinBinetRightBound() + public static final R1ToR1Property BernsteinBinetRightBound() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.GT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.GT, + 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 - ("DigammaInequalityLemma::BernsteinBinetRightBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::BernsteinBinetRightBound::evaluate => Invalid Inputs" + ); } - return java.lang.Math.log (z) - 0.5 / z; + return Math.log (z) - 0.5 / z; } }, - 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 - ("DigammaInequalityLemma::BernsteinBinetRightBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::BernsteinBinetRightBound::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -459,50 +459,45 @@ public static final org.drip.function.definition.R1ToR1Property BernsteinBinetRi * @return The Elezovic-Giordano-Pecaric Left Bound Inequality Verifier */ - public static final org.drip.function.definition.R1ToR1Property ElezovicGiordanoPecaricLeftBound() + public static final R1ToR1Property ElezovicGiordanoPecaricLeftBound() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.LT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.LT, + 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 - ("DigammaInequalityLemma::ElezovicGiordanoPecaricLeftBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ElezovicGiordanoPecaricLeftBound::evaluate => Invalid Inputs" + ); } - return java.lang.Math.log (z + 0.5) - 1. / z; + return Math.log (z + 0.5) - 1. / z; } }, - 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 - ("DigammaInequalityLemma::ElezovicGiordanoPecaricLeftBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ElezovicGiordanoPecaricLeftBound::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -515,54 +510,45 @@ public static final org.drip.function.definition.R1ToR1Property ElezovicGiordano * @return The Elezovic-Giordano-Pecaric Right Bound Inequality Verifier */ - public static final org.drip.function.definition.R1ToR1Property ElezovicGiordanoPecaricRightBound() + public static final R1ToR1Property ElezovicGiordanoPecaricRightBound() { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.GT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.GT, + 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 - ("DigammaInequalityLemma::ElezovicGiordanoPecaricRightBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ElezovicGiordanoPecaricRightBound::evaluate => Invalid Inputs" + ); } - return java.lang.Math.log ( - z + java.lang.Math.exp ( - -org.drip.specialfunction.gamma.Definitions.EULER_MASCHERONI - ) - ) - 1. / z; + return Math.log (z + Math.exp (Definitions.EULER_MASCHERONI)) - 1. / z; } }, - 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 - ("DigammaInequalityLemma::ElezovicGiordanoPecaricRightBound::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::ElezovicGiordanoPecaricRightBound::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); } @@ -577,51 +563,46 @@ public static final org.drip.function.definition.R1ToR1Property ElezovicGiordano * @return The Alzer (1997) Digamma Difference Lemma Verifier */ - public static final org.drip.function.definition.R1ToR1Property AlzerDifference1997 ( + public static final R1ToR1Property AlzerDifference1997 ( final double s) { - final org.drip.specialfunction.digamma.CumulativeSeriesEstimator abramowitzStegun2007 = - org.drip.specialfunction.digamma.CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); + final CumulativeSeriesEstimator abramowitzStegun2007 = + CumulativeSeriesEstimator.AbramowitzStegun2007 (1638400); - try - { - return new org.drip.function.definition.R1ToR1Property ( - org.drip.function.definition.R1ToR1Property.LT, - new org.drip.function.definition.R1ToR1 (null) - { + try { + return new R1ToR1Property ( + R1ToR1Property.LT, + 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 - ("DigammaInequalityLemma::AlzerDifference1997::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::AlzerDifference1997::evaluate => Invalid Inputs" + ); } return (1. - s) / (z + s); } }, - 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 - ("DigammaInequalityLemma::AlzerDifference1997::evaluate => Invalid Inputs"); + if (!NumberUtil.IsValid (z)) { + throw new Exception ( + "DigammaInequalityLemma::AlzerDifference1997::evaluate => Invalid Inputs" + ); } return abramowitzStegun2007.evaluate (z + 1) - abramowitzStegun2007.evaluate (z + s); } }, - org.drip.function.definition.R1ToR1Property.MISMATCH_TOLERANCE + R1ToR1Property.MISMATCH_TOLERANCE ); - } - catch (java.lang.Exception e) - { + } catch (Exception e) { e.printStackTrace(); }