StandardDeviation (Arraylist function)

From m204wiki
Revision as of 21:41, 12 July 2012 by JAL2 (talk | contribs) (→‎Examples)
Jump to navigation Jump to search

Compute the standard deviation of the items (Arraylist class)

[Introduced in Sirius Mods 7.8]


This method returns the standard deviation, the variation from the mean, of the values of the items in the Arraylist. This is the square root of the Arraylist's variance.

Syntax

%standardDev = al:StandardDeviation[( [itemFunction])]

Syntax terms

%standardDev A Float variable to contain the numeric result.
al An Arraylist object.
method A function that operates on the type of the items in the Arraylist. It may be a local method or method variable or a class member (Variable, Property), and it must return an intrinsic (probably Float) value.

The default method value is the special identity function, This, which simply returns the item value.

Usage notes

  • The optional method parameter lets you further manipulate the Arraylist item values before performing the StandardDeviation method's operation. If your Arraylist's items are not intrinsic values, you must specify a function that can map the item values to intrinsic values or the method will fail.

    For example, for an Arraylist that is a list of coordinates, you could return the average of their distance from the origin by first applying a local function as the StandardDeviation method's method parameter:

    b class point public constructor new(%x is float, %y is float) variable x is float variable y is float end public constructor new(%x is float, %y is float) %this:x = %x %this:y = %y end constructor end class local function (point):distance is float return (%this:x * %this:x + %this:y * %this:y):squareRoot end function %al is arrayList of object point %al = new %al:add(new(1,1)) %al:add(new(3,4)) %al:add(new(-5,12)) print %al:standardDeviation(distance) end

    The result is 4.84295951476148.

Examples

b %al is arrayList of float %al = new %al = list(5, 3, 8) print %al:standardDeviation end

The result is:

2.05480466765633

See also