// A*X = B
Eigen::SparseMatrix<double> A(n,n);
Eigen::MatrixXd B(n,3);
// Non-zero elements of A as triplets: (row, column, value)
std::vector<Eigen::Triplet<double> > triplets;
triplets.emplace_back(i,j,value);
// Buld sparse matrix from triplets
A.setFromTriplets(triplets.begin(), triplets.end());
// Solve A*X = B
Eigen::SimplicialLDLT<Eige::SparseMatrix<double> > solver(A);
Eigen::MatrixXd X = solver.solve(B);