## GimpMath

GimpMath — Mathematical definitions and macros.

## Synopsis

```#define             RINT                                (x)
#define             ROUND                               (x)
#define             SQR                                 (x)
#define             MAX255                              (a)
#define             CLAMP0255                           (a)
```

## Description

Mathematical definitions and macros for use both by the GIMP application and plug-ins. These macros should be used rather than the ones from <math.h> for enhanced portability.

## Details

### RINT()

```#define RINT(x) rint(x)
```

This macro rounds its argument `x` to an integer value in floating point format. Use `RINT()` instead of `rint()`.

 `x` : the value to be rounded

### ROUND()

```#define ROUND(x) ((int) ((x) + 0.5))
```

This macro rounds its positive argument `x` to the nearest integer.

 `x` : the value to be rounded.

### SQR()

```#define SQR(x) ((x) * (x))
```

This macro squares its argument `x`.

 `x` : the value to be squared.

### MAX255()

```#define MAX255(a)  ((a) | (((a) & 256) - (((a) & 256) >> 8)))
```

This macro limits it argument `a`, an (0-511) int, to 255.

 `a` : the value to be limited.

### CLAMP0255()

```#define CLAMP0255(a)  CLAMP(a,0,255)
```

This macro clamps its argument `a`, an int32-range int, between 0 and 255 inclusive.

 `a` : the value to be clamped.

```#define gimp_deg_to_rad(angle) ((angle) * (2.0 * G_PI) / 360.0)
```

This macro converts its argument `angle` from degree to radian.

 `angle` : the angle to be converted.

```#define gimp_rad_to_deg(angle) ((angle) * 360.0 / (2.0 * G_PI))
This macro converts its argument `angle` from radian to degree.
 `angle` : the angle to be converted.