Changeset 1093
- Timestamp:
- 07/04/08 05:34:14 (2 months ago)
- Files:
-
- trunk/openopt/scikits/openopt/Kernel/BaseAlg.py (modified) (1 diff)
- trunk/openopt/scikits/openopt/Kernel/LLSP.py (modified) (3 diffs)
- trunk/openopt/scikits/openopt/Kernel/ooCheck.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/openopt/scikits/openopt/Kernel/BaseAlg.py
r1091 r1093 13 13 14 14 # TODO: remove it 15 __constraintsThatCannotBeHandled__ = []15 #__constraintsThatCannotBeHandled__ = [] 16 16 17 17 __optionalDataThatCanBeHandled__ = [] trunk/openopt/scikits/openopt/Kernel/LLSP.py
r1091 r1093 1 1 from ooMisc import assignScript 2 2 from BaseProblem import MatrixProblem 3 from numpy import asfarray, ones, inf, dot, nan, zeros 3 from numpy import asfarray, ones, inf, dot, nan, zeros, any 4 4 from numpy.linalg import norm 5 5 import NLP … … 26 26 p.args.f = self # DO NOT USE p.args = self IN PROB ASSIGNMENT! 27 27 self.inspire(p) 28 p.checkdf() 28 29 r = p.solve(solver, **kwargs) 29 30 return r … … 54 55 # return dot(r, r) 55 56 ff = lambda x, LLSPprob: LLSPprob.objFunc(x) 56 dff = lambda x, LLSPprob: 2 * (dot(LLSPprob.C.T, dot(LLSPprob.C,x) - LLSPprob.d)) 57 def dff(x, LLSPprob): 58 r = dot(LLSPprob.C.T, dot(LLSPprob.C,x)) - dot(LLSPprob.C.T, LLSPprob.d) 59 if LLSPprob.damp != 0: r += LLSPprob.damp*(x - LLSPprob.xd) 60 r += LLSPprob.f 61 return r 57 62 63 trunk/openopt/scikits/openopt/Kernel/ooCheck.py
r1091 r1093 15 15 # p.err('the solver ' + p.solverName + ' cannot handle ' + "'" + fn + "' data") 16 16 17 if p.solver.__constraintsThatCannotBeHandled__ != []:18 for fn in p.solver.__constraintsThatCannotBeHandled__:17 for fn in p.__optionalData__: 18 if hasattr(p, fn): 19 19 attr = getattr(p, fn) 20 if (callable(attr) and getattr(p.userProvided, fn)) or (not callable(attr) and attr not in ([], (), None) and asarray(attr).size>0): 21 if fn not in ['lb', 'ub'] or any(isfinite(attr)): 22 p.err('the solver ' + p.solverName + ' cannot handle ' + "'" + fn + "' constraints") 20 if not attr in p.solver.__optionalDataThatCanBeHandled__ and (callable(attr) and getattr(p.userProvided, fn)) or (not callable(attr) and attr not in ([], (), None) and asarray(attr).size>0 and any(isfinite(attr))): 21 p.err('the solver ' + p.solver.__name__ + ' cannot handle ' + "'" + fn + "' data") 23 22 24 23
