1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 /* */ 3 /* This file is part of the program and library */ 4 /* SCIP --- Solving Constraint Integer Programs */ 5 /* */ 6 /* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum */ 7 /* fuer Informationstechnik Berlin */ 8 /* */ 9 /* SCIP is distributed under the terms of the ZIB Academic License. */ 10 /* */ 11 /* You should have received a copy of the ZIB Academic License */ 12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */ 13 /* */ 14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 15 16 /**@file type_exprinterpret.h 17 * @brief type definitions for expression interpreter 18 * @author Stefan Vigerske 19 * @author Thorsten Gellermann 20 */ 21 22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 23 24 #ifndef __SCIP_TYPE_EXPRINTERPRET_H__ 25 #define __SCIP_TYPE_EXPRINTERPRET_H__ 26 27 #ifdef __cplusplus 28 extern "C" { 29 #endif 30 31 typedef struct SCIP_ExprInt SCIP_EXPRINT; /**< an expression interpreter */ 32 typedef struct SCIP_ExprIntData SCIP_EXPRINTDATA; /**< data of an expression interpreter */ 33 typedef unsigned int SCIP_EXPRINTCAPABILITY; /**< type of expression interpreter capability */ 34 35 #define SCIP_EXPRINTCAPABILITY_NONE 0x00000000 /**< the expression interpreter is capable of nothing */ 36 #define SCIP_EXPRINTCAPABILITY_FUNCVALUE 0x00000001 /**< the expression interpreter is able to compute a function value in a point */ 37 #define SCIP_EXPRINTCAPABILITY_INTFUNCVALUE 0x00000002 /**< the expression interpreter is able to compute an interval function value */ 38 #define SCIP_EXPRINTCAPABILITY_GRADIENT 0x00000010 /**< the expression interpreter is able to compute a gradient in a point */ 39 #define SCIP_EXPRINTCAPABILITY_INTGRADIENT 0x00000020 /**< the expression interpreter is able to compute an interval gradient */ 40 #define SCIP_EXPRINTCAPABILITY_HESSIAN 0x00000100 /**< the expression interpreter is able to compute a full hessian in a point */ 41 #define SCIP_EXPRINTCAPABILITY_INTHESSIAN 0x00000200 /**< the expression interpreter is able to compute an interval hessian */ 42 #define SCIP_EXPRINTCAPABILITY_ALL (SCIP_EXPRINTCAPABILITY_FUNCVALUE | SCIP_EXPRINTCAPABILITY_INTFUNCVALUE | SCIP_EXPRINTCAPABILITY_GRADIENT | SCIP_EXPRINTCAPABILITY_INTGRADIENT | SCIP_EXPRINTCAPABILITY_HESSIAN | SCIP_EXPRINTCAPABILITY_INTHESSIAN) 43 44 #ifdef __cplusplus 45 } 46 #endif 47 48 #endif /* __SCIP_TYPE_EXPRINTERPRET_H__ */ 49