chebfun/chebfun — pull request #1168 by ajt60gaibb (2014-09-18 00:16:55+00:00)
Title: Feature chebop2 interface

Updating Chebop2 so that it can accurately compute the (splitting) rank of a variable coefficient partial differential operator. This feels like a BIG step forward to me as we don't just compute the rank, but also a corresponding low rank representation (separable representation). A rank determining algorithm is particularly important for Chebop2 because rank 1 and rank 2 PDOs are very efficient to solve compared to higher rank operators. Automatically spotting these PDOs is crucial.

For instance, we now spot that Helmholtz with gravity is rank 2 (before we calculated rank 3):
```
N = chebop2(@(x,y,u) laplacian(u) + (10 + y).*u);
rank(N)
ans =
2
```
Other examples include the time-independent Schrodinger equation and the Black-Scholes equation.

We compute a separable representation of a PDO using a thrilling mix of tensor-train decompositions, 2D low rank ideas, and umbral calculus.

Closes #1165.