Added matrix multiplication as a performance test
Style corrections
Renamed width to matrix_size
Style corrections
Added a rule to simplify that uses the bounds of min/max expression to attempt to reduce < comparisons to true or false constants in some cases. This is a very useful simplification for the work being done in specialize_branched_loops.
Added a linear solver, which can mutate equality or inequality expressions such that a chosen variable will appear alone on the left hand side. This is used extensively in the specialize_branched_loops optimization pass.
Add a .clang-format that approximates Halide style

Thanks to Daniel Heck for this.
Merge branch 'master' of github.com:halide/Halide
Merge branch 'matrix_mul' of https://github.com/white-pony/Halide into white-pony-matrix_mul
Schedule and formatting tweaks to matrix multiply
Merge branch 'white-pony-matrix_mul'
Lower correctness threshold for 32-bit builds

The scalar version of the code produces quite different results in
32-bit.
Update nacl to pepper_39

This allows for vectorization (as long as the bit-width stays at 128)

Also removed HelloNacl app, because it's a strict subset of nacl_demos,
and not meaningfully simpler.
Merge pull request #539 from halide/simplify_minmax_comparisons

Simplify inequality comparisons against ramps and min/max expressions.
Merge pull request #541 from halide/update_nacl

Update nacl to pepper_39
Changed linear solver to use expr_uses_vars function rather than a custom version of the same. Minor style tweaks as well.
Merged the logic for dealing with equality vs. inequality comparison nodes in the linear solver. Also, address some minor style issues raised in the pull request.
Fixed a couple bugs in specialize_branched_loops. First, added a bailout to normalize_selects when a select is encountered in the condition of another select. Alsom reverted how let nodes are visited to old method rather than relying totally on branch_children. This lets the value get branched first and then the appropriate modified value is used when branching the body, which turns out to be really important for some of the most interesting cases.
Changed expr_uses_vars back to using a custom visitor. This is because we need to dive into bound variables from the linear solvers scope, so the visitor in ExprUsesVars is not sufficient.
Fixed a bug in BranchCollector::construct_stmt, where the bounds exprs where not getting extracted into let stmts correctly.