staticIota is easy
Stefan Koch via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Dec 9 23:59:53 PST 2016
On Saturday, 10 December 2016 at 01:48:24 UTC, Ali Çehreli wrote:
> On 12/09/2016 05:34 PM, Stefan Koch wrote:
>> On Friday, 9 December 2016 at 18:52:59 UTC, Ali Çehreli wrote:
>>> I thought I needed something like staticIota in a unittest to
>>> effect
>>> static foreach over a number range and I found one in
>>> druntime's
>>> implementation:
>>>
>>>
>>> https://github.com/dlang/druntime/blob/master/src/core/internal/traits.d#L106
>>>
>>>
>>> (I wonder why that one is implemented in divide-and-conquer
>>> fashion.
>>> Perhaps due to faster compilation that way?)
>>>
>>
>> Yes it is.
>> n log n
>> instead of n^2
>>
>
> Makes sense. I was stopping my counting at n: both looked O(n)
> to me. :)
>
> How about my staticIota()? Is it n^2 inside the compiler?
>
> Ali
it's O(n log n)*((n!)/some_really_large_number)
Because the template-subsystem is it not really build for a abuse
like AliasSeq.
After a cut-off point the factorial factor will dominate.
More information about the Digitalmars-d-learn
mailing list