source: trunk/Clp/src/ClpLinearObjective.hpp @ 2030

Last change on this file since 2030 was 1665, checked in by lou, 9 years ago

Add EPL license notice in src.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.2 KB
RevLine 
[1370]1/* $Id: ClpLinearObjective.hpp 1665 2011-01-04 17:55:54Z forrest $ */
[124]2// Copyright (C) 2003, International Business Machines
3// Corporation and others.  All Rights Reserved.
[1665]4// This code is licensed under the terms of the Eclipse Public License (EPL).
5
[124]6#ifndef ClpLinearObjective_H
7#define ClpLinearObjective_H
8
9#include "ClpObjective.hpp"
10
11//#############################################################################
12
13/** Linear Objective Class
14
15*/
16
17class ClpLinearObjective : public ClpObjective {
[1502]18
[124]19public:
[393]20
[1525]21     ///@name Stuff
22     //@{
[124]23
[1602]24     /** Returns objective coefficients.
25       
26       Offset is always set to 0.0. All other parameters unused.
[1525]27     */
28     virtual double * gradient(const ClpSimplex * model,
29                               const double * solution, double & offset, bool refresh,
30                               int includeLinear = 2);
31     /** Returns reduced gradient.Returns an offset (to be added to current one).
32     */
33     virtual double reducedGradient(ClpSimplex * model, double * region,
34                                    bool useFeasibleCosts);
35     /** Returns step length which gives minimum of objective for
36         solution + theta * change vector up to maximum theta.
[124]37
[1525]38         arrays are numberColumns+numberRows
39         Also sets current objective, predicted and at maximumTheta
40     */
41     virtual double stepLength(ClpSimplex * model,
42                               const double * solution,
43                               const double * change,
44                               double maximumTheta,
45                               double & currentObj,
46                               double & predictedObj,
47                               double & thetaObj);
48     /// Return objective value (without any ClpModel offset) (model may be NULL)
49     virtual double objectiveValue(const ClpSimplex * model, const double * solution) const ;
50     /// Resize objective
51     virtual void resize(int newNumberColumns) ;
52     /// Delete columns in  objective
53     virtual void deleteSome(int numberToDelete, const int * which) ;
54     /// Scale objective
55     virtual void reallyScale(const double * columnScale) ;
[1502]56
[1525]57     //@}
[1502]58
59
[1525]60     ///@name Constructors and destructors
61     //@{
62     /// Default Constructor
63     ClpLinearObjective();
[1502]64
[1525]65     /// Constructor from objective
66     ClpLinearObjective(const double * objective, int numberColumns);
[1502]67
[1525]68     /// Copy constructor
69     ClpLinearObjective(const ClpLinearObjective &);
70     /** Subset constructor.  Duplicates are allowed
71         and order is as given.
72     */
73     ClpLinearObjective (const ClpLinearObjective &rhs, int numberColumns,
74                         const int * whichColumns) ;
[1502]75
[1525]76     /// Assignment operator
77     ClpLinearObjective & operator=(const ClpLinearObjective& rhs);
[1502]78
[1525]79     /// Destructor
80     virtual ~ClpLinearObjective ();
[1502]81
[1525]82     /// Clone
83     virtual ClpObjective * clone() const;
84     /** Subset clone.  Duplicates are allowed
85         and order is as given.
86     */
87     virtual ClpObjective * subsetClone (int numberColumns,
88                                         const int * whichColumns) const;
[1502]89
[1525]90     //@}
[1502]91
[1525]92     //---------------------------------------------------------------------------
[1502]93
[124]94private:
[1525]95     ///@name Private member data
96     /// Objective
97     double * objective_;
98     /// number of columns
99     int numberColumns_;
100     //@}
[124]101};
102
103#endif
Note: See TracBrowser for help on using the repository browser.