Hello, and welcome to Patrick R. Gill's research web page.


Website updated Sept 13, 2012. Fixed incorrect link in Papers section.

In June 2012 I started working for Rambus Labs, where I am developing tiny lensless cameras.

I have updated my CV, publications list and contact information. Rambus Labs is in the process of establishing a promotional website; soon I expect to post about my research progress on that site.

More Robust Implementation of the In-Crowd Algorithm

Occasionally, the current implementation of the in-crowd algorithm generates a problem with an A matrix of such high mutual coherence that MATLAB's built-in quadratic programming solver no longer obeys the boundary conditions specified. In the current in-crowd algorithm code, this causes an error message to be generated, such as:

??? Error using ==> ICOpt>intOpt at 212

There was a problem with the interior optimizer

Error in ==> ICOpt at 129

X =


I have a new, experimental version of the core function ICOpt.m which detects violations of boundary conditions, and attempts two additional backup methods for enforcing boundary conditions that are progressively slower but safer. If the original method fails and these alternative methods are required, performance will suffer silently. However, sometimes the right answer is worth waiting for. Here is the newer function ICOpt.m, which yields the correct answer in test cases where the old one crashed. As of May 16, 2012, it has been lightly tested and appears to work properly, but there may be residual bugs or errors. Please contact me if you have problems that still cause the interior solver to violate its boundary conditions or if you notice unexpected behaviour from this new version.

Note on colour scheme

I'm experimenting with colour profiles by using a palette inspired by my favorite tree: the arbutus. The background image of this site is an arbutus silhouette I took from the north end of Portland Island at sunset.