2 # ifndef CPPAD_CORE_BASE_COND_EXP_HPP
3 # define CPPAD_CORE_BASE_COND_EXP_HPP
170 # define CPPAD_COND_EXP_BASE_REL(Type, Rel, Op) \
171 inline Type CondExp##Rel( \
173 const Type& right , \
174 const Type& exp_if_true , \
175 const Type& exp_if_false ) \
176 { return CondExpOp(Op, left, right, exp_if_true, exp_if_false); \
191 # define CPPAD_COND_EXP_REL(Type) \
192 CPPAD_COND_EXP_BASE_REL(Type, Lt, CompareLt) \
193 CPPAD_COND_EXP_BASE_REL(Type, Le, CompareLe) \
194 CPPAD_COND_EXP_BASE_REL(Type, Eq, CompareEq) \
195 CPPAD_COND_EXP_BASE_REL(Type, Ge, CompareGe) \
196 CPPAD_COND_EXP_BASE_REL(Type, Gt, CompareGt)
233 template <
class CompareType,
class ResultType>
236 const CompareType& left ,
237 const CompareType& right ,
238 const ResultType& exp_if_true ,
239 const ResultType& exp_if_false )
240 { ResultType returnValue;
245 returnValue = exp_if_true;
246 else returnValue = exp_if_false;
251 returnValue = exp_if_true;
252 else returnValue = exp_if_false;
257 returnValue = exp_if_true;
258 else returnValue = exp_if_false;
263 returnValue = exp_if_true;
264 else returnValue = exp_if_false;
269 returnValue = exp_if_true;
270 else returnValue = exp_if_false;
275 returnValue = exp_if_true;
ResultType CondExpTemplate(enum CompareOp cop, const CompareType &left, const CompareType &right, const ResultType &exp_if_true, const ResultType &exp_if_false)
Template function to implement Conditional Expressions for simple types that have comparision operato...
#define CPPAD_ASSERT_UNKNOWN(exp)
Check that exp is true, if not terminate execution.