1464 println(asize(bders_simp(prog.toList, internalise(r)))) |
1464 println(asize(bders_simp(prog.toList, internalise(r)))) |
1465 //println(size(ders_simp(prog.toList, r))) |
1465 //println(size(ders_simp(prog.toList, r))) |
1466 } |
1466 } |
1467 } |
1467 } |
1468 // aaa_star() |
1468 // aaa_star() |
|
1469 |
|
1470 def matching_ways_counting(n: Int): Int = |
|
1471 { |
|
1472 if(n == 0) 1 |
|
1473 else if(n == 1) 2 |
|
1474 else (for(i <- 1 to n - 1) |
|
1475 yield matching_ways_counting(i) * matching_ways_counting(n - i) ).sum + (n + 1) |
|
1476 } |
1469 def naive_matcher() { |
1477 def naive_matcher() { |
1470 val r = STAR(STAR("a") ~ STAR("a")) |
1478 val r = STAR(STAR("a") ~ STAR("a")) |
1471 |
1479 |
1472 for(i <- 0 to 20) { |
1480 // for(i <- 0 to 10) { |
1473 val s = "a" * i |
1481 // val s = "a" * i |
1474 val t1 = System.nanoTime |
|
1475 matcher(s, r) |
|
1476 val duration = (System.nanoTime - t1) / 1e9d |
|
1477 print(i) |
|
1478 print(" ") |
|
1479 // print(duration) |
|
1480 // print(" ") |
|
1481 print(asize(bders_simp(s.toList, internalise(r)))) |
|
1482 //print(size(ders_simp(s.toList, r))) |
|
1483 println() |
|
1484 } |
|
1485 // for(i <- 1 to 40000000 by 500000) { |
|
1486 // val s = "a" * i |
|
1487 // val t1 = System.nanoTime |
1482 // val t1 = System.nanoTime |
1488 // val derssimp_result = ders_simp(s.toList, r) |
1483 // matcher(s, r) |
1489 // val duration = (System.nanoTime - t1) / 1e9d |
1484 // val duration = (System.nanoTime - t1) / 1e9d |
1490 // print(i) |
1485 // print(i) |
1491 // print(" ") |
1486 // print(" ") |
1492 // print(duration) |
1487 // // print(duration) |
|
1488 // // print(" ") |
|
1489 // (aprint(bders_simp(s.toList, internalise(r)))) |
|
1490 // //print(size(ders_simp(s.toList, r))) |
1493 // println() |
1491 // println() |
1494 // } |
1492 // } |
|
1493 for(i <- 1 to 3) { |
|
1494 val s = "a" * i |
|
1495 val t1 = System.nanoTime |
|
1496 val derssimp_result = ders_simp(s.toList, r) |
|
1497 println(i) |
|
1498 println(matching_ways_counting(i)) |
|
1499 println(size(derssimp_result)) |
|
1500 rprint(derssimp_result) |
|
1501 } |
1495 |
1502 |
1496 } |
1503 } |
1497 // naive_matcher() |
1504 naive_matcher() |
1498 //single(SEQ(SEQ(STAR(CHAR('b')),STAR(STAR(SEQ(CHAR('a'),CHAR('b'))))), |
1505 //single(SEQ(SEQ(STAR(CHAR('b')),STAR(STAR(SEQ(CHAR('a'),CHAR('b'))))), |
1499 // SEQ(SEQ(CHAR('b'),STAR(ALTS(CHAR('a'),ONE))),ONE))) |
1506 // SEQ(SEQ(CHAR('b'),STAR(ALTS(CHAR('a'),ONE))),ONE))) |
1500 |
1507 |
1501 |
1508 |
1502 //STAR(SEQ(ALTS(CHAR(b),STAR(CHAR(b))),ALTS(ALTS(ONE,CHAR(b)),SEQ(CHAR(c),ONE)))) |
1509 //STAR(SEQ(ALTS(CHAR(b),STAR(CHAR(b))),ALTS(ALTS(ONE,CHAR(b)),SEQ(CHAR(c),ONE)))) |