Re: [PATCH 3/3] diff --stat: sometimes use non-linear scaling.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sublinear solution without patch is below.

On Sept 28, 2006 Martin Waitz wrote:
On Wed, Sep 27, 2006 at 08:12:49AM -0700, Linus Torvalds wrote:
No _way_ is it correct to show more than three characters if there were
three lines of changes.

I think "nonlinear" is fine, but this is something that is "superlinear"
in small changes, and then sublinear in bigger ones (and then apparently
totally wrong for one-line changes).

It should at least never be superlinear, I believe.

So if we want to keep the logarithmic scale we can do some maths:
Assume we use a formula ala
        length = a log(change + b) + c

You are probably looking for much simpler, log-less, and pure integer:

       length = width * change / (width + change) + 1

Assuming target witdth of 40, for example, it will produce

Change    Length
1         1
2         2
3         3
4         4
10        9
20        14
30        18
50        23
100       29
1000      39
10000     40
1000000   40

--
Alexei
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]