# HG changeset patch # User Mike Pavone # Date 1376225706 25200 # Node ID e634e81c4c843a273b704ef5cfc6548f37dd32d6 # Parent f4399a22a70465de5f8bb6a9f973fc8a5024ff6f Added solver driver diff -r f4399a22a704 -r e634e81c4c84 src/driver.tp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/driver.tp Sun Aug 11 05:55:06 2013 -0700 @@ -0,0 +1,52 @@ +#{ + main <- :args { + if: (args length) > 1 { + numops <- int32: (args get: 1) + + + file <- os open: "data/myproblems.json" (os O_RDONLY) + fstr <- (os read: file 400 * 1024) // file was 276k before bonus problems... + os close: file + + probs <- requests problems: fstr + + filtered <- #[] + foreach: probs :idx el { + if: (not: (el solved)) && (el size) = numops && (el timeLeft) > 0 { + filtered append: el + } + } + numtests <- #[16 32 64 128 256 256] + if: (args length) > 2 { + prog <- bv program + authKey <- args get: 2 + if: numops < 10 { + //nt <- numtests get: (numops - 3) + nt <- 32 + trees <- (prog allOfSize: numops) + foreach: filtered :idx el { + probtrees <- prog filterTrees: trees (el operators) + info <- solver classify: prog probtrees nt + solver solve: (el id) withAuth: authKey andInfo: info andProg: prog + } + } else: { + nt <- 24 + foreach: filtered :idx el { + print: "Generating programs for operators: " . ((el operators) fold: "" with: :acc el { acc . el }) . "\n" + probtrees <- prog allOfSize: numops withOps: (el operators) + print: "Generated " . (string: (probtrees length)) . " programs\n" + probtrees <- prog filterTrees: probtrees (el operators) + print: "Running classifier " . (string: (probtrees length)) . " programs\n" + info <- solver classify: prog probtrees nt + solver solve: (el id) withAuth: authKey andInfo: info andProg: prog + } + } + } else: { + foreach: filtered :idx el { + print: el + } + } + 0 + } + } +}