discrete variable method