restart interface(version); SWJwU3RhbmRhcmR+V29ya3NoZWV0fkludGVyZmFjZSx+TWFwbGV+MjAxNS4yLH5NYWN+T1N+WCx+RGVjZW1iZXJ+MjF+MjAxNX5CdWlsZH5JRH4xMDk3ODk1RzYi f := (x,y) -> x+y Zio2JEkieEc2IkkieUdGJUYlNiRJKW9wZXJhdG9yR0YlSSZhcnJvd0dGJUYlLCY5JCIiIjklRixGJUYlRiU= with(Threads): data := [Seq([Seq([i/10, j/10, f(i/10, j/10)], i = 1 .. 10)], j = 1 .. 10)]: # The function f is more complicated in order that its evaluation # is quite slow; the idea is to have time to stop the execution (red stop button) # in order to see if this could affect the behaviour of computations if they are # done after a manual stopping. si := [seq(r(), i=1..10)]: sj := [seq(r(), j=1..10)]: data := [Seq([Seq([i, j, nextprime((i*j)^(i*j))], i in si)], j in sj)]: # Same kind of loop done 100 times with different sequences of i and j. r := rand(10 .. 20): for n from 1 to 100 do si := [seq(r(), i=1..10)]: sj := [seq(r(), j=1..10)]: data := [Seq([Seq([i, j, nextprime((i*j)^(i+j))], i in si)], j in sj)] end do: # no error observed in any case