ContinuumIO/blaze — pull request #896 by mrocklin (2014-12-24 18:17:22+00:00)
Title: Split fails on branching expressions

Expressions like the following need to be turned into a single line expression before using split.

s = symbol('s', 'var * {x: int, y: int, z: int}')
expr = s.x.sum() / s.y.sum()

E.g. this looks like the following

```
|
/ \
\ /
|
```

Making split handle this well is probably hard. It's likely easier to make a new function that remove intermediate branches to expressions that look like the following

```
|
|
|
|
```

This is possible with expressions like `Summary` and `Broadcast`. It might be possible to roll this into the work of broadcast optimize.