function ticks()

in src/lib/d3_scales.ts [157:186]


    function ticks(n: number): number[] {
        if (n >= domain_idx[1] - domain_idx[0] + 1) {
            return values.slice(domain_idx[0], domain_idx[1] + 1)
        }
        var t = [];
        for (var i = 0; i < n; ++i) {
            // Find the roundest number in the intervalle
            var start_idx = domain_idx[0] + Math.floor(i / n * (domain_idx[1] - domain_idx[0]));
            var end_dx = domain_idx[0] + Math.floor((i + 1) / n * (domain_idx[1] - domain_idx[0]));
            var start = values[start_idx];
            var end = end_dx > domain_idx[1] ? values[domain_idx[1]] : values[end_dx];
            var val;
            if (start == end) {
                val = start;
            }
            else {
                var precision = 1;
                var prev = i > 0 ? t[t.length - 1] : start;
                while (precision < 20 && toPrecisionFloor(prev, precision) == toPrecisionFloor(end, precision)) {
                    ++precision;
                }
                val = parseFloat(((prev + end) / 2).toPrecision(precision));
            }
            if (i > 0 && t[i - 1] == val) {
                continue;
            }
            t.push(val);
        }
        return t;
    };