What is the most effective way to solve generalized eigenvalues problem?

We looking for v, D for symmetric matrix A, and non-symmetric matrix B, such that

A * v = B * v * D

Our current approach is:

C = B.Inverse() * A;

E = C.Evd();

Is there a way to compute it faster? All matrices are of type Matrix, i.e. dense matrices.

Thanks

Pavel