# llListStatistics

 LSL Portal
Function: float llListStatistics( integer operation, list src );
 315 Function ID 0 Forced Delay 10 Energy

Returns a float that is the result of performing statistical aggregate function operation on src.

 • integer operation – a LIST_STAT_* flag • list src

If a list entry type is not a float or an integer it is silently ignored.

Constant Description
LIST_STAT_RANGE 0 Calculates the range.
LIST_STAT_MIN 1 Calculates the smallest number.
LIST_STAT_MAX 2 Calculates the largest number.
LIST_STAT_MEAN 3 Calculates the mean (average).
LIST_STAT_MEDIAN 4 Calculates the median number.
LIST_STAT_STD_DEV 5 Calculates the standard deviation.
LIST_STAT_SUM 6 Calculates the sum.
LIST_STAT_SUM_SQUARES 7 Calculates the sum of the squares.
LIST_STAT_NUM_COUNT 8 Determines the number of float and integer elements.
LIST_STAT_GEOMETRIC_MEAN 9 Calculates the geometric mean.

## Examples

```// Show results for each operation for a sample list
default
{
state_entry()
{
list LX = [-1, 3.33, 17, "object", -4.5, 0.8675 ];

llSay(0, "G.Mean= " + (string) llListStatistics(LIST_STAT_GEOMETRIC_MEAN, LX) );           // 0. 000000
llSay(0, "Max= " + (string) llListStatistics(LIST_STAT_MAX, LX) );                         // 17.000000
llSay(0, "Min= " + (string) llListStatistics(LIST_STAT_MIN, LX) );                         // -4.500000
llSay(0, "Mean= " + (string) llListStatistics(LIST_STAT_MEAN, LX) );                       // 3.139500
llSay(0, "Median= " + (string) llListStatistics(LIST_STAT_MEDIAN, LX) );                   // 0.867500
llSay(0, "Count= " + (string) llListStatistics(LIST_STAT_NUM_COUNT, LX) );                 // 5.000000
llSay(0, "Range= " + (string) llListStatistics(LIST_STAT_RANGE, LX) );                     // 21.500000
llSay(0, "Std.Dev= " + (string) llListStatistics(LIST_STAT_STD_DEV, LX) );                 // 8.258468
llSay(0, "Sum= " + (string) llListStatistics(LIST_STAT_SUM, LX) );                         // 15.697500
llSay(0, "Sum of squares= " + (string) llListStatistics(LIST_STAT_SUM_SQUARES, LX) );      // 322.091500

}
}
// Note that LSLEditor produces "NaN" (Not A Number) for the geometric mean above. Geometric mean applies only to numbers of the same sign.
```
```// shows just how bad SL is behaving and demonstrates the use of llListStatistics()
list dil_s;
list fps_s;
integer ticks = 0;

default
{
state_entry()
{
llSetTimerEvent(1.0);
}

on_rez (integer parm)
{
llResetScript();
}

timer()
{
dil_s = llList2List(dil_s + llGetRegionTimeDilation(), -60, -1);
fps_s = llList2List(fps_s + llGetRegionFPS(), -60, -1);
if(3 <= ++ticks)
{
llSetText(
"Dilation: min="+(string) llListStatistics(LIST_STAT_MIN, dil_s) + ", mean=" +
(string) llListStatistics(LIST_STAT_MEAN, dil_s) + ", max=" +
(string) llListStatistics(LIST_STAT_MAX, dil_s) + ", std.dev=" +
(string) llListStatistics(LIST_STAT_STD_DEV, dil_s) + "\n" +
"FPS: min="+(string) llListStatistics(LIST_STAT_MIN, fps_s) + ", mean=" +
(string) llListStatistics(LIST_STAT_MEAN, fps_s) + ", max=" +
(string) llListStatistics(LIST_STAT_MAX, fps_s) + ", std.dev=" +
(string) llListStatistics(LIST_STAT_STD_DEV, fps_s),
<1.0, 1.0, 0.0>, //yellow
1.0);
}
}

changed(integer change)
{
if(change & CHANGED_REGION)
{
llResetScript();
}
}
}
```

## Notes

Given that this operation ignores any non-numbers in a list, it can be used to tell you, in a mixed list, how many of the elements in a list are numbers (when used with the LIST_STAT_NUM_COUNT parameter.)

```function float llListStatistics( integer operation, list src );