equal
  deleted
  inserted
  replaced
  
    
    
     3 //  | 
     3 //  | 
     4 //   see https://en.wikipedia.org/wiki/Mandelbrot_set  | 
     4 //   see https://en.wikipedia.org/wiki/Mandelbrot_set  | 
     5 //   | 
     5 //   | 
     6 // needs to be called with  | 
     6 // needs to be called with  | 
     7 //   | 
     7 //   | 
     8 // scala -cp scala-parallel-collections_3-1.0.4.jar  | 
     8 // scala-cli --extra-jars scala-parallel-collections_3-1.0.4.jar  | 
         | 
     9 //  | 
         | 
    10 // the library is also uploaded to KEATS   | 
     9 //  | 
    11 //  | 
    10 // !! UPDATE: On my faster Mac-M1 machine the times  | 
    12 // !! UPDATE: On my faster Mac-M1 machine the times  | 
    11 // !! are ca. 4 secs for the sequential version and  | 
    13 // !! are ca. 4 secs for the sequential version and  | 
    12 // !! around 0.7 secs for the par-version.  | 
    14 // !! around 0.7 secs for the par-version.  | 
    13   | 
    15   | 
    90 // draw a pixel on the canvas  | 
    92 // draw a pixel on the canvas  | 
    91 def pixel(x: Int, y: Int, color: Color) =   | 
    93 def pixel(x: Int, y: Int, color: Color) =   | 
    92   viewer.canvas.setRGB(x, y, color.getRGB())  | 
    94   viewer.canvas.setRGB(x, y, color.getRGB())  | 
    93   | 
    95   | 
    94   | 
    96   | 
    95 // calculates the number of iterations using lazy lists (streams)  | 
    97 // calculates the number of iterations using lazy lists   | 
         | 
    98 // (streams)  | 
    96 //   the iteration goes on for a maximum of max steps,  | 
    99 //   the iteration goes on for a maximum of max steps,  | 
    97 //   but might leave early when the pred is satisfied  | 
   100 //   but might leave early when the pred is satisfied  | 
    98 def iterations(c: Complex, max: Int) : Int = { | 
   101 def iterations(c: Complex, max: Int) : Int = { | 
    99   def next(z: Complex) = z * z + c      | 
   102   def next(z: Complex) = z * z + c      | 
   100   def pred(z: Complex) = z.abs() < 2    // exit condition  | 
   103   def pred(z: Complex) = z.abs() < 2    // exit condition  | 
   163   | 
   166   | 
   164 // some more computations with example 3  | 
   167 // some more computations with example 3  | 
   165   | 
   168   | 
   166 val delta = (exc2 - exc1) * 0.0333  | 
   169 val delta = (exc2 - exc1) * 0.0333  | 
   167   | 
   170   | 
   168 //println(s"${time_needed( | 
   171 println(s"${time_needed( | 
   169 //  for (n <- (0 to 12))   | 
   172   for (n <- (0 to 12))   | 
   170 //     mandelbrot(exc1 + delta * n,   | 
   173      mandelbrot(exc1 + delta * n,   | 
   171 //                exc2 - delta * n, 100))} secs")   | 
   174                 exc2 - delta * n, 100))} secs")   | 
   172   | 
   175   | 
   173   | 
   176   | 
   174   | 
   177   | 
   175 // Larry Paulson's example  | 
   178 // Larry Paulson's example  | 
   176 val exl1 = -0.74364990 + 0.13188170 * i  | 
   179 val exl1 = -0.74364990 + 0.13188170 * i  |