llLog
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
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.
Caveats
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 | {{#ln:2}} |
4 | {{#ln:4}} |
8 | {{#ln:8}} |
10 | {{#ln:10}} |
16 | {{#ln:16}} |
32 | {{#ln:32}} |
64 | {{#ln:64}} |
128 | {{#ln:128}} |
256 | {{#ln:256}} |