diff options
author | Martin Odersky <odersky@gmail.com> | 2003-02-14 14:39:24 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2003-02-14 14:39:24 +0000 |
commit | 21b147f7caf8b558b00044f493cf9da392c7e30e (patch) | |
tree | a964142a10a16e7c9a64b03e44fdde1d9f1b63be /test/files/pos/sqrt.scala | |
parent | fd3f10df3cd88fe3b970f8312a479ae63f0803b8 (diff) | |
download | scala-21b147f7caf8b558b00044f493cf9da392c7e30e.tar.gz scala-21b147f7caf8b558b00044f493cf9da392c7e30e.tar.bz2 scala-21b147f7caf8b558b00044f493cf9da392c7e30e.zip |
Initial version.
Diffstat (limited to 'test/files/pos/sqrt.scala')
-rw-r--r-- | test/files/pos/sqrt.scala | 21 |
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 |