Added __eq__ and __hash__ to Op Class and deleted them in function with props attribute.
Fixed hash and eq method for Op function.
Added other argument to eq.
Fixed __eq__ method for Op class.
Added str method to Op class.
Fixed str method in Op class.
Auto generate Op.{hash,eq,str}.
Minified linalg ops to fit this PR and changed str to print all the properties.
Added a check that doesn't add the '{}' part when __props__ is an empty tuple in __str__.
Fixed small mistakes in code.
Fix errors in SparseBlockOuterSS c_code.
Merge pull request #2051 from abergeron/fix_blocksparse

Fix errors in SparseBlockOuterSS c_code.
Fixed the compilation errors in mod.cu

The generated mod.cu contains a number of std::min and std::max. Including <algorithm> will remove the not-found errors from these two functions.
make doc more clear
small code clean up (and remove potential bug that currently don't happen)
Moved #include <algorithm> outside

Moved `#include <algorithm>` outside the `#if PY_MAJOR_VERSION >= 3` block.
Update the OpenMPOp to add the omp.h header.
Merge pull request #2054 from nouiz/mixed

[ENH] OpenMPOp, doc and cleanup
Merge pull request #2053 from ziyuang/master

Fixed the compilation errors in mod.cu
Merge pull request #2018 from Tanjay94/Op

Auto generate Op.{hash,eq,str}