plus & mul opt, global identity and zero for symbolic matrix. C++ syntax is anti-human
more func