*/ public function compatibility() : array { return [ DataType::continuous(), ]; } /** * Compute the distance between two vectors. * * @internal * * @param list $a * @param list $b * @return float */ public function compute(array $a, array $b) : float { $distance = 0.0; foreach ($a as $i => $valueA) { $valueB = $b[$i]; $distance += abs($valueA - $valueB) / ((abs($valueA) + abs($valueB)) ?: EPSILON); } return $distance; } /** * Return the string representation of the object. * * @internal * * @return string */ public function __toString() : string { return 'Canberra'; } }