From 21b147f7caf8b558b00044f493cf9da392c7e30e Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 14 Feb 2003 14:39:24 +0000 Subject: Initial version. --- test/files/pos/sqrt.scala | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/files/pos/sqrt.scala (limited to 'test/files/pos/sqrt.scala') 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 -- cgit v1.2.3