Cumulative standard deviation: Difference between revisions
Content added Content deleted
Line 2,886: | Line 2,886: | ||
=={{header|Scala}}== |
=={{header|Scala}}== |
||
{{libheader|Scala}} |
{{libheader|Scala}} |
||
<lang Scala>import scala.math. |
<lang Scala>import scala.math.sqrt |
||
import Numeric.Implicits._ |
|||
object StddevCalc extends App { |
object StddevCalc extends App { |
||
⚫ | |||
⚫ | |||
⚫ | |||
def calcAvgAndStddev[T](ts: Iterable[T])(implicit num: Fractional[T]): (T, Double) = { |
def calcAvgAndStddev[T](ts: Iterable[T])(implicit num: Fractional[T]): (T, Double) = { |
||
⚫ | |||
⚫ | |||
⚫ | |||
val mean = avg(ts) // Leave val type of T |
val mean = avg(ts) // Leave val type of T |
||
val stdDev = // Root of mean diffs |
val stdDev = // Root of mean diffs |
||
sqrt(num.toDouble( |
|||
⚫ | |||
ts.foldLeft(num.zero)((b, a) => |
|||
⚫ | |||
ts.size) |
|||
(mean, stdDev) |
(mean, stdDev) |
||
} |
} |