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