The minimum distance between two arbitrary geometries is non-trivial and is
only exactly defined for non-circular geometries. `distance_squared()`

will
return the exact squared distance between geometries with `x`

and `y`

being
recycled to the maximum length of either. `distance_matrix`

will return a
matrix of distances given as numerics (and thus not exact), with the
geometries of `x`

in the rows and the geometries of `y`

in the columns so
that the value of `mat[i, j]`

corresponds to the distance between `x[i]`

and
`y[j]`

.

## Value

A `euclid_exact_numeric`

vector for `distance_squared()`

and a
numeric matrix for `distance_matrix()`

## See also

Other Measures:
`approx_angle()`

,
`geometry_measures`

## Examples

```
# Calculate distances between lines and rays in 3D
p <- point(sample(100, 20), sample(100, 20), sample(100, 20))
l <- line(p[1:5], p[6:10])
r <- ray(p[11:15], p[16:20])
# Pairwise exact distance
distance_squared(l, r)
#> <exact numerics [5]>
#> [1] 421.77716 2752.98285 4091.17283 42.85453 434.08593
# All distances
approx_distance_matrix(l, r)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 20.53721 37.29638945 31.05899 6.438624 16.561279
#> [2,] 50.63798 52.46887505 79.76332 43.295951 1.068073
#> [3,] 24.33127 21.95942727 63.96228 29.736150 24.283498
#> [4,] 13.73086 30.42585356 15.92796 6.546337 33.089933
#> [5,] 13.29732 0.05472641 23.98094 14.912519 20.834729
```