I am interested in methods for solving the optimization problem
$$ \begin{array}{rl} \arg\min_x & x^T A x \\ \mathrm{s.t.} & x^T x = 1 \\ & Bx = 0 \end{array} $$
where $A$ is symmetric and full rank with well-separated eigenvalues, and $B$ has a nontrivial null space. In other words, I want to restrict $A$ to the null space of $B$ and find the eigenvector corresponding to the smallest eigenvalue. In the absence of the linear constraint, this problem is a standard eigenvalue problem and can be solved using power iterations. Ideally I would like to find a similar (iterative) procedure, since in my case I can gain a lot of performance by first computing a sparse factorization of $A$ (and potentially $B$ as well).
I am not interested in methods for dense problems, nor answers that simply amount to "just use software package X"; I am interested in implementing the method myself. For this reason, simple methods are preferred, even over methods that are perhaps slightly better/faster/more robust.
I am aware of the paper "Some Modified Matrix Eigenvalue Problems" by Gene Golub, but do not see a way to efficiently incorporate the generalized inverse in the sparse case. I am also aware of this question, but do not want to rely on a sophisticated solver for generalized eigenvalue problems; I'm really looking for something "not so different" from the power method.
Thanks!