annotate src/driver.tp @ 53:0f8adc187d29

allWithMaxSize seems to work, will clean next commit
author William Morgan <bill@mrgn.org>
date Sun, 11 Aug 2013 13:48:35 -0700
parents e634e81c4c84
children f864792a1b17
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
51
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #{
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 main <- :args {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 if: (args length) > 1 {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 numops <- int32: (args get: 1)
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 file <- os open: "data/myproblems.json" (os O_RDONLY)
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 fstr <- (os read: file 400 * 1024) // file was 276k before bonus problems...
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 os close: file
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 probs <- requests problems: fstr
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 filtered <- #[]
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 foreach: probs :idx el {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 if: (not: (el solved)) && (el size) = numops && (el timeLeft) > 0 {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 filtered append: el
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 numtests <- #[16 32 64 128 256 256]
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 if: (args length) > 2 {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 prog <- bv program
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 authKey <- args get: 2
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 if: numops < 10 {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24 //nt <- numtests get: (numops - 3)
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 nt <- 32
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 trees <- (prog allOfSize: numops)
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 foreach: filtered :idx el {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 probtrees <- prog filterTrees: trees (el operators)
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 info <- solver classify: prog probtrees nt
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
30 solver solve: (el id) withAuth: authKey andInfo: info andProg: prog
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
31 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 } else: {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33 nt <- 24
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34 foreach: filtered :idx el {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 print: "Generating programs for operators: " . ((el operators) fold: "" with: :acc el { acc . el }) . "\n"
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36 probtrees <- prog allOfSize: numops withOps: (el operators)
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 print: "Generated " . (string: (probtrees length)) . " programs\n"
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 probtrees <- prog filterTrees: probtrees (el operators)
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 print: "Running classifier " . (string: (probtrees length)) . " programs\n"
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
40 info <- solver classify: prog probtrees nt
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41 solver solve: (el id) withAuth: authKey andInfo: info andProg: prog
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
43 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44 } else: {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45 foreach: filtered :idx el {
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46 print: el
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
47 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
48 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
49 0
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
50 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
51 }
e634e81c4c84 Added solver driver
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
52 }