min

From Second Life Wiki
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.

Summary

Function: float min( float x, float y );

Returns the lesser of two arbitrary values
Returns a float

• float x
• float y

If values x and y are equal, returns y

See also: Max

Specification

float min(float x, float y)
{
    return ( ( llAbs( x >= y ) ) * y ) + ( ( llAbs( x<y ) ) * x );
}

Examples

float value = min(10,20); //value == 10

Deep Notes

Tests

// Max and Min Functions and Unit Tests
// Emilie (Hermit Barber in World)
// Creative Commons: Attribution, Share-alike, Non Commecial

float Max(float x,float y)
{
    return ( ( llAbs( x >= y ) ) * x ) + ( ( llAbs( x<y ) ) * y );
}

float Min(float x,float y)
{
    return ( ( llAbs( x >= y ) ) * y ) + ( ( llAbs( x<y ) ) * x );
}

// Copy the above functions to your program - the balance is mereley a set of unit tests
    
say(string f, float x,float y, float z)
{
    llOwnerSay("Testing " + f + " with input X: " + (string) x +  " Input Y: " + (string) y + "Resulting in: " + (string) z);
}

default
{
    state_entry()
    {
        string test = "MAX";
        float ix = 0;
        float iy = 0;
        float iz = 0;
        say(test,ix,iy,Max(ix,iy));
        ix=100;iy=100;say(test,ix,iy,Max(ix,iy));
        ix=-100;iy=100;say(test,ix,iy,Max(ix,iy));
        ix=100;iy=-100;say(test,ix,iy,Max(ix,iy));
        ix=-100;iy=-100;say(test,ix,iy,Max(ix,iy));
        ix=-0.001;iy=0.00001;say(test,ix,iy,Max(ix,iy));
        ix=0.001;iy=0.00001;say(test,ix,iy,Max(ix,iy));
        ix=-0.001;iy=0.00001;say(test,ix,iy,Max(ix,iy));
        ix=0.001;iy=-0.00001;say(test,ix,iy,Max(ix,iy));
        ix=-0.001;iy=-0.00001;say(test,ix,iy,Max(ix,iy));
        
        test = "MIN";
        say(test,ix,iy,Min(ix,iy));
        ix=100;iy=100;say(test,ix,iy,Min(ix,iy));
        ix=-100;iy=100;say(test,ix,iy,Min(ix,iy));
        ix=100;iy=-100;say(test,ix,iy,Min(ix,iy));
        ix=-100;iy=-100;say(test,ix,iy,Min(ix,iy));
        ix=0.001;iy=0.00001;say(test,ix,iy,Min(ix,iy));
        ix=-0.001;iy=0.00001;say(test,ix,iy,Min(ix,iy));
        ix=0.001;iy=-0.00001;say(test,ix,iy,Min(ix,iy));
        ix=-0.001;iy=-0.00001;say(test,ix,iy,Min(ix,iy));
    }
}

Signature