Averages/Root mean square: Difference between revisions

m
syntax highlighting fixup automation
m (syntax highlighting fixup automation)
Line 22:
=={{header|11l}}==
{{trans|Python}}
<langsyntaxhighlight lang=11l>F qmean(num)
R sqrt(sum(num.map(n -> n * n)) / Float(num.len))
 
print(qmean(1..10))</langsyntaxhighlight>
{{out}}
<pre>
Line 33:
=={{header|Action!}}==
{{libheader|Action! Tool Kit}}
<langsyntaxhighlight lang=Action!>INCLUDE "D2:REAL.ACT" ;from the Action! Tool Kit
 
BYTE FUNC Equal(REAL POINTER a,b)
Line 76:
Print("RMS of 1..10 is ")
PrintRE(x)
RETURN</langsyntaxhighlight>
{{out}}
[https://gitlab.com/amarok8bit/action-rosetta-code/-/raw/master/images/Root_mean_square.png Screenshot from Atari 8-bit computer]
Line 84:
 
=={{header|Ada}}==
<langsyntaxhighlight lang=Ada>with Ada.Float_Text_IO; use Ada.Float_Text_IO;
with Ada.Numerics.Elementary_Functions;
use Ada.Numerics.Elementary_Functions;
Line 103:
list := (1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0);
put( rms(list) , Exp=>0);
end calcrms;</langsyntaxhighlight>
{{out}}
<pre>
Line 113:
{{works with|ALGOL 68G|Any - tested with release [http://sourceforge.net/projects/algol68/files/algol68g/algol68g-1.18.0/algol68g-1.18.0-9h.tiny.el5.centos.fc11.i386.rpm/download 1.18.0-9h.tiny]}}
{{works with|ELLA ALGOL 68|Any (with appropriate job cards)}}
<langsyntaxhighlight lang=algol68># Define the rms PROCedure & ABS OPerators for LONG... REAL #
MODE RMSFIELD = #LONG...# REAL;
PROC (RMSFIELD)RMSFIELD rms field sqrt = #long...# sqrt;
Line 140:
print(("crude rms(one to ten): ", crude rms(one to ten), new line));
print(("rms(one to ten): ", rms(one to ten), new line))
)</langsyntaxhighlight>
{{out}}
<pre>
Line 148:
=={{header|ALGOL-M}}==
Because ALGOL-M lacks a built-in square root function, we have to supply our own.
<langsyntaxhighlight lang=algol>
BEGIN
 
Line 184:
WRITE("RMS OF WHOLE NUMBERS 1.0 THROUGH 10.0 =", SQRT(SQMEAN));
 
END</langsyntaxhighlight>
{{out}}
Based on the limited precision of the square root function, only the first six decimal places of the output can actually be relied on (but that's more than sufficient for most real world uses).
Line 192:
 
=={{header|ALGOL W}}==
<langsyntaxhighlight lang=algolw>begin
% computes the root-mean-square of an array of numbers with %
% the specified lower bound (lb) and upper bound (ub) %
Line 212:
write( "rms of 1 .. 10: ", rms( testNumbers, 1, 10 ) );
 
end.</langsyntaxhighlight>
{{out}}
<pre>
Line 219:
 
=={{header|APL}}==
<langsyntaxhighlight lang=APL> rms←{((+/⍵*2)÷⍴⍵)*0.5}
x←⍳10
 
rms x
6.204836823</langsyntaxhighlight>
 
=={{header|AppleScript}}==
{{Trans|JavaScript}}( ES6 version )
<langsyntaxhighlight lang=AppleScript>-- rootMeanSquare :: [Num] -> Real
on rootMeanSquare(xs)
script
Line 272:
end script
end if
end mReturn</langsyntaxhighlight>
{{Out}}
<pre>6.204836822995</pre>
Line 278:
=={{header|Arturo}}==
 
<langsyntaxhighlight lang=rebol>rootMeanSquare: function [arr]->
sqrt (sum map arr 'i -> i^2) // size arr
 
print rootMeanSquare 1..10</langsyntaxhighlight>
 
{{out}}
Line 288:
 
=={{header|Astro}}==
<syntaxhighlight lang =python>sqrt(mean(x²))</langsyntaxhighlight>
 
=={{header|AutoHotkey}}==
===Using a loop===
<langsyntaxhighlight lang=autohotkey>MsgBox, % RMS(1, 10)
 
 
Line 302:
Sum += (a + A_Index - 1) ** 2
Return, Sqrt(Sum / n)
}</langsyntaxhighlight>
Message box shows:
<pre>
Line 313:
We can show that:<br>
<math>\sum_{i=a}^b i^2 = \frac{b(b+1)(2b+1)-a(a-1)(2a-1)}{6}</math>
<langsyntaxhighlight lang=autohotkey>MsgBox, % RMS(1, 10)
 
 
Line 320:
;---------------------------------------------------------------------------
Return, Sqrt((b*(b+1)*(2*b+1)-a*(a-1)*(2*a-1))/6/(b-a+1))
}</langsyntaxhighlight>
Message box shows:
<pre>
Line 327:
 
=={{header|AWK}}==
<langsyntaxhighlight lang=awk>#!/usr/bin/awk -f
# computes RMS of the 1st column of a data file
{
Line 337:
END {
print "RMS: ",sqrt(S/N);
}</langsyntaxhighlight>
 
=={{header|BASIC}}==
Line 344:
Note that this will work in [[Visual Basic]] and the Windows versions of [[PowerBASIC]] by simply wrapping the module-level code into the <code>MAIN</code> function, and changing <code>PRINT</code> to <code>MSGBOX</code>.
 
<langsyntaxhighlight lang=qbasic>DIM i(1 TO 10) AS DOUBLE, L0 AS LONG
FOR L0 = 1 TO 10
i(L0) = L0
Line 357:
tmp = UBOUND(what) - LBOUND(what) + 1
rms# = SQR(rt / tmp)
END FUNCTION</langsyntaxhighlight>
 
See also: [[#BBC BASIC|BBC BASIC]], [[#Liberty BASIC|Liberty BASIC]], [[#PureBasic|PureBasic]], [[#Run BASIC|Run BASIC]]
Line 363:
==={{header|Applesoft BASIC}}===
 
<langsyntaxhighlight lang=ApplesoftBasic> 10 N = 10
20 FOR I = 1 TO N
30 S = S + I * I
40 NEXT
50 X = SQR (S / N)
60 PRINT X</langsyntaxhighlight>
 
{{out}}
Line 374:
 
==={{header|IS-BASIC}}===
<langsyntaxhighlight lang=IS-BASIC>100 PRINT RMS(10)
110 DEF RMS(N)
120 LET R=0
Line 381:
150 NEXT
160 LET RMS=SQR(R/N)
170 END DEF</langsyntaxhighlight>
 
==={{header|Sinclair ZX81 BASIC}}===
<langsyntaxhighlight lang=basic>10 FAST
20 LET RMS=0
30 FOR X=1 TO 10
Line 391:
60 LET RMS=SQR (RMS/10)
70 SLOW
80 PRINT RMS</langsyntaxhighlight>
{{out}}
<pre>6.2048368</pre>
 
==={{header|BBC BASIC}}===
<langsyntaxhighlight lang=bbcbasic> DIM array(9)
array() = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Line 402:
END
DEF FNrms(a()) = MOD(a()) / SQR(DIM(a(),1)+1)</langsyntaxhighlight>
 
=={{header|BQN}}==
RMS is a tacit function which computes root mean square.
<langsyntaxhighlight lang=bqn>RMS ← √+´∘ט÷≠
 
RMS 1+↕10</langsyntaxhighlight>
<lang>6.2048368229954285</langsyntaxhighlight>
 
[https://mlochbaum.github.io/BQN/try.html#code=Uk1TIOKGkCDiiJorwrTiiJjDl8ucw7fiiaAKClJNUyAxK+KGlTEw Try It!]
 
Another solution is to take the arithmetic mean <code>+´÷≠</code> under the square (<code>ט</code>) function. Under (<code>⌾</code>) squares the arguments, then applies the mean, then inverts the square function.
<langsyntaxhighlight lang=bqn>RMS ← (+´÷≠)⌾(ט)</langsyntaxhighlight>
 
=={{header|C}}==
<langsyntaxhighlight lang=c>#include <stdio.h>
#include <math.h>
 
Line 434:
printf("%f\n", rms(v, sizeof(v)/sizeof(double)));
return 0;
}</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
<langsyntaxhighlight lang=csharp>using System;
 
namespace rms
Line 459:
}
}
}</langsyntaxhighlight>
An alternative method demonstrating the more functional style introduced by LINQ and lambda expressions in C# 3.
{{works with|C sharp|C#|3}}
<langsyntaxhighlight lang=csharp>using System;
using System.Collections.Generic;
using System.Linq;
Line 480:
}
}
}</langsyntaxhighlight>
 
=={{header|C++}}==
<langsyntaxhighlight lang=Cpp>#include <iostream>
#include <vector>
#include <cmath>
Line 495:
std::cout << "The quadratic mean of the numbers 1 .. " << numbers.size() << " is " << meansquare << " !\n" ;
return 0 ;
}</langsyntaxhighlight>
{{out}}
<pre>
Line 502:
 
=={{header|Clojure}}==
<langsyntaxhighlight lang=clojure>
(defn rms [xs]
(Math/sqrt (/ (reduce + (map #(* % %) xs))
(count xs))))
 
(println (rms (range 1 11)))</langsyntaxhighlight>
{{out}}
<pre>
Line 515:
=={{header|COBOL}}==
Could be written more succinctly, with an inline loop and more <tt>COMPUTE</tt> statements; but that wouldn't be very COBOLic.
<langsyntaxhighlight lang=cobol>IDENTIFICATION DIVISION.
PROGRAM-ID. QUADRATIC-MEAN-PROGRAM.
DATA DIVISION.
Line 535:
ADD 1 TO N.
MULTIPLY N BY N GIVING N-SQUARED.
ADD N-SQUARED TO RUNNING-TOTAL.</langsyntaxhighlight>
{{out}}
<pre>6.204836822995428</pre>
Line 541:
=={{header|CoffeeScript}}==
{{trans|JavaScript}}
<langsyntaxhighlight lang=coffeescript> root_mean_square = (ary) ->
sum_of_squares = ary.reduce ((s,x) -> s + x*x), 0
return Math.sqrt(sum_of_squares / ary.length)
alert root_mean_square([1..10])</langsyntaxhighlight>
 
=={{header|Common Lisp}}==
<langsyntaxhighlight lang=lisp>(loop for x from 1 to 10
for xx = (* x x)
for n from 1
summing xx into xx-sum
finally (return (sqrt (/ xx-sum n))))</langsyntaxhighlight>
 
Here's a non-iterative solution.
 
<langsyntaxhighlight lang=lisp>
(defun root-mean-square (numbers)
"Takes a list of numbers, returns their quadratic mean."
Line 564:
 
(root-mean-square (loop for i from 1 to 10 collect i))
</syntaxhighlight>
</lang>
 
=={{header|Crystal}}==
{{trans|Ruby}}
<langsyntaxhighlight lang=ruby>def rms(seq)
Math.sqrt(seq.sum { |x| x*x } / seq.size)
end
 
puts rms (1..10).to_a</langsyntaxhighlight>
 
{{out}}
Line 578:
 
=={{header|D}}==
<langsyntaxhighlight lang=d>import std.stdio, std.math, std.algorithm, std.range;
 
real rms(R)(R d) pure {
Line 586:
void main() {
writefln("%.19f", iota(1, 11).rms);
}</langsyntaxhighlight>
{{out}}
<pre>
Line 593:
 
=={{header|Delphi}}/{{header|Pascal}}==
<langsyntaxhighlight lang=Delphi>program AveragesMeanSquare;
 
{$APPTYPE CONSOLE}
Line 614:
Writeln(MeanSquare(TDoubleDynArray.Create()));
Writeln(MeanSquare(TDoubleDynArray.Create(1,2,3,4,5,6,7,8,9,10)));
end.</langsyntaxhighlight>
 
=={{header|E}}==
Using the same generic mean function as used in [[../Pythagorean means#E|pythagorean means]]:
<langsyntaxhighlight lang=e>def makeMean(base, include, finish) {
return def mean(numbers) {
var count := 0
Line 630:
}
 
def RMS := makeMean(0, fn b,x { b+x**2 }, fn acc,n { (acc/n).sqrt() })</langsyntaxhighlight>
 
<langsyntaxhighlight lang=e>? RMS(1..10)
# value: 6.2048368229954285</langsyntaxhighlight>
 
=={{header|EchoLisp}}==
<langsyntaxhighlight lang=scheme>
(define (rms xs)
(sqrt (// (for/sum ((x xs)) (* x x)) (length xs))))
Line 642:
(rms (range 1 11))
→ 6.2048368229954285
</syntaxhighlight>
</lang>
 
=={{header|Elena}}==
{{trans|C#}}
ELENA 5.0 :
<langsyntaxhighlight lang=elena>import extensions;
import system'routines;
import system'math;
Line 660:
{
console.printLine(new Range(1, 10).RootMeanSquare)
}</langsyntaxhighlight>
{{out}}
<pre>
Line 667:
 
=={{header|Elixir}}==
<langsyntaxhighlight lang=elixir>
defmodule RC do
def root_mean_square(enum) do
Line 682:
 
IO.puts RC.root_mean_square(1..10)
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 693:
(float (length nums)))))
 
(rms (number-sequence 1 10))</langsyntaxhighlight>
 
{{out}}
Line 699:
 
=={{header|Erlang}}==
<langsyntaxhighlight lang=erlang>rms(Nums) ->
math:sqrt(lists:foldl(fun(E,S) -> S+E*E end, 0, Nums) / length(Nums)).
 
rms([1,2,3,4,5,6,7,8,9,10]).</langsyntaxhighlight>
{{out}}
<pre>6.2048368229954285</pre>
Line 717:
PRINT("Root mean square is";X)
END PROGRAM
</syntaxhighlight>
</lang>
You can, obviously, generalize reading data from a DATA line or from a file.
 
=={{header|Euphoria}}==
<langsyntaxhighlight lang=euphoria>function rms(sequence s)
atom sum
if length(s) = 0 then
Line 734:
 
constant s = {1,2,3,4,5,6,7,8,9,10}
? rms(s)</langsyntaxhighlight>
{{out}}
<pre>6.204836823</pre>
Line 741:
===Cell reference expression===
If values are entered in the cells A1 to A10, the below expression will give the RMS value
<langsyntaxhighlight lang=excel>
=SQRT(SUMSQ($A1:$A10)/COUNT($A1:$A10))
</syntaxhighlight>
</lang>
 
The RMS of [1,10] is then : 6.204836823 ( Actual displayed value 6.204837)
Line 755:
{{Works with|Office 365 betas 2021}}
 
<langsyntaxhighlight lang=lisp>ROOTMEANSQR
=LAMBDA(xs,
SQRT(SUMSQ(xs)/COUNT(xs))
)</langsyntaxhighlight>
 
For this test, we assume that the following generic lambda is also bound to the name ENUMFROMTO in the Name Manager:
 
<langsyntaxhighlight lang=lisp>ENUMFROMTO
=LAMBDA(a,
LAMBDA(z,
SEQUENCE(1 + z - a, 1, a, 1)
)
)</langsyntaxhighlight>
 
{{Out}}
Line 790:
=={{header|F Sharp|F#}}==
Uses a lambda expression and function piping.
<langsyntaxhighlight lang=Fsharp>let RMS (x:float list) : float = List.map (fun y -> y**2.0) x |> List.average |> System.Math.Sqrt
 
let res = RMS [1.0..10.0]</langsyntaxhighlight>
Answer (in F# Interactive window):
<pre>val res : float = 6.204836823</pre>
 
=={{header|Factor}}==
<langsyntaxhighlight lang=factor>: root-mean-square ( seq -- mean )
[ [ sq ] map-sum ] [ length ] bi / sqrt ;</langsyntaxhighlight>
 
( scratchpad ) 10 [1,b] root-mean-square .
Line 804:
 
=={{header|Fantom}}==
<langsyntaxhighlight lang=fantom>class Main
{
static Float averageRms (Float[] nums)
Line 819:
echo ("RMS Average of $a is: " + averageRms(a))
}
}</langsyntaxhighlight>
 
=={{header|Forth}}==
<langsyntaxhighlight lang=forth>: rms ( faddr len -- frms )
dup >r 0e
floats bounds do
Line 830:
 
create test 1e f, 2e f, 3e f, 4e f, 5e f, 6e f, 7e f, 8e f, 9e f, 10e f,
test 10 rms f. \ 6.20483682299543</langsyntaxhighlight>
 
=={{header|Fortran}}==
Assume <math> x </math> stored in array x.
<langsyntaxhighlight lang=Fortran>print *,sqrt( sum(x**2)/size(x) )</langsyntaxhighlight>
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang=freebasic>
' FB 1.05.0 Win64
 
Line 858:
Print "Press any key to quit the program"
Sleep
</syntaxhighlight>
</lang>
 
{{out}}
Line 867:
=={{header|Futhark}}==
 
<langsyntaxhighlight lang=Futhark>
import "futlib/math"
 
fun main(as: [n]f64): f64 =
f64.sqrt ((reduce (+) 0.0 (map (**2.0) as)) / f64(n))
</syntaxhighlight>
</lang>
 
=={{header|GEORGE}}==
<langsyntaxhighlight lang=GEORGE>
1, 10 rep (i)
i i | (v) ;
Line 885:
sqrt
print
</syntaxhighlight>
</lang>
<pre>
6.204836822995428
Line 891:
 
=={{header|Go}}==
<langsyntaxhighlight lang=go>package main
 
import (
Line 905:
}
fmt.Println(math.Sqrt(sum / n))
}</langsyntaxhighlight>
{{out}}
<pre>
Line 913:
=={{header|Groovy}}==
Solution:
<langsyntaxhighlight lang=groovy>def quadMean = { list ->
list == null \
? null \
Line 919:
? 0 \
: ((list.collect { it*it }.sum()) / list.size()) ** 0.5
}</langsyntaxhighlight>
Test:
<langsyntaxhighlight lang=groovy>def list = 1..10
def Q = quadMean(list)
println """
list: ${list}
Q: ${Q}
"""</langsyntaxhighlight>
{{out}}
<pre>list: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Line 933:
=={{header|Haskell}}==
Given the <code>mean</code> function defined in [[Averages/Pythagorean means]]:
<langsyntaxhighlight lang=haskell>main = print $ mean 2 [1 .. 10]</langsyntaxhighlight>
 
Or, writing a naive '''mean''' of our own, (but see https://donsbot.wordpress.com/2008/06/04/haskell-as-fast-as-c-working-at-a-high-altitude-for-low-level-performance/):
 
<langsyntaxhighlight lang=haskell>import Data.List (genericLength)
 
rootMeanSquare :: [Double] -> Double
Line 943:
 
main :: IO ()
main = print $ rootMeanSquare [1 .. 10]</langsyntaxhighlight>
{{Out}}
<pre>6.2048368229954285</pre>
 
=={{header|HicEst}}==
<langsyntaxhighlight lang=HicEst>sum = 0
DO i = 1, 10
sum = sum + i^2
ENDDO
WRITE(ClipBoard) "RMS(1..10) = ", (sum/10)^0.5 </langsyntaxhighlight>
RMS(1..10) = 6.204836823
 
=={{header|Icon}} and {{header|Unicon}}==
<langsyntaxhighlight lang=Icon>procedure main()
every put(x := [], 1 to 10)
writes("x := [ "); every writes(!x," "); write("]")
write("Quadratic mean:",q := qmean!x)
end</langsyntaxhighlight>
 
 
<langsyntaxhighlight lang=Icon>procedure qmean(L[]) #: quadratic mean
local m
if *L = 0 then fail
every (m := 0.0) +:= !L^2
return sqrt(m / *L)
end</langsyntaxhighlight>
 
=={{header|Io}}==
<langsyntaxhighlight lang=Io>rms := method (figs, (figs map(** 2) reduce(+) / figs size) sqrt)
 
rms( Range 1 to(10) asList ) println</langsyntaxhighlight>
 
=={{header|J}}==
'''Solution:'''
<langsyntaxhighlight lang=j>rms=: (+/ % #)&.:*:</langsyntaxhighlight>
 
'''Example Usage:'''
<langsyntaxhighlight lang=j> rms 1 + i. 10
6.20484</langsyntaxhighlight>
<code>*:</code> means [http://jsoftware.com/help/dictionary/d112.htm square]
 
Line 989:
 
=={{header|Java}}==
<langsyntaxhighlight lang=java>public class RootMeanSquare {
 
public static double rootMeanSquare(double... nums) {
Line 1,002:
System.out.println("The RMS of the numbers from 1 to 10 is " + rootMeanSquare(nums));
}
}</langsyntaxhighlight>
{{out}}
<pre>The RMS of the numbers from 1 to 10 is 6.2048368229954285</pre>
Line 1,010:
{{works with|JavaScript|1.8}}
{{works with|Firefox|3.0}}
<langsyntaxhighlight lang=javascript>function root_mean_square(ary) {
var sum_of_squares = ary.reduce(function(s,x) {return (s + x*x)}, 0);
return Math.sqrt(sum_of_squares / ary.length);
}
 
print( root_mean_square([1,2,3,4,5,6,7,8,9,10]) ); // ==> 6.2048368229954285</langsyntaxhighlight>
 
 
===ES6===
 
<langsyntaxhighlight lang=JavaScript>(() => {
'use strict';
Line 1,037:
// -> 6.2048368229954285
})();</langsyntaxhighlight>
 
{{Out}}
Line 1,044:
=={{header|jq}}==
The following filter returns ''null'' if given an empty array:
<langsyntaxhighlight lang=jq>def rms: length as $length
| if $length == 0 then null
else map(. * .) | add | sqrt / $length
end ;</langsyntaxhighlight>With this definition, the following program would compute the rms of each array in a file or stream of numeric arrays:<syntaxhighlight lang =jq>rms</langsyntaxhighlight>
 
=={{header|Julia}}==
There are a variety of ways to do this via built-in functions in Julia, given an array <code>A = [1:10]</code> of values. The formula can be implemented directly as:
<langsyntaxhighlight lang=julia>sqrt(sum(A.^2.) / length(A))</langsyntaxhighlight>
or shorter with using Statistics (and as spoken: root-mean-square)
<langsyntaxhighlight lang=julia>sqrt(mean(A.^2.))</langsyntaxhighlight>
or the implicit allocation of a new array by <code>A.^2.</code> can be avoided by using <code>sum</code> as a higher-order function: <langsyntaxhighlight lang=julia>sqrt(sum(x -> x*x, A) / length(A))</langsyntaxhighlight>
One can also use an explicit loop for near-C performance
<langsyntaxhighlight lang=julia>
function rms(A)
s = 0.0
Line 1,064:
return sqrt(s / length(A))
end
</syntaxhighlight>
</lang>
Potentially even better is to use the built-in <code>norm</code> function, which computes the square root of the sum of the squares of the entries of <code>A</code> in a way that avoids the possibility of spurious floating-point overflow (if the entries of <code>A</code> are so large that they may overflow if squared): <langsyntaxhighlight lang=julia>norm(A) / sqrt(length(A))</langsyntaxhighlight>
 
=={{header|K}}==
<syntaxhighlight lang=K>
<lang K>
rms:{_sqrt (+/x^2)%#x}
rms 1+!10
6.204837
</syntaxhighlight>
</lang>
 
=={{header|Kotlin}}==
<langsyntaxhighlight lang=scala>// version 1.0.5-2
 
fun quadraticMean(vector: Array<Double>) : Double {
Line 1,085:
val vector = Array(10, { (it + 1).toDouble() })
print("Quadratic mean of numbers 1 to 10 is ${quadraticMean(vector)}")
}</langsyntaxhighlight>
 
{{out}}
Line 1,093:
 
=={{header|Lasso}}==
<langsyntaxhighlight lang=Lasso>define rms(a::staticarray)::decimal => {
return math_sqrt((with n in #a sum #n*#n) / decimal(#a->size))
}
rms(generateSeries(1,10)->asStaticArray)</langsyntaxhighlight>
 
{{out}}
Line 1,102:
 
=={{header|Liberty BASIC}}==
<langsyntaxhighlight lang=lb>' [RC] Averages/Root mean square
 
SourceList$ ="1 2 3 4 5 6 7 8 9 10"
Line 1,127:
print "R.M.S. value is "; ( SumOfSquares /n)^0.5
 
end</langsyntaxhighlight>
 
=={{header|Logo}}==
<langsyntaxhighlight lang=logo>to rms :v
output sqrt quotient (apply "sum map [? * ?] :v) count :v
end
 
show rms iseq 1 10</langsyntaxhighlight>
 
=={{header|Lua}}==
<langsyntaxhighlight lang=lua>function sumsq(a, ...) return a and a^2 + sumsq(...) or 0 end
function rms(t) return (sumsq(unpack(t)) / #t)^.5 end
 
print(rms{1, 2, 3, 4, 5, 6, 7, 8, 9, 10})</langsyntaxhighlight>
 
=={{header|Maple}}==
<langsyntaxhighlight lang=Maple>y := [ seq(1..10) ]:
RMS := proc( x )
return sqrt( Statistics:-Mean( x ^~ 2 ) );
end proc:
RMS( y );
</syntaxhighlight>
</lang>
{{out}}
<pre>6.20483682299543
Line 1,154:
 
=={{header|Mathematica}} / {{header|Wolfram Language}}==
<syntaxhighlight lang =Mathematica>RootMeanSquare@Range[10]</langsyntaxhighlight>
The above will give the precise solution <math>\sqrt{\frac{77}{2}}</math>, to downgrade to 6.20484, use '<code>10.</code>' to imply asking for numeric solution, or append '<code>//N</code>' after the whole expression.
 
=={{header|MATLAB}}==
<langsyntaxhighlight lang=MATLAB>function rms = quadraticMean(list)
rms = sqrt(mean(list.^2));
end</langsyntaxhighlight>
Solution:
<langsyntaxhighlight lang=MATLAB>>> quadraticMean((1:10))
 
ans =
 
6.204836822995429</langsyntaxhighlight>
 
=={{header|Maxima}}==
<langsyntaxhighlight lang=maxima>L: makelist(i, i, 10)$
 
rms(L) := sqrt(lsum(x^2, x, L)/length(L))$
 
rms(L), numer; /* 6.204836822995429 */</langsyntaxhighlight>
 
=={{header|MAXScript}}==
<langsyntaxhighlight lang=MAXScript>
fn RMS arr =
(
Line 1,183:
return (sqrt (sumSquared/arr.count as float))
)
</syntaxhighlight>
</lang>
Output:
<langsyntaxhighlight lang=MAXScript>
rms #{1..10}
6.20484
</syntaxhighlight>
</lang>
 
=={{header|min}}==
{{works with|min|0.19.6}}
<langsyntaxhighlight lang=min>(dup *) :sq
('sq map sum) :sum-sq
(('sum-sq 'size) => cleave / sqrt) :rms
 
(1 2 3 4 5 6 7 8 9 10) rms puts!</langsyntaxhighlight>
{{out}}
<pre>
Line 1,205:
<lang>0 П0 П1 С/П x^2 ИП0 x^2 ИП1 *
+ ИП1 1 + П1 / КвКор П0 БП
03</langsyntaxhighlight>
 
''Instruction:'' В/О С/П Number С/П Number ...
Line 1,213:
=={{header|Morfa}}==
{{trans|D}}
<langsyntaxhighlight lang=morfa>
import morfa.base;
import morfa.functional.base;
Line 1,228:
println(rms(1 .. 11));
}
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,235:
 
=={{header|Nemerle}}==
<langsyntaxhighlight lang=Nemerle>using System;
using System.Console;
using System.Math;
Line 1,251:
WriteLine("RMS of [1 .. 10]: {0:g6}", RMS($[1 .. 10]));
}
}</langsyntaxhighlight>
 
=={{header|NetRexx}}==
<langsyntaxhighlight lang=NetRexx>/* NetRexx */
options replace format comments java crossref symbols nobinary
 
Line 1,269:
 
return
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,276:
 
=={{header|Nim}}==
<langsyntaxhighlight lang=nim>from math import sqrt, sum
from sequtils import mapIt
Line 1,283:
result = sqrt(result / float(num.len))
echo qmean(@[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0])</langsyntaxhighlight>
{{out}}
<pre>6.204836822995428</pre>
Line 1,289:
=={{header|Oberon-2}}==
Oxford Oberon-2
<langsyntaxhighlight lang=oberon2>
MODULE QM;
IMPORT ML := MathL, Out;
Line 1,314:
Out.String("Quadratic Mean: ");Out.LongReal(Rms(nums));Out.Ln
END QM.
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,321:
 
=={{header|Objeck}}==
<langsyntaxhighlight lang=objeck>bundle Default {
class Hello {
function : Main(args : String[]) ~ Nil {
Line 1,338:
}
}
}</langsyntaxhighlight>
 
=={{header|OCaml}}==
<langsyntaxhighlight lang=ocaml>let rms a =
sqrt (Array.fold_left (fun s x -> s +. x*.x) 0.0 a /.
float_of_int (Array.length a))
Line 1,347:
 
rms (Array.init 10 (fun i -> float_of_int (i+1))) ;;
(* 6.2048368229954285 *)</langsyntaxhighlight>
 
=={{header|Oforth}}==
 
<langsyntaxhighlight lang=Oforth>10 seq map(#sq) sum 10.0 / sqrt .</langsyntaxhighlight>
 
{{out}}
Line 1,359:
 
=={{header|ooRexx}}==
<langsyntaxhighlight lang=ooRexx>call testAverage .array~of(10, 9, 8, 7, 6, 5, 4, 3, 2, 1)
call testAverage .array~of(10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, .11)
call testAverage .array~of(30, 10, 20, 30, 40, 50, -100, 4.7, -11e2)
Line 1,380:
return rxcalcsqrt(sum/numbers~items)
 
::requires rxmath LIBRARY</langsyntaxhighlight>
{{out}}
<pre>list = 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
Line 1,392:
 
=={{header|Oz}}==
<langsyntaxhighlight lang=oz>declare
fun {Square X} X*X end
 
Line 1,402:
end
in
{Show {RMS {List.number 1 10 1}}}</langsyntaxhighlight>
{{out}}
<pre>
Line 1,410:
=={{header|PARI/GP}}==
General RMS calculation:
<langsyntaxhighlight lang=parigp>RMS(v)={
sqrt(sum(i=1,#v,v[i]^2)/#v)
};
 
RMS(vector(10,i,i))</langsyntaxhighlight>
 
Specific functions for the first ''n'' positive integers:
<langsyntaxhighlight lang=parigp>RMS_first(n)={
sqrt((n+1)*(2*n+1)/6)
};
 
RMS_first(10)</langsyntaxhighlight>
Asymptotically this is n/sqrt(3).
 
=={{header|Perl}}==
<langsyntaxhighlight lang=perl>use v5.10.0;
sub rms
{
Line 1,433:
}
 
say rms(1..10);</langsyntaxhighlight>
 
=={{header|Phix}}==
<!--<langsyntaxhighlight lang=Phix>(phixonline)-->
<span style="color: #008080;">function</span> <span style="color: #000000;">rms</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">atom</span> <span style="color: #000000;">sqsum</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
Line 1,446:
<span style="color: #0000FF;">?</span><span style="color: #000000;">rms</span><span style="color: #0000FF;">({</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">4</span><span style="color: #0000FF;">,</span><span style="color: #000000;">5</span><span style="color: #0000FF;">,</span><span style="color: #000000;">6</span><span style="color: #0000FF;">,</span><span style="color: #000000;">7</span><span style="color: #0000FF;">,</span><span style="color: #000000;">8</span><span style="color: #0000FF;">,</span><span style="color: #000000;">9</span><span style="color: #0000FF;">,</span><span style="color: #000000;">10</span><span style="color: #0000FF;">})</span>
<!--</langsyntaxhighlight>-->
{{out}}
<pre>
Line 1,453:
Alternative, same output<br>
You could make this a one-liner, for no gain and making it harder to debug - an explicitly named intermediate such as sqsum adds no additional overhead compared to the un-named hidden temporary variable the compiler would otherwise use anyway, and of course sqsum can be examined/verified to pinpoint any error more effectively. The last (commented-out) line also removes the function call, but of course it has also removed every last descriptive hint of what it is supposed to be doing as well.
<!--<langsyntaxhighlight lang=Phix>(phixonline)-->
<span style="color: #008080;">function</span> <span style="color: #000000;">rms</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">atom</span> <span style="color: #000000;">sqsum</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sum</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">power</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">}))</span>
Line 1,460:
<span style="color: #0000FF;">?</span><span style="color: #000000;">rms</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">tagset</span><span style="color: #0000FF;">(</span><span style="color: #000000;">10</span><span style="color: #0000FF;">))</span>
<span style="color: #000080;font-style:italic;">-- ?sqrt(sum(apply(true,power,{tagset(10),2}))/10) -- (ugh)</span>
<!--</langsyntaxhighlight>-->
 
=={{header|Phixmonti}}==
<langsyntaxhighlight lang=Phixmonti>def rms
0 swap
len for
Line 1,476:
endfor
rms print</langsyntaxhighlight>
 
=={{header|PHP}}==
<langsyntaxhighlight lang=PHP><?php
// Created with PHP 7.0
 
Line 1,494:
 
echo rms(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,503:
{{trans|Prolog}}
{{works with|Picat}}
<langsyntaxhighlight lang=Picat>
rms(Xs) = Y =>
Sum = sum_of_squares(Xs),
Line 1,518:
Y = rms(1..10),
printf("The root-mean-square of 1..10 is %f\n", Y).
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,525:
 
=={{header|PicoLisp}}==
<langsyntaxhighlight lang=PicoLisp>(scl 5)
 
(let Lst (1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0)
Line 1,536:
(length Lst) )
T )
*Scl ) ) )</langsyntaxhighlight>
{{out}}
<pre>6.20484</pre>
 
=={{header|PL/I}}==
<langsyntaxhighlight lang=PL/I> atest: Proc Options(main);
declare A(10) Dec Float(15) static initial (1,2,3,4,5,6,7,8,9,10);
declare (n,RMS) Dec Float(15);
Line 1,547:
RMS = sqrt(sum(A**2)/n);
put Skip Data(rms);
End;</langsyntaxhighlight>
{{out}}
<pre>RMS= 6.20483682299543E+0000;</pre>
 
=={{header|PostScript}}==
<langsyntaxhighlight lang=postscript>/findrms{
/x exch def
/sum 0 def
Line 1,567:
}def
 
[1 2 3 4 5 6 7 8 9 10] findrms</langsyntaxhighlight>
{{out}}
<pre>
Line 1,573:
</pre>
{{libheader|initlib}}
<langsyntaxhighlight lang=postscript>[1 10] 1 range dup 0 {dup * +} fold exch length div sqrt</langsyntaxhighlight>
 
=={{header|Potion}}==
<langsyntaxhighlight lang=Potion>rms = (series) :
total = 0.0
series each (x): total += x * x.
Line 1,583:
.
 
rms((1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) print</langsyntaxhighlight>
 
 
=={{header|Powerbuilder}}==
<langsyntaxhighlight lang=powerbuilder>long ll_x, ll_y, ll_product
decimal ld_rms
 
Line 1,598:
ld_rms = Sqrt(ll_product / ll_y)
 
//ld_rms value is 6.20483682299542849</langsyntaxhighlight>
 
=={{header|PowerShell}}==
<langsyntaxhighlight lang=PowerShell>function get-rms([float[]]$nums){
$sqsum=$nums | foreach-object { $_*$_} | measure-object -sum | select-object -expand Sum
return [math]::sqrt($sqsum/$nums.count)
}
 
get-rms @(1..10) </langsyntaxhighlight>
 
=={{header|Processing}}==
<langsyntaxhighlight lang=processing>void setup() {
float[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
print(rms(numbers));
Line 1,621:
mean = sqrt(mean / nums.length);
return mean;
}</langsyntaxhighlight>
{{out}}
<pre>6.204837</pre>
Line 1,627:
=={{header|Prolog}}==
{{works with|GNU Prolog}}
<langsyntaxhighlight lang=Prolog>
:- initialization(main).
 
Line 1,645:
rms(Xs, Y),
format('The root-mean-square of 1..10 is ~f\n', [Y]).
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,652:
 
=={{header|PureBasic}}==
<langsyntaxhighlight lang=PureBasic>NewList MyList() ; To hold a unknown amount of numbers to calculate
 
If OpenConsole()
Line 1,678:
PrintN("Press ENTER to exit"): Input()
CloseConsole()
EndIf</langsyntaxhighlight>
 
=={{header|Python}}==
{{works with|Python|3}}
<langsyntaxhighlight lang=Python>>>> from math import sqrt
>>> def qmean(num):
return sqrt(sum(n*n for n in num)/len(num))
 
>>> qmean(range(1,11))
6.2048368229954285</langsyntaxhighlight>
<small>Note that function [http://docs.python.org/release/3.2/library/functions.html#range range] in Python includes the first limit of 1, excludes the second limit of 11, and has a default increment of 1.</small>
 
Line 1,694:
 
Alternatively in terms of '''reduce''':
<langsyntaxhighlight lang=python>from functools import (reduce)
from math import (sqrt)
 
Line 1,705:
print(
rootMeanSquare([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
)</langsyntaxhighlight>
{{Out}}
<pre>6.2048368229954285</pre>
 
=={{header|Qi}}==
<langsyntaxhighlight lang=qi>(define rms
R -> (sqrt (/ (APPLY + (MAPCAR * R R)) (length R))))</langsyntaxhighlight>
 
 
Line 1,718:
Using the Quackery big number rational arithmetic library <code>bigrat.qky</code>.
 
<langsyntaxhighlight lang=Quackery>[ $ "bigrat.qky" loadfile ] now!
 
[ [] swap
Line 1,744:
80 rms
80 point$ echo$</langsyntaxhighlight>
 
{{out}}
Line 1,756:
 
The following function works for any vector x:
<langsyntaxhighlight lang=rsplus>RMS <- function(x, na.rm = F) sqrt(mean(x^2, na.rm = na.rm))
 
RMS(1:10)
Line 1,765:
 
RMS(c(NA, 1:10), na.rm = T)
# [1] 6.204837</langsyntaxhighlight>
 
=={{header|Racket}}==
<langsyntaxhighlight lang=Racket>
#lang racket
(define (rms nums)
(sqrt (/ (for/sum ([n nums]) (* n n)) (length nums))))
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
{{works with|Rakudo|2015.12}}
<langsyntaxhighlight lang=perl6>sub rms(*@nums) { sqrt [+](@nums X** 2) / @nums }
 
say rms 1..10;</langsyntaxhighlight>
 
Here's a slightly more concise version, albeit arguably less readable:
<langsyntaxhighlight lang=perl6>sub rms { sqrt @_ R/ [+] @_ X** 2 }</langsyntaxhighlight>
 
=={{header|REXX}}==
Line 1,792:
<br>calculation as well as a reasonable attempt at providing a first-guess square root by essentially halving
<br>the number using logarithmic (base ten) arithmetic.
<langsyntaxhighlight lang=rexx>/*REXX program computes and displays the root mean square (RMS) of a number sequence. */
parse arg nums digs show . /*obtain the optional arguments from CL*/
if nums=='' | nums=="," then nums=10 /*Not specified? Then use the default.*/
Line 1,810:
h=d+6; do j=0 while h>9; m.j=h; h=h%2+1; end /*j*/
do k=j+5 to 0 by -1; numeric digits m.k; g=(g+x/g)*.5; end /*k*/
return g</langsyntaxhighlight>
'''output''' &nbsp; when using the default inputs:
<pre>
Line 1,817:
 
=={{header|Ring}}==
<langsyntaxhighlight lang=ring>
nums = [1,2,3,4,5,6,7,8,9,10]
sum = 0
Line 1,829:
x = sqrt(sum / len(number))
return x
</syntaxhighlight>
</lang>
 
=={{header|Ruby}}==
<langsyntaxhighlight lang=ruby>class Array
def quadratic_mean
Math.sqrt( self.inject(0.0) {|s, y| s + y*y} / self.length )
Line 1,844:
end
 
(1..10).quadratic_mean # => 6.2048368229954285</langsyntaxhighlight>
 
and a non object-oriented solution:
<langsyntaxhighlight lang=ruby>def rms(seq)
Math.sqrt(seq.sum{|x| x*x}.fdiv(seq.size) )
end
puts rms (1..10) # => 6.2048368229954285</langsyntaxhighlight>
 
=={{header|Run BASIC}}==
<langsyntaxhighlight lang=runbasic>valueList$ = "1 2 3 4 5 6 7 8 9 10"
while word$(valueList$,i +1) <> "" ' grab values from list
thisValue = val(word$(valueList$,i +1)) ' turn values into numbers
Line 1,860:
wend
print "List of Values:";valueList$;" containing ";i;" values"
print "Root Mean Square =";(sumSquares/i)^0.5</langsyntaxhighlight>
 
{{out}}
Line 1,867:
 
=={{header|Rust}}==
<langsyntaxhighlight lang=rust>fn root_mean_square(vec: Vec<i32>) -> f32 {
let sum_squares = vec.iter().fold(0, |acc, &x| acc + x.pow(2));
return ((sum_squares as f32)/(vec.len() as f32)).sqrt();
Line 1,875:
let vec = (1..11).collect();
println!("The root mean square is: {}", root_mean_square(vec));
}</langsyntaxhighlight>
 
{{out}}
Line 1,888:
built-in syntax.
 
<langsyntaxhighlight lang=S-lang>define rms(arr)
{
return sqrt(sum(sqr(arr)) / length(arr));
}
 
print(rms([1:10]));</langsyntaxhighlight>
 
=={{header|Sather}}==
<langsyntaxhighlight lang=sather>class MAIN is
-- irrms stands for Integer Ranged RMS
irrms(i, f:INT):FLT
Line 1,911:
#OUT + irrms(1, 10) + "\n";
end;
end;</langsyntaxhighlight>
 
=={{header|S-BASIC}}==
<langsyntaxhighlight lang=basic>
var n, sqsum, sqmean, rms = real
sqsum = 0
Line 1,925:
 
end
</syntaxhighlight>
</lang>
{{out}}
<pre>
Line 1,932:
 
=={{header|Scala}}==
<langsyntaxhighlight lang=scala>def rms(nums: Seq[Int]) = math.sqrt(nums.map(math.pow(_, 2)).sum / nums.size)
println(rms(1 to 10))</langsyntaxhighlight>
{{out}}
<pre>6.2048368229954285</pre>
 
=={{header|Scheme}}==
<langsyntaxhighlight lang=scheme>(define (rms nums)
(sqrt (/ (apply + (map * nums nums))
(length nums))))
 
(rms '(1 2 3 4 5 6 7 8 9 10))</langsyntaxhighlight>
{{out}}
<pre>6.20483682299543</pre>
 
=={{header|Seed7}}==
<langsyntaxhighlight lang=seed7>$ include "seed7_05.s7i";
include "float.s7i";
include "math.s7i";
Line 1,969:
begin
writeln(rms(numbers) digits 7);
end func;</langsyntaxhighlight>
 
=={{header|Shen}}==
{{works with|shen-scheme|0.17}}
<langsyntaxhighlight lang=Shen>(declare scm.sqrt [number --> number])
 
(tc +)
Line 1,998:
Lim -> (iota-h 1 Lim))
 
(output "~A~%" (rms (iota 10)))</langsyntaxhighlight>
 
=={{header|Sidef}}==
<langsyntaxhighlight lang=ruby>func rms(a) {
sqrt(a.map{.**2}.sum / a.len)
}
 
say rms(1..10)</langsyntaxhighlight>
 
Using hyper operators, we can write it as:
<langsyntaxhighlight lang=ruby>func rms(a) { a »**» 2 «+» / a.len -> sqrt }</langsyntaxhighlight>
 
{{out}}
Line 2,014:
 
=={{header|Smalltalk}}==
<langsyntaxhighlight lang=smalltalk>(((1 to: 10) inject: 0 into: [ :s :n | n*n + s ]) / 10) sqrt.</langsyntaxhighlight>
 
=={{header|SNOBOL4}}==
Line 2,020:
{{works with|CSnobol}}
There is no built-in sqrt( ) function in Snobol4+.
<langsyntaxhighlight lang=SNOBOL4> define('rms(a)i,ssq') :(rms_end)
rms i = i + 1; ssq = ssq + (a<i> * a<i>) :s(rms)
rms = sqrt(1.0 * ssq / prototype(a)) :(return)
Line 2,029:
loop i = i + 1; str len(p) span('0123456789') . a<i> @p :s(loop)
output = str ' -> ' rms(a)
end</langsyntaxhighlight>
{{out}}
<pre>1 2 3 4 5 6 7 8 9 10 -> 6.20483682</pre>
 
=={{header|Standard ML}}==
<langsyntaxhighlight lang=sml>fun rms(v: real vector) =
let
val v' = Vector.map (fn x => x*x) v
Line 2,042:
end;
 
rms(Vector.tabulate(10, fn n => real(n+1)));</langsyntaxhighlight>
{{out}}
<pre>val it = 6.204836823 : real</pre>
Line 2,049:
Compute the RMS of a variable and return the result in r(rms).
 
<langsyntaxhighlight lang=stata>program rms, rclass
syntax varname(numeric) [if] [in]
tempvar x
Line 2,055:
qui sum `x' `if' `in'
return scalar rms=sqrt(r(mean))
end</langsyntaxhighlight>
 
'''Example'''
 
<langsyntaxhighlight lang=stata>clear
set obs 20
gen x=rnormal()
Line 2,069:
rms x if x>0
di r(rms)
.7423647</langsyntaxhighlight>
 
=={{header|Swift}}==
 
<langsyntaxhighlight lang=swift>extension Collection where Element: FloatingPoint {
@inlinable
public func rms() -> Element {
Line 2,080:
}
 
print("RMS of 1...10: \((1...10).map(Double.init).rms())")</langsyntaxhighlight>
 
{{out}}
Line 2,088:
=={{header|Tcl}}==
{{works with|Tcl|8.5}}
<langsyntaxhighlight lang=tcl>proc qmean list {
set sum 0.0
foreach value $list { set sum [expr {$sum + $value**2}] }
Line 2,094:
}
 
puts "RMS(1..10) = [qmean {1 2 3 4 5 6 7 8 9 10}]"</langsyntaxhighlight>
{{out}}
<pre>
Line 2,102:
=={{header|Ursala}}==
using the <code>mean</code> function among others from the <code>flo</code> library
<langsyntaxhighlight lang=Ursala>#import nat
#import flo
 
#cast %e
 
rms = sqrt mean sqr* float* nrange(1,10)</langsyntaxhighlight>
{{out}}
<pre>
Line 2,115:
=={{header|Vala}}==
Valac probably needs to have the flag "-X -lm" added to include the C Math library.
<langsyntaxhighlight lang=vala>double rms(double[] list){
double sum_squares = 0;
double mean;
Line 2,133:
stdout.printf("%s\n", mean.to_string());
}</langsyntaxhighlight>
{{out}}
<pre>
Line 2,141:
=={{header|VBA}}==
Using Excel VBA
<langsyntaxhighlight lang=vb>Private Function root_mean_square(s() As Variant) As Double
For i = 1 To UBound(s)
s(i) = s(i) ^ 2
Line 2,151:
s = [{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}]
Debug.Print root_mean_square(s)
End Sub</langsyntaxhighlight>
Without using Excel worksheetfunction:
<langsyntaxhighlight lang=vb>Function rms(iLow As Integer, iHigh As Integer)
Dim i As Integer
If iLow > iHigh Then
Line 2,169:
Debug.Print rms(1, 10)
End Sub
</syntaxhighlight>
</lang>
 
Output:
Line 2,177:
 
=={{header|Vlang}}==
<langsyntaxhighlight lang=vlang>import math
fn main() {
Line 2,186:
}
println(math.sqrt(sum / n))
}</langsyntaxhighlight>
 
{{out}}
Line 2,194:
 
=={{header|Wortel}}==
<langsyntaxhighlight lang=wortel>@let {
; using a composition and a fork (like you would do in J)
rms1 ^(@sqrt @(@sum / #) *^@sq)
Line 2,205:
!rms2 @to 10
]]
}</langsyntaxhighlight>
{{out}}
<pre>[6.2048368229954285 6.2048368229954285]</pre>
 
=={{header|Wren}}==
<langsyntaxhighlight lang=ecmascript>var rms = ((1..10).reduce(0) { |acc, i| acc + i*i }/10).sqrt
System.print(rms)</langsyntaxhighlight>
 
{{out}}
Line 2,219:
 
=={{header|XLISP}}==
<langsyntaxhighlight lang=lisp>(defun quadratic-mean (xs)
(sqrt
(/
Line 2,234:
; test QUADRATIC-MEAN
 
(print (quadratic-mean (range 1 11)))</langsyntaxhighlight>
{{out}}
<pre>6.20483682299543</pre>
 
=={{header|XPL0}}==
<langsyntaxhighlight lang=XPL0>code CrLf=9;
code real RlOut=48;
int N;
Line 2,247:
RlOut(0, sqrt(S/10.0));
CrLf(0);
]</langsyntaxhighlight>
{{out}}
<pre>
Line 2,254:
 
=={{header|Yacas}}==
<langsyntaxhighlight lang=Yacas>Sqrt(Add((1 .. 10)^2)/10)</langsyntaxhighlight>
The above will give the precise solution <math>\sqrt{\frac{77}{2}}</math>, to downgrade to 6.20483682299, surround the expression with '<code>N()</code>'.
 
=={{header|zkl}}==
<langsyntaxhighlight lang=zkl>fcn rms(z){ ( z.reduce(fcn(p,n){ p + n*n },0.0) /z.len() ).sqrt() }</langsyntaxhighlight>
The order in the reduce function is important as it coerces n*n to float.
<pre>
10,333

edits