summaryrefslogtreecommitdiffstats
path: root/Scala/sandbox/1-sqrt.scala
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2013-04-03 23:41:42 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2016-11-10 18:03:22 +0100
commitdadc875c05c830d15ee0aebea70aefaea6d3e55e (patch)
tree5e86616033f1cb49749d45ecc33021b99beec97f /Scala/sandbox/1-sqrt.scala
parent1242f3e674a2dc1b2a6d4a6597c0d72d0596f469 (diff)
downloadcoursera-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.scala30
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))
+ }
+
+}