Difference between revisions of "LlAbs"

From Second Life Wiki
Jump to navigation Jump to search
(this function is not terribly necessary, even if convenient)
 
(38 intermediate revisions by 16 users not shown)
Line 1: Line 1:
{{LSLFunctionAll
{{LSL Function
|func=llAbs
|func=llAbs
|func_id=6
|func_id=6|func_sleep=0.0|func_energy=10.0
|func_sleep=0.0
|func_energy=10.0
|func_footnote
|func_footnote
|p1_type=integer
|p1_type=integer
|p1_name=val
|p1_name=val
|p1_desc
|p1_desc=Any integer value
|p2_type|p2_name|p2_desc
|p3_type|p3_name|p3_desc
|p4_type|p4_name|p4_desc
|p5_type|p5_name|p5_desc
|p6_type|p6_name|p6_desc
|p7_type|p7_name|p7_desc
|p8_type|p8_name|p8_desc
|p9_type|p9_name|p9_desc
|p10_type|p10_name|p10_desc
|p11_type|p11_name|p11_desc
|p12_type|p12_name|p12_desc
|return_type=integer
|return_type=integer
|return_text=that is the positive version of val.
|return_text=that is the positive version of {{LSLP|val}}.
|other_languages={{LSL OL|C++|[http://www.cplusplus.com/reference/cstdlib/abs/ abs]}}
|spec
|spec
|caveats
|caveats=*The llAbs of -2147483648 is -2147483648. This is because the positive integer 2147483648 is outside the range of allowed LSL {{LSLGC|Integer|integer values}}.
|examples=
|examples=
<lsl>
<source lang="lsl2">
default
default
{
{
     state_entry()
     state_entry()
     {
     {
         llSay(0,"The absolute value of -4 is: "+(string)llAbs(-4) );
//      returns: "The absolute value of -4 is: 4"
         llSay(PUBLIC_CHANNEL, "The absolute value of -4 is: "+(string)llAbs(-4) );
     }
     }
}
}
</lsl>
</source>
|helpers
<source lang="lsl2">
|also=[http://en.wikipedia.org/wiki/Absolute_value Wikipedia - Absolute value]]
// Here's a more elaborate example.
|notes
}}


{{lowercase|llAbs}}
ShowAbsolute(integer inputInteger)
__NOTOC__
{
    string output = "llAbs(" + (string)inputInteger + ") --> " + (string)llAbs(inputInteger);


{| width="100%"
    llSay(PUBLIC_CHANNEL, output);
|-
}
|valign="top"|
<div id="box">
<div style="padding: 0.5em">
Returns the absolute value of the integer passed to it.
</div>
</div>
|-
|<div id="box">
== [[integer]] llAbs( [[integer]] number); ==
<div style="padding: 0.5em">
* number - Any valid integer value
</div>
</div>
|-
|
<div id="box">
== Specification ==
<div style="padding: 0.5em">
This function returns the absolute value passed to it. Basically, it removes the negative sign, on the number if there is one. If the parameter is a positive one, it just returns it.


{|
default
|-  
{
| [[LSL_Energy|Energy]]:
    state_entry()
| 10.0  
    {
|-
        ShowAbsolute(-3);  //  llAbs(-3)  --> 3
| [[LSL_Sleep|Sleep]]:
        ShowAbsolute(5);    //  llAbs(5)  --> 5
| 0.0
        ShowAbsolute(-20);  //  llAbs(-20) --> 20
|-
        ShowAbsolute(0);    //  llAbs(0)  --> 0
| [[LSL_Function_ID|Function ID]]:
    }
| 6
}
|}
</source>
</div>
|helpers
</div>
|also_header
|-
|also_tests
|
|also_articles
<div id="box">
|also_footer
== Caveats ==
|also_functions={{LSL DefineRow||[[llFabs]]|[[float]] version of llAbs}}
<div style="padding: 0.5em">
|also_events
* None Known
|also_articles={{LSL DefineRow||{{Wikipedia|Absolute value}}|}}
</div>
|notes=*Using <code>{{LSLP|val}}-({{LSLP|val}}<<1)*({{LSLP|val}}<0)</code> is roughly two times faster than llAbs, as it avoids a function call and produces identical results.
</div>
|cat1=Math
 
|cat2=Integer
|-
|cat3
|
|cat4
<div id="box">
|haiku={{Haiku|Whether good or bad,|we are not here to judge you.|Just to ask... How much?}}
== Examples ==
}}
<div style="padding: 0.5em">
 
</div>
</div>
|-
|
<div id="box">
== See Also ==
<div style="padding: 0.5em">
</div>
</div>
|-
|
<div id="box">
== Notes ==
<div style="padding: 0.5em">
</div>
</div>
|}
 
[[Category:LSL_Functions]]
[[Category:LSL_Math]]

Latest revision as of 14:49, 28 October 2023

Summary

Function: integer llAbs( integer val );

Returns an integer that is the positive version of val.

• integer val Any integer value
This function is similar to functions (e.g. abs) found in many other languages: 
C++
abs

Caveats

  • The llAbs of -2147483648 is -2147483648. This is because the positive integer 2147483648 is outside the range of allowed LSL integer values.
All Issues ~ Search JIRA for related Bugs

Examples

default
{
    state_entry()
    {
//      returns: "The absolute value of -4 is: 4"
        llSay(PUBLIC_CHANNEL, "The absolute value of -4 is: "+(string)llAbs(-4) );
    }
}
// Here's a more elaborate example.

ShowAbsolute(integer inputInteger)
{
    string output = "llAbs(" + (string)inputInteger + ") --> " + (string)llAbs(inputInteger);

    llSay(PUBLIC_CHANNEL, output);
}

default
{
    state_entry()
    {
        ShowAbsolute(-3);   //  llAbs(-3)  --> 3
        ShowAbsolute(5);    //  llAbs(5)   --> 5
        ShowAbsolute(-20);  //  llAbs(-20) --> 20
        ShowAbsolute(0);    //  llAbs(0)   --> 0
    }
}

Notes

  • Using val-(val<<1)*(val<0) is roughly two times faster than llAbs, as it avoids a function call and produces identical results.

See Also

Functions

•  llFabs float version of llAbs

Articles

•  "Wikipedia logo"Absolute value

Deep Notes

Search JIRA for related Issues

Signature

function integer llAbs( integer val );

Haiku

Whether good or bad,
we are not here to judge you.
Just to ask... How much?