diff options
author | Calvin <calvin@EESI> | 2013-05-28 10:47:11 -0400 |
---|---|---|
committer | Calvin <calvin@EESI> | 2013-05-28 10:47:11 -0400 |
commit | dd38d0d1dda2be42bf280aeca110542f2f2fef1b (patch) | |
tree | c921dc0690e29f1b7b913aaa72b9c12539faa5a1 /src/nbc/kahan.sml | |
parent | 2f33e34ae06b96c3f3e4456ce960172903f60bfb (diff) |
removed files
Diffstat (limited to 'src/nbc/kahan.sml')
-rw-r--r-- | src/nbc/kahan.sml | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/src/nbc/kahan.sml b/src/nbc/kahan.sml deleted file mode 100644 index 70c6b47..0000000 --- a/src/nbc/kahan.sml +++ /dev/null @@ -1,31 +0,0 @@ -(* Kahan summation *) - -signature KAHAN = sig - type t - val zero: t - val add: t * real -> t - val sum: t -> real - val sequence: real Sequence.t -> real - val list: real list -> real - val array: real array -> real -end - -structure Kahan :> KAHAN = struct - type t = real * real - val zero = (0.0, 0.0) - fun add ((s, c), x) = - let - val y = x - c - val t = s + y - in - (t, t - s - y) - end - fun sum (s, c) = s - local - fun swappedAdd (a, b) = add (b, a) - in - fun sequence e = sum (Sequence.fold swappedAdd zero e) - fun list l = sum (foldl swappedAdd zero l) - fun array a = sum (Array.foldl swappedAdd zero a) - end -end |