# min

 LSL Portal
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

## 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));
}
}
```