LlListStatistics
From Second Life Wiki
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Tutorials |
Contents |
Summary
Function: float llListStatistics( integer operation, list src );| 315 | Function ID |
| 0.0 | Delay |
| 10.0 | 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
// shows just how bad SL is behaving and demonstrates the use of llListStatistics() list dil_s; list fps_s; integer ticks; 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.)
This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.

