Hybrid kernel polynomial method