ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/SimpleBoundCons.cpp
Revision: 1011
Committed: Tue Feb 3 20:47:10 2004 UTC (20 years, 5 months ago) by tim
File size: 1405 byte(s)
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 tim 1011 #include "SimpleBoundCons.hpp"
2    
3     SimpleBoundCons::SimpleBoundCons(int index, double b, bool flag)
4     : ConstraintBase(){
5    
6     bound = b;
7    
8     consType = simpleBound;
9    
10     if (flag){
11     boundType = btUpper;
12     }
13     else{
14     boundType = btLower;
15     }
16     }
17    
18     SimpleBoundCons::SimpleBoundCons(int ndim, int index, double b, bool flag)
19     : ConstraintBase(ndim){
20    
21     bound = b;
22    
23     consType = simpleBound;
24    
25     if (flag){
26     boundType = btUpper;
27     }
28     else{
29     boundType = btLower;
30     }
31     }
32     double SimpleBoundCons::calcResidual(vector<double>& x){
33     double residual;
34    
35     residual = x[index] - bound;
36    
37     if(boundType == btLower)
38     return -residual;
39     else if (boundType == btUpper)
40     return residual;
41     else{
42     cout << "SimpleBoundCons Error: BoundType of SimpleBoundCons can not be btEqu" << endl;
43     exit(ERROR_CONSTRAINT);
44     }
45     }
46    
47     vector<double> SimpleBoundCons::calcConsGrad(vector<double>& x){
48     vector<double> result(ndim, 0);
49    
50     if(boundType == btLower)
51     result[index] = -1.0;
52     else if (boundType == btUpper)
53     result[index] = 1.0;
54     else{
55     cout << "SimpleBoundCons Error: BoundType of SimpleBoundCons can not be btEqu" << endl;
56     exit(ERROR_CONSTRAINT);
57     }
58    
59     return result;
60     }
61     SymMatrix SimpleBoundCons::calcConsHessian(vector<double>& x){
62     SymMatrix H(ndim);
63     H = 0;
64     return H;
65     }

Properties

Name Value
svn:executable *