techniques that generalize numerical analysis, mathematical programming, and