@poulson: looking over it, i'm not sure why I needed the multMeta thing, you and I must have wanted to do something with DistGraph/DistSparseMatrix that I didn't complete yet.

Here is my proposed draft rewrite of Matrix.hpp: http://termbin.com/8sac

@poulson reading about the operator= for the various dist matrices

so, I propose that we begin to modernize the library for C++17. I believe it should be possible to signficantly reduce the complexity of the DistMatrix implementations.

I'm not so sure that I like the idea of forward slash being the linear solve operator

for one thing, it's backwards from MATLAB/Octave

and there is no way for us to introduce a backslash

it might be easier to do a continuous deformation of the

`Matrix`

class through PR's
that way we can flesh out all of the consequences of each change

Yeah forward slash can go, backslash and ' not being usable as operators really blows.

AFAIK, all major compilers that support C++11 support C++14

[ 82%] Building CXX object CMakeFiles/tests-blas_like-Multiply.dir/tests/blas_like/Multiply.cpp.o

/Users/rhl/code/Elemental/tests/blas_like/Multiply.cpp:30:38: error: cannot throw object of incomplete type 'void'

if( nrm > limits::Epsilon<T>()){ throw RuntimeError("Sparse(I)*x != Graph(I)*x"); }

/Users/rhl/code/Elemental/tests/blas_like/Multiply.cpp:30:38: error: cannot throw object of incomplete type 'void'

if( nrm > limits::Epsilon<T>()){ throw RuntimeError("Sparse(I)

`RuntimeError`

is a routine that throws an exception
I see

I'm committing a secular equation solver for the symmetric eigenvalue problem diag(d) + rho z z^T, where || z ||_2 = 1 in a few seconds

sequential and distributed D&C symmetric tridiagonal EVPs are imminent

I believe I have reverted my changes

the only odd things was that GetLocal was implemented, no signature, and Get was declared, no definition

so I just assume somehow I got out of sync with master