Difference between revisions of "LlAbs"

From Second Life Wiki
Jump to navigation Jump to search
 
(this function is not terribly necessary, even if convenient)
 
(48 intermediate revisions by 19 users not shown)
Line 1: Line 1:
=llAbs - Returns the absolute value of the integer passed to it=
{{LSL Function
|func=llAbs
|func_id=6|func_sleep=0.0|func_energy=10.0
|func_footnote
|p1_type=integer
|p1_name=val
|p1_desc=Any integer value
|return_type=integer
|return_text=that is the positive version of {{LSLP|val}}.
|other_languages={{LSL OL|C++|[http://www.cplusplus.com/reference/cstdlib/abs/ abs]}}
|spec
|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=
<source lang="lsl2">
default
{
    state_entry()
    {
//      returns: "The absolute value of -4 is: 4"
        llSay(PUBLIC_CHANNEL, "The absolute value of -4 is: "+(string)llAbs(-4) );
    }
}
</source>
<source lang="lsl2">
// Here's a more elaborate example.


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


==Full Functional Description:==
    llSay(PUBLIC_CHANNEL, output);
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
}


==Parameters:==
default
* val - This is a number that you want to find the absolute value of.
{
 
    state_entry()
 
    {
==Examples:==
        ShowAbsolute(-3);  //  llAbs(-3)  --> 3
   llSay(0,"The absolute value of -4 is: "+(string)llAbs(-4) );
        ShowAbsolute(5);    //  llAbs(5)   --> 5
 
        ShowAbsolute(-20);  //  llAbs(-20) --> 20
 
        ShowAbsolute(0);   //  llAbs(0)  --> 0
 
    }
==Caveats:==
}
* None known at this time.
</source>
|helpers
|also_header
|also_tests
|also_articles
|also_footer
|also_functions={{LSL DefineRow||[[llFabs]]|[[float]] version of llAbs}}
|also_events
|also_articles={{LSL DefineRow||{{Wikipedia|Absolute value}}|}}
|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.
|cat1=Math
|cat2=Integer
|cat3
|cat4
|haiku={{Haiku|Whether good or bad,|we are not here to judge you.|Just to ask... How much?}}
}}

Latest revision as of 13:49, 28 October 2023

Summary

Function: integer llAbs( integer val );
0.0 Forced Delay
10.0 Energy

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.

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

Signature

function integer llAbs( integer val );

Haiku

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