Operators

# diameter_region (Operator)

## Name

diameter_region — Maximal distance between two boundary points of a region.

## Signature

diameter_region(Regions : : : Row1, Column1, Row2, Column2, Diameter)

## Description

The operator diameter_region calculates the maximal distance between two boundary points of a region. The coordinates of these two extremes and the distance between them will be returned.

In the documentation of this chapter (Regions / Features), you can find an image illustrating regions which vary in their diameter.

## Attention

If the region is empty, the results of Row1, Column1, Row2 and Column2 (all of them = 0) may lead to confusion.

## Execution Information

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Automatically parallelized on tuple level.

## Parameters

Regions (input_object)  region(-array) object

Regions to be examined.

Row1 (output_control)  line.begin.y(-array) (integer)

Row index of the first extreme point.

Column1 (output_control)  line.begin.x(-array) (integer)

Column index of the first extreme point.

Row2 (output_control)  line.end.y(-array) (integer)

Row index of the second extreme point.

Column2 (output_control)  line.end.x(-array) (integer)

Column index of the second extreme point.

Diameter (output_control)  number(-array) (real)

Distance of the two extreme points.

## Complexity

If F is the area of a region, the runtime complexity amounts to O(sqrt(F)) on average.

## Result

The operator diameter_region returns the value 2 (H_MSG_TRUE), if the input is not empty. The reaction to empty input (no input regions are available) may be determined with the help of the operator set_system('no_object_result',<Result>). The reaction concerning an empty region (region is the empty set) will be determined by the operator set_system('empty_region_result',<Result>). If necessary an exception is raised.

## Module

Foundation

 Operators