summaryrefslogtreecommitdiffstats
path: root/guile/net/ricketyspace/taocp/one/two/seven/hn.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guile/net/ricketyspace/taocp/one/two/seven/hn.scm')
-rw-r--r--guile/net/ricketyspace/taocp/one/two/seven/hn.scm24
1 files changed, 24 insertions, 0 deletions
diff --git a/guile/net/ricketyspace/taocp/one/two/seven/hn.scm b/guile/net/ricketyspace/taocp/one/two/seven/hn.scm
new file mode 100644
index 0000000..68d16dc
--- /dev/null
+++ b/guile/net/ricketyspace/taocp/one/two/seven/hn.scm
@@ -0,0 +1,24 @@
+;;;; copyright 2016 rsiddharth <s@ricketyspace.net>
+;;;; under gnu general public license version 3 or higher.
+
+(define-module (net ricketyspace taocp one two seven hn)
+ #:export (compute-hn
+ compute-h2^m
+ h2^m-relation))
+
+;;; compute H_n
+(define (compute-hn n)
+ (cond ((= 1 n) 1.0)
+ (else (+ (/ 1.0 n) (compute-hn (1- n))))))
+
+;;; compute H_2^m
+(define (compute-h2^m m)
+ (let* ((n (expt 2 m)))
+ (compute-hn n)))
+
+;;; H_2^m >= 1 + m/2 relation
+(define (h2^m-relation m)
+ (let ((2^m (expt 2 m))
+ (h2^m (compute-h2^m m))
+ (rhs (+ 1.0 (/ m 2.0))))
+ (list 2^m h2^m rhs)))