Score computes cosine similarity, dot product, or negative squared L2 distance.
Arithmetic is float64, including multiplication and subtraction, to avoid
float32 overflow and underflow for finite float32 inputs.
Validate rejects unsupported metrics, empty or nonfinite vectors, and zero
vectors for cosine similarity. Zero vectors are valid for dot product and L2.