aboutsummaryrefslogtreecommitdiffstats
path: root/buch/papers/0f1/listings/kettenbruchRekursion.c
diff options
context:
space:
mode:
authorRunterer <37069007+Runterer@users.noreply.github.com>2022-08-06 11:00:54 +0200
committerGitHub <noreply@github.com>2022-08-06 11:00:54 +0200
commit72f13d47f42a7005889532fd29bcfc870f4e5051 (patch)
tree559c39cde661ea56759051c9b7965fb28468cfb6 /buch/papers/0f1/listings/kettenbruchRekursion.c
parentminor presentation improvements (diff)
parentMerge pull request #42 from daHugen/master (diff)
downloadSeminarSpezielleFunktionen-72f13d47f42a7005889532fd29bcfc870f4e5051.tar.gz
SeminarSpezielleFunktionen-72f13d47f42a7005889532fd29bcfc870f4e5051.zip
Merge branch 'AndreasFMueller:master' into master
Diffstat (limited to 'buch/papers/0f1/listings/kettenbruchRekursion.c')
-rw-r--r--buch/papers/0f1/listings/kettenbruchRekursion.c27
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