Update hooks.py: override USE_CYTHON default with the environment variable SETUPHOOKS_USE_CYTHON. Run cythonize only in build_ext. Automatic detection of Fortran sources.
Return algorithm instance in pcg.
Fix a validation case. Don't make reshapein/out and validatein/out the same if the operator shape is explicit even if the operator is square.
Allow implicit shape SparseBase subclasses.
Never make the flags 'hermitian', 'orthogonal', 'symmetric' and 'unitary' also set the 'square' flag. An example of non-(always) square orthogonal operator is Rotation3dOperator.
Make Operator's copy update __self__ in methods.
Python 3 compatibility.