kai wrote:

Here is a boiled down test case:

        void main (string[] args)
        {
                double [] foo = new double [cast(int)1e6];
                for (int i=0;i<1e3;i++)
                {
                        for (int j=0;j<1e6-1;j++)
                        {
                                foo[j]=foo[j]+foo[j+1];
                        }
                }
        }

Any ideas?

for (int j=0;j<1e6-1;j++)

The j<1e6-1 is a floating point operation. It should be redone as an int one:
     j<1_000_000-1

Reply via email to