Difference between revisions of "LlLog"
Jump to navigation
Jump to search
(copy & paste from llLog10) |
m |
||
Line 20: | Line 20: | ||
} | } | ||
} | } | ||
</lsl> | |||
<lsl> | |||
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 | |||
} | |||
} | |||
</lsl> | </lsl> | ||
|helpers | |helpers |
Revision as of 06:29, 16 June 2011
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
<lsl> default {
state_entry() { float num1 = llFrand(100.0);
llOwnerSay("The natural logarithm of " + (string)num1 + " is " + (string)llLog(num1)); }
} </lsl> <lsl> 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 }
}
</lsl>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. <lsl>float LogBaseN = llLog(value) / llLog(Base); //This technique introduces errors but is the only way</lsl>