summaryrefslogtreecommitdiff
path: root/test/files/pos/sqrt.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/pos/sqrt.scala')
-rw-r--r--test/files/pos/sqrt.scala21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/files/pos/sqrt.scala b/test/files/pos/sqrt.scala
new file mode 100644
index 0000000000..f6a53824b4
--- /dev/null
+++ b/test/files/pos/sqrt.scala
@@ -0,0 +1,21 @@
+module test {
+
+ def abs(x: Double) = if (x >= 0) x else 0 - x;
+
+
+ def square(x: Double) = x * x;
+
+ def sqrt(x: Double) = {
+ def sqrtIter(guess: Double): Double =
+ if (isGoodEnough(guess)) guess
+ else sqrtIter(improve(guess));
+
+ def improve(guess: Double) =
+ (guess + x / guess) / 2;
+
+ def isGoodEnough(guess: Double) =
+ abs(square(guess) - x) < 0.001;
+
+ sqrtIter(1.0);
+ }
+} \ No newline at end of file