diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2013-04-03 23:41:42 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2016-11-10 18:03:22 +0100 |
commit | dadc875c05c830d15ee0aebea70aefaea6d3e55e (patch) | |
tree | 5e86616033f1cb49749d45ecc33021b99beec97f /Scala/sandbox/1-sqrt.scala | |
parent | 1242f3e674a2dc1b2a6d4a6597c0d72d0596f469 (diff) | |
download | coursera-dadc875c05c830d15ee0aebea70aefaea6d3e55e.zip coursera-dadc875c05c830d15ee0aebea70aefaea6d3e55e.tar.gz |
Scala : rename files in sandbox
Diffstat (limited to 'Scala/sandbox/1-sqrt.scala')
-rw-r--r-- | Scala/sandbox/1-sqrt.scala | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Scala/sandbox/1-sqrt.scala b/Scala/sandbox/1-sqrt.scala new file mode 100644 index 0000000..c76ee00 --- /dev/null +++ b/Scala/sandbox/1-sqrt.scala @@ -0,0 +1,30 @@ + +object Sqrt { + + def abs(x:Double) = if (x < 0) -x else x + + def sqrt(x: Double) = { + + def sqrtIter(guess: Double): Double = + if (isGoodEnough(guess)) guess + else sqrtIter(improve(guess)) + + def isGoodEnough(guess: Double) = + abs(guess * guess - x ) /x < 0.001 + + def improve(guess: Double) = + (guess + x / guess) / 2 + + sqrtIter(1.0) + } + + def run = { + println("Sqrt") + println(sqrt(2)) + println(sqrt(0.001)) + println(sqrt(0.1e-20)) + println(sqrt(1.0e20)) + println(sqrt(1.0e50)) + } + +} |