Difference between revisions of "LlLog"
Jump to navigation
Jump to search
m |
m |
||
Line 45: | Line 45: | ||
|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. | |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> | <lsl>float LogBaseN = llLog(value) / llLog(Base); //This technique introduces errors but is the only way</lsl> | ||
If Base is a constant, your script will run faster if you calculate it's log and divide by that constant instead. | |||
{{{!}} class="sortable" {{Prettytable}} | |||
{{!}}+Useful natural logarithms | |||
{{!}}-{{Hl2}} | |||
! 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}} | |||
{{!}}} | |||
|permission | |permission | ||
|negative_index | |negative_index |
Revision as of 08:53, 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>
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}} |