LlLog
From Second Life Wiki
| LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Contents |
Summary
Function: float llLog( float val );| 265 | Function ID |
| 0.0 | Forced Delay |
| 10.0 | Energy |
Returns a float that is the natural logarithm of val.
If val <= 0 return 0.0 instead.
| • float | val |
To get the base 10 logarithm use llLog10.
Examples
default { state_entry() { float num1 = llFrand(100.0); llOwnerSay("The natural logarithm of " + (string)num1 + " is " + (string)llLog(num1)); } }
float findexp(float result, float base) { return llLog(result)/llLog(base); } default { touch_start(integer total_number) { llSay(0, (string)findexp(8.0,2.0)); //returns 3.0 } }
Notes
There are only two log functions llLog and llLog10. Errors introduced as a result of floating-point arithmetic are most noticable when working with logarithms. llLog should be used instead of llLog10 when converting the base of the logarithm.
float LogBaseN = llLog(value) / llLog(Base); //This technique introduces errors but is the only way
If Base is a constant, your script will run faster if you calculate it's log and divide by that constant instead.
| Number | logarithm |
|---|---|
| 2 | 0.69314718056 |
| 4 | 1.38629436112 |
| 8 | 2.07944154168 |
| 10 | 2.30258509299 |
| 16 | 2.77258872224 |
| 32 | 3.4657359028 |
| 64 | 4.15888308336 |
| 128 | 4.85203026392 |
| 256 | 5.54517744448 |
This article wasn't helpful for you? Maybe the related article at the LSL Wiki is able to bring enlightenment.

