public static function linspace(float $start, float $end, int $n) : self
    {
        if ($n < 1) {
            throw new InvalidArgumentException('The number of elements'
                . " must be greater than 0, $n given.");
        }

        $range = abs($end - $start);

        $interval = ($range / ($n - 1)) - (self::EPSILON * $range);

        return static::range($start, $end, $interval);
    }