/[ascend]/trunk/pygtk/solver.i
ViewVC logotype

Diff of /trunk/pygtk/solver.i

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 942 by johnpye, Sat Nov 25 05:26:47 2006 UTC revision 943 by johnpye, Sat Nov 25 06:32:51 2006 UTC
# Line 7  Line 7 
7  #include "integratorreporter.h"  #include "integratorreporter.h"
8  %}  %}
9    
10    %pythoncode{
11        import types
12    }
13    
14  %template(VariableVector) std::vector<Variable>;  %template(VariableVector) std::vector<Variable>;
15  %template(RelationVector) std::vector<Relation>;  %template(RelationVector) std::vector<Relation>;
16  %template(SolverVector) std::vector<Solver>;  %template(SolverVector) std::vector<Solver>;
# Line 28  Line 32 
32              return self              return self
33    
34          def next(self):          def next(self):
35              self.index = self.index + 1              if self.index >= len(self.params):
             if self.index >= self.params.getLength():  
36                  raise StopIteration                  raise StopIteration
37              print "INDEX = %d" % self.index              p = self.params.getParameter(self.index)
38              return self.params.getParameter(self.index)              self.index = self.index +1
39                return p
40  }  }
41    
42  class SolverParameters{  class SolverParameters{
# Line 47  public: Line 51  public:
51      %pythoncode{      %pythoncode{
52          def __iter__(self):          def __iter__(self):
53              return SolverParameterIter(self)              return SolverParameterIter(self)
54            def __getattr(self,index):
55                for p in self:
56                    if p.getName()==index:
57                        return p
58                raise KeyError
59          def __getitem__(self,index):          def __getitem__(self,index):
60                if type(index) != types.IntType:
61                    raise TypeError
62              return self.getParameter(index)              return self.getParameter(index)
63          def __len__(self):          def __len__(self):
64              return self.getLength()              return self.getLength()
65            def getValue(self,codename):
66                for p in self:
67                    if p.getName()==codename:
68                        return p.getValue()
69                raise KeyError
70            def set(self,codename,value):
71                for p in self:
72                    if p.getName()==codename:
73                        p.setValue(value)
74                        return
75                raise KeyError                      
76      }      }
77  }  }
78    
# Line 100  public: Line 122  public:
122              if self.isBool(): return "%s = %s" %(self.getName(),self.getBoolValue())              if self.isBool(): return "%s = %s" %(self.getName(),self.getBoolValue())
123              if self.isStr(): return "%s = %s" %(self.getName(),self.getStrValue())              if self.isStr(): return "%s = %s" %(self.getName(),self.getStrValue())
124              if self.isReal(): return "%s = %f" %(self.getName(),self.getRealValue())              if self.isReal(): return "%s = %f" %(self.getName(),self.getRealValue())
125                raise TypeError
126            def getValue(self):
127                if self.isBool():return self.getBoolValue()
128                if self.isReal():return self.getRealValue()
129                if self.isInt(): return self.getIntValue()
130                if self.isStr(): return self.getStrValue()
131                raise TypeError
132            def setValue(self,value):
133                if self.isBool():
134                    self.setBoolValue(value)
135                    return
136                if self.isReal():
137                    self.setRealValue(value)
138                    return
139                if self.isInt():
140                    self.setIntValue(value)
141                    return
142                if self.isStr():
143                    self.setStrValue(value)
144                    return
145                raise TypeError
146      }      }
147  }  }
148    
# Line 220  public: Line 263  public:
263    
264  %include "integrator.h"  %include "integrator.h"
265    
266    %extend Integrator{
267        %pythoncode{
268            def setParameter(self,name,value):
269                """ set the value of a parameter for this integrator """
270                P = self.getParameters()
271                P.set(name,value)
272                self.setParameters(P)
273            def getParameterValue(self,name):
274                """ retrieve the *value* of the specified parameter """
275                P = self.getParameters()
276                for p in P:
277                    if p.getName()==name:
278                        return p.getValue()
279                raise KeyError
280        }
281    }
282            
283  %feature("director") IntegratorReporterCxx;  %feature("director") IntegratorReporterCxx;
284    
285  %ignore ascxx_integratorreporter_init;  %ignore ascxx_integratorreporter_init;

Legend:
Removed from v.942  
changed lines
  Added in v.943

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22