> Discrete Optimization > Rates: Using Semi-Continuous Variables > What Is IloCplex? > IloCplex and Algorithms

An important observation to make here is that an instance of IloCplex is not really one algorithm, though it is referred to as an algorithm since IloCplex is a subclass of IloAlgorithm. In fact, an instance of IloCplex consists of a set of highly configurable algorithms (also known as optimizer options). They include primal and dual simplex algorithms, barrier algorithms, a network simplex solver and a branch & cut solver for MIPs. In most cases, you can use IloCplex like a "black box" without concern about the options, though you can also select the optimizer options individually yourself. The options provide a wealth of parameters that allow you to fine-tune the algorithm to your particular model. Other parts of the ILOG CPLEX User's Manual contain detailed instructions about exploiting these options.

In the case of MIPs, for example, you can use your own callback directly to control the branch & cut search carried out by IloCplex.

In pure LPs (that is, linear programs with no integer variables, no Boolean variables, no semi-continuous variables, no piecewise linear functions, no logical constraints, no special ordered sets (SOSs)), you can query IloCplex for additional information, such as dual information or basis information (with appropriate options). IloCplex also supports sensitivity analysis indicating how to modify your model while preserving the same solution. In cases where your "solution" is infeasible, the infeasibility finder enables you to analyze the source of infeasibility.