We need better documentation for functions with ranges and templates
John Colvin via Digitalmars-d
digitalmars-d at puremagic.com
Wed Dec 16 16:06:05 PST 2015
On Wednesday, 16 December 2015 at 23:00:03 UTC, Timon Gehr wrote:
> On 12/15/2015 12:26 PM, rumbu wrote:
>>
>> And personally, I found the MS remark more compact and more
>> user
>> friendly than:
>>
>> "This is a best-effort implementation of length for any kind
>> of range.
>> If hasLength!Range, simply returns range.length without
>> checking upTo
>> (when specified). Otherwise, walks the range through its
>> length and
>> returns the number of elements seen. Performes Ο(n)
>> evaluations of
>> range.empty and range.popFront(), where n is the effective
>> length of
>> range."
>>
>> Not everybody is licensed in computational complexity theory to
>> understand what O(n) means.
>
> One doesn't need to know any results or definitions from
> complexity theory in order to understand what O(n) means. What
> it means here is that for large enough n the actual number is
> bounded from above by n multiplied by some unspecified constant.
> (In contexts like this, there is generally also an informal
> assumption that the unspecified constants are reasonably small.)
Perhaps it's the physicist in me, but I like this way of thinking
about it:
Given a running time R(n), the time-complexity is given by
O(f(n)) iff df/dn = lim_{n -> inf} dR(n)/dn
Is that also a correct expression? Obviously I'm papering over
the discretisation, but well, I did say physicist... :)
More information about the Digitalmars-d
mailing list