source: trunk/Alps/src/Alps.h @ 277

Last change on this file since 277 was 277, checked in by andreasw, 13 years ago

first working version with autotools

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.2 KB
Line 
1/*===========================================================================*
2 * This file is part of the Abstract Library for Parallel Search (ALPS).     *
3 *                                                                           *
4 * ALPS is distributed under the Common Public License as part of the        *
5 * COIN-OR repository (http://www.coin-or.org).                              *
6 *                                                                           *
7 * Authors: Yan Xu, SAS Institute Inc.                                       *
8 *          Ted Ralphs, Lehigh University                                    *
9 *          Laszlo Ladanyi, IBM T.J. Watson Research Center                  *
10 *          Matthew Saltzman, Clemson University                             *
11 *                                                                           *
12 *                                                                           *
13 * Copyright (C) 2001-2004, International Business Machines                  *
14 * Corporation, Lehigh University, Yan Xu, Ted Ralphs, Matthew Salzman and   *
15 * others. All Rights Reserved.                                              *
16 *===========================================================================*/
17
18#ifndef Alps_h_
19#define Alps_h_
20
21#include <cfloat>
22#include <cstdio>
23
24//#############################################################################
25/** The possible stati for the search nodes. */
26//#############################################################################
27
28enum AlpsNodeStatus {
29    AlpsNodeStatusCandidate,
30    AlpsNodeStatusEvaluated,
31    AlpsNodeStatusPregnant,
32    AlpsNodeStatusBranched,
33    AlpsNodeStatusFathomed
34};
35
36//#############################################################################
37/** Type of knowledge like solution, node, cut...*/
38//#############################################################################
39
40enum AlpsKnowledgeType { 
41  ALPS_MODEL, 
42  ALPS_NODE, 
43  ALPS_SOLUTION,
44  ALPS_SUBTREE
45};
46
47//#############################################################################
48// Search return status
49//#############################################################################
50
51enum AlpsSolStatus {
52    ALPS_OPTIMAL = 0,
53    ALPS_TIME_LIMIT, 
54    ALPS_NODE_LIMIT,
55    ALPS_FEASIBLE,
56    ALPS_INFEASIBLE,
57    ALPS_UNBOUNDED
58};
59
60//#############################################################################
61// Return code.
62//#############################################################################
63
64enum AlpsReturnCode {
65    ALPS_OK = 0,
66    ALPS_ERR_NO_INT,  /* No integer variable.*/
67    ALPS_ERR_NO_MEM
68};
69
70//#############################################################################
71// Seach phase
72//#############################################################################
73
74enum AlpsPhase {
75    ALPS_PHASE_RAMPUP = 0,
76    ALPS_PHASE_SEARCH,
77    ALPS_PHASE_RAMPDOWN
78};
79
80//#############################################################################
81// Big number
82//#############################################################################
83
84#define ALPS_DBL_MAX          DBL_MAX
85#define ALPS_INC_MAX          1.0e80
86#define ALPS_OBJ_MAX          1.0e75
87#define ALPS_BND_MAX          1.0e20
88#define ALPS_INFINITY         1.0e20
89
90#define ALPS_INT_MAX          INT_MAX
91
92//#############################################################################
93// Small number
94//#############################################################################
95
96#define ALPS_ZERO             1.0e-14
97#define ALPS_GEN_TOL          1.0e-6
98#define ALPS_QUALITY_TOL      1.0e-5
99
100//#############################################################################
101
102#define ALPS_PRINTF           printf
103
104#define ALPS_DMSG             printf
105
106
107//#############################################################################
108
109#define  ALPS_MAX( x, y )          ( ( (x) > (y) ) ? (x) : (y) )
110#define  ALPS_MIN( x, y )          ( ( (x) < (y) ) ? (x) : (y) )
111#define  ALPS_FABS(x)              ( (x < 0.0) ? -(x) : (x) )
112#define  ALPS_ABS(x)               ( (x < 0) ? -(x) : (x) )
113
114//#############################################################################
115
116//#############################################################################
117
118
119#endif
Note: See TracBrowser for help on using the repository browser.