153 // size without simplifications |
153 // size without simplifications |
154 //println(size(der('a', der('a', EVIL)))) // => 28 |
154 //println(size(der('a', der('a', EVIL)))) // => 28 |
155 //println(size(der('a', der('a', der('a', EVIL))))) // => 58 |
155 //println(size(der('a', der('a', der('a', EVIL))))) // => 58 |
156 |
156 |
157 // size with simplification |
157 // size with simplification |
158 //println(simp(der('a', der('a', EVIL)))) // => 8 |
158 //println(simp(der('a', der('a', EVIL)))) |
159 //println(simp(der('a', der('a', der('a', EVIL)))))// => 8 |
159 //println(simp(der('a', der('a', der('a', EVIL))))) |
160 |
160 |
161 //println(size(simp(der('a', der('a', EVIL))))) // => 8 |
161 //println(size(simp(der('a', der('a', EVIL))))) // => 8 |
162 //println(size(simp(der('a', der('a', der('a', EVIL)))))) // => 8 |
162 //println(size(simp(der('a', der('a', der('a', EVIL)))))) // => 8 |
163 |
163 |
164 // Python needs around 30 seconds for matching 28 a's with EVIL. |
164 // Python needs around 30 seconds for matching 28 a's with EVIL. |
171 |
171 |
172 def time_needed[T](i: Int, code: => T) = { |
172 def time_needed[T](i: Int, code: => T) = { |
173 val start = System.nanoTime() |
173 val start = System.nanoTime() |
174 for (j <- 1 to i) code |
174 for (j <- 1 to i) code |
175 val end = System.nanoTime() |
175 val end = System.nanoTime() |
176 (end - start)/(i * 1.0e9) |
176 "%.5f".format((end - start)/(i * 1.0e9)) |
177 } |
177 } |
178 |
178 |
179 //for (i <- 0 to 5000000 by 500000) { |
179 //for (i <- 0 to 5000000 by 500000) { |
180 // println(i + " " + "%.5f".format(time_needed(2, matcher(EVIL, "a" * i))) + " secs.") |
180 // println(s"$i ${time_needed(2, matcher(EVIL, "a" * i))} secs.") |
181 //} |
181 //} |
182 |
182 |
183 // another "power" test case |
183 // another "power" test case |
184 //simp(Iterator.iterate(ONE:Rexp)(r => SEQ(r, ONE | ONE)).drop(100).next) == ONE |
184 //simp(Iterator.iterate(ONE:Rexp)(r => SEQ(r, ONE | ONE)).drop(100).next) == ONE |
185 |
185 |
186 // the Iterator produces the rexp |
186 // the Iterator produces the rexp |
187 // |
187 // |
188 // SEQ(SEQ(SEQ(..., ONE | ONE) , ONE | ONE), ONE | ONE) |
188 // SEQ(SEQ(SEQ(..., ONE | ONE) , ONE | ONE), ONE | ONE) |
189 // |
189 // |
190 // where SEQ is nested 100 times. |
190 // where SEQ is nested 50 times. |
191 |
191 |
192 |
192 |
193 |
193 |
194 } |
194 } |