docs: public static Info solve( final Variable A , final Variable B , ManagerTempVariables manager) {
          Info ret = new Info();
          final VariableMatrix output = manager.createMatrix();
          ret.output = output;
  
          if( A instanceof VariableMatrix && B instanceof VariableMatrix ) {
              ret.op = new Operation("solve-mm") {
                  LinearSolverDense<DMatrixRMaj> solver;
                  @Override
                  public void process() {
  
                      DMatrixRMaj a = ((VariableMatrix)A).matrix;
                      DMatrixRMaj b = ((VariableMatrix)B).matrix;
  
                      if( solver == null ) {
                          solver = LinearSolverFactory_DDRM.leastSquares(a.numRows,a.numCols);
                      }
  
                      if( !solver.setA(a))
                          throw new RuntimeException("Solver failed!");
  
                      output.matrix.reshape(a.numCols,b.numCols);
                      solver.solve(b, output.matrix);
                  }
              };
          } else {
              throw new RuntimeException("Expected two matrices got "+A+" "+B);
          }
  
          return ret;
      }