source: stable/2.9/Cbc/src/CbcStatistics.hpp @ 2143

Last change on this file since 2143 was 1573, checked in by lou, 8 years ago

Change to EPL license notice.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.5 KB
Line 
1/* $Id: CbcStatistics.hpp 1573 2011-01-05 01:12:36Z forrest $ */
2// Copyright (C) 2005, International Business Machines
3// Corporation and others.  All Rights Reserved.
4// This code is licensed under the terms of the Eclipse Public License (EPL).
5
6#ifndef CbcStatistics_H
7#define CbcStatistics_H
8
9#include "CbcModel.hpp"
10
11/** For gathering statistics */
12
13class CbcStatistics {
14public:
15    // Default Constructor
16    CbcStatistics ();
17    // Branch
18    CbcStatistics(CbcNode * node, CbcModel * model);
19
20    ~CbcStatistics();
21    // Copy
22    CbcStatistics(const CbcStatistics & rhs);
23    // Assignment
24    CbcStatistics& operator=(const CbcStatistics & rhs);
25    // Update at end of branch
26    void endOfBranch(int numberIterations, double objectiveValue);
27    // Update number of infeasibilities
28    void updateInfeasibility(int numberInfeasibilities);
29    // Branch found to be infeasible by chooseBranch
30    void sayInfeasible();
31    // Just prints
32    void print(const int * sequenceLookup = NULL) const;
33    // Node number
34    inline int node() const {
35        return id_;
36    }
37    // Parent node number
38    inline int parentNode() const {
39        return parentId_;
40    }
41    // depth
42    inline int depth() const {
43        return depth_;
44    }
45    // way
46    inline int way() const {
47        return way_;
48    }
49    // value
50    inline double value() const {
51        return value_;
52    }
53    // starting objective
54    inline double startingObjective() const {
55        return startingObjective_;
56    }
57    // Unsatisfied at beginning
58    inline int startingInfeasibility() const {
59        return startingInfeasibility_;
60    }
61    // starting objective
62    inline double endingObjective() const {
63        return endingObjective_;
64    }
65    // Unsatisfied at end
66    inline int endingInfeasibility() const {
67        return endingInfeasibility_;
68    }
69    // Number iterations
70    inline int numberIterations() const {
71        return numberIterations_;
72    }
73
74protected:
75    // Data
76    /// Value
77    double value_;
78    /// Starting objective
79    double startingObjective_;
80    /// Ending objective
81    double endingObjective_;
82    /// id
83    int id_;
84    /// parent id
85    int parentId_;
86    /// way -1 or +1 is first branch -10 or +10 is second branch
87    int way_;
88    /// sequence number branched on
89    int sequence_;
90    /// depth
91    int depth_;
92    /// starting number of integer infeasibilities
93    int startingInfeasibility_;
94    /// ending number of integer infeasibilities
95    int endingInfeasibility_;
96    /// number of iterations
97    int numberIterations_;
98};
99
100#endif
101
Note: See TracBrowser for help on using the repository browser.