I am a postdoctoral researcher at University of Maryland, College Park in the Computer Science department, working under David Van Horn.
I am primarily interested in researching programming language support for mathematical computation. My current target is Bayesian inference and accurate floating-point computation.
I am a member of the PLT research group, and develop the math, plot, and ray-traced icon libraries for the Racket programming language.
Applied mathematics is difficult to carry out correctly and efficiently. I research language support that makes correctness and efficiency easier.
Bayesian inference is one task for which, after spending some time implementing it, it becomes obvious that the full power of language abstraction would be ideal. Bayesian theories and questions about them compose in the same way programmatic abstractions do, but programs written to answer these questions do not compose. Worse, the programs that answer questions are very hard for humans to write correctly, let alone optimize and parallelize.
It makes sense to have a compiler build these programs on demand. Thus, we have Infer.net, Church, and many other languages dedicated to the task, with more popping up all the time.
Most such language implementations to date can carry out Bayesian inference efficiently for some useful class of problems. Unfortunately, none are complete enough or correct enough to be trusted in general practice.
Most fail to be correct because they lack a formal semantics.
This makes it impossible to determine whether unintuitive behavior—
Most fail to be complete enough because the informal semantics the language implementors have in mind is based on a sampling method or on an incomplete theory of probability.
For example, almost all implementors—
I am addressing lack of correctness and completeness by designing a probabilistic modeling language named DrBayes with a formal semantics based on measure theory. The language naturally defines if expressions and unbounded recursion, as well as features that most Bayesians do not yet know they need, such as arbitrary nonrectangular constraints.
To use DrBayes, install Racket and then either install the drbayes package from within DrRacket, or enter raco pkg install drbayes on the command line.
The source code is on GitHub.
Neil Toronto, Jay McCarthy, and David Van Horn. Running Probabilistic Programs Backwards. European Symposium on Programming, April 2015. (PDF) (Slides)
Neil Toronto and Jay McCarthy. Practically Accurate Floating-Point Math. Computing in Science and Engineering, July 2014. (Publisher) (PDF)
Neil Toronto. Trustworthy, Useful Languages for Probabilistic Modeling and Inference. PhD Thesis, 2014. (PDF) (Slides) (Talk)
Vincent St-Amour and Neil Toronto. Experience Report: Applying Random Testing to a Base Type Environment. ICFP 2013. (PDF)
Neil Toronto and Jay McCarthy. Computing in Cantor’s Paradise with λZFC. FLOPS 2012. (PDF) (Code) (Slides)
Neil Toronto and Jay McCarthy. From Bayesian Notation to Pure Racket via Discrete Measure-Theoretic Probability in λZFC. IFL 2011. (PDF) (Slides)
Neil Toronto. Super-resolution via Image Recapture and Bayesian Effect Modeling. Master’s Thesis, 2009. (PDF) (Slides)
Neil Toronto, Bryan Morse, Kevin Seppi and Dan Ventura. Super-Resolution via Recapture and Bayesian Effect Modeling. CVPR 2009. (PDF)
Neil Toronto, Bryan Morse, Dan Ventura and Kevin Seppi. The Hough Transform’s Implicit Bayesian Foundation. ICIP 2007. (PDF)
Neil Toronto and Dan Ventura. Learning Quantum Operators From Quantum State Pairs. WCCI 2006. (PDF)
Neil Toronto and Dan Ventura. Edge Inference for Image Interpolation. IJCNN 2005. (PDF)
3 Invited Talks
Probability and Prejudice: Bridging the Gap Between Machine Learning and Programming Languages. Microsoft Research, Cambridge, April 2015. (Video) (Slides)
4 PLT and Racket
I have entrenched myself as PLT’s math guy by writing the bulk of Racket’s math library. I am responsible for the overall design, bigfloats (a functional wrapper for MPFR), double-double-precision floating-point, additional elementary functions, special functions, probability distributions, statistical functions, and functional arrays.
I am happy to share some responsibility for the math library with Jens Axel Søgaard, who wrote the number theory and linear algebra functions. As yet, with significant scouring, I have found only one error in his thousands of lines of code. I would never have had the time to do these parts so well, if at all.
I also maintain the plot library, which I rewrote to
make it prettier and more extensible, and to give it new features, such as plotting to PDFs.
Between this and the math library, I no longer have to use
R for anything.
Eventually, I hope to obsolete R entirely—
I wrote the ray tracer that renders DrRacket’s icons.
I have been married to the fabulous Amy Toronto for 16 years, and will follow her around forever. Or she will follow me around. We lost the distinction some time ago.
We have four children, who keep growing despite my protestations that they’re too young to be as big as they are. I suppose they do it to to spite me, while I’m sleeping.
In my spare time, I compose piano music: the kind I would like to have learned as a teenager, which might have kept me interested enough to keep up with lessons.
An Endless S.O.I.
Over an Emerald Moon
Until We Rise Again
Orbital Tango in Δv Major
For easier access to the recordings, check out my Soundcloud page.
Teenage boys should also check out Henry Mancini (The Pink Panther, Peter Gunn), Lalo Schifrin (Mission: Impossible), and Vince Guaraldi (Linus and Lucy, and many other fantastic Peanuts pieces). In fact, do yourself a favor and buy The Peanuts Illustrated Songbook: it will continually challenge you, and gain the attention of the right kinds of people at parties.
I am very fortunate and pleased to be a member of the Church of Jesus Christ of Latter-day Saints.
I currently serve as my ward’s high priests’ group leader. In the past, I have served as a primary music chorister, in the Cub Scouts and Boy Scouts, in other local leadership positions, and as a pianist and choir director.
Contact me at neil.toronto at gmail dot com, or ntoronto at racket-lang dot org.