namespace CppAD {
// alphabetical order (ignoring the Op at the end)
enum OpCode {
AbsOp, // abs(variable)
AcosOp, // asin(variable)
AddpvOp, // parameter + variable
AddvpOp, // variable + parameter
AddvvOp, // variable + variable
AsinOp, // asin(variable)
AtanOp, // atan(variable)
CExpOp, // CondExp(cop, left, right, trueCase, falseCase)
ComOp, // Compare(cop, result, left, right)
CosOp, // cos(variable)
CoshOp, // cosh(variable)
DisOp, // dis(variable, index)
DivpvOp, // parameter / variable
DivvpOp, // variable / parameter
DivvvOp, // variable / variable
ExpOp, // exp(variable)
LdpOp, // z[parameter]
LdvOp, // z[variable]
InvOp, // independent variable
LogOp, // log(variable)
MulpvOp, // parameter * variable
MulvpOp, // variable * parameter
MulvvOp, // variable * variable
NonOp, // space holder
ParOp, // parameter
PowvpOp, // pow(variable, parameter)
PowpvOp, // pow(parameter, variable)
PowvvOp, // pow(variable, variable)
PripOp, // text parameter
PrivOp, // text parameter
SinOp, // sin(variable)
SinhOp, // sinh(variable)
SqrtOp, // sqrt(variable)
StppOp, // z[parameter] = parameter
StvpOp, // z[variable] = parameter
StpvOp, // z[parameter] = variable
StvvOp, // z[variable] = variable
SubpvOp, // parameter - variable
SubvpOp, // variable - parameter
SubvvOp // variable - variable
};
}