diff options
author | Nicolas Tobler <nicolas.tobler@ost.ch> | 2022-08-03 20:37:12 +0200 |
---|---|---|
committer | Nicolas Tobler <nicolas.tobler@ost.ch> | 2022-08-03 20:37:12 +0200 |
commit | e08392d4bacb9a54c3ab755fa6445514749b608f (patch) | |
tree | 67af5a4a6ed541b1b425de89fd05c2a74a265571 /buch/papers/0f1/listings/kettenbruchRekursion.c | |
parent | improved Einleitung (diff) | |
parent | Merge pull request #39 from NaoPross/master (diff) | |
download | SeminarSpezielleFunktionen-e08392d4bacb9a54c3ab755fa6445514749b608f.tar.gz SeminarSpezielleFunktionen-e08392d4bacb9a54c3ab755fa6445514749b608f.zip |
Merge branch 'master' of https://github.com/AndreasFMueller/SeminarSpezielleFunktionen
Diffstat (limited to '')
-rw-r--r-- | buch/papers/0f1/listings/kettenbruchRekursion.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/buch/papers/0f1/listings/kettenbruchRekursion.c b/buch/papers/0f1/listings/kettenbruchRekursion.c new file mode 100644 index 0000000..3caaf43 --- /dev/null +++ b/buch/papers/0f1/listings/kettenbruchRekursion.c @@ -0,0 +1,27 @@ +/**
+ * @brief Calculates the Hypergeometric Function 0F1(;c;z)
+ * @param c in 0F1(;c;z)
+ * @param z in 0F1(;c;z)
+ * @param k number of itertions (precision)
+ * @return Result
+ */
+static double fractionIter0f1(const double c, const double z, unsigned int k)
+{
+ //declaration
+ double a = 0.0;
+ double b = 0.0;
+ double abk = 0.0;
+ double temp = 0.0;
+
+ for (; k > 0; --k)
+ {
+ abk = z / (k * ((k - 1) + c)); //abk = ak, bk
+
+ a = k > 1 ? (1 + abk) : 1; //a0, a1
+ b = k > 1 ? -abk : abk; //b1
+
+ temp = b / (a + temp); //bk / (ak + last result)
+ }
+
+ return a + temp; //a0 + temp
+}
\ No newline at end of file |