IMP logo
IMP Reference Guide  develop.158371bb53,2026/10/27
The Integrative Modeling Platform
__init__.py
1 # This file was automatically generated by SWIG (https://www.swig.org).
2 # Version 4.5.1
3 #
4 # Do not make changes to this file unless you know what you are doing - modify
5 # the SWIG interface file instead.
6 
7 
8 # This wrapper is part of IMP,
9 # Copyright 2007-2026 IMP Inventors. All rights reserved.
10 
11 
12 
13 
14 import typing
15 import _IMP_kernel
16 
17 import builtins as __builtin__
18 
19 def _swig_repr(self):
20  try:
21  strthis = "proxy of " + self.this.__repr__()
22  except __builtin__.Exception:
23  strthis = ""
24  return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
25 
26 
27 def _swig_setattr_nondynamic_instance_variable(set):
28  def set_instance_attr(self, name, value):
29  if name == "this":
30  set(self, name, value)
31  elif name == "thisown":
32  self.this.own(value)
33  elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
34  set(self, name, value)
35  else:
36  raise AttributeError("You cannot add instance attributes to %s" % self)
37  return set_instance_attr
38 
39 
40 def _swig_setattr_nondynamic_class_variable(set):
41  def set_class_attr(cls, name, value):
42  if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
43  set(cls, name, value)
44  else:
45  raise AttributeError("You cannot add class attributes to %s" % cls)
46  return set_class_attr
47 
48 
49 class _SwigNonDynamicMeta(type):
50  """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
51  __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)
52 
53 
54 import weakref
55 
56 class IMP_KERNEL_SwigPyIterator(object):
57  r"""Proxy of C++ swig::IMP_KERNEL_SwigPyIterator class."""
58 
59  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
60 
61  def __init__(self, *args, **kwargs):
62  raise AttributeError("No constructor defined - class is abstract")
63  __repr__ = _swig_repr
64  __swig_destroy__ = _IMP_kernel.delete_IMP_KERNEL_SwigPyIterator
65 
66  def value(self):
67  r"""value(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
68  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_value(self)
69 
70  def incr(self, n=1):
71  r"""incr(IMP_KERNEL_SwigPyIterator self, size_t n=1) -> IMP_KERNEL_SwigPyIterator"""
72  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_incr(self, n)
73 
74  def decr(self, n=1):
75  r"""decr(IMP_KERNEL_SwigPyIterator self, size_t n=1) -> IMP_KERNEL_SwigPyIterator"""
76  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_decr(self, n)
77 
78  def distance(self, x):
79  r"""distance(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> ptrdiff_t"""
80  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_distance(self, x)
81 
82  def equal(self, x):
83  r"""equal(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
84  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_equal(self, x)
85 
86  def copy(self):
87  r"""copy(IMP_KERNEL_SwigPyIterator self) -> IMP_KERNEL_SwigPyIterator"""
88  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_copy(self)
89 
90  def __next__(self):
91  r"""__next__(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
92  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___next__(self)
93 
94  def previous(self):
95  r"""previous(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
96  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_previous(self)
97 
98  def advance(self, n):
99  r"""advance(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
100  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_advance(self, n)
101 
102  def __eq__(self, x):
103  r"""__eq__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
104  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___eq__(self, x)
105 
106  def __ne__(self, x):
107  r"""__ne__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
108  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___ne__(self, x)
109 
110  def __iadd__(self, n):
111  r"""__iadd__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
112  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___iadd__(self, n)
113 
114  def __isub__(self, n):
115  r"""__isub__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
116  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___isub__(self, n)
117 
118  def __add__(self, n):
119  r"""__add__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
120  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___add__(self, n)
121 
122  def __sub__(self, *args):
123  r"""
124  __sub__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator
125  __sub__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> ptrdiff_t
126  """
127  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___sub__(self, *args)
128  def __iter__(self):
129  return self
130 
131 # Register IMP_KERNEL_SwigPyIterator in _IMP_kernel:
132 _IMP_kernel.IMP_KERNEL_SwigPyIterator_swigregister(IMP_KERNEL_SwigPyIterator)
133 
134 _value_types=[]
135 _object_types=[]
136 _raii_types=[]
137 _plural_types=[]
138 
139 IMP_DEBUG = _IMP_kernel.IMP_DEBUG
140 
141 IMP_RELEASE = _IMP_kernel.IMP_RELEASE
142 
143 IMP_SILENT = _IMP_kernel.IMP_SILENT
144 
145 IMP_PROGRESS = _IMP_kernel.IMP_PROGRESS
146 
147 IMP_TERSE = _IMP_kernel.IMP_TERSE
148 
149 IMP_VERBOSE = _IMP_kernel.IMP_VERBOSE
150 
151 IMP_MEMORY = _IMP_kernel.IMP_MEMORY
152 
153 IMP_NONE = _IMP_kernel.IMP_NONE
154 
155 IMP_USAGE = _IMP_kernel.IMP_USAGE
156 
157 IMP_INTERNAL = _IMP_kernel.IMP_INTERNAL
158 
159 IMP_KERNEL_HAS_LOG4CXX = _IMP_kernel.IMP_KERNEL_HAS_LOG4CXX
160 
161 IMP_COMPILER_HAS_CEREAL_RAW_POINTER = _IMP_kernel.IMP_COMPILER_HAS_CEREAL_RAW_POINTER
162 
163 IMP_COMPILER_HAS_DEBUG_VECTOR = _IMP_kernel.IMP_COMPILER_HAS_DEBUG_VECTOR
164 
165 IMP_COMPILER_HAS_RANDOM_SHUFFLE = _IMP_kernel.IMP_COMPILER_HAS_RANDOM_SHUFFLE
166 
167 IMP_COMPILER_HAS_THREE_WAY = _IMP_kernel.IMP_COMPILER_HAS_THREE_WAY
168 
169 IMP_KERNEL_HAS_BOOST_RANDOM = _IMP_kernel.IMP_KERNEL_HAS_BOOST_RANDOM
170 
171 IMP_KERNEL_HAS_NUMPY = _IMP_kernel.IMP_KERNEL_HAS_NUMPY
172 
173 IMP_KERNEL_HAS_BOOST_SYSTEM = _IMP_kernel.IMP_KERNEL_HAS_BOOST_SYSTEM
174 
175 IMP_KERNEL_HAS_GPERFTOOLS = _IMP_kernel.IMP_KERNEL_HAS_GPERFTOOLS
176 
177 IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER = _IMP_kernel.IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER
178 
179 IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER = _IMP_kernel.IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER
180 
181 IMPKERNEL_SHOW_WARNINGS = _IMP_kernel.IMPKERNEL_SHOW_WARNINGS
182 
183 
184 import sys
185 class _DirectorObjects:
186  """@internal Simple class to keep references to director objects
187  to prevent premature deletion."""
188  def __init__(self):
189  self._objects = []
190  def register(self, obj):
191  """Take a reference to a director object; will only work for
192  refcounted C++ classes"""
193  if hasattr(obj, 'get_ref_count'):
194  self._objects.append(obj)
195  def cleanup(self):
196  """Only drop our reference and allow cleanup by Python if no other
197  Python references exist (we hold 3 references: one in self._objects,
198  one in x, and one in the argument list for getrefcount) *and* no
199  other C++ references exist (the Python object always holds one)"""
200  objs = [x for x in self._objects if sys.getrefcount(x) > 3 \
201  or x.get_ref_count() > 1]
202 # Do in two steps so the references are kept until the end of the
203 # function (deleting references may trigger a fresh call to this method)
204  self._objects = objs
205  def get_object_count(self):
206  """Get number of director objects (useful for testing only)"""
207  return len(self._objects)
208 _director_objects = _DirectorObjects()
209 
210 DEFAULT_CHECK = _IMP_kernel.DEFAULT_CHECK
211 
212 NONE = _IMP_kernel.NONE
213 
214 USAGE = _IMP_kernel.USAGE
215 
216 USAGE_AND_INTERNAL = _IMP_kernel.USAGE_AND_INTERNAL
217 
218 
219 def set_check_level(tf):
220  r"""set_check_level(IMP::CheckLevel tf)"""
221  return _IMP_kernel.set_check_level(tf)
222 
223 def get_check_level():
224  r"""get_check_level() -> IMP::CheckLevel"""
225  return _IMP_kernel.get_check_level()
226 
227 from _IMP_kernel import Exception, InternalException, ModelException, EventException
228 from _IMP_kernel import UsageException, IndexException, IOException, ValueException
229 from _IMP_kernel import TypeException
230 
231 class _ostream(object):
232  r"""Proxy of C++ std::ostream class."""
233 
234  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
235 
236  def __init__(self, *args, **kwargs):
237  raise AttributeError("No constructor defined")
238  __repr__ = _swig_repr
239 
240  def write(self, osa_buf):
241  r"""write(_ostream self, char const * osa_buf)"""
242  return _IMP_kernel._ostream_write(self, osa_buf)
243 
244 # Register _ostream in _IMP_kernel:
245 _IMP_kernel._ostream_swigregister(_ostream)
246 IMP_C_OPEN_BINARY = _IMP_kernel.IMP_C_OPEN_BINARY
247 
248 
249 from . import _list_util
250 
251 
252 _models_set = weakref.WeakSet()
253 
254 def _models_set_get(m):
255  for x in _models_set:
256  if x == m:
257  return x
258 
259 
260 _raii_types.append("SetLogState")
261 
262 
263 _raii_types.append("SetNumberOfThreads")
264 
265 
266 _raii_types.append("SetCheckState")
267 
268 
269 _object_types.append("Object")
270 
271 
272 def _object_cast_to_Object(o):
273  r"""_object_cast_to_Object(Object * o) -> Object"""
274  return _IMP_kernel._object_cast_to_Object(o)
275 
276 _object_types.append("_TestObject")
277 
278 
279 def _object_cast_to__TestObject(o):
280  r"""_object_cast_to__TestObject(Object * o) -> _TestObject"""
281  return _IMP_kernel._object_cast_to__TestObject(o)
282 
283 VersionInfos=list
284 _plural_types.append("VersionInfos")
285 _value_types.append("VersionInfo")
286 
287 
288 _raii_types.append("CreateLogContext")
289 
290 
291 _raii_types.append("WarningContext")
292 
293 
294 _raii_types.append("SetLogTarget")
295 
296 
297 _TestValues=list
298 _plural_types.append("_TestValues")
299 _value_types.append("_TestValue")
300 
301 
302 Floats=list
303 _plural_types.append("Floats")
304 _value_types.append("Float")
305 
306 
307 Ints=list
308 _plural_types.append("Ints")
309 _value_types.append("Int")
310 
311 
312 Strings=list
313 _plural_types.append("Strings")
314 _value_types.append("String")
315 
316 
317 _Protections=list
318 _plural_types.append("_Protections")
319 _value_types.append("_Protection")
320 
321 class _GeometricPrimitive1D(object):
322  r"""Proxy of C++ IMP::GeometricPrimitiveD< 1 > class."""
323 
324  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
325 
326  def __init__(self, *args, **kwargs):
327  raise AttributeError("No constructor defined")
328  __repr__ = _swig_repr
329  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive1D
330 
331 # Register _GeometricPrimitive1D in _IMP_kernel:
332 _IMP_kernel._GeometricPrimitive1D_swigregister(_GeometricPrimitive1D)
333 class _GeometricPrimitive2D(object):
334  r"""Proxy of C++ IMP::GeometricPrimitiveD< 2 > class."""
335 
336  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
337 
338  def __init__(self, *args, **kwargs):
339  raise AttributeError("No constructor defined")
340  __repr__ = _swig_repr
341  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive2D
342 
343 # Register _GeometricPrimitive2D in _IMP_kernel:
344 _IMP_kernel._GeometricPrimitive2D_swigregister(_GeometricPrimitive2D)
345 class _GeometricPrimitive3D(object):
346  r"""Proxy of C++ IMP::GeometricPrimitiveD< 3 > class."""
347 
348  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
349 
350  def __init__(self, *args, **kwargs):
351  raise AttributeError("No constructor defined")
352  __repr__ = _swig_repr
353  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive3D
354 
355 # Register _GeometricPrimitive3D in _IMP_kernel:
356 _IMP_kernel._GeometricPrimitive3D_swigregister(_GeometricPrimitive3D)
357 class _GeometricPrimitive4D(object):
358  r"""Proxy of C++ IMP::GeometricPrimitiveD< 4 > class."""
359 
360  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
361 
362  def __init__(self, *args, **kwargs):
363  raise AttributeError("No constructor defined")
364  __repr__ = _swig_repr
365  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive4D
366 
367 # Register _GeometricPrimitive4D in _IMP_kernel:
368 _IMP_kernel._GeometricPrimitive4D_swigregister(_GeometricPrimitive4D)
369 class _GeometricPrimitive5D(object):
370  r"""Proxy of C++ IMP::GeometricPrimitiveD< 5 > class."""
371 
372  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
373 
374  def __init__(self, *args, **kwargs):
375  raise AttributeError("No constructor defined")
376  __repr__ = _swig_repr
377  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive5D
378 
379 # Register _GeometricPrimitive5D in _IMP_kernel:
380 _IMP_kernel._GeometricPrimitive5D_swigregister(_GeometricPrimitive5D)
381 class _GeometricPrimitive6D(object):
382  r"""Proxy of C++ IMP::GeometricPrimitiveD< 6 > class."""
383 
384  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
385 
386  def __init__(self, *args, **kwargs):
387  raise AttributeError("No constructor defined")
388  __repr__ = _swig_repr
389  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive6D
390 
391 # Register _GeometricPrimitive6D in _IMP_kernel:
392 _IMP_kernel._GeometricPrimitive6D_swigregister(_GeometricPrimitive6D)
393 class _GeometricPrimitiveKD(object):
394  r"""Proxy of C++ IMP::GeometricPrimitiveD< -1 > class."""
395 
396  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
397 
398  def __init__(self, *args, **kwargs):
399  raise AttributeError("No constructor defined")
400  __repr__ = _swig_repr
401  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitiveKD
402 
403 # Register _GeometricPrimitiveKD in _IMP_kernel:
404 _IMP_kernel._GeometricPrimitiveKD_swigregister(_GeometricPrimitiveKD)
405 class _VectorBaseKD(_GeometricPrimitiveKD):
406  r"""Proxy of C++ IMP::internal::VectorBaseD< -1 > class."""
407 
408  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
409  __repr__ = _swig_repr
410 
411  def __init__(self):
412  r"""__init__(_VectorBaseKD self) -> _VectorBaseKD"""
413  _IMP_kernel._VectorBaseKD_swiginit(self, _IMP_kernel.new__VectorBaseKD())
414 
415  def get_scalar_product(self, o):
416  r"""get_scalar_product(_VectorBaseKD self, _VectorBaseKD o) -> double"""
417  return _IMP_kernel._VectorBaseKD_get_scalar_product(self, o)
418 
419  def get_squared_magnitude(self):
420  r"""get_squared_magnitude(_VectorBaseKD self) -> double"""
421  return _IMP_kernel._VectorBaseKD_get_squared_magnitude(self)
422 
423  def get_magnitude(self):
424  r"""get_magnitude(_VectorBaseKD self) -> double"""
425  return _IMP_kernel._VectorBaseKD_get_magnitude(self)
426 
427  def get_distance(self, o):
428  r"""get_distance(_VectorBaseKD self, _VectorBaseKD o) -> double"""
429  return _IMP_kernel._VectorBaseKD_get_distance(self, o)
430 
431  def __mul__(self, o):
432  r"""__mul__(_VectorBaseKD self, _VectorBaseKD o) -> double"""
433  return _IMP_kernel._VectorBaseKD___mul__(self, o)
434 
435  def __iadd__(self, o):
436  r"""__iadd__(_VectorBaseKD self, _VectorBaseKD o) -> _VectorBaseKD"""
437  return _IMP_kernel._VectorBaseKD___iadd__(self, o)
438 
439  def __isub__(self, o):
440  r"""__isub__(_VectorBaseKD self, _VectorBaseKD o) -> _VectorBaseKD"""
441  return _IMP_kernel._VectorBaseKD___isub__(self, o)
442 
443  def __itruediv__(self, *args):
444  return _IMP_kernel._VectorBaseKD___itruediv__(self, *args)
445  __idiv__ = __itruediv__
446 
447 
448 
449  def __imul__(self, f):
450  r"""__imul__(_VectorBaseKD self, double f) -> _VectorBaseKD"""
451  return _IMP_kernel._VectorBaseKD___imul__(self, f)
452 
453  def show(self, *args):
454  r"""
455  show(_VectorBaseKD self, _ostream out, std::string delim, bool parens=True)
456  show(_VectorBaseKD self, _ostream out=std::cout)
457  """
458  return _IMP_kernel._VectorBaseKD_show(self, *args)
459 
460  def get_dimension(self):
461  r"""get_dimension(_VectorBaseKD self) -> unsigned int"""
462  return _IMP_kernel._VectorBaseKD_get_dimension(self)
463  __swig_destroy__ = _IMP_kernel.delete__VectorBaseKD
464 
465 # Register _VectorBaseKD in _IMP_kernel:
466 _IMP_kernel._VectorBaseKD_swigregister(_VectorBaseKD)
467 class _VectorBase1D(_GeometricPrimitive1D):
468  r"""Proxy of C++ IMP::internal::VectorBaseD< 1 > class."""
469 
470  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
471  __repr__ = _swig_repr
472 
473  def __init__(self):
474  r"""__init__(_VectorBase1D self) -> _VectorBase1D"""
475  _IMP_kernel._VectorBase1D_swiginit(self, _IMP_kernel.new__VectorBase1D())
476 
477  def get_scalar_product(self, o):
478  r"""get_scalar_product(_VectorBase1D self, _VectorBase1D o) -> double"""
479  return _IMP_kernel._VectorBase1D_get_scalar_product(self, o)
480 
481  def get_squared_magnitude(self):
482  r"""get_squared_magnitude(_VectorBase1D self) -> double"""
483  return _IMP_kernel._VectorBase1D_get_squared_magnitude(self)
484 
485  def get_magnitude(self):
486  r"""get_magnitude(_VectorBase1D self) -> double"""
487  return _IMP_kernel._VectorBase1D_get_magnitude(self)
488 
489  def get_distance(self, o):
490  r"""get_distance(_VectorBase1D self, _VectorBase1D o) -> double"""
491  return _IMP_kernel._VectorBase1D_get_distance(self, o)
492 
493  def __mul__(self, o):
494  r"""__mul__(_VectorBase1D self, _VectorBase1D o) -> double"""
495  return _IMP_kernel._VectorBase1D___mul__(self, o)
496 
497  def __iadd__(self, o):
498  r"""__iadd__(_VectorBase1D self, _VectorBase1D o) -> _VectorBase1D"""
499  return _IMP_kernel._VectorBase1D___iadd__(self, o)
500 
501  def __isub__(self, o):
502  r"""__isub__(_VectorBase1D self, _VectorBase1D o) -> _VectorBase1D"""
503  return _IMP_kernel._VectorBase1D___isub__(self, o)
504 
505  def __itruediv__(self, *args):
506  return _IMP_kernel._VectorBase1D___itruediv__(self, *args)
507  __idiv__ = __itruediv__
508 
509 
510 
511  def __imul__(self, f):
512  r"""__imul__(_VectorBase1D self, double f) -> _VectorBase1D"""
513  return _IMP_kernel._VectorBase1D___imul__(self, f)
514 
515  def show(self, *args):
516  r"""
517  show(_VectorBase1D self, _ostream out, std::string delim, bool parens=True)
518  show(_VectorBase1D self, _ostream out=std::cout)
519  """
520  return _IMP_kernel._VectorBase1D_show(self, *args)
521 
522  def get_dimension(self):
523  r"""get_dimension(_VectorBase1D self) -> unsigned int"""
524  return _IMP_kernel._VectorBase1D_get_dimension(self)
525  __swig_destroy__ = _IMP_kernel.delete__VectorBase1D
526 
527 # Register _VectorBase1D in _IMP_kernel:
528 _IMP_kernel._VectorBase1D_swigregister(_VectorBase1D)
529 class _VectorBase2D(_GeometricPrimitive2D):
530  r"""Proxy of C++ IMP::internal::VectorBaseD< 2 > class."""
531 
532  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
533  __repr__ = _swig_repr
534 
535  def __init__(self):
536  r"""__init__(_VectorBase2D self) -> _VectorBase2D"""
537  _IMP_kernel._VectorBase2D_swiginit(self, _IMP_kernel.new__VectorBase2D())
538 
539  def get_scalar_product(self, o):
540  r"""get_scalar_product(_VectorBase2D self, _VectorBase2D o) -> double"""
541  return _IMP_kernel._VectorBase2D_get_scalar_product(self, o)
542 
543  def get_squared_magnitude(self):
544  r"""get_squared_magnitude(_VectorBase2D self) -> double"""
545  return _IMP_kernel._VectorBase2D_get_squared_magnitude(self)
546 
547  def get_magnitude(self):
548  r"""get_magnitude(_VectorBase2D self) -> double"""
549  return _IMP_kernel._VectorBase2D_get_magnitude(self)
550 
551  def get_distance(self, o):
552  r"""get_distance(_VectorBase2D self, _VectorBase2D o) -> double"""
553  return _IMP_kernel._VectorBase2D_get_distance(self, o)
554 
555  def __mul__(self, o):
556  r"""__mul__(_VectorBase2D self, _VectorBase2D o) -> double"""
557  return _IMP_kernel._VectorBase2D___mul__(self, o)
558 
559  def __iadd__(self, o):
560  r"""__iadd__(_VectorBase2D self, _VectorBase2D o) -> _VectorBase2D"""
561  return _IMP_kernel._VectorBase2D___iadd__(self, o)
562 
563  def __isub__(self, o):
564  r"""__isub__(_VectorBase2D self, _VectorBase2D o) -> _VectorBase2D"""
565  return _IMP_kernel._VectorBase2D___isub__(self, o)
566 
567  def __itruediv__(self, *args):
568  return _IMP_kernel._VectorBase2D___itruediv__(self, *args)
569  __idiv__ = __itruediv__
570 
571 
572 
573  def __imul__(self, f):
574  r"""__imul__(_VectorBase2D self, double f) -> _VectorBase2D"""
575  return _IMP_kernel._VectorBase2D___imul__(self, f)
576 
577  def show(self, *args):
578  r"""
579  show(_VectorBase2D self, _ostream out, std::string delim, bool parens=True)
580  show(_VectorBase2D self, _ostream out=std::cout)
581  """
582  return _IMP_kernel._VectorBase2D_show(self, *args)
583 
584  def get_dimension(self):
585  r"""get_dimension(_VectorBase2D self) -> unsigned int"""
586  return _IMP_kernel._VectorBase2D_get_dimension(self)
587  __swig_destroy__ = _IMP_kernel.delete__VectorBase2D
588 
589 # Register _VectorBase2D in _IMP_kernel:
590 _IMP_kernel._VectorBase2D_swigregister(_VectorBase2D)
591 class _VectorBase3D(_GeometricPrimitive3D):
592  r"""Proxy of C++ IMP::internal::VectorBaseD< 3 > class."""
593 
594  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
595  __repr__ = _swig_repr
596 
597  def __init__(self):
598  r"""__init__(_VectorBase3D self) -> _VectorBase3D"""
599  _IMP_kernel._VectorBase3D_swiginit(self, _IMP_kernel.new__VectorBase3D())
600 
601  def get_scalar_product(self, o):
602  r"""get_scalar_product(_VectorBase3D self, _VectorBase3D o) -> double"""
603  return _IMP_kernel._VectorBase3D_get_scalar_product(self, o)
604 
605  def get_squared_magnitude(self):
606  r"""get_squared_magnitude(_VectorBase3D self) -> double"""
607  return _IMP_kernel._VectorBase3D_get_squared_magnitude(self)
608 
609  def get_magnitude(self):
610  r"""get_magnitude(_VectorBase3D self) -> double"""
611  return _IMP_kernel._VectorBase3D_get_magnitude(self)
612 
613  def get_distance(self, o):
614  r"""get_distance(_VectorBase3D self, _VectorBase3D o) -> double"""
615  return _IMP_kernel._VectorBase3D_get_distance(self, o)
616 
617  def __mul__(self, o):
618  r"""__mul__(_VectorBase3D self, _VectorBase3D o) -> double"""
619  return _IMP_kernel._VectorBase3D___mul__(self, o)
620 
621  def __iadd__(self, o):
622  r"""__iadd__(_VectorBase3D self, _VectorBase3D o) -> _VectorBase3D"""
623  return _IMP_kernel._VectorBase3D___iadd__(self, o)
624 
625  def __isub__(self, o):
626  r"""__isub__(_VectorBase3D self, _VectorBase3D o) -> _VectorBase3D"""
627  return _IMP_kernel._VectorBase3D___isub__(self, o)
628 
629  def __itruediv__(self, *args):
630  return _IMP_kernel._VectorBase3D___itruediv__(self, *args)
631  __idiv__ = __itruediv__
632 
633 
634 
635  def __imul__(self, f):
636  r"""__imul__(_VectorBase3D self, double f) -> _VectorBase3D"""
637  return _IMP_kernel._VectorBase3D___imul__(self, f)
638 
639  def show(self, *args):
640  r"""
641  show(_VectorBase3D self, _ostream out, std::string delim, bool parens=True)
642  show(_VectorBase3D self, _ostream out=std::cout)
643  """
644  return _IMP_kernel._VectorBase3D_show(self, *args)
645 
646  def get_dimension(self):
647  r"""get_dimension(_VectorBase3D self) -> unsigned int"""
648  return _IMP_kernel._VectorBase3D_get_dimension(self)
649  __swig_destroy__ = _IMP_kernel.delete__VectorBase3D
650 
651 # Register _VectorBase3D in _IMP_kernel:
652 _IMP_kernel._VectorBase3D_swigregister(_VectorBase3D)
653 class _VectorBase4D(_GeometricPrimitive4D):
654  r"""Proxy of C++ IMP::internal::VectorBaseD< 4 > class."""
655 
656  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
657  __repr__ = _swig_repr
658 
659  def __init__(self):
660  r"""__init__(_VectorBase4D self) -> _VectorBase4D"""
661  _IMP_kernel._VectorBase4D_swiginit(self, _IMP_kernel.new__VectorBase4D())
662 
663  def get_scalar_product(self, o):
664  r"""get_scalar_product(_VectorBase4D self, _VectorBase4D o) -> double"""
665  return _IMP_kernel._VectorBase4D_get_scalar_product(self, o)
666 
667  def get_squared_magnitude(self):
668  r"""get_squared_magnitude(_VectorBase4D self) -> double"""
669  return _IMP_kernel._VectorBase4D_get_squared_magnitude(self)
670 
671  def get_magnitude(self):
672  r"""get_magnitude(_VectorBase4D self) -> double"""
673  return _IMP_kernel._VectorBase4D_get_magnitude(self)
674 
675  def get_distance(self, o):
676  r"""get_distance(_VectorBase4D self, _VectorBase4D o) -> double"""
677  return _IMP_kernel._VectorBase4D_get_distance(self, o)
678 
679  def __mul__(self, o):
680  r"""__mul__(_VectorBase4D self, _VectorBase4D o) -> double"""
681  return _IMP_kernel._VectorBase4D___mul__(self, o)
682 
683  def __iadd__(self, o):
684  r"""__iadd__(_VectorBase4D self, _VectorBase4D o) -> _VectorBase4D"""
685  return _IMP_kernel._VectorBase4D___iadd__(self, o)
686 
687  def __isub__(self, o):
688  r"""__isub__(_VectorBase4D self, _VectorBase4D o) -> _VectorBase4D"""
689  return _IMP_kernel._VectorBase4D___isub__(self, o)
690 
691  def __itruediv__(self, *args):
692  return _IMP_kernel._VectorBase4D___itruediv__(self, *args)
693  __idiv__ = __itruediv__
694 
695 
696 
697  def __imul__(self, f):
698  r"""__imul__(_VectorBase4D self, double f) -> _VectorBase4D"""
699  return _IMP_kernel._VectorBase4D___imul__(self, f)
700 
701  def show(self, *args):
702  r"""
703  show(_VectorBase4D self, _ostream out, std::string delim, bool parens=True)
704  show(_VectorBase4D self, _ostream out=std::cout)
705  """
706  return _IMP_kernel._VectorBase4D_show(self, *args)
707 
708  def get_dimension(self):
709  r"""get_dimension(_VectorBase4D self) -> unsigned int"""
710  return _IMP_kernel._VectorBase4D_get_dimension(self)
711  __swig_destroy__ = _IMP_kernel.delete__VectorBase4D
712 
713 # Register _VectorBase4D in _IMP_kernel:
714 _IMP_kernel._VectorBase4D_swigregister(_VectorBase4D)
715 class _VectorBase5D(_GeometricPrimitive5D):
716  r"""Proxy of C++ IMP::internal::VectorBaseD< 5 > class."""
717 
718  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
719  __repr__ = _swig_repr
720 
721  def __init__(self):
722  r"""__init__(_VectorBase5D self) -> _VectorBase5D"""
723  _IMP_kernel._VectorBase5D_swiginit(self, _IMP_kernel.new__VectorBase5D())
724 
725  def get_scalar_product(self, o):
726  r"""get_scalar_product(_VectorBase5D self, _VectorBase5D o) -> double"""
727  return _IMP_kernel._VectorBase5D_get_scalar_product(self, o)
728 
729  def get_squared_magnitude(self):
730  r"""get_squared_magnitude(_VectorBase5D self) -> double"""
731  return _IMP_kernel._VectorBase5D_get_squared_magnitude(self)
732 
733  def get_magnitude(self):
734  r"""get_magnitude(_VectorBase5D self) -> double"""
735  return _IMP_kernel._VectorBase5D_get_magnitude(self)
736 
737  def get_distance(self, o):
738  r"""get_distance(_VectorBase5D self, _VectorBase5D o) -> double"""
739  return _IMP_kernel._VectorBase5D_get_distance(self, o)
740 
741  def __mul__(self, o):
742  r"""__mul__(_VectorBase5D self, _VectorBase5D o) -> double"""
743  return _IMP_kernel._VectorBase5D___mul__(self, o)
744 
745  def __iadd__(self, o):
746  r"""__iadd__(_VectorBase5D self, _VectorBase5D o) -> _VectorBase5D"""
747  return _IMP_kernel._VectorBase5D___iadd__(self, o)
748 
749  def __isub__(self, o):
750  r"""__isub__(_VectorBase5D self, _VectorBase5D o) -> _VectorBase5D"""
751  return _IMP_kernel._VectorBase5D___isub__(self, o)
752 
753  def __itruediv__(self, *args):
754  return _IMP_kernel._VectorBase5D___itruediv__(self, *args)
755  __idiv__ = __itruediv__
756 
757 
758 
759  def __imul__(self, f):
760  r"""__imul__(_VectorBase5D self, double f) -> _VectorBase5D"""
761  return _IMP_kernel._VectorBase5D___imul__(self, f)
762 
763  def show(self, *args):
764  r"""
765  show(_VectorBase5D self, _ostream out, std::string delim, bool parens=True)
766  show(_VectorBase5D self, _ostream out=std::cout)
767  """
768  return _IMP_kernel._VectorBase5D_show(self, *args)
769 
770  def get_dimension(self):
771  r"""get_dimension(_VectorBase5D self) -> unsigned int"""
772  return _IMP_kernel._VectorBase5D_get_dimension(self)
773  __swig_destroy__ = _IMP_kernel.delete__VectorBase5D
774 
775 # Register _VectorBase5D in _IMP_kernel:
776 _IMP_kernel._VectorBase5D_swigregister(_VectorBase5D)
777 class _VectorBase6D(_GeometricPrimitive6D):
778  r"""Proxy of C++ IMP::internal::VectorBaseD< 6 > class."""
779 
780  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
781  __repr__ = _swig_repr
782 
783  def __init__(self):
784  r"""__init__(_VectorBase6D self) -> _VectorBase6D"""
785  _IMP_kernel._VectorBase6D_swiginit(self, _IMP_kernel.new__VectorBase6D())
786 
787  def get_scalar_product(self, o):
788  r"""get_scalar_product(_VectorBase6D self, _VectorBase6D o) -> double"""
789  return _IMP_kernel._VectorBase6D_get_scalar_product(self, o)
790 
791  def get_squared_magnitude(self):
792  r"""get_squared_magnitude(_VectorBase6D self) -> double"""
793  return _IMP_kernel._VectorBase6D_get_squared_magnitude(self)
794 
795  def get_magnitude(self):
796  r"""get_magnitude(_VectorBase6D self) -> double"""
797  return _IMP_kernel._VectorBase6D_get_magnitude(self)
798 
799  def get_distance(self, o):
800  r"""get_distance(_VectorBase6D self, _VectorBase6D o) -> double"""
801  return _IMP_kernel._VectorBase6D_get_distance(self, o)
802 
803  def __mul__(self, o):
804  r"""__mul__(_VectorBase6D self, _VectorBase6D o) -> double"""
805  return _IMP_kernel._VectorBase6D___mul__(self, o)
806 
807  def __iadd__(self, o):
808  r"""__iadd__(_VectorBase6D self, _VectorBase6D o) -> _VectorBase6D"""
809  return _IMP_kernel._VectorBase6D___iadd__(self, o)
810 
811  def __isub__(self, o):
812  r"""__isub__(_VectorBase6D self, _VectorBase6D o) -> _VectorBase6D"""
813  return _IMP_kernel._VectorBase6D___isub__(self, o)
814 
815  def __itruediv__(self, *args):
816  return _IMP_kernel._VectorBase6D___itruediv__(self, *args)
817  __idiv__ = __itruediv__
818 
819 
820 
821  def __imul__(self, f):
822  r"""__imul__(_VectorBase6D self, double f) -> _VectorBase6D"""
823  return _IMP_kernel._VectorBase6D___imul__(self, f)
824 
825  def show(self, *args):
826  r"""
827  show(_VectorBase6D self, _ostream out, std::string delim, bool parens=True)
828  show(_VectorBase6D self, _ostream out=std::cout)
829  """
830  return _IMP_kernel._VectorBase6D_show(self, *args)
831 
832  def get_dimension(self):
833  r"""get_dimension(_VectorBase6D self) -> unsigned int"""
834  return _IMP_kernel._VectorBase6D_get_dimension(self)
835  __swig_destroy__ = _IMP_kernel.delete__VectorBase6D
836 
837 # Register _VectorBase6D in _IMP_kernel:
838 _IMP_kernel._VectorBase6D_swigregister(_VectorBase6D)
839 class _InputAdaptor(object):
840  r"""Proxy of C++ IMP::InputAdaptor class."""
841 
842  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
843 
844  def __init__(self, *args, **kwargs):
845  raise AttributeError("No constructor defined")
846  __repr__ = _swig_repr
847 
848  def __getstate__(self):
849  raise NotImplementedError(str(self.__class__)
850  + " does not support serialization")
851 
852  __swig_destroy__ = _IMP_kernel.delete__InputAdaptor
853 
854 # Register _InputAdaptor in _IMP_kernel:
855 _IMP_kernel._InputAdaptor_swigregister(_InputAdaptor)
856 class _NonCopyable(object):
857  r"""Proxy of C++ IMP::NonCopyable class."""
858 
859  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
860 
861  def __init__(self, *args, **kwargs):
862  raise AttributeError("No constructor defined")
863  __repr__ = _swig_repr
864  __swig_destroy__ = _IMP_kernel.delete__NonCopyable
865 
866 # Register _NonCopyable in _IMP_kernel:
867 _IMP_kernel._NonCopyable_swigregister(_NonCopyable)
868 class _RAII(_NonCopyable):
869  r"""Proxy of C++ IMP::RAII class."""
870 
871  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
872 
873  def __init__(self, *args, **kwargs):
874  raise AttributeError("No constructor defined")
875  __repr__ = _swig_repr
876  __swig_destroy__ = _IMP_kernel.delete__RAII
877 
878 # Register _RAII in _IMP_kernel:
879 _IMP_kernel._RAII_swigregister(_RAII)
880 class _Value(object):
881  r"""Proxy of C++ IMP::Value class."""
882 
883  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
884 
885  def __init__(self, *args, **kwargs):
886  raise AttributeError("No constructor defined")
887  __repr__ = _swig_repr
888 
889  def __getstate__(self):
890  raise NotImplementedError(str(self.__class__)
891  + " does not support serialization")
892 
893  __swig_destroy__ = _IMP_kernel.delete__Value
894 
895 # Register _Value in _IMP_kernel:
896 _IMP_kernel._Value_swigregister(_Value)
897 
898 def get_executable_name():
899  r"""get_executable_name() -> std::string"""
900  return _IMP_kernel.get_executable_name()
901 
902 def setup_from_argv(*args):
903  r"""
904  setup_from_argv(IMP::Strings const & argv, std::string description)
905  setup_from_argv(IMP::Strings const & argv, std::string description, std::string positional_description, int num_positional) -> IMP::Strings
906  """
907  return _IMP_kernel.setup_from_argv(*args)
908 
909 def add_string_flag(name, default_value, description):
910  r"""add_string_flag(std::string name, std::string default_value, std::string description)"""
911  return _IMP_kernel.add_string_flag(name, default_value, description)
912 
913 def get_string_flag(name):
914  r"""get_string_flag(std::string name) -> std::string"""
915  return _IMP_kernel.get_string_flag(name)
916 
917 def add_int_flag(name, default_value, description):
918  r"""add_int_flag(std::string name, size_t default_value, std::string description)"""
919  return _IMP_kernel.add_int_flag(name, default_value, description)
920 
921 def get_int_flag(name):
922  r"""get_int_flag(std::string name) -> size_t"""
923  return _IMP_kernel.get_int_flag(name)
924 
925 def add_bool_flag(name, description):
926  r"""add_bool_flag(std::string name, std::string description)"""
927  return _IMP_kernel.add_bool_flag(name, description)
928 
929 def get_bool_flag(name):
930  r"""get_bool_flag(std::string name) -> bool"""
931  return _IMP_kernel.get_bool_flag(name)
932 
933 def add_float_flag(name, default_value, description):
934  r"""add_float_flag(std::string name, double default_value, std::string description)"""
935  return _IMP_kernel.add_float_flag(name, default_value, description)
936 
937 def get_float_flag(name):
938  r"""get_float_flag(std::string name) -> double"""
939  return _IMP_kernel.get_float_flag(name)
940 
941 def write_help(*args):
942  r"""write_help(_ostream out=std::cerr)"""
943  return _IMP_kernel.write_help(*args)
944 
945 def get_is_quick_test():
946  r"""get_is_quick_test() -> bool"""
947  return _IMP_kernel.get_is_quick_test()
948 DEFAULT = _IMP_kernel.DEFAULT
949 
950 SILENT = _IMP_kernel.SILENT
951 
952 WARNING = _IMP_kernel.WARNING
953 
954 PROGRESS = _IMP_kernel.PROGRESS
955 
956 TERSE = _IMP_kernel.TERSE
957 
958 VERBOSE = _IMP_kernel.VERBOSE
959 
960 MEMORY = _IMP_kernel.MEMORY
961 
962 ALL_LOG = _IMP_kernel.ALL_LOG
963 
964 class VersionInfo(_Value):
965  r"""Proxy of C++ IMP::VersionInfo class."""
966 
967  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
968 
969  def __init__(self, *args):
970  r"""
971  __init__(VersionInfo self, std::string module, std::string version) -> VersionInfo
972  __init__(VersionInfo self) -> VersionInfo
973  """
974  _IMP_kernel.VersionInfo_swiginit(self, _IMP_kernel.new_VersionInfo(*args))
975 
976  def get_module(self):
977  r"""get_module(VersionInfo self) -> std::string"""
978  return _IMP_kernel.VersionInfo_get_module(self)
979 
980  def get_version(self):
981  r"""get_version(VersionInfo self) -> std::string"""
982  return _IMP_kernel.VersionInfo_get_version(self)
983 
984  def show(self, *args):
985  r"""show(VersionInfo self, _ostream out=std::cout)"""
986  return _IMP_kernel.VersionInfo_show(self, *args)
987 
988  def __cmp__(self, o):
989  r"""__cmp__(VersionInfo self, VersionInfo o) -> int"""
990  return _IMP_kernel.VersionInfo___cmp__(self, o)
991 
992  def __eq__(self, o):
993  r"""__eq__(VersionInfo self, VersionInfo o) -> bool"""
994  return _IMP_kernel.VersionInfo___eq__(self, o)
995 
996  def __ne__(self, o):
997  r"""__ne__(VersionInfo self, VersionInfo o) -> bool"""
998  return _IMP_kernel.VersionInfo___ne__(self, o)
999 
1000  def __lt__(self, o):
1001  r"""__lt__(VersionInfo self, VersionInfo o) -> bool"""
1002  return _IMP_kernel.VersionInfo___lt__(self, o)
1003 
1004  def __gt__(self, o):
1005  r"""__gt__(VersionInfo self, VersionInfo o) -> bool"""
1006  return _IMP_kernel.VersionInfo___gt__(self, o)
1007 
1008  def __ge__(self, o):
1009  r"""__ge__(VersionInfo self, VersionInfo o) -> bool"""
1010  return _IMP_kernel.VersionInfo___ge__(self, o)
1011 
1012  def __le__(self, o):
1013  r"""__le__(VersionInfo self, VersionInfo o) -> bool"""
1014  return _IMP_kernel.VersionInfo___le__(self, o)
1015 
1016  def __str__(self):
1017  r"""__str__(VersionInfo self) -> std::string"""
1018  return _IMP_kernel.VersionInfo___str__(self)
1019 
1020  def __repr__(self):
1021  r"""__repr__(VersionInfo self) -> std::string"""
1022  return _IMP_kernel.VersionInfo___repr__(self)
1023 
1024  def _get_as_binary(self):
1025  r"""_get_as_binary(VersionInfo self) -> PyObject *"""
1026  return _IMP_kernel.VersionInfo__get_as_binary(self)
1027 
1028  def _set_from_binary(self, p):
1029  r"""_set_from_binary(VersionInfo self, PyObject * p)"""
1030  return _IMP_kernel.VersionInfo__set_from_binary(self, p)
1031 
1032  def __getstate__(self):
1033  p = self._get_as_binary()
1034  if len(self.__dict__) > 1:
1035  d = self.__dict__.copy()
1036  del d['this']
1037  p = (d, p)
1038  return p
1039 
1040  def __setstate__(self, p):
1041  if not hasattr(self, 'this'):
1042  self.__init__()
1043  if isinstance(p, tuple):
1044  d, p = p
1045  self.__dict__.update(d)
1046  return self._set_from_binary(p)
1047 
1048  __swig_destroy__ = _IMP_kernel.delete_VersionInfo
1049 
1050 # Register VersionInfo in _IMP_kernel:
1051 _IMP_kernel.VersionInfo_swigregister(VersionInfo)
1052 class TextOutput(_InputAdaptor):
1053  r"""Proxy of C++ IMP::TextOutput class."""
1054 
1055  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1056  __repr__ = _swig_repr
1057 
1058  def __init__(self, *args):
1059  r"""
1060  __init__(TextOutput self, int arg2) -> TextOutput
1061  __init__(TextOutput self, double arg2) -> TextOutput
1062  __init__(TextOutput self, char const * c, bool append=False) -> TextOutput
1063  __init__(TextOutput self, IMP::TextProxy< std::ostream > p) -> TextOutput
1064  __init__(TextOutput self) -> TextOutput
1065  __init__(TextOutput self, std::string file_name, bool append=False) -> TextOutput
1066  """
1067  _IMP_kernel.TextOutput_swiginit(self, _IMP_kernel.new_TextOutput(*args))
1068 
1069  def show(self, *args):
1070  r"""show(TextOutput self, _ostream out=std::cout)"""
1071  return _IMP_kernel.TextOutput_show(self, *args)
1072 
1073  def get_name(self):
1074  r"""get_name(TextOutput self) -> std::string"""
1075  return _IMP_kernel.TextOutput_get_name(self)
1076  __swig_destroy__ = _IMP_kernel.delete_TextOutput
1077 
1078 # Register TextOutput in _IMP_kernel:
1079 _IMP_kernel.TextOutput_swigregister(TextOutput)
1080 class TextInput(_InputAdaptor):
1081  r"""Proxy of C++ IMP::TextInput class."""
1082 
1083  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1084  __repr__ = _swig_repr
1085 
1086  def __init__(self, *args):
1087  r"""
1088  __init__(TextInput self, int arg2) -> TextInput
1089  __init__(TextInput self, double arg2) -> TextInput
1090  __init__(TextInput self, char const * c) -> TextInput
1091  __init__(TextInput self, IMP::TextProxy< std::istream > p) -> TextInput
1092  __init__(TextInput self) -> TextInput
1093  __init__(TextInput self, std::string file_name) -> TextInput
1094  """
1095  _IMP_kernel.TextInput_swiginit(self, _IMP_kernel.new_TextInput(*args))
1096 
1097  def show(self, *args):
1098  r"""show(TextInput self, _ostream out=std::cout)"""
1099  return _IMP_kernel.TextInput_show(self, *args)
1100 
1101  def get_name(self):
1102  r"""get_name(TextInput self) -> std::string"""
1103  return _IMP_kernel.TextInput_get_name(self)
1104 
1105  def set_binary_open_mode(self, binary):
1106  r"""set_binary_open_mode(TextInput self, bool binary)"""
1107  return _IMP_kernel.TextInput_set_binary_open_mode(self, binary)
1108  __swig_destroy__ = _IMP_kernel.delete_TextInput
1109 
1110 # Register TextInput in _IMP_kernel:
1111 _IMP_kernel.TextInput_swigregister(TextInput)
1112 class SetLogTarget(_RAII):
1113  r"""Proxy of C++ IMP::SetLogTarget class."""
1114 
1115  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1116 
1117  def __init__(self, *args):
1118  r"""
1119  __init__(SetLogTarget self) -> SetLogTarget
1120  __init__(SetLogTarget self, TextOutput to) -> SetLogTarget
1121  """
1122  _IMP_kernel.SetLogTarget_swiginit(self, _IMP_kernel.new_SetLogTarget(*args))
1123 
1124  def set(self, to):
1125  r"""set(SetLogTarget self, TextOutput to)"""
1126  return _IMP_kernel.SetLogTarget_set(self, to)
1127 
1128  def reset(self):
1129  r"""reset(SetLogTarget self)"""
1130  return _IMP_kernel.SetLogTarget_reset(self)
1131  __swig_destroy__ = _IMP_kernel.delete_SetLogTarget
1132 
1133  def show(self, *args):
1134  r"""show(SetLogTarget self, _ostream out=std::cout)"""
1135  return _IMP_kernel.SetLogTarget_show(self, *args)
1136 
1137  def __enter__(self):
1138  return self
1139  def __exit__(self, exc_type, exc_val, exc_tb):
1140  self.reset()
1141  return False
1142 
1143 
1144  def __str__(self):
1145  r"""__str__(SetLogTarget self) -> std::string"""
1146  return _IMP_kernel.SetLogTarget___str__(self)
1147 
1148  def __repr__(self):
1149  r"""__repr__(SetLogTarget self) -> std::string"""
1150  return _IMP_kernel.SetLogTarget___repr__(self)
1151 
1152 # Register SetLogTarget in _IMP_kernel:
1153 _IMP_kernel.SetLogTarget_swigregister(SetLogTarget)
1154 
1155 def create_temporary_file(*args):
1156  r"""create_temporary_file(std::string prefix="imp_temp", std::string suffix="") -> TextOutput"""
1157  return _IMP_kernel.create_temporary_file(*args)
1158 
1159 def create_temporary_file_name(*args):
1160  r"""create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="") -> std::string"""
1161  return _IMP_kernel.create_temporary_file_name(*args)
1162 
1163 def get_relative_path(base, relative):
1164  r"""get_relative_path(std::string base, std::string relative) -> std::string"""
1165  return _IMP_kernel.get_relative_path(base, relative)
1166 
1167 def get_absolute_path(file):
1168  r"""get_absolute_path(std::string file) -> std::string"""
1169  return _IMP_kernel.get_absolute_path(file)
1170 
1171 def push_log_context(functionname, object):
1172  r"""push_log_context(char const * functionname, void const * object)"""
1173  return _IMP_kernel.push_log_context(functionname, object)
1174 
1175 def pop_log_context():
1176  r"""pop_log_context()"""
1177  return _IMP_kernel.pop_log_context()
1178 
1179 def add_to_log(*args):
1180  r"""
1181  add_to_log(std::string to_write)
1182  add_to_log(IMP::LogLevel level, std::string to_write)
1183  """
1184  return _IMP_kernel.add_to_log(*args)
1185 
1186 def set_log_level(l):
1187  r"""set_log_level(IMP::LogLevel l)"""
1188  return _IMP_kernel.set_log_level(l)
1189 
1190 def set_log_timer(tb):
1191  r"""set_log_timer(bool tb)"""
1192  return _IMP_kernel.set_log_timer(tb)
1193 
1194 def reset_log_timer():
1195  r"""reset_log_timer()"""
1196  return _IMP_kernel.reset_log_timer()
1197 
1198 def get_log_level():
1199  r"""get_log_level() -> IMP::LogLevel"""
1200  return _IMP_kernel.get_log_level()
1201 
1202 def set_progress_display(description, steps):
1203  r"""set_progress_display(std::string description, unsigned int steps)"""
1204  return _IMP_kernel.set_progress_display(description, steps)
1205 
1206 def add_to_progress_display(step=1):
1207  r"""add_to_progress_display(unsigned int step=1)"""
1208  return _IMP_kernel.add_to_progress_display(step)
1209 class Object(_NonCopyable):
1210  r"""Proxy of C++ IMP::Object class."""
1211 
1212  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1213 
1214  def __init__(self, name):
1215  r"""__init__(Object self, std::string name) -> Object"""
1216  if self.__class__ == Object:
1217  _self = None
1218  else:
1219  _self = self
1220  _IMP_kernel.Object_swiginit(self, _IMP_kernel.new_Object(_self, name))
1221 
1222  if self.__class__ != Object:
1223  _director_objects.register(self)
1224 
1225 
1226 
1227  __swig_destroy__ = _IMP_kernel.delete_Object
1228 
1229  def __hash__(self):
1230  r"""__hash__(Object self) -> std::size_t"""
1231  return _IMP_kernel.Object___hash__(self)
1232 
1233  def set_log_level(self, l):
1234  r"""set_log_level(Object self, IMP::LogLevel l)"""
1235  return _IMP_kernel.Object_set_log_level(self, l)
1236 
1237  def set_check_level(self, l):
1238  r"""set_check_level(Object self, IMP::CheckLevel l)"""
1239  return _IMP_kernel.Object_set_check_level(self, l)
1240 
1241  def get_log_level(self):
1242  r"""get_log_level(Object self) -> IMP::LogLevel"""
1243  return _IMP_kernel.Object_get_log_level(self)
1244 
1245  def get_check_level(self):
1246  r"""get_check_level(Object self) -> IMP::CheckLevel"""
1247  return _IMP_kernel.Object_get_check_level(self)
1248 
1249  def get_version_info(self):
1250  r"""get_version_info(Object self) -> VersionInfo"""
1251  val = _IMP_kernel.Object_get_version_info(self)
1252  if val.get_module() == 'none':
1253  val = VersionInfo(
1254  self.__module__,
1255  __import__(self.__module__).get_module_version())
1256  return val
1257 
1258  def get_name(self):
1259  r"""get_name(Object self) -> std::string const &"""
1260  return _IMP_kernel.Object_get_name(self)
1261 
1262  def set_name(self, name):
1263  r"""set_name(Object self, std::string name)"""
1264  return _IMP_kernel.Object_set_name(self, name)
1265 
1266  def get_type_name(self):
1267  r"""get_type_name(Object self) -> std::string"""
1268  val = _IMP_kernel.Object_get_type_name(self)
1269  if val == 'unknown object type':
1270  val = self.__class__.__name__
1271  return val
1272 
1273  def set_was_used(self, tf):
1274  r"""set_was_used(Object self, bool tf)"""
1275  return _IMP_kernel.Object_set_was_used(self, tf)
1276 
1277  def show(self, *args):
1278  r"""show(Object self, _ostream out=std::cout)"""
1279  return _IMP_kernel.Object_show(self, *args)
1280 
1281  def get_string(self):
1282  r"""get_string(Object self) -> std::string"""
1283  return _IMP_kernel.Object_get_string(self)
1284 
1285  def _on_destruction(self):
1286  r"""_on_destruction(Object self)"""
1287  return _IMP_kernel.Object__on_destruction(self)
1288 
1289  def get_is_valid(self):
1290  r"""get_is_valid(Object self) -> bool"""
1291  return _IMP_kernel.Object_get_is_valid(self)
1292 
1293  def get_ref_count(self):
1294  r"""get_ref_count(Object self) -> unsigned int"""
1295  return _IMP_kernel.Object_get_ref_count(self)
1296 
1297  @staticmethod
1298  def get_number_of_live_objects():
1299  r"""get_number_of_live_objects() -> unsigned int"""
1300  return _IMP_kernel.Object_get_number_of_live_objects()
1301 
1302  def get_is_shared(self):
1303  r"""get_is_shared(Object self) -> bool"""
1304  return _IMP_kernel.Object_get_is_shared(self)
1305 
1306  def clear_caches(self):
1307  r"""clear_caches(Object self)"""
1308  return _IMP_kernel.Object_clear_caches(self)
1309 
1310  def do_destroy(self):
1311  r"""do_destroy(Object self)"""
1312  return _IMP_kernel.Object_do_destroy(self)
1313 
1314  def __getstate__(self):
1315  raise NotImplementedError(str(self.__class__)
1316  + " does not support serialization")
1317 
1318 
1319  def __eq__(self, o):
1320  r"""__eq__(Object self, Object o) -> bool"""
1321  return _IMP_kernel.Object___eq__(self, o)
1322 
1323  def __ne__(self, o):
1324  r"""__ne__(Object self, Object o) -> bool"""
1325  return _IMP_kernel.Object___ne__(self, o)
1326 
1327  def __le__(self, o):
1328  r"""__le__(Object self, Object o) -> bool"""
1329  return _IMP_kernel.Object___le__(self, o)
1330 
1331  def __lt__(self, o):
1332  r"""__lt__(Object self, Object o) -> bool"""
1333  return _IMP_kernel.Object___lt__(self, o)
1334 
1335  def __ge__(self, o):
1336  r"""__ge__(Object self, Object o) -> bool"""
1337  return _IMP_kernel.Object___ge__(self, o)
1338 
1339  def __gt__(self, o):
1340  r"""__gt__(Object self, Object o) -> bool"""
1341  return _IMP_kernel.Object___gt__(self, o)
1342 
1343  def _get_director_object(self):
1344  r"""_get_director_object(Object self) -> PyObject *"""
1345  return _IMP_kernel.Object__get_director_object(self)
1346 
1348  """Return this object cast to the most derived subclass."""
1349  # If this is a SWIG director, return the original Python object
1350  pyobj = self._get_director_object()
1351  if pyobj is not None:
1352  return pyobj
1353  # Otherwise, use the object's module and type name to look up
1354  # the corresponding most-derived Python type
1355  modname = self.get_version_info().get_module().replace('::', '.')
1356  type_name = self.get_type_name()
1357  if (modname == 'IMP.core'
1358  and type_name == 'GenericBoundingBox3DSingletonScore'):
1359  type_name = 'BoundingBox3DSingletonScore'
1360  elif (modname == 'IMP.core'
1361  and type_name == 'GenericAttributeSingletonScore'):
1362  type_name = 'AttributeSingletonScore'
1363  elif (modname == 'IMP.core'
1364  and type_name == 'GenericBoundingSphere3DSingletonScore'):
1365  type_name = 'BoundingSphere3DSingletonScore'
1366  elif modname == 'IMP' and type_name == 'RestraintScoringFunction':
1367  # The implicit RestraintScoringFunction isn't exposed to Python,
1368  # so just return the base class
1369  return self
1370  elif modname == 'IMP' and type_name == 'GenericRestraintsScoringFunction':
1371  # Just use the base class for the common single-restraint case
1372  if self.get_single_restraint():
1373  return self
1374  else:
1375  type_name = '_RestraintsScoringFunction'
1376  modobj = sys.modules[modname]
1377  clsobj = getattr(modobj, type_name)
1378  return clsobj.get_from(self)
1379 
1380 
1381  def __str__(self):
1382  r"""__str__(Object self) -> std::string"""
1383  return _IMP_kernel.Object___str__(self)
1384 
1385  def __repr__(self):
1386  r"""__repr__(Object self) -> std::string"""
1387  return _IMP_kernel.Object___repr__(self)
1388 
1389  @staticmethod
1390  def get_from(o):
1391  return _object_cast_to_Object(o)
1392 
1393  def __disown__(self):
1394  self.this.disown()
1395  _IMP_kernel.disown_Object(self)
1396  return weakref.proxy(self)
1397 
1398 # Register Object in _IMP_kernel:
1399 _IMP_kernel.Object_swigregister(Object)
1400 class SetLogState(_RAII):
1401  r"""Proxy of C++ IMP::SetLogState class."""
1402 
1403  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1404 
1405  def reset(self):
1406  r"""reset(SetLogState self)"""
1407  return _IMP_kernel.SetLogState_reset(self)
1408  __swig_destroy__ = _IMP_kernel.delete_SetLogState
1409 
1410  def show(self, *args):
1411  r"""show(SetLogState self, _ostream out=std::cout)"""
1412  return _IMP_kernel.SetLogState_show(self, *args)
1413 
1414  def __init__(self, *args):
1415  r"""
1416  __init__(SetLogState self) -> SetLogState
1417  __init__(SetLogState self, Object o, IMP::LogLevel l) -> SetLogState
1418  __init__(SetLogState self, IMP::LogLevel l) -> SetLogState
1419  """
1420  _IMP_kernel.SetLogState_swiginit(self, _IMP_kernel.new_SetLogState(*args))
1421 
1422  def set(self, *args):
1423  r"""
1424  set(SetLogState self, Object o, IMP::LogLevel l)
1425  set(SetLogState self, IMP::LogLevel l)
1426  """
1427  return _IMP_kernel.SetLogState_set(self, *args)
1428 
1429  def __enter__(self):
1430  return self
1431  def __exit__(self, exc_type, exc_val, exc_tb):
1432  self.reset()
1433  return False
1434 
1435 
1436  def __str__(self):
1437  r"""__str__(SetLogState self) -> std::string"""
1438  return _IMP_kernel.SetLogState___str__(self)
1439 
1440  def __repr__(self):
1441  r"""__repr__(SetLogState self) -> std::string"""
1442  return _IMP_kernel.SetLogState___repr__(self)
1443 
1444 # Register SetLogState in _IMP_kernel:
1445 _IMP_kernel.SetLogState_swigregister(SetLogState)
1446 class WarningContext(object):
1447  r"""Proxy of C++ IMP::WarningContext class."""
1448 
1449  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1450  data_ = property(_IMP_kernel.WarningContext_data__get, _IMP_kernel.WarningContext_data__set, doc=r"""data_ : boost::unordered_set<(std::string)>""")
1451 
1452  def add_warning(self, key, warning):
1453  r"""add_warning(WarningContext self, std::string key, std::string warning)"""
1454  return _IMP_kernel.WarningContext_add_warning(self, key, warning)
1455 
1456  def clear_warnings(self):
1457  r"""clear_warnings(WarningContext self)"""
1458  return _IMP_kernel.WarningContext_clear_warnings(self)
1459 
1460  def dump_warnings(self):
1461  r"""dump_warnings(WarningContext self)"""
1462  return _IMP_kernel.WarningContext_dump_warnings(self)
1463  __swig_destroy__ = _IMP_kernel.delete_WarningContext
1464 
1465  def show(self, *args):
1466  r"""show(WarningContext self, _ostream out=std::cout)"""
1467  return _IMP_kernel.WarningContext_show(self, *args)
1468 
1469  def __enter__(self):
1470  return self
1471  def __exit__(self, exc_type, exc_val, exc_tb):
1472  self.reset()
1473  return False
1474 
1475 
1476  def __str__(self):
1477  r"""__str__(WarningContext self) -> std::string"""
1478  return _IMP_kernel.WarningContext___str__(self)
1479 
1480  def __repr__(self):
1481  r"""__repr__(WarningContext self) -> std::string"""
1482  return _IMP_kernel.WarningContext___repr__(self)
1483 
1484  def __init__(self):
1485  r"""__init__(WarningContext self) -> WarningContext"""
1486  _IMP_kernel.WarningContext_swiginit(self, _IMP_kernel.new_WarningContext())
1487 
1488 # Register WarningContext in _IMP_kernel:
1489 _IMP_kernel.WarningContext_swigregister(WarningContext)
1490 class CreateLogContext(_RAII):
1491  r"""Proxy of C++ IMP::CreateLogContext class."""
1492 
1493  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1494 
1495  def __init__(self, *args):
1496  r"""
1497  __init__(CreateLogContext self, std::string fname, Object object=None) -> CreateLogContext
1498  __init__(CreateLogContext self) -> CreateLogContext
1499  __init__(CreateLogContext self, char const * fname, Object object=None) -> CreateLogContext
1500  """
1501  _IMP_kernel.CreateLogContext_swiginit(self, _IMP_kernel.new_CreateLogContext(*args))
1502 
1503  def set(self, fname, object=None):
1504  r"""set(CreateLogContext self, char const * fname, Object object=None)"""
1505  return _IMP_kernel.CreateLogContext_set(self, fname, object)
1506 
1507  def reset(self):
1508  r"""reset(CreateLogContext self)"""
1509  return _IMP_kernel.CreateLogContext_reset(self)
1510  __swig_destroy__ = _IMP_kernel.delete_CreateLogContext
1511 
1512  def show(self, *args):
1513  r"""show(CreateLogContext self, _ostream out=std::cout)"""
1514  return _IMP_kernel.CreateLogContext_show(self, *args)
1515 
1516  def __enter__(self):
1517  return self
1518  def __exit__(self, exc_type, exc_val, exc_tb):
1519  self.reset()
1520  return False
1521 
1522 
1523  def __str__(self):
1524  r"""__str__(CreateLogContext self) -> std::string"""
1525  return _IMP_kernel.CreateLogContext___str__(self)
1526 
1527  def __repr__(self):
1528  r"""__repr__(CreateLogContext self) -> std::string"""
1529  return _IMP_kernel.CreateLogContext___repr__(self)
1530 
1531 # Register CreateLogContext in _IMP_kernel:
1532 _IMP_kernel.CreateLogContext_swigregister(CreateLogContext)
1533 class SetCheckState(_RAII):
1534  r"""Proxy of C++ IMP::SetCheckState class."""
1535 
1536  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1537 
1538  def reset(self):
1539  r"""reset(SetCheckState self)"""
1540  return _IMP_kernel.SetCheckState_reset(self)
1541  __swig_destroy__ = _IMP_kernel.delete_SetCheckState
1542 
1543  def show(self, *args):
1544  r"""show(SetCheckState self, _ostream out=std::cout)"""
1545  return _IMP_kernel.SetCheckState_show(self, *args)
1546 
1547  def __init__(self, *args):
1548  r"""
1549  __init__(SetCheckState self) -> SetCheckState
1550  __init__(SetCheckState self, Object o, IMP::CheckLevel l) -> SetCheckState
1551  __init__(SetCheckState self, IMP::CheckLevel l) -> SetCheckState
1552  """
1553  _IMP_kernel.SetCheckState_swiginit(self, _IMP_kernel.new_SetCheckState(*args))
1554 
1555  def set(self, *args):
1556  r"""
1557  set(SetCheckState self, Object o, IMP::CheckLevel l)
1558  set(SetCheckState self, IMP::CheckLevel l)
1559  """
1560  return _IMP_kernel.SetCheckState_set(self, *args)
1561 
1562  def __enter__(self):
1563  return self
1564  def __exit__(self, exc_type, exc_val, exc_tb):
1565  self.reset()
1566  return False
1567 
1568 
1569  def __str__(self):
1570  r"""__str__(SetCheckState self) -> std::string"""
1571  return _IMP_kernel.SetCheckState___str__(self)
1572 
1573  def __repr__(self):
1574  r"""__repr__(SetCheckState self) -> std::string"""
1575  return _IMP_kernel.SetCheckState___repr__(self)
1576 
1577 # Register SetCheckState in _IMP_kernel:
1578 _IMP_kernel.SetCheckState_swigregister(SetCheckState)
1579 
1580 def get_unique_name(templ):
1581  r"""get_unique_name(std::string templ) -> std::string"""
1582  return _IMP_kernel.get_unique_name(templ)
1583 
1584 def get_copyright():
1585  r"""get_copyright() -> std::string"""
1586  return _IMP_kernel.get_copyright()
1587 class _Protection(object):
1588  r"""Proxy of C++ IMP::internal::_Protection class."""
1589 
1590  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1591 
1592  def __init__(self, *args, **kwargs):
1593  raise AttributeError("No constructor defined")
1594 
1595  def show(self, *args):
1596  r"""show(_Protection self, _ostream out=std::cout)"""
1597  return _IMP_kernel._Protection_show(self, *args)
1598 
1599  def __str__(self):
1600  r"""__str__(_Protection self) -> std::string"""
1601  return _IMP_kernel._Protection___str__(self)
1602 
1603  def __repr__(self):
1604  r"""__repr__(_Protection self) -> std::string"""
1605  return _IMP_kernel._Protection___repr__(self)
1606  __swig_destroy__ = _IMP_kernel.delete__Protection
1607 
1608 # Register _Protection in _IMP_kernel:
1609 _IMP_kernel._Protection_swigregister(_Protection)
1610 
1611 def _test_log():
1612  r"""_test_log()"""
1613  return _IMP_kernel._test_log()
1614 
1615 def _test_intranges(ips):
1616  r"""_test_intranges(IMP::IntRanges const & ips) -> int"""
1617  return _IMP_kernel._test_intranges(ips)
1618 
1619 def _test_intrange(*args):
1620  r"""
1621  _test_intrange(IMP::IntRange const & ips) -> IMP::IntRange
1622  _test_intrange() -> IMP::IntRange
1623  """
1624  return _IMP_kernel._test_intrange(*args)
1625 
1626 def _test_ifile(a):
1627  r"""_test_ifile(TextInput a) -> std::string"""
1628  return _IMP_kernel._test_ifile(a)
1629 
1630 def _test_ofile(a):
1631  r"""_test_ofile(TextOutput a) -> std::string"""
1632  return _IMP_kernel._test_ofile(a)
1633 
1634 def _test_ifile_overloaded(*args):
1635  r"""
1636  _test_ifile_overloaded(TextInput a, int i) -> std::string
1637  _test_ifile_overloaded(TextInput a, std::string st) -> std::string
1638  """
1639  return _IMP_kernel._test_ifile_overloaded(*args)
1640 
1641 def _test_ofile_overloaded(*args):
1642  r"""
1643  _test_ofile_overloaded(TextOutput a, int i) -> std::string
1644  _test_ofile_overloaded(TextOutput a, std::string st) -> std::string
1645  """
1646  return _IMP_kernel._test_ofile_overloaded(*args)
1647 class _TestValue(object):
1648  r"""Proxy of C++ IMP::internal::_TestValue class."""
1649 
1650  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1651 
1652  def __init__(self, i):
1653  r"""__init__(_TestValue self, int i) -> _TestValue"""
1654  _IMP_kernel._TestValue_swiginit(self, _IMP_kernel.new__TestValue(i))
1655 
1656  def show(self, *args):
1657  r"""show(_TestValue self, _ostream out=std::cout)"""
1658  return _IMP_kernel._TestValue_show(self, *args)
1659 
1660  def __cmp__(self, o):
1661  r"""__cmp__(_TestValue self, _TestValue o) -> int"""
1662  return _IMP_kernel._TestValue___cmp__(self, o)
1663 
1664  def __eq__(self, o):
1665  r"""__eq__(_TestValue self, _TestValue o) -> bool"""
1666  return _IMP_kernel._TestValue___eq__(self, o)
1667 
1668  def __ne__(self, o):
1669  r"""__ne__(_TestValue self, _TestValue o) -> bool"""
1670  return _IMP_kernel._TestValue___ne__(self, o)
1671 
1672  def __lt__(self, o):
1673  r"""__lt__(_TestValue self, _TestValue o) -> bool"""
1674  return _IMP_kernel._TestValue___lt__(self, o)
1675 
1676  def __gt__(self, o):
1677  r"""__gt__(_TestValue self, _TestValue o) -> bool"""
1678  return _IMP_kernel._TestValue___gt__(self, o)
1679 
1680  def __ge__(self, o):
1681  r"""__ge__(_TestValue self, _TestValue o) -> bool"""
1682  return _IMP_kernel._TestValue___ge__(self, o)
1683 
1684  def __le__(self, o):
1685  r"""__le__(_TestValue self, _TestValue o) -> bool"""
1686  return _IMP_kernel._TestValue___le__(self, o)
1687 
1688  def get(self):
1689  r"""get(_TestValue self) -> int"""
1690  return _IMP_kernel._TestValue_get(self)
1691 
1692  def get_float(self):
1693  r"""get_float(_TestValue self) -> float const &"""
1694  return _IMP_kernel._TestValue_get_float(self)
1695 
1696  def get_double(self):
1697  r"""get_double(_TestValue self) -> double const &"""
1698  return _IMP_kernel._TestValue_get_double(self)
1699 
1700  def get_Float(self):
1701  r"""get_Float(_TestValue self) -> IMP::Float const &"""
1702  return _IMP_kernel._TestValue_get_Float(self)
1703 
1704  def get_int(self):
1705  r"""get_int(_TestValue self) -> int const &"""
1706  return _IMP_kernel._TestValue_get_int(self)
1707 
1708  def get_Int(self):
1709  r"""get_Int(_TestValue self) -> IMP::Int const &"""
1710  return _IMP_kernel._TestValue_get_Int(self)
1711 
1712  def get_string(self):
1713  r"""get_string(_TestValue self) -> std::string const &"""
1714  return _IMP_kernel._TestValue_get_string(self)
1715 
1716  def get_String(self):
1717  r"""get_String(_TestValue self) -> IMP::String const &"""
1718  return _IMP_kernel._TestValue_get_String(self)
1719 
1720  def __str__(self):
1721  r"""__str__(_TestValue self) -> std::string"""
1722  return _IMP_kernel._TestValue___str__(self)
1723 
1724  def __repr__(self):
1725  r"""__repr__(_TestValue self) -> std::string"""
1726  return _IMP_kernel._TestValue___repr__(self)
1727  __swig_destroy__ = _IMP_kernel.delete__TestValue
1728 
1729 # Register _TestValue in _IMP_kernel:
1730 _IMP_kernel._TestValue_swigregister(_TestValue)
1731 
1732 def _pass_plain_pair(p):
1733  r"""_pass_plain_pair(IMP::FloatPair p) -> IMP::FloatPair"""
1734  return _IMP_kernel._pass_plain_pair(p)
1735 
1736 def _pass_overloaded_strings(*args):
1737  r"""
1738  _pass_overloaded_strings(IMP::Strings const & a, int arg2) -> IMP::Strings
1739  _pass_overloaded_strings(IMP::Strings const & a) -> IMP::Strings
1740  """
1741  return _IMP_kernel._pass_overloaded_strings(*args)
1742 
1743 def _pass_pair(p):
1744  r"""_pass_pair(IMP::DerivativePair const & p) -> IMP::DerivativePair"""
1745  return _IMP_kernel._pass_pair(p)
1746 
1747 def _pass_floats(input):
1748  r"""_pass_floats(IMP::Floats const & input) -> IMP::Floats"""
1749  return _IMP_kernel._pass_floats(input)
1750 
1751 def _pass_ints(input):
1752  r"""_pass_ints(IMP::Ints input) -> IMP::Ints"""
1753  return _IMP_kernel._pass_ints(input)
1754 
1755 def _pass_ints_list(input):
1756  r"""_pass_ints_list(IMP::IntsList const & input) -> IMP::IntsList"""
1757  return _IMP_kernel._pass_ints_list(input)
1758 
1759 def _pass_ints_lists(input):
1760  r"""_pass_ints_lists(IMP::IntsLists const & input) -> IMP::IntsLists"""
1761  return _IMP_kernel._pass_ints_lists(input)
1762 
1763 def _pass_strings(input):
1764  r"""_pass_strings(IMP::Strings const & input) -> IMP::Strings const &"""
1765  return _IMP_kernel._pass_strings(input)
1766 class _TestObject(Object):
1767  r"""Proxy of C++ IMP::internal::_TestObject class."""
1768 
1769  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1770 
1771  def __init__(self):
1772  r"""__init__(_TestObject self) -> _TestObject"""
1773  _IMP_kernel._TestObject_swiginit(self, _IMP_kernel.new__TestObject())
1774 
1775  def get_version_info(self):
1776  r"""get_version_info(_TestObject self) -> VersionInfo"""
1777  return _IMP_kernel._TestObject_get_version_info(self)
1778  __swig_destroy__ = _IMP_kernel.delete__TestObject
1779 
1780  def __str__(self):
1781  r"""__str__(_TestObject self) -> std::string"""
1782  return _IMP_kernel._TestObject___str__(self)
1783 
1784  def __repr__(self):
1785  r"""__repr__(_TestObject self) -> std::string"""
1786  return _IMP_kernel._TestObject___repr__(self)
1787 
1788  @staticmethod
1789  def get_from(o):
1790  return _object_cast_to__TestObject(o)
1791 
1792 
1793 # Register _TestObject in _IMP_kernel:
1794 _IMP_kernel._TestObject_swigregister(_TestObject)
1795 
1796 def get_live_object_names():
1797  r"""get_live_object_names() -> IMP::Strings"""
1798  return _IMP_kernel.get_live_object_names()
1799 
1800 def get_live_objects():
1801  r"""get_live_objects() -> IMP::Objects"""
1802  return _IMP_kernel.get_live_objects()
1803 
1804 def set_show_leaked_objects(tf):
1805  r"""set_show_leaked_objects(bool tf)"""
1806  return _IMP_kernel.set_show_leaked_objects(tf)
1807 
1808 def set_deprecation_warnings(tf):
1809  r"""set_deprecation_warnings(bool tf)"""
1810  return _IMP_kernel.set_deprecation_warnings(tf)
1811 
1813  r"""set_deprecation_exceptions(bool tf)"""
1814  return _IMP_kernel.set_deprecation_exceptions(tf)
1815 
1817  r"""get_deprecation_exceptions() -> bool"""
1818  return _IMP_kernel.get_deprecation_exceptions()
1819 
1820 def handle_use_deprecated(message):
1821  r"""handle_use_deprecated(std::string message)"""
1822  return _IMP_kernel.handle_use_deprecated(message)
1823 
1824 def get_number_of_threads():
1825  r"""get_number_of_threads() -> unsigned int"""
1826  return _IMP_kernel.get_number_of_threads()
1827 
1828 def set_number_of_threads(n):
1829  r"""set_number_of_threads(unsigned int n)"""
1830  return _IMP_kernel.set_number_of_threads(n)
1831 class SetNumberOfThreads(_RAII):
1832  r"""Proxy of C++ IMP::SetNumberOfThreads class."""
1833 
1834  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1835 
1836  def __init__(self, *args):
1837  r"""
1838  __init__(SetNumberOfThreads self) -> SetNumberOfThreads
1839  __init__(SetNumberOfThreads self, unsigned int n) -> SetNumberOfThreads
1840  """
1841  _IMP_kernel.SetNumberOfThreads_swiginit(self, _IMP_kernel.new_SetNumberOfThreads(*args))
1842 
1843  def set(self, n):
1844  r"""set(SetNumberOfThreads self, unsigned int n)"""
1845  return _IMP_kernel.SetNumberOfThreads_set(self, n)
1846 
1847  def reset(self):
1848  r"""reset(SetNumberOfThreads self)"""
1849  return _IMP_kernel.SetNumberOfThreads_reset(self)
1850  __swig_destroy__ = _IMP_kernel.delete_SetNumberOfThreads
1851 
1852  def show(self, *args):
1853  r"""show(SetNumberOfThreads self, _ostream out=std::cout)"""
1854  return _IMP_kernel.SetNumberOfThreads_show(self, *args)
1855 
1856  def __enter__(self):
1857  return self
1858  def __exit__(self, exc_type, exc_val, exc_tb):
1859  self.reset()
1860  return False
1861 
1862 
1863  def __str__(self):
1864  r"""__str__(SetNumberOfThreads self) -> std::string"""
1865  return _IMP_kernel.SetNumberOfThreads___str__(self)
1866 
1867  def __repr__(self):
1868  r"""__repr__(SetNumberOfThreads self) -> std::string"""
1869  return _IMP_kernel.SetNumberOfThreads___repr__(self)
1870 
1871 # Register SetNumberOfThreads in _IMP_kernel:
1872 _IMP_kernel.SetNumberOfThreads_swigregister(SetNumberOfThreads)
1873 
1874 import os
1875 i_m_p="IMP_MODULE_PATH"
1876 if i_m_p in os.environ.keys():
1877  __path__.insert(0, os.environ[i_m_p])
1878 
1879 def _forward_add_attribute(self, name, value, opt=None):
1880  if opt is not None:
1881  self.get_particle().add_attribute(name, value, opt)
1882  else:
1883  self.get_particle().add_attribute(name, value)
1884 def _forward_get_value(self, name):
1885  self.get_particle().get_value(name)
1886 def _forward_set_value(self, name, value):
1887  self.get_particle().set_value(name, value)
1888 
1889 
1890 build="release"
1891 
1892 
1893 _object_types.append("Constraint")
1894 
1895 
1896 def _object_cast_to_Constraint(o):
1897  r"""_object_cast_to_Constraint(Object o) -> Constraint"""
1898  return _IMP_kernel._object_cast_to_Constraint(o)
1899 
1900 _object_types.append("Undecorator")
1901 
1902 
1903 def _object_cast_to_Undecorator(o):
1904  r"""_object_cast_to_Undecorator(Object o) -> Undecorator"""
1905  return _IMP_kernel._object_cast_to_Undecorator(o)
1906 
1907 _object_types.append("Container")
1908 
1909 
1910 def _object_cast_to_Container(o):
1911  r"""_object_cast_to_Container(Object o) -> Container"""
1912  return _IMP_kernel._object_cast_to_Container(o)
1913 
1914 _object_types.append("Optimizer")
1915 
1916 
1917 def _object_cast_to_Optimizer(o):
1918  r"""_object_cast_to_Optimizer(Object o) -> Optimizer"""
1919  return _IMP_kernel._object_cast_to_Optimizer(o)
1920 
1921 _object_types.append("AttributeOptimizer")
1922 
1923 
1924 def _object_cast_to_AttributeOptimizer(o):
1925  r"""_object_cast_to_AttributeOptimizer(Object o) -> AttributeOptimizer"""
1926  return _IMP_kernel._object_cast_to_AttributeOptimizer(o)
1927 
1928 _object_types.append("OptimizerState")
1929 
1930 
1931 def _object_cast_to_OptimizerState(o):
1932  r"""_object_cast_to_OptimizerState(Object o) -> OptimizerState"""
1933  return _IMP_kernel._object_cast_to_OptimizerState(o)
1934 
1935 _object_types.append("PairContainer")
1936 
1937 
1938 def _object_cast_to_PairContainer(o):
1939  r"""_object_cast_to_PairContainer(Object o) -> PairContainer"""
1940  return _IMP_kernel._object_cast_to_PairContainer(o)
1941 
1942 _object_types.append("PairModifier")
1943 
1944 
1945 def _object_cast_to_PairModifier(o):
1946  r"""_object_cast_to_PairModifier(Object o) -> PairModifier"""
1947  return _IMP_kernel._object_cast_to_PairModifier(o)
1948 
1949 _object_types.append("PairScore")
1950 
1951 
1952 def _object_cast_to_PairScore(o):
1953  r"""_object_cast_to_PairScore(Object o) -> PairScore"""
1954  return _IMP_kernel._object_cast_to_PairScore(o)
1955 
1956 _object_types.append("QuadContainer")
1957 
1958 
1959 def _object_cast_to_QuadContainer(o):
1960  r"""_object_cast_to_QuadContainer(Object o) -> QuadContainer"""
1961  return _IMP_kernel._object_cast_to_QuadContainer(o)
1962 
1963 _object_types.append("QuadModifier")
1964 
1965 
1966 def _object_cast_to_QuadModifier(o):
1967  r"""_object_cast_to_QuadModifier(Object o) -> QuadModifier"""
1968  return _IMP_kernel._object_cast_to_QuadModifier(o)
1969 
1970 _object_types.append("QuadScore")
1971 
1972 
1973 def _object_cast_to_QuadScore(o):
1974  r"""_object_cast_to_QuadScore(Object o) -> QuadScore"""
1975  return _IMP_kernel._object_cast_to_QuadScore(o)
1976 
1977 _object_types.append("Refiner")
1978 
1979 
1980 def _object_cast_to_Refiner(o):
1981  r"""_object_cast_to_Refiner(Object o) -> Refiner"""
1982  return _IMP_kernel._object_cast_to_Refiner(o)
1983 
1984 _object_types.append("Restraint")
1985 
1986 
1987 def _object_cast_to_Restraint(o):
1988  r"""_object_cast_to_Restraint(Object o) -> Restraint"""
1989  return _IMP_kernel._object_cast_to_Restraint(o)
1990 
1991 _object_types.append("Sampler")
1992 
1993 
1994 def _object_cast_to_Sampler(o):
1995  r"""_object_cast_to_Sampler(Object o) -> Sampler"""
1996  return _IMP_kernel._object_cast_to_Sampler(o)
1997 
1998 _object_types.append("ScoreState")
1999 
2000 
2001 def _object_cast_to_ScoreState(o):
2002  r"""_object_cast_to_ScoreState(Object o) -> ScoreState"""
2003  return _IMP_kernel._object_cast_to_ScoreState(o)
2004 
2005 _object_types.append("SingletonContainer")
2006 
2007 
2008 def _object_cast_to_SingletonContainer(o):
2009  r"""_object_cast_to_SingletonContainer(Object o) -> SingletonContainer"""
2010  return _IMP_kernel._object_cast_to_SingletonContainer(o)
2011 
2012 _object_types.append("SingletonModifier")
2013 
2014 
2015 def _object_cast_to_SingletonModifier(o):
2016  r"""_object_cast_to_SingletonModifier(Object o) -> SingletonModifier"""
2017  return _IMP_kernel._object_cast_to_SingletonModifier(o)
2018 
2019 _object_types.append("SingletonScore")
2020 
2021 
2022 def _object_cast_to_SingletonScore(o):
2023  r"""_object_cast_to_SingletonScore(Object o) -> SingletonScore"""
2024  return _IMP_kernel._object_cast_to_SingletonScore(o)
2025 
2026 _object_types.append("TripletContainer")
2027 
2028 
2029 def _object_cast_to_TripletContainer(o):
2030  r"""_object_cast_to_TripletContainer(Object o) -> TripletContainer"""
2031  return _IMP_kernel._object_cast_to_TripletContainer(o)
2032 
2033 _object_types.append("TripletModifier")
2034 
2035 
2036 def _object_cast_to_TripletModifier(o):
2037  r"""_object_cast_to_TripletModifier(Object o) -> TripletModifier"""
2038  return _IMP_kernel._object_cast_to_TripletModifier(o)
2039 
2040 _object_types.append("TripletScore")
2041 
2042 
2043 def _object_cast_to_TripletScore(o):
2044  r"""_object_cast_to_TripletScore(Object o) -> TripletScore"""
2045  return _IMP_kernel._object_cast_to_TripletScore(o)
2046 
2047 _object_types.append("UnaryFunction")
2048 
2049 
2050 def _object_cast_to_UnaryFunction(o):
2051  r"""_object_cast_to_UnaryFunction(Object o) -> UnaryFunction"""
2052  return _IMP_kernel._object_cast_to_UnaryFunction(o)
2053 
2054 _object_types.append("RestraintInfo")
2055 
2056 
2057 def _object_cast_to_RestraintInfo(o):
2058  r"""_object_cast_to_RestraintInfo(Object o) -> RestraintInfo"""
2059  return _IMP_kernel._object_cast_to_RestraintInfo(o)
2060 
2061 _object_types.append("ConfigurationSet")
2062 
2063 
2064 def _object_cast_to_ConfigurationSet(o):
2065  r"""_object_cast_to_ConfigurationSet(Object o) -> ConfigurationSet"""
2066  return _IMP_kernel._object_cast_to_ConfigurationSet(o)
2067 
2068 _object_types.append("Configuration")
2069 
2070 
2071 def _object_cast_to_Configuration(o):
2072  r"""_object_cast_to_Configuration(Object o) -> Configuration"""
2073  return _IMP_kernel._object_cast_to_Configuration(o)
2074 
2075 _object_types.append("Model")
2076 
2077 
2078 def _object_cast_to_Model(o):
2079  r"""_object_cast_to_Model(Object o) -> Model"""
2080  return _IMP_kernel._object_cast_to_Model(o)
2081 
2082 _object_types.append("Particle")
2083 
2084 
2085 def _object_cast_to_Particle(o):
2086  r"""_object_cast_to_Particle(Object o) -> Particle"""
2087  return _IMP_kernel._object_cast_to_Particle(o)
2088 
2089 _object_types.append("RestraintSet")
2090 
2091 
2092 def _object_cast_to_RestraintSet(o):
2093  r"""_object_cast_to_RestraintSet(Object o) -> RestraintSet"""
2094  return _IMP_kernel._object_cast_to_RestraintSet(o)
2095 
2096 ParticlePairsTemp=list
2097 _plural_types.append("ParticlePairsTemp")
2098 _value_types.append("ParticlePair")
2099 
2100 
2101 ParticleTripletsTemp=list
2102 _plural_types.append("ParticleTripletsTemp")
2103 _value_types.append("ParticleTriplet")
2104 
2105 
2106 ParticleQuadsTemp=list
2107 _plural_types.append("ParticleQuadsTemp")
2108 _value_types.append("ParticleQuad")
2109 
2110 
2111 ParticleIndexPairs=list
2112 _plural_types.append("ParticleIndexPairs")
2113 _value_types.append("ParticleIndexPair")
2114 
2115 
2116 ParticleIndexTriplets=list
2117 _plural_types.append("ParticleIndexTriplets")
2118 _value_types.append("ParticleIndexTriplet")
2119 
2120 
2121 ParticleIndexQuads=list
2122 _plural_types.append("ParticleIndexQuads")
2123 _value_types.append("ParticleIndexQuad")
2124 
2125 
2126 _object_types.append("SingletonPredicate")
2127 
2128 
2129 def _object_cast_to_SingletonPredicate(o):
2130  r"""_object_cast_to_SingletonPredicate(Object o) -> SingletonPredicate"""
2131  return _IMP_kernel._object_cast_to_SingletonPredicate(o)
2132 
2133 _object_types.append("PairPredicate")
2134 
2135 
2136 def _object_cast_to_PairPredicate(o):
2137  r"""_object_cast_to_PairPredicate(Object o) -> PairPredicate"""
2138  return _IMP_kernel._object_cast_to_PairPredicate(o)
2139 
2140 _object_types.append("TripletPredicate")
2141 
2142 
2143 def _object_cast_to_TripletPredicate(o):
2144  r"""_object_cast_to_TripletPredicate(Object o) -> TripletPredicate"""
2145  return _IMP_kernel._object_cast_to_TripletPredicate(o)
2146 
2147 _object_types.append("QuadPredicate")
2148 
2149 
2150 def _object_cast_to_QuadPredicate(o):
2151  r"""_object_cast_to_QuadPredicate(Object o) -> QuadPredicate"""
2152  return _IMP_kernel._object_cast_to_QuadPredicate(o)
2153 
2154 _object_types.append("SaveToConfigurationSetOptimizerState")
2155 
2156 
2157 def _object_cast_to_SaveToConfigurationSetOptimizerState(o):
2158  r"""_object_cast_to_SaveToConfigurationSetOptimizerState(Object o) -> SaveToConfigurationSetOptimizerState"""
2159  return _IMP_kernel._object_cast_to_SaveToConfigurationSetOptimizerState(o)
2160 
2161 EvaluationStates=list
2162 _plural_types.append("EvaluationStates")
2163 _value_types.append("EvaluationState")
2164 
2165 
2166 ScoreAccumulators=list
2167 _plural_types.append("ScoreAccumulators")
2168 _value_types.append("ScoreAccumulator")
2169 
2170 
2171 ParticleIndexes=list
2172 _plural_types.append("ParticleIndexes")
2173 _value_types.append("ParticleIndex")
2174 
2175 
2176 FloatIndexes=list
2177 _plural_types.append("FloatIndexes")
2178 _value_types.append("FloatIndex")
2179 
2180 
2181 FloatKeys=list
2182 _plural_types.append("FloatKeys")
2183 _value_types.append("FloatKey")
2184 
2185 
2186 FloatsKeys=list
2187 _plural_types.append("FloatsKeys")
2188 _value_types.append("FloatsKey")
2189 
2190 
2191 IntKeys=list
2192 _plural_types.append("IntKeys")
2193 _value_types.append("IntKey")
2194 
2195 
2196 IntsKeys=list
2197 _plural_types.append("IntsKeys")
2198 _value_types.append("IntsKey")
2199 
2200 
2201 StringKeys=list
2202 _plural_types.append("StringKeys")
2203 _value_types.append("StringKey")
2204 
2205 
2206 ParticleIndexKeys=list
2207 _plural_types.append("ParticleIndexKeys")
2208 _value_types.append("ParticleIndexKey")
2209 
2210 
2211 ParticleIndexesKeys=list
2212 _plural_types.append("ParticleIndexesKeys")
2213 _value_types.append("ParticleIndexesKey")
2214 
2215 
2216 ObjectKeys=list
2217 _plural_types.append("ObjectKeys")
2218 _value_types.append("ObjectKey")
2219 
2220 
2221 ModelKeys=list
2222 _plural_types.append("ModelKeys")
2223 _value_types.append("ModelKey")
2224 
2225 
2226 TriggerKeys=list
2227 _plural_types.append("TriggerKeys")
2228 _value_types.append("TriggerKey")
2229 
2230 
2231 SparseFloatKeys=list
2232 _plural_types.append("SparseFloatKeys")
2233 _value_types.append("SparseFloatKey")
2234 
2235 
2236 SparseIntKeys=list
2237 _plural_types.append("SparseIntKeys")
2238 _value_types.append("SparseIntKey")
2239 
2240 
2241 SparseStringKeys=list
2242 _plural_types.append("SparseStringKeys")
2243 _value_types.append("SparseStringKey")
2244 
2245 
2246 SparseParticleIndexKeys=list
2247 _plural_types.append("SparseParticleIndexKeys")
2248 _value_types.append("SparseParticleIndexKey")
2249 
2250 
2251 Vector3DKeys=list
2252 _plural_types.append("Vector3DKeys")
2253 _value_types.append("Vector3DKey")
2254 
2255 
2256 Vector4DKeys=list
2257 _plural_types.append("Vector4DKeys")
2258 _value_types.append("Vector4DKey")
2259 
2260 
2261 Vector3DDerivKeys=list
2262 _plural_types.append("Vector3DDerivKeys")
2263 _value_types.append("Vector3DDerivKey")
2264 
2265 
2266 Vector4DDerivKeys=list
2267 _plural_types.append("Vector4DDerivKeys")
2268 _value_types.append("Vector4DDerivKey")
2269 
2270 
2271 _raii_types.append("ScopedSetFloatAttribute")
2272 
2273 
2274 _object_types.append("ScoringFunction")
2275 
2276 
2277 def _object_cast_to_ScoringFunction(o):
2278  r"""_object_cast_to_ScoringFunction(Object o) -> ScoringFunction"""
2279  return _IMP_kernel._object_cast_to_ScoringFunction(o)
2280 
2281 _object_types.append("ModelObject")
2282 
2283 
2284 def _object_cast_to_ModelObject(o):
2285  r"""_object_cast_to_ModelObject(Object o) -> ModelObject"""
2286  return _IMP_kernel._object_cast_to_ModelObject(o)
2287 
2288 _object_types.append("_RestraintsScoringFunction")
2289 
2290 
2291 def _object_cast_to__RestraintsScoringFunction(o):
2292  r"""_object_cast_to__RestraintsScoringFunction(Object o) -> _RestraintsScoringFunction"""
2293  return _IMP_kernel._object_cast_to__RestraintsScoringFunction(o)
2294 
2295 def _TrivialDecorators(l=[]):
2296  return [_TrivialDecorator(x) for x in l]
2297 _plural_types.append("_TrivialDecorators")
2298 
2299 
2300 _value_types.append("_TrivialDecorator")
2301 
2302 
2303 def _TrivialDerivedDecorators(l=[]):
2304  return [_TrivialDerivedDecorator(x) for x in l]
2305 _plural_types.append("_TrivialDerivedDecorators")
2306 
2307 
2308 _value_types.append("_TrivialDerivedDecorator")
2309 
2310 
2311 def _TrivialTraitsDecorators(l=[]):
2312  return [_TrivialTraitsDecorator(x) for x in l]
2313 _plural_types.append("_TrivialTraitsDecorators")
2314 
2315 
2316 _value_types.append("_TrivialTraitsDecorator")
2317 
2318 
2319 _object_types.append("_ConstRestraint")
2320 
2321 
2322 def _object_cast_to__ConstRestraint(o):
2323  r"""_object_cast_to__ConstRestraint(Object o) -> _ConstRestraint"""
2324  return _IMP_kernel._object_cast_to__ConstRestraint(o)
2325 
2326 _object_types.append("_ConstOptimizer")
2327 
2328 
2329 def _object_cast_to__ConstOptimizer(o):
2330  r"""_object_cast_to__ConstOptimizer(Object o) -> _ConstOptimizer"""
2331  return _IMP_kernel._object_cast_to__ConstOptimizer(o)
2332 
2333 _object_types.append("_ConstSingletonScore")
2334 
2335 
2336 def _object_cast_to__ConstSingletonScore(o):
2337  r"""_object_cast_to__ConstSingletonScore(Object o) -> _ConstSingletonScore"""
2338  return _IMP_kernel._object_cast_to__ConstSingletonScore(o)
2339 
2340 _object_types.append("_ConstPairScore")
2341 
2342 
2343 def _object_cast_to__ConstPairScore(o):
2344  r"""_object_cast_to__ConstPairScore(Object o) -> _ConstPairScore"""
2345  return _IMP_kernel._object_cast_to__ConstPairScore(o)
2346 class DependencyGraph(Object):
2347  r"""Proxy of C++ IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex > class."""
2348 
2349  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2350  __repr__ = _swig_repr
2351 
2352  def __init__(self):
2353  r"""__init__(DependencyGraph self) -> DependencyGraph"""
2354  _IMP_kernel.DependencyGraph_swiginit(self, _IMP_kernel.new_DependencyGraph())
2355 
2356  def get_graph(self):
2357  r"""get_graph(DependencyGraph self) -> IMP::DependencyGraph const &"""
2358  return _IMP_kernel.DependencyGraph_get_graph(self)
2359 
2360  def get_vertices(self):
2361  r"""get_vertices(DependencyGraph self) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
2362  return _IMP_kernel.DependencyGraph_get_vertices(self)
2363 
2364  def get_vertex_name(self, i):
2365  r"""get_vertex_name(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor i) -> ModelObject"""
2366  return _IMP_kernel.DependencyGraph_get_vertex_name(self, i)
2367 
2368  def get_in_neighbors(self, v):
2369  r"""get_in_neighbors(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
2370  return _IMP_kernel.DependencyGraph_get_in_neighbors(self, v)
2371 
2372  def get_out_neighbors(self, v):
2373  r"""get_out_neighbors(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
2374  return _IMP_kernel.DependencyGraph_get_out_neighbors(self, v)
2375 
2376  def show_graphviz(self, *args):
2377  r"""show_graphviz(DependencyGraph self, _ostream out=std::cout)"""
2378  return _IMP_kernel.DependencyGraph_show_graphviz(self, *args)
2379 
2380  def get_graphviz_string(self):
2381  r"""get_graphviz_string(DependencyGraph self) -> std::string"""
2382  return _IMP_kernel.DependencyGraph_get_graphviz_string(self)
2383 
2384  def add_edge(self, v0, v1):
2385  r"""add_edge(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v0, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor v1)"""
2386  return _IMP_kernel.DependencyGraph_add_edge(self, v0, v1)
2387 
2388  def add_vertex(self, l):
2389  r"""add_vertex(DependencyGraph self, ModelObject l) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor"""
2390  return _IMP_kernel.DependencyGraph_add_vertex(self, l)
2391 
2392  def remove_vertex(self, l):
2393  r"""remove_vertex(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor l)"""
2394  return _IMP_kernel.DependencyGraph_remove_vertex(self, l)
2395  __swig_destroy__ = _IMP_kernel.delete_DependencyGraph
2396 
2397 # Register DependencyGraph in _IMP_kernel:
2398 _IMP_kernel.DependencyGraph_swigregister(DependencyGraph)
2399 
2400 _value_types.append("DependencyGraph")
2401 
2402 class FloatKey(_Value):
2403  r"""Proxy of C++ IMP::Key< 0 > class."""
2404 
2405  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2406 
2407  def __init__(self, *args):
2408  r"""
2409  __init__(FloatKey self) -> FloatKey
2410  __init__(FloatKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatKey
2411  __init__(FloatKey self, unsigned int i) -> FloatKey
2412  """
2413  _IMP_kernel.FloatKey_swiginit(self, _IMP_kernel.new_FloatKey(*args))
2414 
2415  @staticmethod
2416  def add_key(sc):
2417  r"""add_key(std::string sc) -> unsigned int"""
2418  return _IMP_kernel.FloatKey_add_key(sc)
2419 
2420  @staticmethod
2421  def get_key_exists(sc):
2422  r"""get_key_exists(std::string sc) -> bool"""
2423  return _IMP_kernel.FloatKey_get_key_exists(sc)
2424 
2425  def get_string(self):
2426  r"""get_string(FloatKey self) -> std::string const"""
2427  return _IMP_kernel.FloatKey_get_string(self)
2428 
2429  def __cmp__(self, o):
2430  r"""__cmp__(FloatKey self, FloatKey o) -> int"""
2431  return _IMP_kernel.FloatKey___cmp__(self, o)
2432 
2433  def __eq__(self, o):
2434  r"""__eq__(FloatKey self, FloatKey o) -> bool"""
2435  return _IMP_kernel.FloatKey___eq__(self, o)
2436 
2437  def __ne__(self, o):
2438  r"""__ne__(FloatKey self, FloatKey o) -> bool"""
2439  return _IMP_kernel.FloatKey___ne__(self, o)
2440 
2441  def __lt__(self, o):
2442  r"""__lt__(FloatKey self, FloatKey o) -> bool"""
2443  return _IMP_kernel.FloatKey___lt__(self, o)
2444 
2445  def __gt__(self, o):
2446  r"""__gt__(FloatKey self, FloatKey o) -> bool"""
2447  return _IMP_kernel.FloatKey___gt__(self, o)
2448 
2449  def __ge__(self, o):
2450  r"""__ge__(FloatKey self, FloatKey o) -> bool"""
2451  return _IMP_kernel.FloatKey___ge__(self, o)
2452 
2453  def __le__(self, o):
2454  r"""__le__(FloatKey self, FloatKey o) -> bool"""
2455  return _IMP_kernel.FloatKey___le__(self, o)
2456 
2457  def __hash__(self):
2458  r"""__hash__(FloatKey self) -> std::size_t"""
2459  return _IMP_kernel.FloatKey___hash__(self)
2460 
2461  def show(self, *args):
2462  r"""show(FloatKey self, _ostream out=std::cout)"""
2463  return _IMP_kernel.FloatKey_show(self, *args)
2464 
2465  @staticmethod
2466  def add_alias(old_key, new_name):
2467  r"""add_alias(FloatKey old_key, std::string new_name) -> FloatKey"""
2468  return _IMP_kernel.FloatKey_add_alias(old_key, new_name)
2469 
2470  @staticmethod
2471  def get_number_of_keys():
2472  r"""get_number_of_keys() -> unsigned int"""
2473  return _IMP_kernel.FloatKey_get_number_of_keys()
2474 
2475  def get_index(self):
2476  r"""get_index(FloatKey self) -> unsigned int"""
2477  return _IMP_kernel.FloatKey_get_index(self)
2478 
2479  @staticmethod
2480  def show_all(out):
2481  r"""show_all(_ostream out)"""
2482  return _IMP_kernel.FloatKey_show_all(out)
2483 
2484  @staticmethod
2485  def get_all_strings():
2486  r"""get_all_strings() -> IMP::Vector< std::string >"""
2487  return _IMP_kernel.FloatKey_get_all_strings()
2488 
2489  @staticmethod
2490  def get_number_unique():
2491  r"""get_number_unique() -> unsigned int"""
2492  return _IMP_kernel.FloatKey_get_number_unique()
2493 
2494  def __str__(self):
2495  r"""__str__(FloatKey self) -> std::string"""
2496  return _IMP_kernel.FloatKey___str__(self)
2497 
2498  def __repr__(self):
2499  r"""__repr__(FloatKey self) -> std::string"""
2500  return _IMP_kernel.FloatKey___repr__(self)
2501  __swig_destroy__ = _IMP_kernel.delete_FloatKey
2502 
2503 # Register FloatKey in _IMP_kernel:
2504 _IMP_kernel.FloatKey_swigregister(FloatKey)
2505 class IntKey(_Value):
2506  r"""Proxy of C++ IMP::Key< 1 > class."""
2507 
2508  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2509 
2510  def __init__(self, *args):
2511  r"""
2512  __init__(IntKey self) -> IntKey
2513  __init__(IntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntKey
2514  __init__(IntKey self, unsigned int i) -> IntKey
2515  """
2516  _IMP_kernel.IntKey_swiginit(self, _IMP_kernel.new_IntKey(*args))
2517 
2518  @staticmethod
2519  def add_key(sc):
2520  r"""add_key(std::string sc) -> unsigned int"""
2521  return _IMP_kernel.IntKey_add_key(sc)
2522 
2523  @staticmethod
2524  def get_key_exists(sc):
2525  r"""get_key_exists(std::string sc) -> bool"""
2526  return _IMP_kernel.IntKey_get_key_exists(sc)
2527 
2528  def get_string(self):
2529  r"""get_string(IntKey self) -> std::string const"""
2530  return _IMP_kernel.IntKey_get_string(self)
2531 
2532  def __cmp__(self, o):
2533  r"""__cmp__(IntKey self, IntKey o) -> int"""
2534  return _IMP_kernel.IntKey___cmp__(self, o)
2535 
2536  def __eq__(self, o):
2537  r"""__eq__(IntKey self, IntKey o) -> bool"""
2538  return _IMP_kernel.IntKey___eq__(self, o)
2539 
2540  def __ne__(self, o):
2541  r"""__ne__(IntKey self, IntKey o) -> bool"""
2542  return _IMP_kernel.IntKey___ne__(self, o)
2543 
2544  def __lt__(self, o):
2545  r"""__lt__(IntKey self, IntKey o) -> bool"""
2546  return _IMP_kernel.IntKey___lt__(self, o)
2547 
2548  def __gt__(self, o):
2549  r"""__gt__(IntKey self, IntKey o) -> bool"""
2550  return _IMP_kernel.IntKey___gt__(self, o)
2551 
2552  def __ge__(self, o):
2553  r"""__ge__(IntKey self, IntKey o) -> bool"""
2554  return _IMP_kernel.IntKey___ge__(self, o)
2555 
2556  def __le__(self, o):
2557  r"""__le__(IntKey self, IntKey o) -> bool"""
2558  return _IMP_kernel.IntKey___le__(self, o)
2559 
2560  def __hash__(self):
2561  r"""__hash__(IntKey self) -> std::size_t"""
2562  return _IMP_kernel.IntKey___hash__(self)
2563 
2564  def show(self, *args):
2565  r"""show(IntKey self, _ostream out=std::cout)"""
2566  return _IMP_kernel.IntKey_show(self, *args)
2567 
2568  @staticmethod
2569  def add_alias(old_key, new_name):
2570  r"""add_alias(IntKey old_key, std::string new_name) -> IntKey"""
2571  return _IMP_kernel.IntKey_add_alias(old_key, new_name)
2572 
2573  @staticmethod
2574  def get_number_of_keys():
2575  r"""get_number_of_keys() -> unsigned int"""
2576  return _IMP_kernel.IntKey_get_number_of_keys()
2577 
2578  def get_index(self):
2579  r"""get_index(IntKey self) -> unsigned int"""
2580  return _IMP_kernel.IntKey_get_index(self)
2581 
2582  @staticmethod
2583  def show_all(out):
2584  r"""show_all(_ostream out)"""
2585  return _IMP_kernel.IntKey_show_all(out)
2586 
2587  @staticmethod
2588  def get_all_strings():
2589  r"""get_all_strings() -> IMP::Vector< std::string >"""
2590  return _IMP_kernel.IntKey_get_all_strings()
2591 
2592  @staticmethod
2593  def get_number_unique():
2594  r"""get_number_unique() -> unsigned int"""
2595  return _IMP_kernel.IntKey_get_number_unique()
2596 
2597  def __str__(self):
2598  r"""__str__(IntKey self) -> std::string"""
2599  return _IMP_kernel.IntKey___str__(self)
2600 
2601  def __repr__(self):
2602  r"""__repr__(IntKey self) -> std::string"""
2603  return _IMP_kernel.IntKey___repr__(self)
2604  __swig_destroy__ = _IMP_kernel.delete_IntKey
2605 
2606 # Register IntKey in _IMP_kernel:
2607 _IMP_kernel.IntKey_swigregister(IntKey)
2608 class StringKey(_Value):
2609  r"""Proxy of C++ IMP::Key< 2 > class."""
2610 
2611  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2612 
2613  def __init__(self, *args):
2614  r"""
2615  __init__(StringKey self) -> StringKey
2616  __init__(StringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> StringKey
2617  __init__(StringKey self, unsigned int i) -> StringKey
2618  """
2619  _IMP_kernel.StringKey_swiginit(self, _IMP_kernel.new_StringKey(*args))
2620 
2621  @staticmethod
2622  def add_key(sc):
2623  r"""add_key(std::string sc) -> unsigned int"""
2624  return _IMP_kernel.StringKey_add_key(sc)
2625 
2626  @staticmethod
2627  def get_key_exists(sc):
2628  r"""get_key_exists(std::string sc) -> bool"""
2629  return _IMP_kernel.StringKey_get_key_exists(sc)
2630 
2631  def get_string(self):
2632  r"""get_string(StringKey self) -> std::string const"""
2633  return _IMP_kernel.StringKey_get_string(self)
2634 
2635  def __cmp__(self, o):
2636  r"""__cmp__(StringKey self, StringKey o) -> int"""
2637  return _IMP_kernel.StringKey___cmp__(self, o)
2638 
2639  def __eq__(self, o):
2640  r"""__eq__(StringKey self, StringKey o) -> bool"""
2641  return _IMP_kernel.StringKey___eq__(self, o)
2642 
2643  def __ne__(self, o):
2644  r"""__ne__(StringKey self, StringKey o) -> bool"""
2645  return _IMP_kernel.StringKey___ne__(self, o)
2646 
2647  def __lt__(self, o):
2648  r"""__lt__(StringKey self, StringKey o) -> bool"""
2649  return _IMP_kernel.StringKey___lt__(self, o)
2650 
2651  def __gt__(self, o):
2652  r"""__gt__(StringKey self, StringKey o) -> bool"""
2653  return _IMP_kernel.StringKey___gt__(self, o)
2654 
2655  def __ge__(self, o):
2656  r"""__ge__(StringKey self, StringKey o) -> bool"""
2657  return _IMP_kernel.StringKey___ge__(self, o)
2658 
2659  def __le__(self, o):
2660  r"""__le__(StringKey self, StringKey o) -> bool"""
2661  return _IMP_kernel.StringKey___le__(self, o)
2662 
2663  def __hash__(self):
2664  r"""__hash__(StringKey self) -> std::size_t"""
2665  return _IMP_kernel.StringKey___hash__(self)
2666 
2667  def show(self, *args):
2668  r"""show(StringKey self, _ostream out=std::cout)"""
2669  return _IMP_kernel.StringKey_show(self, *args)
2670 
2671  @staticmethod
2672  def add_alias(old_key, new_name):
2673  r"""add_alias(StringKey old_key, std::string new_name) -> StringKey"""
2674  return _IMP_kernel.StringKey_add_alias(old_key, new_name)
2675 
2676  @staticmethod
2677  def get_number_of_keys():
2678  r"""get_number_of_keys() -> unsigned int"""
2679  return _IMP_kernel.StringKey_get_number_of_keys()
2680 
2681  def get_index(self):
2682  r"""get_index(StringKey self) -> unsigned int"""
2683  return _IMP_kernel.StringKey_get_index(self)
2684 
2685  @staticmethod
2686  def show_all(out):
2687  r"""show_all(_ostream out)"""
2688  return _IMP_kernel.StringKey_show_all(out)
2689 
2690  @staticmethod
2691  def get_all_strings():
2692  r"""get_all_strings() -> IMP::Vector< std::string >"""
2693  return _IMP_kernel.StringKey_get_all_strings()
2694 
2695  @staticmethod
2696  def get_number_unique():
2697  r"""get_number_unique() -> unsigned int"""
2698  return _IMP_kernel.StringKey_get_number_unique()
2699 
2700  def __str__(self):
2701  r"""__str__(StringKey self) -> std::string"""
2702  return _IMP_kernel.StringKey___str__(self)
2703 
2704  def __repr__(self):
2705  r"""__repr__(StringKey self) -> std::string"""
2706  return _IMP_kernel.StringKey___repr__(self)
2707  __swig_destroy__ = _IMP_kernel.delete_StringKey
2708 
2709 # Register StringKey in _IMP_kernel:
2710 _IMP_kernel.StringKey_swigregister(StringKey)
2711 class ParticleIndexKey(_Value):
2712  r"""Proxy of C++ IMP::Key< 3 > class."""
2713 
2714  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2715 
2716  def __init__(self, *args):
2717  r"""
2718  __init__(ParticleIndexKey self) -> ParticleIndexKey
2719  __init__(ParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexKey
2720  __init__(ParticleIndexKey self, unsigned int i) -> ParticleIndexKey
2721  """
2722  _IMP_kernel.ParticleIndexKey_swiginit(self, _IMP_kernel.new_ParticleIndexKey(*args))
2723 
2724  @staticmethod
2725  def add_key(sc):
2726  r"""add_key(std::string sc) -> unsigned int"""
2727  return _IMP_kernel.ParticleIndexKey_add_key(sc)
2728 
2729  @staticmethod
2730  def get_key_exists(sc):
2731  r"""get_key_exists(std::string sc) -> bool"""
2732  return _IMP_kernel.ParticleIndexKey_get_key_exists(sc)
2733 
2734  def get_string(self):
2735  r"""get_string(ParticleIndexKey self) -> std::string const"""
2736  return _IMP_kernel.ParticleIndexKey_get_string(self)
2737 
2738  def __cmp__(self, o):
2739  r"""__cmp__(ParticleIndexKey self, ParticleIndexKey o) -> int"""
2740  return _IMP_kernel.ParticleIndexKey___cmp__(self, o)
2741 
2742  def __eq__(self, o):
2743  r"""__eq__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2744  return _IMP_kernel.ParticleIndexKey___eq__(self, o)
2745 
2746  def __ne__(self, o):
2747  r"""__ne__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2748  return _IMP_kernel.ParticleIndexKey___ne__(self, o)
2749 
2750  def __lt__(self, o):
2751  r"""__lt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2752  return _IMP_kernel.ParticleIndexKey___lt__(self, o)
2753 
2754  def __gt__(self, o):
2755  r"""__gt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2756  return _IMP_kernel.ParticleIndexKey___gt__(self, o)
2757 
2758  def __ge__(self, o):
2759  r"""__ge__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2760  return _IMP_kernel.ParticleIndexKey___ge__(self, o)
2761 
2762  def __le__(self, o):
2763  r"""__le__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2764  return _IMP_kernel.ParticleIndexKey___le__(self, o)
2765 
2766  def __hash__(self):
2767  r"""__hash__(ParticleIndexKey self) -> std::size_t"""
2768  return _IMP_kernel.ParticleIndexKey___hash__(self)
2769 
2770  def show(self, *args):
2771  r"""show(ParticleIndexKey self, _ostream out=std::cout)"""
2772  return _IMP_kernel.ParticleIndexKey_show(self, *args)
2773 
2774  @staticmethod
2775  def add_alias(old_key, new_name):
2776  r"""add_alias(ParticleIndexKey old_key, std::string new_name) -> ParticleIndexKey"""
2777  return _IMP_kernel.ParticleIndexKey_add_alias(old_key, new_name)
2778 
2779  @staticmethod
2780  def get_number_of_keys():
2781  r"""get_number_of_keys() -> unsigned int"""
2782  return _IMP_kernel.ParticleIndexKey_get_number_of_keys()
2783 
2784  def get_index(self):
2785  r"""get_index(ParticleIndexKey self) -> unsigned int"""
2786  return _IMP_kernel.ParticleIndexKey_get_index(self)
2787 
2788  @staticmethod
2789  def show_all(out):
2790  r"""show_all(_ostream out)"""
2791  return _IMP_kernel.ParticleIndexKey_show_all(out)
2792 
2793  @staticmethod
2794  def get_all_strings():
2795  r"""get_all_strings() -> IMP::Vector< std::string >"""
2796  return _IMP_kernel.ParticleIndexKey_get_all_strings()
2797 
2798  @staticmethod
2799  def get_number_unique():
2800  r"""get_number_unique() -> unsigned int"""
2801  return _IMP_kernel.ParticleIndexKey_get_number_unique()
2802 
2803  def __str__(self):
2804  r"""__str__(ParticleIndexKey self) -> std::string"""
2805  return _IMP_kernel.ParticleIndexKey___str__(self)
2806 
2807  def __repr__(self):
2808  r"""__repr__(ParticleIndexKey self) -> std::string"""
2809  return _IMP_kernel.ParticleIndexKey___repr__(self)
2810  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexKey
2811 
2812 # Register ParticleIndexKey in _IMP_kernel:
2813 _IMP_kernel.ParticleIndexKey_swigregister(ParticleIndexKey)
2814 class ObjectKey(_Value):
2815  r"""Proxy of C++ IMP::Key< 4 > class."""
2816 
2817  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2818 
2819  def __init__(self, *args):
2820  r"""
2821  __init__(ObjectKey self) -> ObjectKey
2822  __init__(ObjectKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ObjectKey
2823  __init__(ObjectKey self, unsigned int i) -> ObjectKey
2824  """
2825  _IMP_kernel.ObjectKey_swiginit(self, _IMP_kernel.new_ObjectKey(*args))
2826 
2827  @staticmethod
2828  def add_key(sc):
2829  r"""add_key(std::string sc) -> unsigned int"""
2830  return _IMP_kernel.ObjectKey_add_key(sc)
2831 
2832  @staticmethod
2833  def get_key_exists(sc):
2834  r"""get_key_exists(std::string sc) -> bool"""
2835  return _IMP_kernel.ObjectKey_get_key_exists(sc)
2836 
2837  def get_string(self):
2838  r"""get_string(ObjectKey self) -> std::string const"""
2839  return _IMP_kernel.ObjectKey_get_string(self)
2840 
2841  def __cmp__(self, o):
2842  r"""__cmp__(ObjectKey self, ObjectKey o) -> int"""
2843  return _IMP_kernel.ObjectKey___cmp__(self, o)
2844 
2845  def __eq__(self, o):
2846  r"""__eq__(ObjectKey self, ObjectKey o) -> bool"""
2847  return _IMP_kernel.ObjectKey___eq__(self, o)
2848 
2849  def __ne__(self, o):
2850  r"""__ne__(ObjectKey self, ObjectKey o) -> bool"""
2851  return _IMP_kernel.ObjectKey___ne__(self, o)
2852 
2853  def __lt__(self, o):
2854  r"""__lt__(ObjectKey self, ObjectKey o) -> bool"""
2855  return _IMP_kernel.ObjectKey___lt__(self, o)
2856 
2857  def __gt__(self, o):
2858  r"""__gt__(ObjectKey self, ObjectKey o) -> bool"""
2859  return _IMP_kernel.ObjectKey___gt__(self, o)
2860 
2861  def __ge__(self, o):
2862  r"""__ge__(ObjectKey self, ObjectKey o) -> bool"""
2863  return _IMP_kernel.ObjectKey___ge__(self, o)
2864 
2865  def __le__(self, o):
2866  r"""__le__(ObjectKey self, ObjectKey o) -> bool"""
2867  return _IMP_kernel.ObjectKey___le__(self, o)
2868 
2869  def __hash__(self):
2870  r"""__hash__(ObjectKey self) -> std::size_t"""
2871  return _IMP_kernel.ObjectKey___hash__(self)
2872 
2873  def show(self, *args):
2874  r"""show(ObjectKey self, _ostream out=std::cout)"""
2875  return _IMP_kernel.ObjectKey_show(self, *args)
2876 
2877  @staticmethod
2878  def add_alias(old_key, new_name):
2879  r"""add_alias(ObjectKey old_key, std::string new_name) -> ObjectKey"""
2880  return _IMP_kernel.ObjectKey_add_alias(old_key, new_name)
2881 
2882  @staticmethod
2883  def get_number_of_keys():
2884  r"""get_number_of_keys() -> unsigned int"""
2885  return _IMP_kernel.ObjectKey_get_number_of_keys()
2886 
2887  def get_index(self):
2888  r"""get_index(ObjectKey self) -> unsigned int"""
2889  return _IMP_kernel.ObjectKey_get_index(self)
2890 
2891  @staticmethod
2892  def show_all(out):
2893  r"""show_all(_ostream out)"""
2894  return _IMP_kernel.ObjectKey_show_all(out)
2895 
2896  @staticmethod
2897  def get_all_strings():
2898  r"""get_all_strings() -> IMP::Vector< std::string >"""
2899  return _IMP_kernel.ObjectKey_get_all_strings()
2900 
2901  @staticmethod
2902  def get_number_unique():
2903  r"""get_number_unique() -> unsigned int"""
2904  return _IMP_kernel.ObjectKey_get_number_unique()
2905 
2906  def __str__(self):
2907  r"""__str__(ObjectKey self) -> std::string"""
2908  return _IMP_kernel.ObjectKey___str__(self)
2909 
2910  def __repr__(self):
2911  r"""__repr__(ObjectKey self) -> std::string"""
2912  return _IMP_kernel.ObjectKey___repr__(self)
2913  __swig_destroy__ = _IMP_kernel.delete_ObjectKey
2914 
2915 # Register ObjectKey in _IMP_kernel:
2916 _IMP_kernel.ObjectKey_swigregister(ObjectKey)
2917 class IntsKey(_Value):
2918  r"""Proxy of C++ IMP::Key< 5 > class."""
2919 
2920  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2921 
2922  def __init__(self, *args):
2923  r"""
2924  __init__(IntsKey self) -> IntsKey
2925  __init__(IntsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntsKey
2926  __init__(IntsKey self, unsigned int i) -> IntsKey
2927  """
2928  _IMP_kernel.IntsKey_swiginit(self, _IMP_kernel.new_IntsKey(*args))
2929 
2930  @staticmethod
2931  def add_key(sc):
2932  r"""add_key(std::string sc) -> unsigned int"""
2933  return _IMP_kernel.IntsKey_add_key(sc)
2934 
2935  @staticmethod
2936  def get_key_exists(sc):
2937  r"""get_key_exists(std::string sc) -> bool"""
2938  return _IMP_kernel.IntsKey_get_key_exists(sc)
2939 
2940  def get_string(self):
2941  r"""get_string(IntsKey self) -> std::string const"""
2942  return _IMP_kernel.IntsKey_get_string(self)
2943 
2944  def __cmp__(self, o):
2945  r"""__cmp__(IntsKey self, IntsKey o) -> int"""
2946  return _IMP_kernel.IntsKey___cmp__(self, o)
2947 
2948  def __eq__(self, o):
2949  r"""__eq__(IntsKey self, IntsKey o) -> bool"""
2950  return _IMP_kernel.IntsKey___eq__(self, o)
2951 
2952  def __ne__(self, o):
2953  r"""__ne__(IntsKey self, IntsKey o) -> bool"""
2954  return _IMP_kernel.IntsKey___ne__(self, o)
2955 
2956  def __lt__(self, o):
2957  r"""__lt__(IntsKey self, IntsKey o) -> bool"""
2958  return _IMP_kernel.IntsKey___lt__(self, o)
2959 
2960  def __gt__(self, o):
2961  r"""__gt__(IntsKey self, IntsKey o) -> bool"""
2962  return _IMP_kernel.IntsKey___gt__(self, o)
2963 
2964  def __ge__(self, o):
2965  r"""__ge__(IntsKey self, IntsKey o) -> bool"""
2966  return _IMP_kernel.IntsKey___ge__(self, o)
2967 
2968  def __le__(self, o):
2969  r"""__le__(IntsKey self, IntsKey o) -> bool"""
2970  return _IMP_kernel.IntsKey___le__(self, o)
2971 
2972  def __hash__(self):
2973  r"""__hash__(IntsKey self) -> std::size_t"""
2974  return _IMP_kernel.IntsKey___hash__(self)
2975 
2976  def show(self, *args):
2977  r"""show(IntsKey self, _ostream out=std::cout)"""
2978  return _IMP_kernel.IntsKey_show(self, *args)
2979 
2980  @staticmethod
2981  def add_alias(old_key, new_name):
2982  r"""add_alias(IntsKey old_key, std::string new_name) -> IntsKey"""
2983  return _IMP_kernel.IntsKey_add_alias(old_key, new_name)
2984 
2985  @staticmethod
2986  def get_number_of_keys():
2987  r"""get_number_of_keys() -> unsigned int"""
2988  return _IMP_kernel.IntsKey_get_number_of_keys()
2989 
2990  def get_index(self):
2991  r"""get_index(IntsKey self) -> unsigned int"""
2992  return _IMP_kernel.IntsKey_get_index(self)
2993 
2994  @staticmethod
2995  def show_all(out):
2996  r"""show_all(_ostream out)"""
2997  return _IMP_kernel.IntsKey_show_all(out)
2998 
2999  @staticmethod
3000  def get_all_strings():
3001  r"""get_all_strings() -> IMP::Vector< std::string >"""
3002  return _IMP_kernel.IntsKey_get_all_strings()
3003 
3004  @staticmethod
3005  def get_number_unique():
3006  r"""get_number_unique() -> unsigned int"""
3007  return _IMP_kernel.IntsKey_get_number_unique()
3008 
3009  def __str__(self):
3010  r"""__str__(IntsKey self) -> std::string"""
3011  return _IMP_kernel.IntsKey___str__(self)
3012 
3013  def __repr__(self):
3014  r"""__repr__(IntsKey self) -> std::string"""
3015  return _IMP_kernel.IntsKey___repr__(self)
3016  __swig_destroy__ = _IMP_kernel.delete_IntsKey
3017 
3018 # Register IntsKey in _IMP_kernel:
3019 _IMP_kernel.IntsKey_swigregister(IntsKey)
3020 class ParticleIndexesKey(_Value):
3021  r"""Proxy of C++ IMP::Key< 6 > class."""
3022 
3023  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3024 
3025  def __init__(self, *args):
3026  r"""
3027  __init__(ParticleIndexesKey self) -> ParticleIndexesKey
3028  __init__(ParticleIndexesKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexesKey
3029  __init__(ParticleIndexesKey self, unsigned int i) -> ParticleIndexesKey
3030  """
3031  _IMP_kernel.ParticleIndexesKey_swiginit(self, _IMP_kernel.new_ParticleIndexesKey(*args))
3032 
3033  @staticmethod
3034  def add_key(sc):
3035  r"""add_key(std::string sc) -> unsigned int"""
3036  return _IMP_kernel.ParticleIndexesKey_add_key(sc)
3037 
3038  @staticmethod
3039  def get_key_exists(sc):
3040  r"""get_key_exists(std::string sc) -> bool"""
3041  return _IMP_kernel.ParticleIndexesKey_get_key_exists(sc)
3042 
3043  def get_string(self):
3044  r"""get_string(ParticleIndexesKey self) -> std::string const"""
3045  return _IMP_kernel.ParticleIndexesKey_get_string(self)
3046 
3047  def __cmp__(self, o):
3048  r"""__cmp__(ParticleIndexesKey self, ParticleIndexesKey o) -> int"""
3049  return _IMP_kernel.ParticleIndexesKey___cmp__(self, o)
3050 
3051  def __eq__(self, o):
3052  r"""__eq__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3053  return _IMP_kernel.ParticleIndexesKey___eq__(self, o)
3054 
3055  def __ne__(self, o):
3056  r"""__ne__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3057  return _IMP_kernel.ParticleIndexesKey___ne__(self, o)
3058 
3059  def __lt__(self, o):
3060  r"""__lt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3061  return _IMP_kernel.ParticleIndexesKey___lt__(self, o)
3062 
3063  def __gt__(self, o):
3064  r"""__gt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3065  return _IMP_kernel.ParticleIndexesKey___gt__(self, o)
3066 
3067  def __ge__(self, o):
3068  r"""__ge__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3069  return _IMP_kernel.ParticleIndexesKey___ge__(self, o)
3070 
3071  def __le__(self, o):
3072  r"""__le__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3073  return _IMP_kernel.ParticleIndexesKey___le__(self, o)
3074 
3075  def __hash__(self):
3076  r"""__hash__(ParticleIndexesKey self) -> std::size_t"""
3077  return _IMP_kernel.ParticleIndexesKey___hash__(self)
3078 
3079  def show(self, *args):
3080  r"""show(ParticleIndexesKey self, _ostream out=std::cout)"""
3081  return _IMP_kernel.ParticleIndexesKey_show(self, *args)
3082 
3083  @staticmethod
3084  def add_alias(old_key, new_name):
3085  r"""add_alias(ParticleIndexesKey old_key, std::string new_name) -> ParticleIndexesKey"""
3086  return _IMP_kernel.ParticleIndexesKey_add_alias(old_key, new_name)
3087 
3088  @staticmethod
3089  def get_number_of_keys():
3090  r"""get_number_of_keys() -> unsigned int"""
3091  return _IMP_kernel.ParticleIndexesKey_get_number_of_keys()
3092 
3093  def get_index(self):
3094  r"""get_index(ParticleIndexesKey self) -> unsigned int"""
3095  return _IMP_kernel.ParticleIndexesKey_get_index(self)
3096 
3097  @staticmethod
3098  def show_all(out):
3099  r"""show_all(_ostream out)"""
3100  return _IMP_kernel.ParticleIndexesKey_show_all(out)
3101 
3102  @staticmethod
3103  def get_all_strings():
3104  r"""get_all_strings() -> IMP::Vector< std::string >"""
3105  return _IMP_kernel.ParticleIndexesKey_get_all_strings()
3106 
3107  @staticmethod
3108  def get_number_unique():
3109  r"""get_number_unique() -> unsigned int"""
3110  return _IMP_kernel.ParticleIndexesKey_get_number_unique()
3111 
3112  def __str__(self):
3113  r"""__str__(ParticleIndexesKey self) -> std::string"""
3114  return _IMP_kernel.ParticleIndexesKey___str__(self)
3115 
3116  def __repr__(self):
3117  r"""__repr__(ParticleIndexesKey self) -> std::string"""
3118  return _IMP_kernel.ParticleIndexesKey___repr__(self)
3119  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexesKey
3120 
3121 # Register ParticleIndexesKey in _IMP_kernel:
3122 _IMP_kernel.ParticleIndexesKey_swigregister(ParticleIndexesKey)
3123 class ModelKey(_Value):
3124  r"""Proxy of C++ IMP::Key< 8 > class."""
3125 
3126  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3127 
3128  def __init__(self, *args):
3129  r"""
3130  __init__(ModelKey self) -> ModelKey
3131  __init__(ModelKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ModelKey
3132  __init__(ModelKey self, unsigned int i) -> ModelKey
3133  """
3134  _IMP_kernel.ModelKey_swiginit(self, _IMP_kernel.new_ModelKey(*args))
3135 
3136  @staticmethod
3137  def add_key(sc):
3138  r"""add_key(std::string sc) -> unsigned int"""
3139  return _IMP_kernel.ModelKey_add_key(sc)
3140 
3141  @staticmethod
3142  def get_key_exists(sc):
3143  r"""get_key_exists(std::string sc) -> bool"""
3144  return _IMP_kernel.ModelKey_get_key_exists(sc)
3145 
3146  def get_string(self):
3147  r"""get_string(ModelKey self) -> std::string const"""
3148  return _IMP_kernel.ModelKey_get_string(self)
3149 
3150  def __cmp__(self, o):
3151  r"""__cmp__(ModelKey self, ModelKey o) -> int"""
3152  return _IMP_kernel.ModelKey___cmp__(self, o)
3153 
3154  def __eq__(self, o):
3155  r"""__eq__(ModelKey self, ModelKey o) -> bool"""
3156  return _IMP_kernel.ModelKey___eq__(self, o)
3157 
3158  def __ne__(self, o):
3159  r"""__ne__(ModelKey self, ModelKey o) -> bool"""
3160  return _IMP_kernel.ModelKey___ne__(self, o)
3161 
3162  def __lt__(self, o):
3163  r"""__lt__(ModelKey self, ModelKey o) -> bool"""
3164  return _IMP_kernel.ModelKey___lt__(self, o)
3165 
3166  def __gt__(self, o):
3167  r"""__gt__(ModelKey self, ModelKey o) -> bool"""
3168  return _IMP_kernel.ModelKey___gt__(self, o)
3169 
3170  def __ge__(self, o):
3171  r"""__ge__(ModelKey self, ModelKey o) -> bool"""
3172  return _IMP_kernel.ModelKey___ge__(self, o)
3173 
3174  def __le__(self, o):
3175  r"""__le__(ModelKey self, ModelKey o) -> bool"""
3176  return _IMP_kernel.ModelKey___le__(self, o)
3177 
3178  def __hash__(self):
3179  r"""__hash__(ModelKey self) -> std::size_t"""
3180  return _IMP_kernel.ModelKey___hash__(self)
3181 
3182  def show(self, *args):
3183  r"""show(ModelKey self, _ostream out=std::cout)"""
3184  return _IMP_kernel.ModelKey_show(self, *args)
3185 
3186  @staticmethod
3187  def add_alias(old_key, new_name):
3188  r"""add_alias(ModelKey old_key, std::string new_name) -> ModelKey"""
3189  return _IMP_kernel.ModelKey_add_alias(old_key, new_name)
3190 
3191  @staticmethod
3192  def get_number_of_keys():
3193  r"""get_number_of_keys() -> unsigned int"""
3194  return _IMP_kernel.ModelKey_get_number_of_keys()
3195 
3196  def get_index(self):
3197  r"""get_index(ModelKey self) -> unsigned int"""
3198  return _IMP_kernel.ModelKey_get_index(self)
3199 
3200  @staticmethod
3201  def show_all(out):
3202  r"""show_all(_ostream out)"""
3203  return _IMP_kernel.ModelKey_show_all(out)
3204 
3205  @staticmethod
3206  def get_all_strings():
3207  r"""get_all_strings() -> IMP::Vector< std::string >"""
3208  return _IMP_kernel.ModelKey_get_all_strings()
3209 
3210  @staticmethod
3211  def get_number_unique():
3212  r"""get_number_unique() -> unsigned int"""
3213  return _IMP_kernel.ModelKey_get_number_unique()
3214 
3215  def __str__(self):
3216  r"""__str__(ModelKey self) -> std::string"""
3217  return _IMP_kernel.ModelKey___str__(self)
3218 
3219  def __repr__(self):
3220  r"""__repr__(ModelKey self) -> std::string"""
3221  return _IMP_kernel.ModelKey___repr__(self)
3222  __swig_destroy__ = _IMP_kernel.delete_ModelKey
3223 
3224 # Register ModelKey in _IMP_kernel:
3225 _IMP_kernel.ModelKey_swigregister(ModelKey)
3226 class TriggerKey(_Value):
3227  r"""Proxy of C++ IMP::Key< 11 > class."""
3228 
3229  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3230 
3231  def __init__(self, *args):
3232  r"""
3233  __init__(TriggerKey self) -> TriggerKey
3234  __init__(TriggerKey self, std::string const & c, bool is_implicit_add_permitted=True) -> TriggerKey
3235  __init__(TriggerKey self, unsigned int i) -> TriggerKey
3236  """
3237  _IMP_kernel.TriggerKey_swiginit(self, _IMP_kernel.new_TriggerKey(*args))
3238 
3239  @staticmethod
3240  def add_key(sc):
3241  r"""add_key(std::string sc) -> unsigned int"""
3242  return _IMP_kernel.TriggerKey_add_key(sc)
3243 
3244  @staticmethod
3245  def get_key_exists(sc):
3246  r"""get_key_exists(std::string sc) -> bool"""
3247  return _IMP_kernel.TriggerKey_get_key_exists(sc)
3248 
3249  def get_string(self):
3250  r"""get_string(TriggerKey self) -> std::string const"""
3251  return _IMP_kernel.TriggerKey_get_string(self)
3252 
3253  def __cmp__(self, o):
3254  r"""__cmp__(TriggerKey self, TriggerKey o) -> int"""
3255  return _IMP_kernel.TriggerKey___cmp__(self, o)
3256 
3257  def __eq__(self, o):
3258  r"""__eq__(TriggerKey self, TriggerKey o) -> bool"""
3259  return _IMP_kernel.TriggerKey___eq__(self, o)
3260 
3261  def __ne__(self, o):
3262  r"""__ne__(TriggerKey self, TriggerKey o) -> bool"""
3263  return _IMP_kernel.TriggerKey___ne__(self, o)
3264 
3265  def __lt__(self, o):
3266  r"""__lt__(TriggerKey self, TriggerKey o) -> bool"""
3267  return _IMP_kernel.TriggerKey___lt__(self, o)
3268 
3269  def __gt__(self, o):
3270  r"""__gt__(TriggerKey self, TriggerKey o) -> bool"""
3271  return _IMP_kernel.TriggerKey___gt__(self, o)
3272 
3273  def __ge__(self, o):
3274  r"""__ge__(TriggerKey self, TriggerKey o) -> bool"""
3275  return _IMP_kernel.TriggerKey___ge__(self, o)
3276 
3277  def __le__(self, o):
3278  r"""__le__(TriggerKey self, TriggerKey o) -> bool"""
3279  return _IMP_kernel.TriggerKey___le__(self, o)
3280 
3281  def __hash__(self):
3282  r"""__hash__(TriggerKey self) -> std::size_t"""
3283  return _IMP_kernel.TriggerKey___hash__(self)
3284 
3285  def show(self, *args):
3286  r"""show(TriggerKey self, _ostream out=std::cout)"""
3287  return _IMP_kernel.TriggerKey_show(self, *args)
3288 
3289  @staticmethod
3290  def add_alias(old_key, new_name):
3291  r"""add_alias(TriggerKey old_key, std::string new_name) -> TriggerKey"""
3292  return _IMP_kernel.TriggerKey_add_alias(old_key, new_name)
3293 
3294  @staticmethod
3295  def get_number_of_keys():
3296  r"""get_number_of_keys() -> unsigned int"""
3297  return _IMP_kernel.TriggerKey_get_number_of_keys()
3298 
3299  def get_index(self):
3300  r"""get_index(TriggerKey self) -> unsigned int"""
3301  return _IMP_kernel.TriggerKey_get_index(self)
3302 
3303  @staticmethod
3304  def show_all(out):
3305  r"""show_all(_ostream out)"""
3306  return _IMP_kernel.TriggerKey_show_all(out)
3307 
3308  @staticmethod
3309  def get_all_strings():
3310  r"""get_all_strings() -> IMP::Vector< std::string >"""
3311  return _IMP_kernel.TriggerKey_get_all_strings()
3312 
3313  @staticmethod
3314  def get_number_unique():
3315  r"""get_number_unique() -> unsigned int"""
3316  return _IMP_kernel.TriggerKey_get_number_unique()
3317 
3318  def __str__(self):
3319  r"""__str__(TriggerKey self) -> std::string"""
3320  return _IMP_kernel.TriggerKey___str__(self)
3321 
3322  def __repr__(self):
3323  r"""__repr__(TriggerKey self) -> std::string"""
3324  return _IMP_kernel.TriggerKey___repr__(self)
3325  __swig_destroy__ = _IMP_kernel.delete_TriggerKey
3326 
3327 # Register TriggerKey in _IMP_kernel:
3328 _IMP_kernel.TriggerKey_swigregister(TriggerKey)
3329 class ParticleIndex(object):
3330  r"""Proxy of C++ IMP::Index< IMP::ParticleIndexTag > class."""
3331 
3332  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3333 
3334  def __init__(self, *args):
3335  r"""
3336  __init__(ParticleIndex self, int i) -> ParticleIndex
3337  __init__(ParticleIndex self) -> ParticleIndex
3338  """
3339  _IMP_kernel.ParticleIndex_swiginit(self, _IMP_kernel.new_ParticleIndex(*args))
3340 
3341  def get_index(self):
3342  r"""get_index(ParticleIndex self) -> int"""
3343  return _IMP_kernel.ParticleIndex_get_index(self)
3344 
3345  def __cmp__(self, o):
3346  r"""__cmp__(ParticleIndex self, ParticleIndex o) -> int"""
3347  return _IMP_kernel.ParticleIndex___cmp__(self, o)
3348 
3349  def __eq__(self, o):
3350  r"""__eq__(ParticleIndex self, ParticleIndex o) -> bool"""
3351  return _IMP_kernel.ParticleIndex___eq__(self, o)
3352 
3353  def __ne__(self, o):
3354  r"""__ne__(ParticleIndex self, ParticleIndex o) -> bool"""
3355  return _IMP_kernel.ParticleIndex___ne__(self, o)
3356 
3357  def __lt__(self, o):
3358  r"""__lt__(ParticleIndex self, ParticleIndex o) -> bool"""
3359  return _IMP_kernel.ParticleIndex___lt__(self, o)
3360 
3361  def __gt__(self, o):
3362  r"""__gt__(ParticleIndex self, ParticleIndex o) -> bool"""
3363  return _IMP_kernel.ParticleIndex___gt__(self, o)
3364 
3365  def __ge__(self, o):
3366  r"""__ge__(ParticleIndex self, ParticleIndex o) -> bool"""
3367  return _IMP_kernel.ParticleIndex___ge__(self, o)
3368 
3369  def __le__(self, o):
3370  r"""__le__(ParticleIndex self, ParticleIndex o) -> bool"""
3371  return _IMP_kernel.ParticleIndex___le__(self, o)
3372 
3373  def show(self, *args):
3374  r"""show(ParticleIndex self, _ostream out=std::cout)"""
3375  return _IMP_kernel.ParticleIndex_show(self, *args)
3376 
3377  def __hash__(self):
3378  r"""__hash__(ParticleIndex self) -> std::size_t"""
3379  return _IMP_kernel.ParticleIndex___hash__(self)
3380 
3381  def __str__(self):
3382  r"""__str__(ParticleIndex self) -> std::string"""
3383  return _IMP_kernel.ParticleIndex___str__(self)
3384 
3385  def __repr__(self):
3386  r"""__repr__(ParticleIndex self) -> std::string"""
3387  return _IMP_kernel.ParticleIndex___repr__(self)
3388  __swig_destroy__ = _IMP_kernel.delete_ParticleIndex
3389 
3390 # Register ParticleIndex in _IMP_kernel:
3391 _IMP_kernel.ParticleIndex_swigregister(ParticleIndex)
3392 class FloatsKey(_Value):
3393  r"""Proxy of C++ IMP::Key< 10 > class."""
3394 
3395  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3396 
3397  def __init__(self, *args):
3398  r"""
3399  __init__(FloatsKey self) -> FloatsKey
3400  __init__(FloatsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatsKey
3401  __init__(FloatsKey self, unsigned int i) -> FloatsKey
3402  """
3403  _IMP_kernel.FloatsKey_swiginit(self, _IMP_kernel.new_FloatsKey(*args))
3404 
3405  @staticmethod
3406  def add_key(sc):
3407  r"""add_key(std::string sc) -> unsigned int"""
3408  return _IMP_kernel.FloatsKey_add_key(sc)
3409 
3410  @staticmethod
3411  def get_key_exists(sc):
3412  r"""get_key_exists(std::string sc) -> bool"""
3413  return _IMP_kernel.FloatsKey_get_key_exists(sc)
3414 
3415  def get_string(self):
3416  r"""get_string(FloatsKey self) -> std::string const"""
3417  return _IMP_kernel.FloatsKey_get_string(self)
3418 
3419  def __cmp__(self, o):
3420  r"""__cmp__(FloatsKey self, FloatsKey o) -> int"""
3421  return _IMP_kernel.FloatsKey___cmp__(self, o)
3422 
3423  def __eq__(self, o):
3424  r"""__eq__(FloatsKey self, FloatsKey o) -> bool"""
3425  return _IMP_kernel.FloatsKey___eq__(self, o)
3426 
3427  def __ne__(self, o):
3428  r"""__ne__(FloatsKey self, FloatsKey o) -> bool"""
3429  return _IMP_kernel.FloatsKey___ne__(self, o)
3430 
3431  def __lt__(self, o):
3432  r"""__lt__(FloatsKey self, FloatsKey o) -> bool"""
3433  return _IMP_kernel.FloatsKey___lt__(self, o)
3434 
3435  def __gt__(self, o):
3436  r"""__gt__(FloatsKey self, FloatsKey o) -> bool"""
3437  return _IMP_kernel.FloatsKey___gt__(self, o)
3438 
3439  def __ge__(self, o):
3440  r"""__ge__(FloatsKey self, FloatsKey o) -> bool"""
3441  return _IMP_kernel.FloatsKey___ge__(self, o)
3442 
3443  def __le__(self, o):
3444  r"""__le__(FloatsKey self, FloatsKey o) -> bool"""
3445  return _IMP_kernel.FloatsKey___le__(self, o)
3446 
3447  def __hash__(self):
3448  r"""__hash__(FloatsKey self) -> std::size_t"""
3449  return _IMP_kernel.FloatsKey___hash__(self)
3450 
3451  def show(self, *args):
3452  r"""show(FloatsKey self, _ostream out=std::cout)"""
3453  return _IMP_kernel.FloatsKey_show(self, *args)
3454 
3455  @staticmethod
3456  def add_alias(old_key, new_name):
3457  r"""add_alias(FloatsKey old_key, std::string new_name) -> FloatsKey"""
3458  return _IMP_kernel.FloatsKey_add_alias(old_key, new_name)
3459 
3460  @staticmethod
3461  def get_number_of_keys():
3462  r"""get_number_of_keys() -> unsigned int"""
3463  return _IMP_kernel.FloatsKey_get_number_of_keys()
3464 
3465  def get_index(self):
3466  r"""get_index(FloatsKey self) -> unsigned int"""
3467  return _IMP_kernel.FloatsKey_get_index(self)
3468 
3469  @staticmethod
3470  def show_all(out):
3471  r"""show_all(_ostream out)"""
3472  return _IMP_kernel.FloatsKey_show_all(out)
3473 
3474  @staticmethod
3475  def get_all_strings():
3476  r"""get_all_strings() -> IMP::Vector< std::string >"""
3477  return _IMP_kernel.FloatsKey_get_all_strings()
3478 
3479  @staticmethod
3480  def get_number_unique():
3481  r"""get_number_unique() -> unsigned int"""
3482  return _IMP_kernel.FloatsKey_get_number_unique()
3483 
3484  def __str__(self):
3485  r"""__str__(FloatsKey self) -> std::string"""
3486  return _IMP_kernel.FloatsKey___str__(self)
3487 
3488  def __repr__(self):
3489  r"""__repr__(FloatsKey self) -> std::string"""
3490  return _IMP_kernel.FloatsKey___repr__(self)
3491  __swig_destroy__ = _IMP_kernel.delete_FloatsKey
3492 
3493 # Register FloatsKey in _IMP_kernel:
3494 _IMP_kernel.FloatsKey_swigregister(FloatsKey)
3495 class SparseStringKey(_Value):
3496  r"""Proxy of C++ IMP::Key< 12 > class."""
3497 
3498  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3499 
3500  def __init__(self, *args):
3501  r"""
3502  __init__(SparseStringKey self) -> SparseStringKey
3503  __init__(SparseStringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseStringKey
3504  __init__(SparseStringKey self, unsigned int i) -> SparseStringKey
3505  """
3506  _IMP_kernel.SparseStringKey_swiginit(self, _IMP_kernel.new_SparseStringKey(*args))
3507 
3508  @staticmethod
3509  def add_key(sc):
3510  r"""add_key(std::string sc) -> unsigned int"""
3511  return _IMP_kernel.SparseStringKey_add_key(sc)
3512 
3513  @staticmethod
3514  def get_key_exists(sc):
3515  r"""get_key_exists(std::string sc) -> bool"""
3516  return _IMP_kernel.SparseStringKey_get_key_exists(sc)
3517 
3518  def get_string(self):
3519  r"""get_string(SparseStringKey self) -> std::string const"""
3520  return _IMP_kernel.SparseStringKey_get_string(self)
3521 
3522  def __cmp__(self, o):
3523  r"""__cmp__(SparseStringKey self, SparseStringKey o) -> int"""
3524  return _IMP_kernel.SparseStringKey___cmp__(self, o)
3525 
3526  def __eq__(self, o):
3527  r"""__eq__(SparseStringKey self, SparseStringKey o) -> bool"""
3528  return _IMP_kernel.SparseStringKey___eq__(self, o)
3529 
3530  def __ne__(self, o):
3531  r"""__ne__(SparseStringKey self, SparseStringKey o) -> bool"""
3532  return _IMP_kernel.SparseStringKey___ne__(self, o)
3533 
3534  def __lt__(self, o):
3535  r"""__lt__(SparseStringKey self, SparseStringKey o) -> bool"""
3536  return _IMP_kernel.SparseStringKey___lt__(self, o)
3537 
3538  def __gt__(self, o):
3539  r"""__gt__(SparseStringKey self, SparseStringKey o) -> bool"""
3540  return _IMP_kernel.SparseStringKey___gt__(self, o)
3541 
3542  def __ge__(self, o):
3543  r"""__ge__(SparseStringKey self, SparseStringKey o) -> bool"""
3544  return _IMP_kernel.SparseStringKey___ge__(self, o)
3545 
3546  def __le__(self, o):
3547  r"""__le__(SparseStringKey self, SparseStringKey o) -> bool"""
3548  return _IMP_kernel.SparseStringKey___le__(self, o)
3549 
3550  def __hash__(self):
3551  r"""__hash__(SparseStringKey self) -> std::size_t"""
3552  return _IMP_kernel.SparseStringKey___hash__(self)
3553 
3554  def show(self, *args):
3555  r"""show(SparseStringKey self, _ostream out=std::cout)"""
3556  return _IMP_kernel.SparseStringKey_show(self, *args)
3557 
3558  @staticmethod
3559  def add_alias(old_key, new_name):
3560  r"""add_alias(SparseStringKey old_key, std::string new_name) -> SparseStringKey"""
3561  return _IMP_kernel.SparseStringKey_add_alias(old_key, new_name)
3562 
3563  @staticmethod
3564  def get_number_of_keys():
3565  r"""get_number_of_keys() -> unsigned int"""
3566  return _IMP_kernel.SparseStringKey_get_number_of_keys()
3567 
3568  def get_index(self):
3569  r"""get_index(SparseStringKey self) -> unsigned int"""
3570  return _IMP_kernel.SparseStringKey_get_index(self)
3571 
3572  @staticmethod
3573  def show_all(out):
3574  r"""show_all(_ostream out)"""
3575  return _IMP_kernel.SparseStringKey_show_all(out)
3576 
3577  @staticmethod
3578  def get_all_strings():
3579  r"""get_all_strings() -> IMP::Vector< std::string >"""
3580  return _IMP_kernel.SparseStringKey_get_all_strings()
3581 
3582  @staticmethod
3583  def get_number_unique():
3584  r"""get_number_unique() -> unsigned int"""
3585  return _IMP_kernel.SparseStringKey_get_number_unique()
3586 
3587  def __str__(self):
3588  r"""__str__(SparseStringKey self) -> std::string"""
3589  return _IMP_kernel.SparseStringKey___str__(self)
3590 
3591  def __repr__(self):
3592  r"""__repr__(SparseStringKey self) -> std::string"""
3593  return _IMP_kernel.SparseStringKey___repr__(self)
3594  __swig_destroy__ = _IMP_kernel.delete_SparseStringKey
3595 
3596 # Register SparseStringKey in _IMP_kernel:
3597 _IMP_kernel.SparseStringKey_swigregister(SparseStringKey)
3598 class SparseIntKey(_Value):
3599  r"""Proxy of C++ IMP::Key< 13 > class."""
3600 
3601  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3602 
3603  def __init__(self, *args):
3604  r"""
3605  __init__(SparseIntKey self) -> SparseIntKey
3606  __init__(SparseIntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseIntKey
3607  __init__(SparseIntKey self, unsigned int i) -> SparseIntKey
3608  """
3609  _IMP_kernel.SparseIntKey_swiginit(self, _IMP_kernel.new_SparseIntKey(*args))
3610 
3611  @staticmethod
3612  def add_key(sc):
3613  r"""add_key(std::string sc) -> unsigned int"""
3614  return _IMP_kernel.SparseIntKey_add_key(sc)
3615 
3616  @staticmethod
3617  def get_key_exists(sc):
3618  r"""get_key_exists(std::string sc) -> bool"""
3619  return _IMP_kernel.SparseIntKey_get_key_exists(sc)
3620 
3621  def get_string(self):
3622  r"""get_string(SparseIntKey self) -> std::string const"""
3623  return _IMP_kernel.SparseIntKey_get_string(self)
3624 
3625  def __cmp__(self, o):
3626  r"""__cmp__(SparseIntKey self, SparseIntKey o) -> int"""
3627  return _IMP_kernel.SparseIntKey___cmp__(self, o)
3628 
3629  def __eq__(self, o):
3630  r"""__eq__(SparseIntKey self, SparseIntKey o) -> bool"""
3631  return _IMP_kernel.SparseIntKey___eq__(self, o)
3632 
3633  def __ne__(self, o):
3634  r"""__ne__(SparseIntKey self, SparseIntKey o) -> bool"""
3635  return _IMP_kernel.SparseIntKey___ne__(self, o)
3636 
3637  def __lt__(self, o):
3638  r"""__lt__(SparseIntKey self, SparseIntKey o) -> bool"""
3639  return _IMP_kernel.SparseIntKey___lt__(self, o)
3640 
3641  def __gt__(self, o):
3642  r"""__gt__(SparseIntKey self, SparseIntKey o) -> bool"""
3643  return _IMP_kernel.SparseIntKey___gt__(self, o)
3644 
3645  def __ge__(self, o):
3646  r"""__ge__(SparseIntKey self, SparseIntKey o) -> bool"""
3647  return _IMP_kernel.SparseIntKey___ge__(self, o)
3648 
3649  def __le__(self, o):
3650  r"""__le__(SparseIntKey self, SparseIntKey o) -> bool"""
3651  return _IMP_kernel.SparseIntKey___le__(self, o)
3652 
3653  def __hash__(self):
3654  r"""__hash__(SparseIntKey self) -> std::size_t"""
3655  return _IMP_kernel.SparseIntKey___hash__(self)
3656 
3657  def show(self, *args):
3658  r"""show(SparseIntKey self, _ostream out=std::cout)"""
3659  return _IMP_kernel.SparseIntKey_show(self, *args)
3660 
3661  @staticmethod
3662  def add_alias(old_key, new_name):
3663  r"""add_alias(SparseIntKey old_key, std::string new_name) -> SparseIntKey"""
3664  return _IMP_kernel.SparseIntKey_add_alias(old_key, new_name)
3665 
3666  @staticmethod
3667  def get_number_of_keys():
3668  r"""get_number_of_keys() -> unsigned int"""
3669  return _IMP_kernel.SparseIntKey_get_number_of_keys()
3670 
3671  def get_index(self):
3672  r"""get_index(SparseIntKey self) -> unsigned int"""
3673  return _IMP_kernel.SparseIntKey_get_index(self)
3674 
3675  @staticmethod
3676  def show_all(out):
3677  r"""show_all(_ostream out)"""
3678  return _IMP_kernel.SparseIntKey_show_all(out)
3679 
3680  @staticmethod
3681  def get_all_strings():
3682  r"""get_all_strings() -> IMP::Vector< std::string >"""
3683  return _IMP_kernel.SparseIntKey_get_all_strings()
3684 
3685  @staticmethod
3686  def get_number_unique():
3687  r"""get_number_unique() -> unsigned int"""
3688  return _IMP_kernel.SparseIntKey_get_number_unique()
3689 
3690  def __str__(self):
3691  r"""__str__(SparseIntKey self) -> std::string"""
3692  return _IMP_kernel.SparseIntKey___str__(self)
3693 
3694  def __repr__(self):
3695  r"""__repr__(SparseIntKey self) -> std::string"""
3696  return _IMP_kernel.SparseIntKey___repr__(self)
3697  __swig_destroy__ = _IMP_kernel.delete_SparseIntKey
3698 
3699 # Register SparseIntKey in _IMP_kernel:
3700 _IMP_kernel.SparseIntKey_swigregister(SparseIntKey)
3701 class SparseFloatKey(_Value):
3702  r"""Proxy of C++ IMP::Key< 14 > class."""
3703 
3704  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3705 
3706  def __init__(self, *args):
3707  r"""
3708  __init__(SparseFloatKey self) -> SparseFloatKey
3709  __init__(SparseFloatKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseFloatKey
3710  __init__(SparseFloatKey self, unsigned int i) -> SparseFloatKey
3711  """
3712  _IMP_kernel.SparseFloatKey_swiginit(self, _IMP_kernel.new_SparseFloatKey(*args))
3713 
3714  @staticmethod
3715  def add_key(sc):
3716  r"""add_key(std::string sc) -> unsigned int"""
3717  return _IMP_kernel.SparseFloatKey_add_key(sc)
3718 
3719  @staticmethod
3720  def get_key_exists(sc):
3721  r"""get_key_exists(std::string sc) -> bool"""
3722  return _IMP_kernel.SparseFloatKey_get_key_exists(sc)
3723 
3724  def get_string(self):
3725  r"""get_string(SparseFloatKey self) -> std::string const"""
3726  return _IMP_kernel.SparseFloatKey_get_string(self)
3727 
3728  def __cmp__(self, o):
3729  r"""__cmp__(SparseFloatKey self, SparseFloatKey o) -> int"""
3730  return _IMP_kernel.SparseFloatKey___cmp__(self, o)
3731 
3732  def __eq__(self, o):
3733  r"""__eq__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3734  return _IMP_kernel.SparseFloatKey___eq__(self, o)
3735 
3736  def __ne__(self, o):
3737  r"""__ne__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3738  return _IMP_kernel.SparseFloatKey___ne__(self, o)
3739 
3740  def __lt__(self, o):
3741  r"""__lt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3742  return _IMP_kernel.SparseFloatKey___lt__(self, o)
3743 
3744  def __gt__(self, o):
3745  r"""__gt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3746  return _IMP_kernel.SparseFloatKey___gt__(self, o)
3747 
3748  def __ge__(self, o):
3749  r"""__ge__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3750  return _IMP_kernel.SparseFloatKey___ge__(self, o)
3751 
3752  def __le__(self, o):
3753  r"""__le__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3754  return _IMP_kernel.SparseFloatKey___le__(self, o)
3755 
3756  def __hash__(self):
3757  r"""__hash__(SparseFloatKey self) -> std::size_t"""
3758  return _IMP_kernel.SparseFloatKey___hash__(self)
3759 
3760  def show(self, *args):
3761  r"""show(SparseFloatKey self, _ostream out=std::cout)"""
3762  return _IMP_kernel.SparseFloatKey_show(self, *args)
3763 
3764  @staticmethod
3765  def add_alias(old_key, new_name):
3766  r"""add_alias(SparseFloatKey old_key, std::string new_name) -> SparseFloatKey"""
3767  return _IMP_kernel.SparseFloatKey_add_alias(old_key, new_name)
3768 
3769  @staticmethod
3770  def get_number_of_keys():
3771  r"""get_number_of_keys() -> unsigned int"""
3772  return _IMP_kernel.SparseFloatKey_get_number_of_keys()
3773 
3774  def get_index(self):
3775  r"""get_index(SparseFloatKey self) -> unsigned int"""
3776  return _IMP_kernel.SparseFloatKey_get_index(self)
3777 
3778  @staticmethod
3779  def show_all(out):
3780  r"""show_all(_ostream out)"""
3781  return _IMP_kernel.SparseFloatKey_show_all(out)
3782 
3783  @staticmethod
3784  def get_all_strings():
3785  r"""get_all_strings() -> IMP::Vector< std::string >"""
3786  return _IMP_kernel.SparseFloatKey_get_all_strings()
3787 
3788  @staticmethod
3789  def get_number_unique():
3790  r"""get_number_unique() -> unsigned int"""
3791  return _IMP_kernel.SparseFloatKey_get_number_unique()
3792 
3793  def __str__(self):
3794  r"""__str__(SparseFloatKey self) -> std::string"""
3795  return _IMP_kernel.SparseFloatKey___str__(self)
3796 
3797  def __repr__(self):
3798  r"""__repr__(SparseFloatKey self) -> std::string"""
3799  return _IMP_kernel.SparseFloatKey___repr__(self)
3800  __swig_destroy__ = _IMP_kernel.delete_SparseFloatKey
3801 
3802 # Register SparseFloatKey in _IMP_kernel:
3803 _IMP_kernel.SparseFloatKey_swigregister(SparseFloatKey)
3804 class SparseParticleIndexKey(_Value):
3805  r"""Proxy of C++ IMP::Key< 15 > class."""
3806 
3807  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3808 
3809  def __init__(self, *args):
3810  r"""
3811  __init__(SparseParticleIndexKey self) -> SparseParticleIndexKey
3812  __init__(SparseParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseParticleIndexKey
3813  __init__(SparseParticleIndexKey self, unsigned int i) -> SparseParticleIndexKey
3814  """
3815  _IMP_kernel.SparseParticleIndexKey_swiginit(self, _IMP_kernel.new_SparseParticleIndexKey(*args))
3816 
3817  @staticmethod
3818  def add_key(sc):
3819  r"""add_key(std::string sc) -> unsigned int"""
3820  return _IMP_kernel.SparseParticleIndexKey_add_key(sc)
3821 
3822  @staticmethod
3823  def get_key_exists(sc):
3824  r"""get_key_exists(std::string sc) -> bool"""
3825  return _IMP_kernel.SparseParticleIndexKey_get_key_exists(sc)
3826 
3827  def get_string(self):
3828  r"""get_string(SparseParticleIndexKey self) -> std::string const"""
3829  return _IMP_kernel.SparseParticleIndexKey_get_string(self)
3830 
3831  def __cmp__(self, o):
3832  r"""__cmp__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> int"""
3833  return _IMP_kernel.SparseParticleIndexKey___cmp__(self, o)
3834 
3835  def __eq__(self, o):
3836  r"""__eq__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3837  return _IMP_kernel.SparseParticleIndexKey___eq__(self, o)
3838 
3839  def __ne__(self, o):
3840  r"""__ne__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3841  return _IMP_kernel.SparseParticleIndexKey___ne__(self, o)
3842 
3843  def __lt__(self, o):
3844  r"""__lt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3845  return _IMP_kernel.SparseParticleIndexKey___lt__(self, o)
3846 
3847  def __gt__(self, o):
3848  r"""__gt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3849  return _IMP_kernel.SparseParticleIndexKey___gt__(self, o)
3850 
3851  def __ge__(self, o):
3852  r"""__ge__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3853  return _IMP_kernel.SparseParticleIndexKey___ge__(self, o)
3854 
3855  def __le__(self, o):
3856  r"""__le__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3857  return _IMP_kernel.SparseParticleIndexKey___le__(self, o)
3858 
3859  def __hash__(self):
3860  r"""__hash__(SparseParticleIndexKey self) -> std::size_t"""
3861  return _IMP_kernel.SparseParticleIndexKey___hash__(self)
3862 
3863  def show(self, *args):
3864  r"""show(SparseParticleIndexKey self, _ostream out=std::cout)"""
3865  return _IMP_kernel.SparseParticleIndexKey_show(self, *args)
3866 
3867  @staticmethod
3868  def add_alias(old_key, new_name):
3869  r"""add_alias(SparseParticleIndexKey old_key, std::string new_name) -> SparseParticleIndexKey"""
3870  return _IMP_kernel.SparseParticleIndexKey_add_alias(old_key, new_name)
3871 
3872  @staticmethod
3873  def get_number_of_keys():
3874  r"""get_number_of_keys() -> unsigned int"""
3875  return _IMP_kernel.SparseParticleIndexKey_get_number_of_keys()
3876 
3877  def get_index(self):
3878  r"""get_index(SparseParticleIndexKey self) -> unsigned int"""
3879  return _IMP_kernel.SparseParticleIndexKey_get_index(self)
3880 
3881  @staticmethod
3882  def show_all(out):
3883  r"""show_all(_ostream out)"""
3884  return _IMP_kernel.SparseParticleIndexKey_show_all(out)
3885 
3886  @staticmethod
3887  def get_all_strings():
3888  r"""get_all_strings() -> IMP::Vector< std::string >"""
3889  return _IMP_kernel.SparseParticleIndexKey_get_all_strings()
3890 
3891  @staticmethod
3892  def get_number_unique():
3893  r"""get_number_unique() -> unsigned int"""
3894  return _IMP_kernel.SparseParticleIndexKey_get_number_unique()
3895 
3896  def __str__(self):
3897  r"""__str__(SparseParticleIndexKey self) -> std::string"""
3898  return _IMP_kernel.SparseParticleIndexKey___str__(self)
3899 
3900  def __repr__(self):
3901  r"""__repr__(SparseParticleIndexKey self) -> std::string"""
3902  return _IMP_kernel.SparseParticleIndexKey___repr__(self)
3903  __swig_destroy__ = _IMP_kernel.delete_SparseParticleIndexKey
3904 
3905 # Register SparseParticleIndexKey in _IMP_kernel:
3906 _IMP_kernel.SparseParticleIndexKey_swigregister(SparseParticleIndexKey)
3907 class Vector3DKey(_Value):
3908  r"""Proxy of C++ IMP::Key< 16 > class."""
3909 
3910  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3911 
3912  def __init__(self, *args):
3913  r"""
3914  __init__(Vector3DKey self) -> Vector3DKey
3915  __init__(Vector3DKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector3DKey
3916  __init__(Vector3DKey self, unsigned int i) -> Vector3DKey
3917  """
3918  _IMP_kernel.Vector3DKey_swiginit(self, _IMP_kernel.new_Vector3DKey(*args))
3919 
3920  @staticmethod
3921  def add_key(sc):
3922  r"""add_key(std::string sc) -> unsigned int"""
3923  return _IMP_kernel.Vector3DKey_add_key(sc)
3924 
3925  @staticmethod
3926  def get_key_exists(sc):
3927  r"""get_key_exists(std::string sc) -> bool"""
3928  return _IMP_kernel.Vector3DKey_get_key_exists(sc)
3929 
3930  def get_string(self):
3931  r"""get_string(Vector3DKey self) -> std::string const"""
3932  return _IMP_kernel.Vector3DKey_get_string(self)
3933 
3934  def __cmp__(self, o):
3935  r"""__cmp__(Vector3DKey self, Vector3DKey o) -> int"""
3936  return _IMP_kernel.Vector3DKey___cmp__(self, o)
3937 
3938  def __eq__(self, o):
3939  r"""__eq__(Vector3DKey self, Vector3DKey o) -> bool"""
3940  return _IMP_kernel.Vector3DKey___eq__(self, o)
3941 
3942  def __ne__(self, o):
3943  r"""__ne__(Vector3DKey self, Vector3DKey o) -> bool"""
3944  return _IMP_kernel.Vector3DKey___ne__(self, o)
3945 
3946  def __lt__(self, o):
3947  r"""__lt__(Vector3DKey self, Vector3DKey o) -> bool"""
3948  return _IMP_kernel.Vector3DKey___lt__(self, o)
3949 
3950  def __gt__(self, o):
3951  r"""__gt__(Vector3DKey self, Vector3DKey o) -> bool"""
3952  return _IMP_kernel.Vector3DKey___gt__(self, o)
3953 
3954  def __ge__(self, o):
3955  r"""__ge__(Vector3DKey self, Vector3DKey o) -> bool"""
3956  return _IMP_kernel.Vector3DKey___ge__(self, o)
3957 
3958  def __le__(self, o):
3959  r"""__le__(Vector3DKey self, Vector3DKey o) -> bool"""
3960  return _IMP_kernel.Vector3DKey___le__(self, o)
3961 
3962  def __hash__(self):
3963  r"""__hash__(Vector3DKey self) -> std::size_t"""
3964  return _IMP_kernel.Vector3DKey___hash__(self)
3965 
3966  def show(self, *args):
3967  r"""show(Vector3DKey self, _ostream out=std::cout)"""
3968  return _IMP_kernel.Vector3DKey_show(self, *args)
3969 
3970  @staticmethod
3971  def add_alias(old_key, new_name):
3972  r"""add_alias(Vector3DKey old_key, std::string new_name) -> Vector3DKey"""
3973  return _IMP_kernel.Vector3DKey_add_alias(old_key, new_name)
3974 
3975  @staticmethod
3976  def get_number_of_keys():
3977  r"""get_number_of_keys() -> unsigned int"""
3978  return _IMP_kernel.Vector3DKey_get_number_of_keys()
3979 
3980  def get_index(self):
3981  r"""get_index(Vector3DKey self) -> unsigned int"""
3982  return _IMP_kernel.Vector3DKey_get_index(self)
3983 
3984  @staticmethod
3985  def show_all(out):
3986  r"""show_all(_ostream out)"""
3987  return _IMP_kernel.Vector3DKey_show_all(out)
3988 
3989  @staticmethod
3990  def get_all_strings():
3991  r"""get_all_strings() -> IMP::Vector< std::string >"""
3992  return _IMP_kernel.Vector3DKey_get_all_strings()
3993 
3994  @staticmethod
3995  def get_number_unique():
3996  r"""get_number_unique() -> unsigned int"""
3997  return _IMP_kernel.Vector3DKey_get_number_unique()
3998 
3999  def __str__(self):
4000  r"""__str__(Vector3DKey self) -> std::string"""
4001  return _IMP_kernel.Vector3DKey___str__(self)
4002 
4003  def __repr__(self):
4004  r"""__repr__(Vector3DKey self) -> std::string"""
4005  return _IMP_kernel.Vector3DKey___repr__(self)
4006  __swig_destroy__ = _IMP_kernel.delete_Vector3DKey
4007 
4008 # Register Vector3DKey in _IMP_kernel:
4009 _IMP_kernel.Vector3DKey_swigregister(Vector3DKey)
4010 class Vector3DDerivKey(_Value):
4011  r"""Proxy of C++ IMP::Key< 17 > class."""
4012 
4013  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4014 
4015  def __init__(self, *args):
4016  r"""
4017  __init__(Vector3DDerivKey self) -> Vector3DDerivKey
4018  __init__(Vector3DDerivKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector3DDerivKey
4019  __init__(Vector3DDerivKey self, unsigned int i) -> Vector3DDerivKey
4020  """
4021  _IMP_kernel.Vector3DDerivKey_swiginit(self, _IMP_kernel.new_Vector3DDerivKey(*args))
4022 
4023  @staticmethod
4024  def add_key(sc):
4025  r"""add_key(std::string sc) -> unsigned int"""
4026  return _IMP_kernel.Vector3DDerivKey_add_key(sc)
4027 
4028  @staticmethod
4029  def get_key_exists(sc):
4030  r"""get_key_exists(std::string sc) -> bool"""
4031  return _IMP_kernel.Vector3DDerivKey_get_key_exists(sc)
4032 
4033  def get_string(self):
4034  r"""get_string(Vector3DDerivKey self) -> std::string const"""
4035  return _IMP_kernel.Vector3DDerivKey_get_string(self)
4036 
4037  def __cmp__(self, o):
4038  r"""__cmp__(Vector3DDerivKey self, Vector3DDerivKey o) -> int"""
4039  return _IMP_kernel.Vector3DDerivKey___cmp__(self, o)
4040 
4041  def __eq__(self, o):
4042  r"""__eq__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4043  return _IMP_kernel.Vector3DDerivKey___eq__(self, o)
4044 
4045  def __ne__(self, o):
4046  r"""__ne__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4047  return _IMP_kernel.Vector3DDerivKey___ne__(self, o)
4048 
4049  def __lt__(self, o):
4050  r"""__lt__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4051  return _IMP_kernel.Vector3DDerivKey___lt__(self, o)
4052 
4053  def __gt__(self, o):
4054  r"""__gt__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4055  return _IMP_kernel.Vector3DDerivKey___gt__(self, o)
4056 
4057  def __ge__(self, o):
4058  r"""__ge__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4059  return _IMP_kernel.Vector3DDerivKey___ge__(self, o)
4060 
4061  def __le__(self, o):
4062  r"""__le__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4063  return _IMP_kernel.Vector3DDerivKey___le__(self, o)
4064 
4065  def __hash__(self):
4066  r"""__hash__(Vector3DDerivKey self) -> std::size_t"""
4067  return _IMP_kernel.Vector3DDerivKey___hash__(self)
4068 
4069  def show(self, *args):
4070  r"""show(Vector3DDerivKey self, _ostream out=std::cout)"""
4071  return _IMP_kernel.Vector3DDerivKey_show(self, *args)
4072 
4073  @staticmethod
4074  def add_alias(old_key, new_name):
4075  r"""add_alias(Vector3DDerivKey old_key, std::string new_name) -> Vector3DDerivKey"""
4076  return _IMP_kernel.Vector3DDerivKey_add_alias(old_key, new_name)
4077 
4078  @staticmethod
4079  def get_number_of_keys():
4080  r"""get_number_of_keys() -> unsigned int"""
4081  return _IMP_kernel.Vector3DDerivKey_get_number_of_keys()
4082 
4083  def get_index(self):
4084  r"""get_index(Vector3DDerivKey self) -> unsigned int"""
4085  return _IMP_kernel.Vector3DDerivKey_get_index(self)
4086 
4087  @staticmethod
4088  def show_all(out):
4089  r"""show_all(_ostream out)"""
4090  return _IMP_kernel.Vector3DDerivKey_show_all(out)
4091 
4092  @staticmethod
4093  def get_all_strings():
4094  r"""get_all_strings() -> IMP::Vector< std::string >"""
4095  return _IMP_kernel.Vector3DDerivKey_get_all_strings()
4096 
4097  @staticmethod
4098  def get_number_unique():
4099  r"""get_number_unique() -> unsigned int"""
4100  return _IMP_kernel.Vector3DDerivKey_get_number_unique()
4101 
4102  def __str__(self):
4103  r"""__str__(Vector3DDerivKey self) -> std::string"""
4104  return _IMP_kernel.Vector3DDerivKey___str__(self)
4105 
4106  def __repr__(self):
4107  r"""__repr__(Vector3DDerivKey self) -> std::string"""
4108  return _IMP_kernel.Vector3DDerivKey___repr__(self)
4109  __swig_destroy__ = _IMP_kernel.delete_Vector3DDerivKey
4110 
4111 # Register Vector3DDerivKey in _IMP_kernel:
4112 _IMP_kernel.Vector3DDerivKey_swigregister(Vector3DDerivKey)
4113 class Vector4DKey(_Value):
4114  r"""Proxy of C++ IMP::Key< 18 > class."""
4115 
4116  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4117 
4118  def __init__(self, *args):
4119  r"""
4120  __init__(Vector4DKey self) -> Vector4DKey
4121  __init__(Vector4DKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector4DKey
4122  __init__(Vector4DKey self, unsigned int i) -> Vector4DKey
4123  """
4124  _IMP_kernel.Vector4DKey_swiginit(self, _IMP_kernel.new_Vector4DKey(*args))
4125 
4126  @staticmethod
4127  def add_key(sc):
4128  r"""add_key(std::string sc) -> unsigned int"""
4129  return _IMP_kernel.Vector4DKey_add_key(sc)
4130 
4131  @staticmethod
4132  def get_key_exists(sc):
4133  r"""get_key_exists(std::string sc) -> bool"""
4134  return _IMP_kernel.Vector4DKey_get_key_exists(sc)
4135 
4136  def get_string(self):
4137  r"""get_string(Vector4DKey self) -> std::string const"""
4138  return _IMP_kernel.Vector4DKey_get_string(self)
4139 
4140  def __cmp__(self, o):
4141  r"""__cmp__(Vector4DKey self, Vector4DKey o) -> int"""
4142  return _IMP_kernel.Vector4DKey___cmp__(self, o)
4143 
4144  def __eq__(self, o):
4145  r"""__eq__(Vector4DKey self, Vector4DKey o) -> bool"""
4146  return _IMP_kernel.Vector4DKey___eq__(self, o)
4147 
4148  def __ne__(self, o):
4149  r"""__ne__(Vector4DKey self, Vector4DKey o) -> bool"""
4150  return _IMP_kernel.Vector4DKey___ne__(self, o)
4151 
4152  def __lt__(self, o):
4153  r"""__lt__(Vector4DKey self, Vector4DKey o) -> bool"""
4154  return _IMP_kernel.Vector4DKey___lt__(self, o)
4155 
4156  def __gt__(self, o):
4157  r"""__gt__(Vector4DKey self, Vector4DKey o) -> bool"""
4158  return _IMP_kernel.Vector4DKey___gt__(self, o)
4159 
4160  def __ge__(self, o):
4161  r"""__ge__(Vector4DKey self, Vector4DKey o) -> bool"""
4162  return _IMP_kernel.Vector4DKey___ge__(self, o)
4163 
4164  def __le__(self, o):
4165  r"""__le__(Vector4DKey self, Vector4DKey o) -> bool"""
4166  return _IMP_kernel.Vector4DKey___le__(self, o)
4167 
4168  def __hash__(self):
4169  r"""__hash__(Vector4DKey self) -> std::size_t"""
4170  return _IMP_kernel.Vector4DKey___hash__(self)
4171 
4172  def show(self, *args):
4173  r"""show(Vector4DKey self, _ostream out=std::cout)"""
4174  return _IMP_kernel.Vector4DKey_show(self, *args)
4175 
4176  @staticmethod
4177  def add_alias(old_key, new_name):
4178  r"""add_alias(Vector4DKey old_key, std::string new_name) -> Vector4DKey"""
4179  return _IMP_kernel.Vector4DKey_add_alias(old_key, new_name)
4180 
4181  @staticmethod
4182  def get_number_of_keys():
4183  r"""get_number_of_keys() -> unsigned int"""
4184  return _IMP_kernel.Vector4DKey_get_number_of_keys()
4185 
4186  def get_index(self):
4187  r"""get_index(Vector4DKey self) -> unsigned int"""
4188  return _IMP_kernel.Vector4DKey_get_index(self)
4189 
4190  @staticmethod
4191  def show_all(out):
4192  r"""show_all(_ostream out)"""
4193  return _IMP_kernel.Vector4DKey_show_all(out)
4194 
4195  @staticmethod
4196  def get_all_strings():
4197  r"""get_all_strings() -> IMP::Vector< std::string >"""
4198  return _IMP_kernel.Vector4DKey_get_all_strings()
4199 
4200  @staticmethod
4201  def get_number_unique():
4202  r"""get_number_unique() -> unsigned int"""
4203  return _IMP_kernel.Vector4DKey_get_number_unique()
4204 
4205  def __str__(self):
4206  r"""__str__(Vector4DKey self) -> std::string"""
4207  return _IMP_kernel.Vector4DKey___str__(self)
4208 
4209  def __repr__(self):
4210  r"""__repr__(Vector4DKey self) -> std::string"""
4211  return _IMP_kernel.Vector4DKey___repr__(self)
4212  __swig_destroy__ = _IMP_kernel.delete_Vector4DKey
4213 
4214 # Register Vector4DKey in _IMP_kernel:
4215 _IMP_kernel.Vector4DKey_swigregister(Vector4DKey)
4216 class Vector4DDerivKey(_Value):
4217  r"""Proxy of C++ IMP::Key< 19 > class."""
4218 
4219  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4220 
4221  def __init__(self, *args):
4222  r"""
4223  __init__(Vector4DDerivKey self) -> Vector4DDerivKey
4224  __init__(Vector4DDerivKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector4DDerivKey
4225  __init__(Vector4DDerivKey self, unsigned int i) -> Vector4DDerivKey
4226  """
4227  _IMP_kernel.Vector4DDerivKey_swiginit(self, _IMP_kernel.new_Vector4DDerivKey(*args))
4228 
4229  @staticmethod
4230  def add_key(sc):
4231  r"""add_key(std::string sc) -> unsigned int"""
4232  return _IMP_kernel.Vector4DDerivKey_add_key(sc)
4233 
4234  @staticmethod
4235  def get_key_exists(sc):
4236  r"""get_key_exists(std::string sc) -> bool"""
4237  return _IMP_kernel.Vector4DDerivKey_get_key_exists(sc)
4238 
4239  def get_string(self):
4240  r"""get_string(Vector4DDerivKey self) -> std::string const"""
4241  return _IMP_kernel.Vector4DDerivKey_get_string(self)
4242 
4243  def __cmp__(self, o):
4244  r"""__cmp__(Vector4DDerivKey self, Vector4DDerivKey o) -> int"""
4245  return _IMP_kernel.Vector4DDerivKey___cmp__(self, o)
4246 
4247  def __eq__(self, o):
4248  r"""__eq__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4249  return _IMP_kernel.Vector4DDerivKey___eq__(self, o)
4250 
4251  def __ne__(self, o):
4252  r"""__ne__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4253  return _IMP_kernel.Vector4DDerivKey___ne__(self, o)
4254 
4255  def __lt__(self, o):
4256  r"""__lt__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4257  return _IMP_kernel.Vector4DDerivKey___lt__(self, o)
4258 
4259  def __gt__(self, o):
4260  r"""__gt__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4261  return _IMP_kernel.Vector4DDerivKey___gt__(self, o)
4262 
4263  def __ge__(self, o):
4264  r"""__ge__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4265  return _IMP_kernel.Vector4DDerivKey___ge__(self, o)
4266 
4267  def __le__(self, o):
4268  r"""__le__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4269  return _IMP_kernel.Vector4DDerivKey___le__(self, o)
4270 
4271  def __hash__(self):
4272  r"""__hash__(Vector4DDerivKey self) -> std::size_t"""
4273  return _IMP_kernel.Vector4DDerivKey___hash__(self)
4274 
4275  def show(self, *args):
4276  r"""show(Vector4DDerivKey self, _ostream out=std::cout)"""
4277  return _IMP_kernel.Vector4DDerivKey_show(self, *args)
4278 
4279  @staticmethod
4280  def add_alias(old_key, new_name):
4281  r"""add_alias(Vector4DDerivKey old_key, std::string new_name) -> Vector4DDerivKey"""
4282  return _IMP_kernel.Vector4DDerivKey_add_alias(old_key, new_name)
4283 
4284  @staticmethod
4285  def get_number_of_keys():
4286  r"""get_number_of_keys() -> unsigned int"""
4287  return _IMP_kernel.Vector4DDerivKey_get_number_of_keys()
4288 
4289  def get_index(self):
4290  r"""get_index(Vector4DDerivKey self) -> unsigned int"""
4291  return _IMP_kernel.Vector4DDerivKey_get_index(self)
4292 
4293  @staticmethod
4294  def show_all(out):
4295  r"""show_all(_ostream out)"""
4296  return _IMP_kernel.Vector4DDerivKey_show_all(out)
4297 
4298  @staticmethod
4299  def get_all_strings():
4300  r"""get_all_strings() -> IMP::Vector< std::string >"""
4301  return _IMP_kernel.Vector4DDerivKey_get_all_strings()
4302 
4303  @staticmethod
4304  def get_number_unique():
4305  r"""get_number_unique() -> unsigned int"""
4306  return _IMP_kernel.Vector4DDerivKey_get_number_unique()
4307 
4308  def __str__(self):
4309  r"""__str__(Vector4DDerivKey self) -> std::string"""
4310  return _IMP_kernel.Vector4DDerivKey___str__(self)
4311 
4312  def __repr__(self):
4313  r"""__repr__(Vector4DDerivKey self) -> std::string"""
4314  return _IMP_kernel.Vector4DDerivKey___repr__(self)
4315  __swig_destroy__ = _IMP_kernel.delete_Vector4DDerivKey
4316 
4317 # Register Vector4DDerivKey in _IMP_kernel:
4318 _IMP_kernel.Vector4DDerivKey_swigregister(Vector4DDerivKey)
4319 
4320 def ParticlePair(a, b):
4321  return (a,b)
4322 def ParticleTriplet(a, b, c):
4323  return (a,b,c)
4324 def ParticleQuad(a, b, c, d):
4325  return (a,b,c,d)
4326 
4327 class FloatIndex(_Value):
4328  r"""Proxy of C++ IMP::FloatIndex class."""
4329 
4330  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4331 
4332  def __init__(self, *args):
4333  r"""
4334  __init__(FloatIndex self, ParticleIndex pi, FloatKey k) -> FloatIndex
4335  __init__(FloatIndex self, ParticleIndex pi, Vector3DDerivKey k, int index) -> FloatIndex
4336  __init__(FloatIndex self, ParticleIndex pi, Vector4DDerivKey k, int index) -> FloatIndex
4337  """
4338  _IMP_kernel.FloatIndex_swiginit(self, _IMP_kernel.new_FloatIndex(*args))
4339 
4340  def get_float_key(self):
4341  r"""get_float_key(FloatIndex self) -> FloatKey"""
4342  return _IMP_kernel.FloatIndex_get_float_key(self)
4343 
4344  def set_value(self, m, v):
4345  r"""set_value(FloatIndex self, Model m, IMP::Float v)"""
4346  return _IMP_kernel.FloatIndex_set_value(self, m, v)
4347 
4348  def get_value(self, m):
4349  r"""get_value(FloatIndex self, Model m) -> IMP::Float"""
4350  return _IMP_kernel.FloatIndex_get_value(self, m)
4351 
4352  def get_derivative(self, m):
4353  r"""get_derivative(FloatIndex self, Model m) -> IMP::Float"""
4354  return _IMP_kernel.FloatIndex_get_derivative(self, m)
4355 
4356  def show(self, *args):
4357  r"""show(FloatIndex self, _ostream out=std::cout)"""
4358  return _IMP_kernel.FloatIndex_show(self, *args)
4359 
4360  def __str__(self):
4361  r"""__str__(FloatIndex self) -> std::string"""
4362  return _IMP_kernel.FloatIndex___str__(self)
4363 
4364  def __repr__(self):
4365  r"""__repr__(FloatIndex self) -> std::string"""
4366  return _IMP_kernel.FloatIndex___repr__(self)
4367  __swig_destroy__ = _IMP_kernel.delete_FloatIndex
4368 
4369 # Register FloatIndex in _IMP_kernel:
4370 _IMP_kernel.FloatIndex_swigregister(FloatIndex)
4371 class _ParticleIndexTag(object):
4372  r"""Proxy of C++ IMP::ParticleIndexTag class."""
4373 
4374  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4375  __repr__ = _swig_repr
4376 
4377  def __init__(self):
4378  r"""__init__(_ParticleIndexTag self) -> _ParticleIndexTag"""
4379  _IMP_kernel._ParticleIndexTag_swiginit(self, _IMP_kernel.new__ParticleIndexTag())
4380  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexTag
4381 
4382 # Register _ParticleIndexTag in _IMP_kernel:
4383 _IMP_kernel._ParticleIndexTag_swigregister(_ParticleIndexTag)
4384 class ModelObject(Object):
4385  r"""Proxy of C++ IMP::ModelObject class."""
4386 
4387  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4388 
4389  def __init__(self, *args):
4390  r"""
4391  __init__(ModelObject self, Model m, std::string name) -> ModelObject
4392  __init__(ModelObject self) -> ModelObject
4393  """
4394  if self.__class__ == ModelObject:
4395  _self = None
4396  else:
4397  _self = self
4398  _IMP_kernel.ModelObject_swiginit(self, _IMP_kernel.new_ModelObject(_self, *args))
4399 
4400  if self.__class__ != ModelObject:
4401  _director_objects.register(self)
4402 
4403 
4404 
4405  __swig_destroy__ = _IMP_kernel.delete_ModelObject
4406 
4407  def get_model(self):
4408  m = _IMP_kernel.ModelObject_get_model(self)
4409  if m in _models_set:
4410  m = _models_set_get(m)
4411  return m
4412 
4413 
4414 
4415  def get_inputs(self):
4416  r"""get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4417  return _IMP_kernel.ModelObject_get_inputs(self)
4418 
4419  def get_outputs(self):
4420  r"""get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4421  return _IMP_kernel.ModelObject_get_outputs(self)
4422 
4423  def get_interactions(self):
4424  r"""get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
4425  return _IMP_kernel.ModelObject_get_interactions(self)
4426 
4427  def get_has_dependencies(self):
4428  r"""get_has_dependencies(ModelObject self) -> bool"""
4429  return _IMP_kernel.ModelObject_get_has_dependencies(self)
4430 
4431  def set_has_dependencies(self, tf):
4432  r"""set_has_dependencies(ModelObject self, bool tf)"""
4433  return _IMP_kernel.ModelObject_set_has_dependencies(self, tf)
4434 
4435  def set_has_required_score_states(self, tf):
4436  r"""set_has_required_score_states(ModelObject self, bool tf)"""
4437  return _IMP_kernel.ModelObject_set_has_required_score_states(self, tf)
4438 
4439  def get_has_required_score_states(self):
4440  r"""get_has_required_score_states(ModelObject self) -> bool"""
4441  return _IMP_kernel.ModelObject_get_has_required_score_states(self)
4442 
4443  def get_required_score_states(self):
4444  r"""get_required_score_states(ModelObject self) -> IMP::ScoreStatesTemp const &"""
4445  return _IMP_kernel.ModelObject_get_required_score_states(self)
4446 
4447  def handle_set_has_required_score_states(self, arg0):
4448  r"""handle_set_has_required_score_states(ModelObject self, bool arg0)"""
4449  return _IMP_kernel.ModelObject_handle_set_has_required_score_states(self, arg0)
4450 
4451  def do_get_inputs(self):
4452  r"""do_get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4453  return _IMP_kernel.ModelObject_do_get_inputs(self)
4454 
4455  def do_get_outputs(self):
4456  r"""do_get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4457  return _IMP_kernel.ModelObject_do_get_outputs(self)
4458 
4459  def do_get_interactions(self):
4460  r"""do_get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
4461  return _IMP_kernel.ModelObject_do_get_interactions(self)
4462 
4463  def __str__(self):
4464  r"""__str__(ModelObject self) -> std::string"""
4465  return _IMP_kernel.ModelObject___str__(self)
4466 
4467  def __repr__(self):
4468  r"""__repr__(ModelObject self) -> std::string"""
4469  return _IMP_kernel.ModelObject___repr__(self)
4470 
4471  @staticmethod
4472  def get_from(o):
4473  return _object_cast_to_ModelObject(o)
4474 
4475 
4476  def do_show(self, out):
4477  pass
4478 
4479  @staticmethod
4480  def get_from(o):
4481  return _object_cast_to_ModelObject(o)
4482 
4483  def __disown__(self):
4484  self.this.disown()
4485  _IMP_kernel.disown_ModelObject(self)
4486  return weakref.proxy(self)
4487 
4488  def do_destroy(self):
4489  r"""do_destroy(ModelObject self)"""
4490  return _IMP_kernel.ModelObject_do_destroy(self)
4491 
4492 # Register ModelObject in _IMP_kernel:
4493 _IMP_kernel.ModelObject_swigregister(ModelObject)
4494 cvar = _IMP_kernel.cvar
4495 NO_MAX = cvar.NO_MAX
4496 BAD_SCORE = cvar.BAD_SCORE
4497 
4498 class _ParticleInputs(object):
4499  r"""Proxy of C++ IMP::ParticleInputs class."""
4500 
4501  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4502 
4503  def __init__(self, *args, **kwargs):
4504  raise AttributeError("No constructor defined - class is abstract")
4505  __repr__ = _swig_repr
4506 
4507  def get_inputs(self, m, pis):
4508  r"""get_inputs(_ParticleInputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4509  return _IMP_kernel._ParticleInputs_get_inputs(self, m, pis)
4510 
4511 # Register _ParticleInputs in _IMP_kernel:
4512 _IMP_kernel._ParticleInputs_swigregister(_ParticleInputs)
4513 class _ParticleOutputs(object):
4514  r"""Proxy of C++ IMP::ParticleOutputs class."""
4515 
4516  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4517 
4518  def __init__(self, *args, **kwargs):
4519  raise AttributeError("No constructor defined - class is abstract")
4520  __repr__ = _swig_repr
4521 
4522  def get_outputs(self, m, pis):
4523  r"""get_outputs(_ParticleOutputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4524  return _IMP_kernel._ParticleOutputs_get_outputs(self, m, pis)
4525 
4526 # Register _ParticleOutputs in _IMP_kernel:
4527 _IMP_kernel._ParticleOutputs_swigregister(_ParticleOutputs)
4528 
4529 def get_input_particles(mos):
4530  r"""get_input_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
4531  return _IMP_kernel.get_input_particles(mos)
4532 
4533 def get_input_containers(mos):
4534  r"""get_input_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
4535  return _IMP_kernel.get_input_containers(mos)
4536 
4537 def get_output_particles(mos):
4538  r"""get_output_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
4539  return _IMP_kernel.get_output_particles(mos)
4540 
4541 def get_output_containers(mos):
4542  r"""get_output_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
4543  return _IMP_kernel.get_output_containers(mos)
4544 
4545 Vector1Ds=list
4546 _plural_types.append("Vector1Ds")
4547 _value_types.append("Vector1D")
4548 
4549 
4550 Vector2Ds=list
4551 _plural_types.append("Vector2Ds")
4552 _value_types.append("Vector2D")
4553 
4554 
4555 Vector3Ds=list
4556 _plural_types.append("Vector3Ds")
4557 _value_types.append("Vector3D")
4558 
4559 
4560 Vector4Ds=list
4561 _plural_types.append("Vector4Ds")
4562 _value_types.append("Vector4D")
4563 
4564 
4565 Vector5Ds=list
4566 _plural_types.append("Vector5Ds")
4567 _value_types.append("Vector5D")
4568 
4569 
4570 Vector6Ds=list
4571 _plural_types.append("Vector6Ds")
4572 _value_types.append("Vector6D")
4573 
4574 
4575 Vector1Ds=list
4576 _plural_types.append("Vector1Ds")
4577 _value_types.append("VectorD<1>")
4578 
4579 
4580 Vector2Ds=list
4581 _plural_types.append("Vector2Ds")
4582 _value_types.append("VectorD<2>")
4583 
4584 
4585 Vector3Ds=list
4586 _plural_types.append("Vector3Ds")
4587 _value_types.append("VectorD<3>")
4588 
4589 
4590 Vector4Ds=list
4591 _plural_types.append("Vector4Ds")
4592 _value_types.append("VectorD<4>")
4593 
4594 
4595 Vector5Ds=list
4596 _plural_types.append("Vector5Ds")
4597 _value_types.append("VectorD<5>")
4598 
4599 
4600 Vector6Ds=list
4601 _plural_types.append("Vector6Ds")
4602 _value_types.append("VectorD<6>")
4603 
4604 
4605 VectorKDs=list
4606 _plural_types.append("VectorKDs")
4607 _value_types.append("VectorKD")
4608 
4609 
4610 VectorKDs=list
4611 _plural_types.append("VectorKDs")
4612 _value_types.append("VectorD<-1>")
4613 
4614 
4615 def get_basis_vector_kd(D, coordinate):
4616  r"""get_basis_vector_kd(int D, unsigned int coordinate) -> VectorKD"""
4617  return _IMP_kernel.get_basis_vector_kd(D, coordinate)
4618 
4619 def get_zero_vector_kd(D):
4620  r"""get_zero_vector_kd(int D) -> VectorKD"""
4621  return _IMP_kernel.get_zero_vector_kd(D)
4622 
4623 def get_ones_vector_kd(D, v=1):
4624  r"""get_ones_vector_kd(unsigned int D, double v=1) -> VectorKD"""
4625  return _IMP_kernel.get_ones_vector_kd(D, v)
4626 
4627 def get_vector_product(p1, p2):
4628  r"""get_vector_product(Vector3D p1, Vector3D p2) -> Vector3D"""
4629  return _IMP_kernel.get_vector_product(p1, p2)
4630 
4631 def get_orthogonal_vector(v):
4632  r"""get_orthogonal_vector(Vector3D v) -> Vector3D"""
4633  return _IMP_kernel.get_orthogonal_vector(v)
4634 
4635 def get_centroid(ps):
4636  r"""get_centroid(IMP::Vector3Ds const & ps) -> Vector3D"""
4637  return _IMP_kernel.get_centroid(ps)
4638 
4639 def get_radius_of_gyration(ps):
4640  r"""get_radius_of_gyration(IMP::Vector3Ds const & ps) -> double"""
4641  return _IMP_kernel.get_radius_of_gyration(ps)
4642 class DerivativeAccumulator(object):
4643  r"""Proxy of C++ IMP::DerivativeAccumulator class."""
4644 
4645  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4646  __repr__ = _swig_repr
4647 
4648  def __init__(self, *args):
4649  r"""
4650  __init__(DerivativeAccumulator self, DerivativeAccumulator arg2) -> DerivativeAccumulator
4651  __init__(DerivativeAccumulator self, double weight=1.0) -> DerivativeAccumulator
4652  __init__(DerivativeAccumulator self, DerivativeAccumulator copy, double weight) -> DerivativeAccumulator
4653  """
4654  _IMP_kernel.DerivativeAccumulator_swiginit(self, _IMP_kernel.new_DerivativeAccumulator(*args))
4655 
4656  def __call__(self, *args):
4657  r"""
4658  __call__(DerivativeAccumulator self, double const value) -> double
4659  __call__(DerivativeAccumulator self, Vector3D value) -> Vector3D
4660  __call__(DerivativeAccumulator self, Vector4D value) -> Vector4D
4661  """
4662  return _IMP_kernel.DerivativeAccumulator___call__(self, *args)
4663 
4664  def get_weight(self):
4665  r"""get_weight(DerivativeAccumulator self) -> double"""
4666  return _IMP_kernel.DerivativeAccumulator_get_weight(self)
4667 
4668  def show(self, *args):
4669  r"""show(DerivativeAccumulator self, _ostream out=std::cout)"""
4670  return _IMP_kernel.DerivativeAccumulator_show(self, *args)
4671  __swig_destroy__ = _IMP_kernel.delete_DerivativeAccumulator
4672 
4673 # Register DerivativeAccumulator in _IMP_kernel:
4674 _IMP_kernel.DerivativeAccumulator_swigregister(DerivativeAccumulator)
4675 class EvaluationState(object):
4676  r"""Proxy of C++ IMP::EvaluationState class."""
4677 
4678  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4679  score = property(_IMP_kernel.EvaluationState_score_get, _IMP_kernel.EvaluationState_score_set, doc=r"""score : double""")
4680  good = property(_IMP_kernel.EvaluationState_good_get, _IMP_kernel.EvaluationState_good_set, doc=r"""good : bool""")
4681 
4682  def __init__(self, *args):
4683  r"""
4684  __init__(EvaluationState self, double oscore, bool ogood) -> EvaluationState
4685  __init__(EvaluationState self) -> EvaluationState
4686  """
4687  _IMP_kernel.EvaluationState_swiginit(self, _IMP_kernel.new_EvaluationState(*args))
4688 
4689  def show(self, *args):
4690  r"""show(EvaluationState self, _ostream out=std::cout)"""
4691  return _IMP_kernel.EvaluationState_show(self, *args)
4692 
4693  def __str__(self):
4694  r"""__str__(EvaluationState self) -> std::string"""
4695  return _IMP_kernel.EvaluationState___str__(self)
4696 
4697  def __repr__(self):
4698  r"""__repr__(EvaluationState self) -> std::string"""
4699  return _IMP_kernel.EvaluationState___repr__(self)
4700  __swig_destroy__ = _IMP_kernel.delete_EvaluationState
4701 
4702 # Register EvaluationState in _IMP_kernel:
4703 _IMP_kernel.EvaluationState_swigregister(EvaluationState)
4704 class ScoreAccumulator(_Value):
4705  r"""Proxy of C++ IMP::ScoreAccumulator class."""
4706 
4707  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4708 
4709  def __init__(self, *args):
4710  r"""
4711  __init__(ScoreAccumulator self, ScoreAccumulator arg2) -> ScoreAccumulator
4712  __init__(ScoreAccumulator self) -> ScoreAccumulator
4713  __init__(ScoreAccumulator self, ScoreAccumulator o, Restraint r) -> ScoreAccumulator
4714  __init__(ScoreAccumulator self, ScoreAccumulator o, double weight, double local_max) -> ScoreAccumulator
4715  """
4716  _IMP_kernel.ScoreAccumulator_swiginit(self, _IMP_kernel.new_ScoreAccumulator(*args))
4717 
4718  def add_score(self, score):
4719  r"""add_score(ScoreAccumulator self, double score)"""
4720  return _IMP_kernel.ScoreAccumulator_add_score(self, score)
4721 
4722  def get_abort_evaluation(self):
4723  r"""get_abort_evaluation(ScoreAccumulator self) -> bool"""
4724  return _IMP_kernel.ScoreAccumulator_get_abort_evaluation(self)
4725 
4726  def get_is_evaluate_if_below(self):
4727  r"""get_is_evaluate_if_below(ScoreAccumulator self) -> bool"""
4728  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_below(self)
4729 
4730  def get_is_evaluate_if_good(self):
4731  r"""get_is_evaluate_if_good(ScoreAccumulator self) -> bool"""
4732  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_good(self)
4733 
4734  def get_maximum(self):
4735  r"""get_maximum(ScoreAccumulator self) -> double"""
4736  return _IMP_kernel.ScoreAccumulator_get_maximum(self)
4737 
4738  def get_derivative_accumulator(self):
4739  r"""get_derivative_accumulator(ScoreAccumulator self) -> DerivativeAccumulator"""
4740  return _IMP_kernel.ScoreAccumulator_get_derivative_accumulator(self)
4741 
4742  def show(self, *args):
4743  r"""show(ScoreAccumulator self, _ostream out=std::cout)"""
4744  return _IMP_kernel.ScoreAccumulator_show(self, *args)
4745 
4746  def __str__(self):
4747  r"""__str__(ScoreAccumulator self) -> std::string"""
4748  return _IMP_kernel.ScoreAccumulator___str__(self)
4749 
4750  def __repr__(self):
4751  r"""__repr__(ScoreAccumulator self) -> std::string"""
4752  return _IMP_kernel.ScoreAccumulator___repr__(self)
4753  __swig_destroy__ = _IMP_kernel.delete_ScoreAccumulator
4754 
4755 # Register ScoreAccumulator in _IMP_kernel:
4756 _IMP_kernel.ScoreAccumulator_swigregister(ScoreAccumulator)
4757 class ScoreState(ModelObject):
4758  r"""Proxy of C++ IMP::ScoreState class."""
4759 
4760  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4761  is_ignored_by_jax_ = property(_IMP_kernel.ScoreState_is_ignored_by_jax__get, _IMP_kernel.ScoreState_is_ignored_by_jax__set, doc=r"""is_ignored_by_jax_ : bool""")
4762 
4763  def set_can_skip(self, can_skip):
4764  r"""set_can_skip(ScoreState self, bool can_skip)"""
4765  return _IMP_kernel.ScoreState_set_can_skip(self, can_skip)
4766 
4767  def __init__(self, *args):
4768  r"""
4769  __init__(ScoreState self, Model m, std::string name) -> ScoreState
4770  __init__(ScoreState self) -> ScoreState
4771  """
4772  if self.__class__ == ScoreState:
4773  _self = None
4774  else:
4775  _self = self
4776  _IMP_kernel.ScoreState_swiginit(self, _IMP_kernel.new_ScoreState(_self, *args))
4777 
4778  if self.__class__ != ScoreState:
4779  _director_objects.register(self)
4780 
4781 
4782 
4783 
4784  def before_evaluate(self):
4785  r"""before_evaluate(ScoreState self)"""
4786  return _IMP_kernel.ScoreState_before_evaluate(self)
4787 
4788  def after_evaluate(self, accpt):
4789  r"""after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
4790  return _IMP_kernel.ScoreState_after_evaluate(self, accpt)
4791 
4792  def get_can_skip(self):
4793  r"""get_can_skip(ScoreState self) -> bool"""
4794  return _IMP_kernel.ScoreState_get_can_skip(self)
4795 
4796  def get_has_update_order(self):
4797  r"""get_has_update_order(ScoreState self) -> bool"""
4798  return _IMP_kernel.ScoreState_get_has_update_order(self)
4799 
4800  def get_update_order(self):
4801  r"""get_update_order(ScoreState self) -> unsigned int"""
4802  return _IMP_kernel.ScoreState_get_update_order(self)
4803 
4804  def handle_set_has_required_score_states(self, tf):
4805  r"""handle_set_has_required_score_states(ScoreState self, bool tf)"""
4806  return _IMP_kernel.ScoreState_handle_set_has_required_score_states(self, tf)
4807 
4808  def get_is_ignored_by_jax(self):
4809  r"""get_is_ignored_by_jax(ScoreState self) -> bool"""
4810  return _IMP_kernel.ScoreState_get_is_ignored_by_jax(self)
4811 
4812  def do_before_evaluate(self):
4813  r"""do_before_evaluate(ScoreState self)"""
4814  return _IMP_kernel.ScoreState_do_before_evaluate(self)
4815 
4816  def do_after_evaluate(self, accpt):
4817  r"""do_after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
4818  return _IMP_kernel.ScoreState_do_after_evaluate(self, accpt)
4819  __swig_destroy__ = _IMP_kernel.delete_ScoreState
4820 
4821  def __str__(self):
4822  r"""__str__(ScoreState self) -> std::string"""
4823  return _IMP_kernel.ScoreState___str__(self)
4824 
4825  def __repr__(self):
4826  r"""__repr__(ScoreState self) -> std::string"""
4827  return _IMP_kernel.ScoreState___repr__(self)
4828 
4829  @staticmethod
4830  def get_from(o):
4831  return _object_cast_to_ScoreState(o)
4832 
4833 
4834  def do_show(self, out):
4835  pass
4836 
4837  @staticmethod
4838  def get_from(o):
4839  return _object_cast_to_ScoreState(o)
4840 
4841 
4842  def _wrap_jax(self, apply_func, keys=None):
4843  """Create the return value for _get_jax.
4844  Use this method in _get_jax() to wrap the JAX apply function
4845  with other model- and ScoreState-specific information.
4846 
4847  @param apply_func A function implemented using JAX that takes
4848  a single argument (the current JAX Model) and returns
4849  a new JAX Model with the ScoreState's transformation
4850  applied.
4851  @param keys If given, a set of IMP::Key objects describing Model
4852  attributes (other than xyz and radius) that the ScoreState
4853  uses.
4854  """
4855  from IMP._jax_util import JAXScoreStateInfo
4856  return JAXScoreStateInfo(m=self.get_model(), apply_func=apply_func,
4857  keys=keys)
4858 
4859  def _get_jax(self):
4860  """Return a JAX implementation of this ScoreState.
4861  Implement this method in a ScoreState subclass to provide
4862  an equivalent function using [JAX](https://docs.jax.dev/)
4863  that modifies the JAX Model. See also _wrap_jax.
4864  """
4865  if self.get_is_ignored_by_jax():
4866  return self._wrap_jax(lambda jm: jm)
4867  else:
4868  raise NotImplementedError(
4869  f"No JAX implementation for {self} ({type(self)})")
4870 
4871  def __disown__(self):
4872  self.this.disown()
4873  _IMP_kernel.disown_ScoreState(self)
4874  return weakref.proxy(self)
4875 
4876  def do_destroy(self):
4877  r"""do_destroy(ScoreState self)"""
4878  return _IMP_kernel.ScoreState_do_destroy(self)
4879 
4880  def do_get_inputs(self):
4881  r"""do_get_inputs(ScoreState self) -> IMP::ModelObjectsTemp"""
4882  return _IMP_kernel.ScoreState_do_get_inputs(self)
4883 
4884  def do_get_outputs(self):
4885  r"""do_get_outputs(ScoreState self) -> IMP::ModelObjectsTemp"""
4886  return _IMP_kernel.ScoreState_do_get_outputs(self)
4887 
4888  def do_get_interactions(self):
4889  r"""do_get_interactions(ScoreState self) -> IMP::ModelObjectsTemps"""
4890  return _IMP_kernel.ScoreState_do_get_interactions(self)
4891 
4892 # Register ScoreState in _IMP_kernel:
4893 _IMP_kernel.ScoreState_swigregister(ScoreState)
4894 
4895 def get_update_order(input):
4896  r"""get_update_order(IMP::ScoreStatesTemp input) -> IMP::ScoreStatesTemp"""
4897  return _IMP_kernel.get_update_order(input)
4898 class Constraint(ScoreState):
4899  r"""Proxy of C++ IMP::Constraint class."""
4900 
4901  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4902 
4903  def __init__(self, *args):
4904  r"""
4905  __init__(Constraint self, Model m, std::string name="Constraint %1%") -> Constraint
4906  __init__(Constraint self) -> Constraint
4907  """
4908  if self.__class__ == Constraint:
4909  _self = None
4910  else:
4911  _self = self
4912  _IMP_kernel.Constraint_swiginit(self, _IMP_kernel.new_Constraint(_self, *args))
4913 
4914  if self.__class__ != Constraint:
4915  _director_objects.register(self)
4916 
4917 
4918 
4919 
4920  def do_update_attributes(self):
4921  r"""do_update_attributes(Constraint self)"""
4922  return _IMP_kernel.Constraint_do_update_attributes(self)
4923 
4924  def do_update_derivatives(self, da):
4925  r"""do_update_derivatives(Constraint self, DerivativeAccumulator da)"""
4926  return _IMP_kernel.Constraint_do_update_derivatives(self, da)
4927 
4928  def do_before_evaluate(self):
4929  r"""do_before_evaluate(Constraint self)"""
4930  return _IMP_kernel.Constraint_do_before_evaluate(self)
4931 
4932  def do_after_evaluate(self, da):
4933  r"""do_after_evaluate(Constraint self, DerivativeAccumulator da)"""
4934  return _IMP_kernel.Constraint_do_after_evaluate(self, da)
4935  __swig_destroy__ = _IMP_kernel.delete_Constraint
4936 
4937  def __str__(self):
4938  r"""__str__(Constraint self) -> std::string"""
4939  return _IMP_kernel.Constraint___str__(self)
4940 
4941  def __repr__(self):
4942  r"""__repr__(Constraint self) -> std::string"""
4943  return _IMP_kernel.Constraint___repr__(self)
4944 
4945  @staticmethod
4946  def get_from(o):
4947  return _object_cast_to_Constraint(o)
4948 
4949 
4950  def do_show(self, out):
4951  pass
4952 
4953  @staticmethod
4954  def get_from(o):
4955  return _object_cast_to_Constraint(o)
4956 
4957  def __disown__(self):
4958  self.this.disown()
4959  _IMP_kernel.disown_Constraint(self)
4960  return weakref.proxy(self)
4961 
4962  def do_destroy(self):
4963  r"""do_destroy(Constraint self)"""
4964  return _IMP_kernel.Constraint_do_destroy(self)
4965 
4966  def do_get_inputs(self):
4967  r"""do_get_inputs(Constraint self) -> IMP::ModelObjectsTemp"""
4968  return _IMP_kernel.Constraint_do_get_inputs(self)
4969 
4970  def do_get_outputs(self):
4971  r"""do_get_outputs(Constraint self) -> IMP::ModelObjectsTemp"""
4972  return _IMP_kernel.Constraint_do_get_outputs(self)
4973 
4974  def do_get_interactions(self):
4975  r"""do_get_interactions(Constraint self) -> IMP::ModelObjectsTemps"""
4976  return _IMP_kernel.Constraint_do_get_interactions(self)
4977 
4978 # Register Constraint in _IMP_kernel:
4979 _IMP_kernel.Constraint_swigregister(Constraint)
4980 class Container(ModelObject):
4981  r"""Proxy of C++ IMP::Container class."""
4982 
4983  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4984 
4985  def __init__(self, *args):
4986  r"""
4987  __init__(Container self, Model m, std::string name="Container %1%") -> Container
4988  __init__(Container self) -> Container
4989  """
4990  if self.__class__ == Container:
4991  _self = None
4992  else:
4993  _self = self
4994  _IMP_kernel.Container_swiginit(self, _IMP_kernel.new_Container(_self, *args))
4995 
4996  if self.__class__ != Container:
4997  _director_objects.register(self)
4998 
4999 
5000 
5001 
5002  def do_get_contents_hash(self):
5003  r"""do_get_contents_hash(Container self) -> std::size_t"""
5004  return _IMP_kernel.Container_do_get_contents_hash(self)
5005 
5006  def get_all_possible_indexes(self):
5007  r"""get_all_possible_indexes(Container self) -> IMP::ParticleIndexes"""
5008  return _IMP_kernel.Container_get_all_possible_indexes(self)
5009 
5010  def get_contents_hash(self):
5011  r"""get_contents_hash(Container self) -> std::size_t"""
5012  return _IMP_kernel.Container_get_contents_hash(self)
5013 
5014  def do_get_outputs(self):
5015  r"""do_get_outputs(Container self) -> IMP::ModelObjectsTemp"""
5016  return _IMP_kernel.Container_do_get_outputs(self)
5017 
5018  def get_is_decomposable(self):
5019  r"""get_is_decomposable(Container self) -> bool"""
5020  return _IMP_kernel.Container_get_is_decomposable(self)
5021 
5022  def validate_readable(self):
5023  r"""validate_readable(Container self)"""
5024  return _IMP_kernel.Container_validate_readable(self)
5025 
5026  def validate_writable(self):
5027  r"""validate_writable(Container self)"""
5028  return _IMP_kernel.Container_validate_writable(self)
5029 
5030  def set_is_readable(self, tf):
5031  r"""set_is_readable(Container self, bool tf)"""
5032  return _IMP_kernel.Container_set_is_readable(self, tf)
5033 
5034  def set_is_writable(self, tf):
5035  r"""set_is_writable(Container self, bool tf)"""
5036  return _IMP_kernel.Container_set_is_writable(self, tf)
5037  __swig_destroy__ = _IMP_kernel.delete_Container
5038 
5039  def __str__(self):
5040  r"""__str__(Container self) -> std::string"""
5041  return _IMP_kernel.Container___str__(self)
5042 
5043  def __repr__(self):
5044  r"""__repr__(Container self) -> std::string"""
5045  return _IMP_kernel.Container___repr__(self)
5046 
5047  @staticmethod
5048  def get_from(o):
5049  return _object_cast_to_Container(o)
5050 
5051 
5052  def do_show(self, out):
5053  pass
5054 
5055  @staticmethod
5056  def get_from(o):
5057  return _object_cast_to_Container(o)
5058 
5059  def __disown__(self):
5060  self.this.disown()
5061  _IMP_kernel.disown_Container(self)
5062  return weakref.proxy(self)
5063 
5064  def do_destroy(self):
5065  r"""do_destroy(Container self)"""
5066  return _IMP_kernel.Container_do_destroy(self)
5067 
5068  def handle_set_has_required_score_states(self, arg0):
5069  r"""handle_set_has_required_score_states(Container self, bool arg0)"""
5070  return _IMP_kernel.Container_handle_set_has_required_score_states(self, arg0)
5071 
5072  def do_get_inputs(self):
5073  r"""do_get_inputs(Container self) -> IMP::ModelObjectsTemp"""
5074  return _IMP_kernel.Container_do_get_inputs(self)
5075 
5076  def do_get_interactions(self):
5077  r"""do_get_interactions(Container self) -> IMP::ModelObjectsTemps"""
5078  return _IMP_kernel.Container_do_get_interactions(self)
5079 
5080 # Register Container in _IMP_kernel:
5081 _IMP_kernel.Container_swigregister(Container)
5082 class RestraintInfo(Object):
5083  r"""Proxy of C++ IMP::RestraintInfo class."""
5084 
5085  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5086 
5087  def __init__(self, *args):
5088  r"""__init__(RestraintInfo self, std::string name="RestraintInfo %1%") -> RestraintInfo"""
5089  _IMP_kernel.RestraintInfo_swiginit(self, _IMP_kernel.new_RestraintInfo(*args))
5090 
5091  def clear(self):
5092  r"""clear(RestraintInfo self)"""
5093  return _IMP_kernel.RestraintInfo_clear(self)
5094 
5095  def add_int(self, key, value):
5096  r"""add_int(RestraintInfo self, std::string key, int value)"""
5097  return _IMP_kernel.RestraintInfo_add_int(self, key, value)
5098 
5099  def get_number_of_int(self):
5100  r"""get_number_of_int(RestraintInfo self) -> unsigned int"""
5101  return _IMP_kernel.RestraintInfo_get_number_of_int(self)
5102 
5103  def get_int_key(self, i):
5104  r"""get_int_key(RestraintInfo self, unsigned int i) -> std::string"""
5105  return _IMP_kernel.RestraintInfo_get_int_key(self, i)
5106 
5107  def get_int_value(self, i):
5108  r"""get_int_value(RestraintInfo self, unsigned int i) -> int"""
5109  return _IMP_kernel.RestraintInfo_get_int_value(self, i)
5110 
5111  def add_float(self, key, value):
5112  r"""add_float(RestraintInfo self, std::string key, double value)"""
5113  return _IMP_kernel.RestraintInfo_add_float(self, key, value)
5114 
5115  def get_number_of_float(self):
5116  r"""get_number_of_float(RestraintInfo self) -> unsigned int"""
5117  return _IMP_kernel.RestraintInfo_get_number_of_float(self)
5118 
5119  def get_float_key(self, i):
5120  r"""get_float_key(RestraintInfo self, unsigned int i) -> std::string"""
5121  return _IMP_kernel.RestraintInfo_get_float_key(self, i)
5122 
5123  def get_float_value(self, i):
5124  r"""get_float_value(RestraintInfo self, unsigned int i) -> double"""
5125  return _IMP_kernel.RestraintInfo_get_float_value(self, i)
5126 
5127  def add_string(self, key, value):
5128  r"""add_string(RestraintInfo self, std::string key, std::string value)"""
5129  return _IMP_kernel.RestraintInfo_add_string(self, key, value)
5130 
5131  def get_number_of_string(self):
5132  r"""get_number_of_string(RestraintInfo self) -> unsigned int"""
5133  return _IMP_kernel.RestraintInfo_get_number_of_string(self)
5134 
5135  def get_string_key(self, i):
5136  r"""get_string_key(RestraintInfo self, unsigned int i) -> std::string"""
5137  return _IMP_kernel.RestraintInfo_get_string_key(self, i)
5138 
5139  def get_string_value(self, i):
5140  r"""get_string_value(RestraintInfo self, unsigned int i) -> std::string"""
5141  return _IMP_kernel.RestraintInfo_get_string_value(self, i)
5142 
5143  def add_filename(self, key, value):
5144  r"""add_filename(RestraintInfo self, std::string key, std::string value)"""
5145  return _IMP_kernel.RestraintInfo_add_filename(self, key, value)
5146 
5147  def get_number_of_filename(self):
5148  r"""get_number_of_filename(RestraintInfo self) -> unsigned int"""
5149  return _IMP_kernel.RestraintInfo_get_number_of_filename(self)
5150 
5151  def get_filename_key(self, i):
5152  r"""get_filename_key(RestraintInfo self, unsigned int i) -> std::string"""
5153  return _IMP_kernel.RestraintInfo_get_filename_key(self, i)
5154 
5155  def get_filename_value(self, i):
5156  r"""get_filename_value(RestraintInfo self, unsigned int i) -> std::string"""
5157  return _IMP_kernel.RestraintInfo_get_filename_value(self, i)
5158 
5159  def add_floats(self, key, value):
5160  r"""add_floats(RestraintInfo self, std::string key, IMP::Floats value)"""
5161  return _IMP_kernel.RestraintInfo_add_floats(self, key, value)
5162 
5163  def get_number_of_floats(self):
5164  r"""get_number_of_floats(RestraintInfo self) -> unsigned int"""
5165  return _IMP_kernel.RestraintInfo_get_number_of_floats(self)
5166 
5167  def get_floats_key(self, i):
5168  r"""get_floats_key(RestraintInfo self, unsigned int i) -> std::string"""
5169  return _IMP_kernel.RestraintInfo_get_floats_key(self, i)
5170 
5171  def get_floats_value(self, i):
5172  r"""get_floats_value(RestraintInfo self, unsigned int i) -> IMP::Floats"""
5173  return _IMP_kernel.RestraintInfo_get_floats_value(self, i)
5174 
5175  def add_ints(self, key, value):
5176  r"""add_ints(RestraintInfo self, std::string key, IMP::Ints value)"""
5177  return _IMP_kernel.RestraintInfo_add_ints(self, key, value)
5178 
5179  def get_number_of_ints(self):
5180  r"""get_number_of_ints(RestraintInfo self) -> unsigned int"""
5181  return _IMP_kernel.RestraintInfo_get_number_of_ints(self)
5182 
5183  def get_ints_key(self, i):
5184  r"""get_ints_key(RestraintInfo self, unsigned int i) -> std::string"""
5185  return _IMP_kernel.RestraintInfo_get_ints_key(self, i)
5186 
5187  def get_ints_value(self, i):
5188  r"""get_ints_value(RestraintInfo self, unsigned int i) -> IMP::Ints"""
5189  return _IMP_kernel.RestraintInfo_get_ints_value(self, i)
5190 
5191  def add_strings(self, key, value):
5192  r"""add_strings(RestraintInfo self, std::string key, IMP::Strings value)"""
5193  return _IMP_kernel.RestraintInfo_add_strings(self, key, value)
5194 
5195  def get_number_of_strings(self):
5196  r"""get_number_of_strings(RestraintInfo self) -> unsigned int"""
5197  return _IMP_kernel.RestraintInfo_get_number_of_strings(self)
5198 
5199  def get_strings_key(self, i):
5200  r"""get_strings_key(RestraintInfo self, unsigned int i) -> std::string"""
5201  return _IMP_kernel.RestraintInfo_get_strings_key(self, i)
5202 
5203  def get_strings_value(self, i):
5204  r"""get_strings_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
5205  return _IMP_kernel.RestraintInfo_get_strings_value(self, i)
5206 
5207  def add_filenames(self, key, value):
5208  r"""add_filenames(RestraintInfo self, std::string key, IMP::Strings value)"""
5209  return _IMP_kernel.RestraintInfo_add_filenames(self, key, value)
5210 
5211  def get_number_of_filenames(self):
5212  r"""get_number_of_filenames(RestraintInfo self) -> unsigned int"""
5213  return _IMP_kernel.RestraintInfo_get_number_of_filenames(self)
5214 
5215  def get_filenames_key(self, i):
5216  r"""get_filenames_key(RestraintInfo self, unsigned int i) -> std::string"""
5217  return _IMP_kernel.RestraintInfo_get_filenames_key(self, i)
5218 
5219  def get_filenames_value(self, i):
5220  r"""get_filenames_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
5221  return _IMP_kernel.RestraintInfo_get_filenames_value(self, i)
5222 
5223  def add_particle_indexes(self, key, value):
5224  r"""add_particle_indexes(RestraintInfo self, std::string key, IMP::ParticleIndexes value)"""
5225  return _IMP_kernel.RestraintInfo_add_particle_indexes(self, key, value)
5226 
5227  def get_number_of_particle_indexes(self):
5228  r"""get_number_of_particle_indexes(RestraintInfo self) -> unsigned int"""
5229  return _IMP_kernel.RestraintInfo_get_number_of_particle_indexes(self)
5230 
5231  def get_particle_indexes_key(self, i):
5232  r"""get_particle_indexes_key(RestraintInfo self, unsigned int i) -> std::string"""
5233  return _IMP_kernel.RestraintInfo_get_particle_indexes_key(self, i)
5234 
5235  def get_particle_indexes_value(self, i):
5236  r"""get_particle_indexes_value(RestraintInfo self, unsigned int i) -> IMP::ParticleIndexes"""
5237  return _IMP_kernel.RestraintInfo_get_particle_indexes_value(self, i)
5238 
5239  def get_version_info(self):
5240  r"""get_version_info(RestraintInfo self) -> VersionInfo"""
5241  return _IMP_kernel.RestraintInfo_get_version_info(self)
5242  __swig_destroy__ = _IMP_kernel.delete_RestraintInfo
5243 
5244  def __str__(self):
5245  r"""__str__(RestraintInfo self) -> std::string"""
5246  return _IMP_kernel.RestraintInfo___str__(self)
5247 
5248  def __repr__(self):
5249  r"""__repr__(RestraintInfo self) -> std::string"""
5250  return _IMP_kernel.RestraintInfo___repr__(self)
5251 
5252  @staticmethod
5253  def get_from(o):
5254  return _object_cast_to_RestraintInfo(o)
5255 
5256 
5257 # Register RestraintInfo in _IMP_kernel:
5258 _IMP_kernel.RestraintInfo_swigregister(RestraintInfo)
5259 class Restraint(ModelObject):
5260  r"""Proxy of C++ IMP::Restraint class."""
5261 
5262  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5263 
5264  def __init__(self, *args):
5265  r"""
5266  __init__(Restraint self, Model m, std::string name) -> Restraint
5267  __init__(Restraint self) -> Restraint
5268  """
5269  if self.__class__ == Restraint:
5270  _self = None
5271  else:
5272  _self = self
5273  _IMP_kernel.Restraint_swiginit(self, _IMP_kernel.new_Restraint(_self, *args))
5274 
5275  if self.__class__ != Restraint:
5276  _director_objects.register(self)
5277 
5278 
5279 
5280 
5281  def get_score(self):
5282  r"""get_score(Restraint self) -> double"""
5283  return _IMP_kernel.Restraint_get_score(self)
5284 
5285  def evaluate(self, calc_derivs):
5286  r"""evaluate(Restraint self, bool calc_derivs) -> double"""
5287  return _IMP_kernel.Restraint_evaluate(self, calc_derivs)
5288 
5289  def evaluate_moved(self, calc_derivs, moved_pis, reset_pis):
5290  r"""evaluate_moved(Restraint self, bool calc_derivs, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5291  return _IMP_kernel.Restraint_evaluate_moved(self, calc_derivs, moved_pis, reset_pis)
5292 
5293  def evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max):
5294  r"""evaluate_moved_if_below(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5295  return _IMP_kernel.Restraint_evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max)
5296 
5297  def evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis):
5298  r"""evaluate_moved_if_good(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5299  return _IMP_kernel.Restraint_evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis)
5300 
5301  def evaluate_if_good(self, calc_derivatives):
5302  r"""evaluate_if_good(Restraint self, bool calc_derivatives) -> double"""
5303  return _IMP_kernel.Restraint_evaluate_if_good(self, calc_derivatives)
5304 
5305  def evaluate_if_below(self, calc_derivatives, max):
5306  r"""evaluate_if_below(Restraint self, bool calc_derivatives, double max) -> double"""
5307  return _IMP_kernel.Restraint_evaluate_if_below(self, calc_derivatives, max)
5308 
5309  def unprotected_evaluate(self, da):
5310  r"""unprotected_evaluate(Restraint self, DerivativeAccumulator da) -> double"""
5311  return _IMP_kernel.Restraint_unprotected_evaluate(self, da)
5312 
5313  def unprotected_evaluate_moved(self, da, moved_pis, reset_pis):
5314  r"""unprotected_evaluate_moved(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5315  return _IMP_kernel.Restraint_unprotected_evaluate_moved(self, da, moved_pis, reset_pis)
5316 
5317  def clear_moved_cache(self):
5318  r"""clear_moved_cache(Restraint self)"""
5319  return _IMP_kernel.Restraint_clear_moved_cache(self)
5320 
5321  def unprotected_evaluate_if_good(self, da, max):
5322  r"""unprotected_evaluate_if_good(Restraint self, DerivativeAccumulator da, double max) -> double"""
5323  return _IMP_kernel.Restraint_unprotected_evaluate_if_good(self, da, max)
5324 
5325  def unprotected_evaluate_if_below(self, da, max):
5326  r"""unprotected_evaluate_if_below(Restraint self, DerivativeAccumulator da, double max) -> double"""
5327  return _IMP_kernel.Restraint_unprotected_evaluate_if_below(self, da, max)
5328 
5329  def unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max):
5330  r"""unprotected_evaluate_moved_if_below(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5331  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max)
5332 
5333  def unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max):
5334  r"""unprotected_evaluate_moved_if_good(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5335  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max)
5336 
5337  def get_static_info(self):
5338  r"""get_static_info(Restraint self) -> RestraintInfo"""
5339  return _IMP_kernel.Restraint_get_static_info(self)
5340 
5341  def get_dynamic_info(self):
5342  r"""get_dynamic_info(Restraint self) -> RestraintInfo"""
5343  return _IMP_kernel.Restraint_get_dynamic_info(self)
5344 
5345  def add_score_and_derivatives(self, sa):
5346  r"""add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
5347  return _IMP_kernel.Restraint_add_score_and_derivatives(self, sa)
5348 
5349  def add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5350  r"""add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5351  return _IMP_kernel.Restraint_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5352 
5353  def create_decomposition(self):
5354  r"""create_decomposition(Restraint self) -> Restraint"""
5355  return _IMP_kernel.Restraint_create_decomposition(self)
5356 
5357  def create_current_decomposition(self):
5358  r"""create_current_decomposition(Restraint self) -> Restraint"""
5359  return _IMP_kernel.Restraint_create_current_decomposition(self)
5360 
5361  def set_weight(self, weight):
5362  r"""set_weight(Restraint self, IMP::Float weight)"""
5363  return _IMP_kernel.Restraint_set_weight(self, weight)
5364 
5365  def get_weight(self):
5366  r"""get_weight(Restraint self) -> IMP::Float"""
5367  return _IMP_kernel.Restraint_get_weight(self)
5368 
5369  def get_maximum_score(self):
5370  r"""get_maximum_score(Restraint self) -> double"""
5371  return _IMP_kernel.Restraint_get_maximum_score(self)
5372 
5373  def set_maximum_score(self, s):
5374  r"""set_maximum_score(Restraint self, double s)"""
5375  return _IMP_kernel.Restraint_set_maximum_score(self, s)
5376 
5377  def create_scoring_function(self, *args):
5378  r"""create_scoring_function(Restraint self, double weight=1.0, double max=NO_MAX) -> ScoringFunction"""
5379  return _IMP_kernel.Restraint_create_scoring_function(self, *args)
5380 
5381  def set_last_score(self, s):
5382  r"""set_last_score(Restraint self, double s)"""
5383  return _IMP_kernel.Restraint_set_last_score(self, s)
5384 
5385  def set_last_last_score(self, s):
5386  r"""set_last_last_score(Restraint self, double s)"""
5387  return _IMP_kernel.Restraint_set_last_last_score(self, s)
5388 
5389  def get_last_score(self):
5390  r"""get_last_score(Restraint self) -> double"""
5391  return _IMP_kernel.Restraint_get_last_score(self)
5392 
5393  def get_last_last_score(self):
5394  r"""get_last_last_score(Restraint self) -> double"""
5395  return _IMP_kernel.Restraint_get_last_last_score(self)
5396 
5397  def get_is_aggregate(self):
5398  r"""get_is_aggregate(Restraint self) -> bool"""
5399  return _IMP_kernel.Restraint_get_is_aggregate(self)
5400 
5401  def get_is_custom_reset(self):
5402  r"""get_is_custom_reset(Restraint self) -> bool"""
5403  return _IMP_kernel.Restraint_get_is_custom_reset(self)
5404 
5405  def get_was_good(self):
5406  r"""get_was_good(Restraint self) -> bool"""
5407  return _IMP_kernel.Restraint_get_was_good(self)
5408  __swig_destroy__ = _IMP_kernel.delete_Restraint
5409 
5410  def do_create_decomposition(self):
5411  r"""do_create_decomposition(Restraint self) -> IMP::Restraints"""
5412  return _IMP_kernel.Restraint_do_create_decomposition(self)
5413 
5414  def do_create_current_decomposition(self):
5415  r"""do_create_current_decomposition(Restraint self) -> IMP::Restraints"""
5416  return _IMP_kernel.Restraint_do_create_current_decomposition(self)
5417 
5418  def do_add_score_and_derivatives(self, sa):
5419  r"""do_add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
5420  return _IMP_kernel.Restraint_do_add_score_and_derivatives(self, sa)
5421 
5422  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5423  r"""do_add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5424  return _IMP_kernel.Restraint_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5425 
5426  def do_get_outputs(self):
5427  r"""do_get_outputs(Restraint self) -> IMP::ModelObjectsTemp"""
5428  return _IMP_kernel.Restraint_do_get_outputs(self)
5429  is_aggregate_ = property(_IMP_kernel.Restraint_is_aggregate__get, _IMP_kernel.Restraint_is_aggregate__set, doc=r"""is_aggregate_ : bool""")
5430  is_custom_reset_ = property(_IMP_kernel.Restraint_is_custom_reset__get, _IMP_kernel.Restraint_is_custom_reset__set, doc=r"""is_custom_reset_ : bool""")
5431 
5432  def __str__(self):
5433  r"""__str__(Restraint self) -> std::string"""
5434  return _IMP_kernel.Restraint___str__(self)
5435 
5436  def __repr__(self):
5437  r"""__repr__(Restraint self) -> std::string"""
5438  return _IMP_kernel.Restraint___repr__(self)
5439 
5440  @staticmethod
5441  def get_from(o):
5442  return _object_cast_to_Restraint(o)
5443 
5444 
5445  def do_show(self, out):
5446  pass
5447 
5448  @staticmethod
5449  def get_from(o):
5450  return _object_cast_to_Restraint(o)
5451 
5452 
5453  def _wrap_jax(self, score_func, keys=None):
5454  """Create the return value for _get_jax.
5455  Use this method in _get_jax() to wrap the JAX scoring function
5456  with other model- and restraint-specific information.
5457 
5458  @param score_func A function implemented using JAX that takes
5459  a single argument (the current JAX Model) and returns
5460  the score of the restraint.
5461  @param keys If given, a set of IMP::Key objects describing Model
5462  attributes (other than xyz and radius) that the restraint
5463  uses. For example, a restraint that uses electrostatic charge
5464  would pass IMP::atom::Charged::get_charge_key() here.
5465  """
5466  from IMP._jax_util import JAXRestraintInfo
5467  return JAXRestraintInfo(m=self.get_model(), score_func=score_func,
5468  weight=self.get_weight(), keys=keys)
5469 
5470  @classmethod
5471  def _wrap_jax_multiple(cls, restraint, score_func, keys=None):
5472  """Create the return value for _get_jax_multiple.
5473  This is similar to _wrap_jax but is used to handle the JAX scoring
5474  function for multiple restraints at once. It is designed to be
5475  called from the _get_jax_multiple class method (if implemented).
5476  _get_jax_multiple is called (typically by RestraintSet) once for
5477  each type of restraint, and is given a list of all restraints.
5478  It should return a list of JAX functions that score some of the
5479  restraints using _wrap_jax_multiple (or None), and a list of the
5480  remaining unhandled restraints.
5481 
5482  @param restraint Any one of the restraints that is being scored.
5483  @param score_func A function implemented using JAX that takes
5484  a single argument (the current JAX Model) and returns
5485  an array of scores (one per restraint). Note that this array
5486  should be weighted by the restraint weights; that is not
5487  done in this method.
5488  @param keys As for _wrap_jax().
5489  """
5490  from IMP._jax_util import JAXRestraintInfo
5491  return JAXRestraintInfo(m=restraint.get_model(), score_func=score_func,
5492  weight=1.0, keys=keys)
5493 
5494  def _get_jax(self, space):
5495  """Return a JAX implementation of this Restraint.
5496  Implement this method in a Restraint subclass to provide
5497  an equivalent function using [JAX](https://docs.jax.dev/)
5498  that scores the current JAX Model. See also _wrap_jax.
5499 
5500  @param space The space in which the restraint is evaluated
5501  (e.g. a periodic box). See IMP._jax_util.Space.
5502  """
5503  raise NotImplementedError(
5504  f"No JAX implementation for {self} ({type(self)})")
5505 
5506  def _evaluate_jax(self, space=None):
5507  """Similar to evaluate(False), but using JAX.
5508  This is intended to be useful for testing purposes. It will likely
5509  not be particularly fast as it will copy the IMP Model and
5510  jax.jit-compile the scoring function each time.
5511 
5512  @param space The space in which the restraint is evaluated
5513  (e.g. a periodic box). See IMP._jax_util.Space. If not
5514  specified, an unbounded (free) space is used.
5515  """
5516  import jax
5517  import IMP.jax
5518  ji = self._get_jax(space=space or IMP.jax.FreeSpace)
5519  jm = ji.get_jax_model()
5520  axes = jm.get_vmap_axes()
5521  if axes is None:
5522  j = jax.jit(ji.score_func)
5523  else:
5524  # Extend restraint to work on multiple attribute sets if necessary
5525  j = jax.jit(jax.vmap(ji.score_func, in_axes=(axes,)))
5526  return j(jm)
5527 
5528  def __disown__(self):
5529  self.this.disown()
5530  _IMP_kernel.disown_Restraint(self)
5531  return weakref.proxy(self)
5532 
5533  def do_destroy(self):
5534  r"""do_destroy(Restraint self)"""
5535  return _IMP_kernel.Restraint_do_destroy(self)
5536 
5537  def handle_set_has_required_score_states(self, arg0):
5538  r"""handle_set_has_required_score_states(Restraint self, bool arg0)"""
5539  return _IMP_kernel.Restraint_handle_set_has_required_score_states(self, arg0)
5540 
5541  def do_get_inputs(self):
5542  r"""do_get_inputs(Restraint self) -> IMP::ModelObjectsTemp"""
5543  return _IMP_kernel.Restraint_do_get_inputs(self)
5544 
5545  def do_get_interactions(self):
5546  r"""do_get_interactions(Restraint self) -> IMP::ModelObjectsTemps"""
5547  return _IMP_kernel.Restraint_do_get_interactions(self)
5548 
5549 # Register Restraint in _IMP_kernel:
5550 _IMP_kernel.Restraint_swigregister(Restraint)
5551 class _RestraintsAdaptor(_InputAdaptor):
5552  r"""Proxy of C++ IMP::RestraintsAdaptor class."""
5553 
5554  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5555  __repr__ = _swig_repr
5556 
5557  def __init__(self, *args):
5558  r"""
5559  __init__(_RestraintsAdaptor self) -> _RestraintsAdaptor
5560  __init__(_RestraintsAdaptor self, IMP::Restraints const & sf) -> _RestraintsAdaptor
5561  __init__(_RestraintsAdaptor self, IMP::RestraintsTemp const & sf) -> _RestraintsAdaptor
5562  __init__(_RestraintsAdaptor self, Restraint sf) -> _RestraintsAdaptor
5563  """
5564  _IMP_kernel._RestraintsAdaptor_swiginit(self, _IMP_kernel.new__RestraintsAdaptor(*args))
5565  __swig_destroy__ = _IMP_kernel.delete__RestraintsAdaptor
5566 
5567 # Register _RestraintsAdaptor in _IMP_kernel:
5568 _IMP_kernel._RestraintsAdaptor_swigregister(_RestraintsAdaptor)
5569 class RestraintSet(Restraint):
5570  r"""Proxy of C++ IMP::RestraintSet class."""
5571 
5572  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5573 
5574  def __init__(self, *args):
5575  r"""
5576  __init__(RestraintSet self, Model m, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5577  __init__(RestraintSet self, Model m, std::string const & name="RestraintSet %1%") -> RestraintSet
5578  __init__(RestraintSet self, IMP::RestraintsTemp const & rs, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5579  __init__(RestraintSet self) -> RestraintSet
5580  """
5581  if self.__class__ == RestraintSet:
5582  _self = None
5583  else:
5584  _self = self
5585  _IMP_kernel.RestraintSet_swiginit(self, _IMP_kernel.new_RestraintSet(_self, *args))
5586 
5587  if self.__class__ != RestraintSet:
5588  _director_objects.register(self)
5589 
5590 
5591 
5592 
5593  def unprotected_evaluate(self, da):
5594  r"""unprotected_evaluate(RestraintSet self, DerivativeAccumulator da) -> double"""
5595  return _IMP_kernel.RestraintSet_unprotected_evaluate(self, da)
5596 
5597  def get_type_name(self):
5598  r"""get_type_name(RestraintSet self) -> std::string"""
5599  return _IMP_kernel.RestraintSet_get_type_name(self)
5600 
5601  def get_version_info(self):
5602  r"""get_version_info(RestraintSet self) -> VersionInfo"""
5603  return _IMP_kernel.RestraintSet_get_version_info(self)
5604  __swig_destroy__ = _IMP_kernel.delete_RestraintSet
5605  def __get_restraints(self): return _list_util.VarList(getdimfunc=self.get_number_of_restraints, getfunc=self.get_restraint, erasefunc=self.erase_restraint, appendfunc=self.add_restraint, extendfunc=self.add_restraints, clearfunc=self.clear_restraints, indexfunc=self._python_index_restraint)
5606  def __set_restraints(self, obj): _list_util.set_varlist(self.restraints, obj)
5607  def __del_restraints(self): _list_util.del_varlist(self.restraints)
5608  restraints = property(__get_restraints, __set_restraints, __del_restraints, doc="List of ##ucnames")
5609 
5610  def remove_restraint(self, d):
5611  r"""remove_restraint(RestraintSet self, Restraint d)"""
5612  return _IMP_kernel.RestraintSet_remove_restraint(self, d)
5613 
5614  def _python_index_restraint(self, d, start, stop):
5615  r"""_python_index_restraint(RestraintSet self, Restraint d, unsigned int start, unsigned int stop) -> unsigned int"""
5616  return _IMP_kernel.RestraintSet__python_index_restraint(self, d, start, stop)
5617 
5618  def remove_restraints(self, d):
5619  r"""remove_restraints(RestraintSet self, IMP::Restraints const & d)"""
5620  return _IMP_kernel.RestraintSet_remove_restraints(self, d)
5621 
5622  def set_restraints(self, ps):
5623  r"""set_restraints(RestraintSet self, IMP::Restraints const & ps)"""
5624  return _IMP_kernel.RestraintSet_set_restraints(self, ps)
5625 
5626  def set_restraints_order(self, objs):
5627  r"""set_restraints_order(RestraintSet self, IMP::Restraints const & objs)"""
5628  return _IMP_kernel.RestraintSet_set_restraints_order(self, objs)
5629 
5630  def add_restraint(self, obj):
5631  r"""add_restraint(RestraintSet self, Restraint obj) -> unsigned int"""
5632  return _IMP_kernel.RestraintSet_add_restraint(self, obj)
5633 
5634  def add_restraints(self, objs):
5635  r"""add_restraints(RestraintSet self, IMP::Restraints const & objs)"""
5636  return _IMP_kernel.RestraintSet_add_restraints(self, objs)
5637 
5638  def clear_restraints(self):
5639  r"""clear_restraints(RestraintSet self)"""
5640  return _IMP_kernel.RestraintSet_clear_restraints(self)
5641 
5642  def get_number_of_restraints(self):
5643  r"""get_number_of_restraints(RestraintSet self) -> unsigned int"""
5644  return _IMP_kernel.RestraintSet_get_number_of_restraints(self)
5645 
5646  def get_has_restraints(self):
5647  r"""get_has_restraints(RestraintSet self) -> bool"""
5648  return _IMP_kernel.RestraintSet_get_has_restraints(self)
5649 
5650  def get_restraint(self, i):
5651  r"""get_restraint(RestraintSet self, unsigned int i) -> Restraint"""
5652  return _IMP_kernel.RestraintSet_get_restraint(self, i)
5653 
5654  def get_restraints(self):
5655  r"""get_restraints(RestraintSet self) -> IMP::Restraints"""
5656  return _IMP_kernel.RestraintSet_get_restraints(self)
5657 
5658  def erase_restraint(self, i):
5659  r"""erase_restraint(RestraintSet self, unsigned int i)"""
5660  return _IMP_kernel.RestraintSet_erase_restraint(self, i)
5661 
5662  def reserve_restraints(self, sz):
5663  r"""reserve_restraints(RestraintSet self, unsigned int sz)"""
5664  return _IMP_kernel.RestraintSet_reserve_restraints(self, sz)
5665 
5666  def get_non_sets_and_sets(self):
5667  r"""get_non_sets_and_sets(RestraintSet self) -> std::pair< IMP::RestraintsTemp,IMP::RestraintSetsTemp >"""
5668  return _IMP_kernel.RestraintSet_get_non_sets_and_sets(self)
5669 
5670  def do_get_inputs(self):
5671  r"""do_get_inputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5672  return _IMP_kernel.RestraintSet_do_get_inputs(self)
5673 
5674  def create_scoring_function(self, *args):
5675  r"""create_scoring_function(RestraintSet self, double weight=1.0, double max=std::numeric_limits< double >::max()) -> ScoringFunction"""
5676  return _IMP_kernel.RestraintSet_create_scoring_function(self, *args)
5677 
5678  def get_last_score(self):
5679  r"""get_last_score(RestraintSet self) -> double"""
5680  return _IMP_kernel.RestraintSet_get_last_score(self)
5681 
5682  def __str__(self):
5683  r"""__str__(RestraintSet self) -> std::string"""
5684  return _IMP_kernel.RestraintSet___str__(self)
5685 
5686  def __repr__(self):
5687  r"""__repr__(RestraintSet self) -> std::string"""
5688  return _IMP_kernel.RestraintSet___repr__(self)
5689 
5690  @staticmethod
5691  def get_from(o):
5692  return _object_cast_to_RestraintSet(o)
5693 
5694 
5695  def do_show(self, out):
5696  pass
5697 
5698  @staticmethod
5699  def get_from(o):
5700  return _object_cast_to_RestraintSet(o)
5701 
5702 
5703  def _get_as_binary(self):
5704  r"""_get_as_binary(RestraintSet self) -> PyObject *"""
5705  return _IMP_kernel.RestraintSet__get_as_binary(self)
5706 
5707  def _set_from_binary(self, p):
5708  r"""_set_from_binary(RestraintSet self, PyObject * p)"""
5709  return _IMP_kernel.RestraintSet__set_from_binary(self, p)
5710 
5711  def __getstate__(self):
5712  p = self._get_as_binary()
5713  if len(self.__dict__) > 1:
5714  d = self.__dict__.copy()
5715  del d['this']
5716  p = (d, p)
5717  return p
5718 
5719  def __setstate__(self, p):
5720  if not hasattr(self, 'this'):
5721  self.__init__()
5722  if isinstance(p, tuple):
5723  d, p = p
5724  self.__dict__.update(d)
5725  return self._set_from_binary(p)
5726 
5727 
5728  def _get_jax(self, space):
5729  import jax.numpy as jnp
5730  import IMP._jax_util
5731  restraints = [r.get_derived_object() for r in self.restraints]
5732  multi_funcs, funcs, keys = IMP._jax_util.get_restraints_jax_funcs_keys(
5733  restraints, space)
5734  def jax_sf(jm):
5735  if funcs or multi_funcs:
5736  rets = [f(jm) for f in multi_funcs]
5737  if funcs:
5738  rets.append(jnp.stack([f(jm) for f in funcs], axis=-1))
5739  scores = jnp.concatenate(rets, axis=-1)
5740  return jnp.sum(scores, axis=-1)
5741  else:
5742  # sum([]) returns int, but we must return float
5743  return 0.
5744  return self._wrap_jax(jax_sf, keys=keys)
5745 
5746  def __disown__(self):
5747  self.this.disown()
5748  _IMP_kernel.disown_RestraintSet(self)
5749  return weakref.proxy(self)
5750 
5751  def do_destroy(self):
5752  r"""do_destroy(RestraintSet self)"""
5753  return _IMP_kernel.RestraintSet_do_destroy(self)
5754 
5755  def handle_set_has_required_score_states(self, arg0):
5756  r"""handle_set_has_required_score_states(RestraintSet self, bool arg0)"""
5757  return _IMP_kernel.RestraintSet_handle_set_has_required_score_states(self, arg0)
5758 
5759  def do_get_outputs(self):
5760  r"""do_get_outputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5761  return _IMP_kernel.RestraintSet_do_get_outputs(self)
5762 
5763  def do_get_interactions(self):
5764  r"""do_get_interactions(RestraintSet self) -> IMP::ModelObjectsTemps"""
5765  return _IMP_kernel.RestraintSet_do_get_interactions(self)
5766 
5767  def do_create_decomposition(self):
5768  r"""do_create_decomposition(RestraintSet self) -> IMP::Restraints"""
5769  return _IMP_kernel.RestraintSet_do_create_decomposition(self)
5770 
5771  def do_create_current_decomposition(self):
5772  r"""do_create_current_decomposition(RestraintSet self) -> IMP::Restraints"""
5773  return _IMP_kernel.RestraintSet_do_create_current_decomposition(self)
5774 
5775  def do_add_score_and_derivatives(self, sa):
5776  r"""do_add_score_and_derivatives(RestraintSet self, ScoreAccumulator sa)"""
5777  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives(self, sa)
5778 
5779  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5780  r"""do_add_score_and_derivatives_moved(RestraintSet self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5781  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5782 
5783 # Register RestraintSet in _IMP_kernel:
5784 _IMP_kernel.RestraintSet_swigregister(RestraintSet)
5785 
5786 def get_restraints(rs):
5787  r"""get_restraints(IMP::RestraintsTemp const & rs) -> IMP::RestraintsTemp"""
5788  return _IMP_kernel.get_restraints(rs)
5789 
5790 def _check_particle(p, a):
5791  if (not p.get_is_active()):
5792  raise ValueError("Inactive Particle")
5793  if (type(a)() == a):
5794  raise IndexError("Cannot use default Index")
5795  if (not p.has_attribute(a)):
5796  raise IndexError("Particle does not have attribute")
5797 
5798 class Particle(ModelObject):
5799  r"""Proxy of C++ IMP::Particle class."""
5800 
5801  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5802 
5803  def get_version_info(self):
5804  r"""get_version_info(Particle self) -> VersionInfo"""
5805  return _IMP_kernel.Particle_get_version_info(self)
5806  __swig_destroy__ = _IMP_kernel.delete_Particle
5807 
5808  def __init__(self, *args):
5809  r"""
5810  __init__(Particle self, Model m, std::string name) -> Particle
5811  __init__(Particle self, Model m) -> Particle
5812  __init__(Particle self) -> Particle
5813  """
5814  _IMP_kernel.Particle_swiginit(self, _IMP_kernel.new_Particle(*args))
5815 
5816  def get_float_keys(self):
5817  r"""get_float_keys(Particle self) -> IMP::FloatKeys"""
5818  return _IMP_kernel.Particle_get_float_keys(self)
5819 
5820  def get_floats_keys(self):
5821  r"""get_floats_keys(Particle self) -> IMP::FloatsKeys"""
5822  return _IMP_kernel.Particle_get_floats_keys(self)
5823 
5824  def get_int_keys(self):
5825  r"""get_int_keys(Particle self) -> IMP::IntKeys"""
5826  return _IMP_kernel.Particle_get_int_keys(self)
5827 
5828  def get_ints_keys(self):
5829  r"""get_ints_keys(Particle self) -> IMP::IntsKeys"""
5830  return _IMP_kernel.Particle_get_ints_keys(self)
5831 
5832  def get_string_keys(self):
5833  r"""get_string_keys(Particle self) -> IMP::StringKeys"""
5834  return _IMP_kernel.Particle_get_string_keys(self)
5835 
5836  def get_object_keys(self):
5837  r"""get_object_keys(Particle self) -> IMP::ObjectKeys"""
5838  return _IMP_kernel.Particle_get_object_keys(self)
5839 
5840  def add_cache_attribute(self, *args):
5841  r"""
5842  add_cache_attribute(Particle self, FloatKey name, IMP::Float value)
5843  add_cache_attribute(Particle self, FloatsKey name, IMP::Floats value)
5844  add_cache_attribute(Particle self, IntKey name, IMP::Int value)
5845  add_cache_attribute(Particle self, IntsKey name, IMP::Ints value)
5846  add_cache_attribute(Particle self, StringKey name, IMP::String value)
5847  add_cache_attribute(Particle self, ObjectKey name, Object value)
5848  add_cache_attribute(Particle self, IMP::WeakObjectKey name, Object value)
5849  """
5850  return _IMP_kernel.Particle_add_cache_attribute(self, *args)
5851 
5852  def get_weak_object_keys(self):
5853  r"""get_weak_object_keys(Particle self) -> IMP::WeakObjectKeys"""
5854  return _IMP_kernel.Particle_get_weak_object_keys(self)
5855 
5856  def add_to_derivative(self, *args):
5857  r"""
5858  add_to_derivative(Particle self, FloatKey key, IMP::Float value, DerivativeAccumulator da)
5859  add_to_derivative(Particle self, Vector3DDerivKey key, Vector3D value, DerivativeAccumulator da)
5860  add_to_derivative(Particle self, Vector4DDerivKey key, Vector4D value, DerivativeAccumulator da)
5861  """
5862  return _IMP_kernel.Particle_add_to_derivative(self, *args)
5863 
5864  def set_is_optimized(self, *args):
5865  r"""
5866  set_is_optimized(Particle self, FloatKey k, bool tf)
5867  set_is_optimized(Particle self, Vector3DDerivKey k, bool tf)
5868  set_is_optimized(Particle self, Vector4DDerivKey k, bool tf)
5869  """
5870  return _IMP_kernel.Particle_set_is_optimized(self, *args)
5871 
5872  def get_is_optimized(self, *args):
5873  r"""
5874  get_is_optimized(Particle self, FloatKey k) -> bool
5875  get_is_optimized(Particle self, Vector3DDerivKey k) -> bool
5876  get_is_optimized(Particle self, Vector4DDerivKey k) -> bool
5877  """
5878  return _IMP_kernel.Particle_get_is_optimized(self, *args)
5879 
5880  def get_derivative(self, *args):
5881  r"""
5882  get_derivative(Particle self, FloatKey k) -> IMP::Float
5883  get_derivative(Particle self, Vector3DDerivKey k) -> Vector3D
5884  get_derivative(Particle self, Vector4DDerivKey k) -> Vector4D
5885  """
5886  return _IMP_kernel.Particle_get_derivative(self, *args)
5887 
5888  def add_attribute(self, *args):
5889  r"""
5890  add_attribute(Particle self, FloatKey name, IMP::Float initial_value)
5891  add_attribute(Particle self, FloatsKey name, IMP::Floats initial_value)
5892  add_attribute(Particle self, IntKey name, IMP::Int initial_value)
5893  add_attribute(Particle self, IntsKey name, IMP::Ints initial_value)
5894  add_attribute(Particle self, StringKey name, IMP::String initial_value)
5895  add_attribute(Particle self, ObjectKey name, Object initial_value)
5896  add_attribute(Particle self, IMP::WeakObjectKey name, Object initial_value)
5897  add_attribute(Particle self, SparseStringKey name, IMP::String initial_value)
5898  add_attribute(Particle self, SparseIntKey name, IMP::Int initial_value)
5899  add_attribute(Particle self, SparseFloatKey name, IMP::Float initial_value)
5900  add_attribute(Particle self, SparseParticleIndexKey name, ParticleIndex initial_value)
5901  add_attribute(Particle self, FloatKey name, IMP::Float const initial_value, bool optimized)
5902  add_attribute(Particle self, ParticleIndexKey k, Particle v)
5903  """
5904  return _IMP_kernel.Particle_add_attribute(self, *args)
5905 
5906  def has_attribute(self, *args):
5907  r"""
5908  has_attribute(Particle self, FloatKey name) -> bool
5909  has_attribute(Particle self, FloatsKey name) -> bool
5910  has_attribute(Particle self, IntKey name) -> bool
5911  has_attribute(Particle self, IntsKey name) -> bool
5912  has_attribute(Particle self, StringKey name) -> bool
5913  has_attribute(Particle self, ObjectKey name) -> bool
5914  has_attribute(Particle self, IMP::WeakObjectKey name) -> bool
5915  has_attribute(Particle self, SparseStringKey name) -> bool
5916  has_attribute(Particle self, SparseIntKey name) -> bool
5917  has_attribute(Particle self, SparseFloatKey name) -> bool
5918  has_attribute(Particle self, SparseParticleIndexKey name) -> bool
5919  has_attribute(Particle self, ParticleIndexKey k) -> bool
5920  """
5921  return _IMP_kernel.Particle_has_attribute(self, *args)
5922 
5923  def set_value(self, *args):
5924  r"""
5925  set_value(Particle self, FloatKey name, IMP::Float value)
5926  set_value(Particle self, FloatsKey name, IMP::Floats value)
5927  set_value(Particle self, IntKey name, IMP::Int value)
5928  set_value(Particle self, IntsKey name, IMP::Ints value)
5929  set_value(Particle self, StringKey name, IMP::String value)
5930  set_value(Particle self, ObjectKey name, Object value)
5931  set_value(Particle self, IMP::WeakObjectKey name, Object value)
5932  set_value(Particle self, SparseStringKey name, IMP::String value)
5933  set_value(Particle self, SparseIntKey name, IMP::Int value)
5934  set_value(Particle self, SparseFloatKey name, IMP::Float value)
5935  set_value(Particle self, SparseParticleIndexKey name, ParticleIndex value)
5936  set_value(Particle self, ParticleIndexKey k, Particle v)
5937  """
5938  return _IMP_kernel.Particle_set_value(self, *args)
5939 
5940  def get_value(self, *args):
5941  r"""
5942  get_value(Particle self, FloatKey name) -> IMP::Float
5943  get_value(Particle self, FloatsKey name) -> IMP::Floats
5944  get_value(Particle self, IntKey name) -> IMP::Int
5945  get_value(Particle self, IntsKey name) -> IMP::Ints
5946  get_value(Particle self, StringKey name) -> IMP::String
5947  get_value(Particle self, ObjectKey name) -> Object
5948  get_value(Particle self, IMP::WeakObjectKey name) -> Object
5949  get_value(Particle self, SparseStringKey name) -> IMP::String
5950  get_value(Particle self, SparseIntKey name) -> IMP::Int
5951  get_value(Particle self, SparseFloatKey name) -> IMP::Float
5952  get_value(Particle self, SparseParticleIndexKey name) -> ParticleIndex
5953  get_value(Particle self, ParticleIndexKey k) -> Particle
5954  """
5955  return _IMP_kernel.Particle_get_value(self, *args)
5956 
5957  def remove_attribute(self, *args):
5958  r"""
5959  remove_attribute(Particle self, FloatKey name)
5960  remove_attribute(Particle self, FloatsKey name)
5961  remove_attribute(Particle self, IntKey name)
5962  remove_attribute(Particle self, IntsKey name)
5963  remove_attribute(Particle self, StringKey name)
5964  remove_attribute(Particle self, ObjectKey name)
5965  remove_attribute(Particle self, IMP::WeakObjectKey name)
5966  remove_attribute(Particle self, SparseStringKey name)
5967  remove_attribute(Particle self, SparseIntKey name)
5968  remove_attribute(Particle self, SparseFloatKey name)
5969  remove_attribute(Particle self, SparseParticleIndexKey name)
5970  remove_attribute(Particle self, ParticleIndexKey k)
5971  """
5972  return _IMP_kernel.Particle_remove_attribute(self, *args)
5973 
5974  def get_particle_keys(self):
5975  r"""get_particle_keys(Particle self) -> IMP::ParticleIndexKeys"""
5976  return _IMP_kernel.Particle_get_particle_keys(self)
5977 
5978  def show(self, *args):
5979  r"""show(Particle self, _ostream out=std::cout)"""
5980  return _IMP_kernel.Particle_show(self, *args)
5981 
5982  def get_is_active(self):
5983  r"""get_is_active(Particle self) -> bool"""
5984  return _IMP_kernel.Particle_get_is_active(self)
5985 
5986  def get_index(self):
5987  r"""get_index(Particle self) -> ParticleIndex"""
5988  return _IMP_kernel.Particle_get_index(self)
5989 
5990  def __eq__(self, *args):
5991  r"""
5992  __eq__(Particle self, Particle o) -> bool
5993  __eq__(Particle self, Decorator d) -> bool
5994  """
5995  return _IMP_kernel.Particle___eq__(self, *args)
5996 
5997  def __ne__(self, *args):
5998  r"""
5999  __ne__(Particle self, Particle o) -> bool
6000  __ne__(Particle self, Decorator d) -> bool
6001  """
6002  return _IMP_kernel.Particle___ne__(self, *args)
6003 
6004  def __le__(self, *args):
6005  r"""
6006  __le__(Particle self, Particle o) -> bool
6007  __le__(Particle self, Decorator d) -> bool
6008  """
6009  return _IMP_kernel.Particle___le__(self, *args)
6010 
6011  def __lt__(self, *args):
6012  r"""
6013  __lt__(Particle self, Particle o) -> bool
6014  __lt__(Particle self, Decorator d) -> bool
6015  """
6016  return _IMP_kernel.Particle___lt__(self, *args)
6017 
6018  def __ge__(self, *args):
6019  r"""
6020  __ge__(Particle self, Particle o) -> bool
6021  __ge__(Particle self, Decorator d) -> bool
6022  """
6023  return _IMP_kernel.Particle___ge__(self, *args)
6024 
6025  def __gt__(self, *args):
6026  r"""
6027  __gt__(Particle self, Particle o) -> bool
6028  __gt__(Particle self, Decorator d) -> bool
6029  """
6030  return _IMP_kernel.Particle___gt__(self, *args)
6031 
6032  __hash__ = ModelObject.__hash__
6033 
6034 
6035  def __str__(self):
6036  r"""__str__(Particle self) -> std::string"""
6037  return _IMP_kernel.Particle___str__(self)
6038 
6039  def __repr__(self):
6040  r"""__repr__(Particle self) -> std::string"""
6041  return _IMP_kernel.Particle___repr__(self)
6042 
6043  @staticmethod
6044  def get_from(o):
6045  return _object_cast_to_Particle(o)
6046 
6047 
6048  def _get_as_binary(self):
6049  r"""_get_as_binary(Particle self) -> PyObject *"""
6050  return _IMP_kernel.Particle__get_as_binary(self)
6051 
6052  def _set_from_binary(self, p):
6053  r"""_set_from_binary(Particle self, PyObject * p)"""
6054  return _IMP_kernel.Particle__set_from_binary(self, p)
6055 
6056  def __getstate__(self):
6057  p = self._get_as_binary()
6058  if len(self.__dict__) > 1:
6059  d = self.__dict__.copy()
6060  del d['this']
6061  p = (d, p)
6062  return p
6063 
6064  def __setstate__(self, p):
6065  if not hasattr(self, 'this'):
6066  self.__init__()
6067  if isinstance(p, tuple):
6068  d, p = p
6069  self.__dict__.update(d)
6070  return self._set_from_binary(p)
6071 
6072 
6073 # Register Particle in _IMP_kernel:
6074 _IMP_kernel.Particle_swigregister(Particle)
6075 class _ParticleAdaptor(_InputAdaptor):
6076  r"""Proxy of C++ IMP::ParticleAdaptor class."""
6077 
6078  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6079  __repr__ = _swig_repr
6080 
6081  def __init__(self, *args):
6082  r"""
6083  __init__(_ParticleAdaptor self) -> _ParticleAdaptor
6084  __init__(_ParticleAdaptor self, Particle p) -> _ParticleAdaptor
6085  __init__(_ParticleAdaptor self, Decorator d) -> _ParticleAdaptor
6086  """
6087  _IMP_kernel._ParticleAdaptor_swiginit(self, _IMP_kernel.new__ParticleAdaptor(*args))
6088 
6089  def get_model(self):
6090  r"""get_model(_ParticleAdaptor self) -> Model"""
6091  return _IMP_kernel._ParticleAdaptor_get_model(self)
6092 
6093  def get_particle_index(self):
6094  r"""get_particle_index(_ParticleAdaptor self) -> ParticleIndex"""
6095  return _IMP_kernel._ParticleAdaptor_get_particle_index(self)
6096  __swig_destroy__ = _IMP_kernel.delete__ParticleAdaptor
6097 
6098 # Register _ParticleAdaptor in _IMP_kernel:
6099 _IMP_kernel._ParticleAdaptor_swigregister(_ParticleAdaptor)
6100 class _DependencyGraphVertexIndex(object):
6101  r"""Proxy of C++ IMP::DependencyGraphVertexIndex class."""
6102 
6103  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6104  __repr__ = _swig_repr
6105 
6106  def __init__(self):
6107  r"""__init__(_DependencyGraphVertexIndex self) -> _DependencyGraphVertexIndex"""
6108  _IMP_kernel._DependencyGraphVertexIndex_swiginit(self, _IMP_kernel.new__DependencyGraphVertexIndex())
6109  __swig_destroy__ = _IMP_kernel.delete__DependencyGraphVertexIndex
6110 
6111 # Register _DependencyGraphVertexIndex in _IMP_kernel:
6112 _IMP_kernel._DependencyGraphVertexIndex_swigregister(_DependencyGraphVertexIndex)
6113 
6114 def show_as_graphviz(name, out):
6115  r"""show_as_graphviz(IMP::DependencyGraph const & name, TextOutput out)"""
6116  return _IMP_kernel.show_as_graphviz(name, out)
6117 
6118 def get_vertex_index(g):
6119  r"""get_vertex_index(IMP::DependencyGraph const & g) -> _DependencyGraphVertexIndex"""
6120  return _IMP_kernel.get_vertex_index(g)
6121 
6122 def get_dependency_graph(m):
6123  r"""get_dependency_graph(Model m) -> IMP::DependencyGraph"""
6124  return _IMP_kernel.get_dependency_graph(m)
6125 
6127  r"""get_pruned_dependency_graph(Model m) -> IMP::DependencyGraph"""
6128  return _IMP_kernel.get_pruned_dependency_graph(m)
6129 
6130 def get_dependent_particles(p, all, dg, index):
6131  r"""get_dependent_particles(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ParticlesTemp"""
6132  return _IMP_kernel.get_dependent_particles(p, all, dg, index)
6133 
6134 def get_required_score_states(*args):
6135  r"""
6136  get_required_score_states(IMP::ModelObjectsTemp const & mos, IMP::ScoreStatesTemp exclude=IMP::ScoreStatesTemp()) -> IMP::ScoreStatesTemp
6137  get_required_score_states(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ScoreStatesTemp
6138  get_required_score_states(Model m, ParticleIndex pi) -> IMP::ScoreStatesTemp
6139  """
6140  return _IMP_kernel.get_required_score_states(*args)
6141 class ScoringFunction(ModelObject):
6142  r"""Proxy of C++ IMP::ScoringFunction class."""
6143 
6144  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6145 
6146  def do_add_score_and_derivatives(self, sa, ss):
6147  r"""do_add_score_and_derivatives(ScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
6148  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives(self, sa, ss)
6149 
6150  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
6151  r"""do_add_score_and_derivatives_moved(ScoringFunction self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, IMP::ScoreStatesTemp const & ss)"""
6152  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
6153 
6154  def get_score_accumulator_if_below(self, deriv, max):
6155  r"""get_score_accumulator_if_below(ScoringFunction self, bool deriv, double max) -> ScoreAccumulator"""
6156  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_below(self, deriv, max)
6157 
6158  def get_score_accumulator_if_good(self, deriv):
6159  r"""get_score_accumulator_if_good(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6160  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_good(self, deriv)
6161 
6162  def get_score_accumulator(self, deriv):
6163  r"""get_score_accumulator(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6164  return _IMP_kernel.ScoringFunction_get_score_accumulator(self, deriv)
6165 
6166  def __init__(self, *args):
6167  r"""
6168  __init__(ScoringFunction self, Model m, std::string name) -> ScoringFunction
6169  __init__(ScoringFunction self) -> ScoringFunction
6170  """
6171  if self.__class__ == ScoringFunction:
6172  _self = None
6173  else:
6174  _self = self
6175  _IMP_kernel.ScoringFunction_swiginit(self, _IMP_kernel.new_ScoringFunction(_self, *args))
6176 
6177  if self.__class__ != ScoringFunction:
6178  _director_objects.register(self)
6179 
6180 
6181 
6182 
6183  def do_get_outputs(self):
6184  r"""do_get_outputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6185  return _IMP_kernel.ScoringFunction_do_get_outputs(self)
6186 
6187  def evaluate(self, derivatives):
6188  r"""evaluate(ScoringFunction self, bool derivatives) -> double"""
6189  return _IMP_kernel.ScoringFunction_evaluate(self, derivatives)
6190 
6191  def evaluate_if_good(self, derivatives):
6192  r"""evaluate_if_good(ScoringFunction self, bool derivatives) -> double"""
6193  return _IMP_kernel.ScoringFunction_evaluate_if_good(self, derivatives)
6194 
6195  def evaluate_if_below(self, derivatives, max):
6196  r"""evaluate_if_below(ScoringFunction self, bool derivatives, double max) -> double"""
6197  return _IMP_kernel.ScoringFunction_evaluate_if_below(self, derivatives, max)
6198 
6199  def evaluate_moved(self, derivatives, moved_pis, reset_pis):
6200  r"""evaluate_moved(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6201  return _IMP_kernel.ScoringFunction_evaluate_moved(self, derivatives, moved_pis, reset_pis)
6202 
6203  def evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max):
6204  r"""evaluate_moved_if_below(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
6205  return _IMP_kernel.ScoringFunction_evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max)
6206 
6207  def evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis):
6208  r"""evaluate_moved_if_good(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6209  return _IMP_kernel.ScoringFunction_evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis)
6210 
6211  def clear_moved_cache(self):
6212  r"""clear_moved_cache(ScoringFunction self)"""
6213  return _IMP_kernel.ScoringFunction_clear_moved_cache(self)
6214 
6215  def get_had_good_score(self):
6216  r"""get_had_good_score(ScoringFunction self) -> bool"""
6217  return _IMP_kernel.ScoringFunction_get_had_good_score(self)
6218 
6219  def get_last_score(self):
6220  r"""get_last_score(ScoringFunction self) -> double"""
6221  return _IMP_kernel.ScoringFunction_get_last_score(self)
6222 
6223  def create_restraints(self):
6224  r"""create_restraints(ScoringFunction self) -> IMP::Restraints"""
6225  return _IMP_kernel.ScoringFunction_create_restraints(self)
6226 
6227  def get_single_restraint(self):
6228  r"""get_single_restraint(ScoringFunction self) -> Restraint"""
6229  return _IMP_kernel.ScoringFunction_get_single_restraint(self)
6230 
6231  def __str__(self):
6232  r"""__str__(ScoringFunction self) -> std::string"""
6233  return _IMP_kernel.ScoringFunction___str__(self)
6234 
6235  def __repr__(self):
6236  r"""__repr__(ScoringFunction self) -> std::string"""
6237  return _IMP_kernel.ScoringFunction___repr__(self)
6238 
6239  @staticmethod
6240  def get_from(o):
6241  return _object_cast_to_ScoringFunction(o)
6242 
6243 
6244  def do_show(self, out):
6245  pass
6246 
6247  @staticmethod
6248  def get_from(o):
6249  return _object_cast_to_ScoringFunction(o)
6250 
6251 
6252  def _get_jax(self, space=None):
6253  import IMP.jax
6254  space = space or IMP.jax.FreeSpace
6255  r = self.get_single_restraint()
6256  if r is None:
6257  raise NotImplementedError(
6258  f"No JAX implementation for {self} ({type(self)})")
6259  else:
6260  return r.get_derived_object()._get_jax(space)
6261 
6262  def _evaluate_jax(self, space=None):
6263  """Similar to evaluate(False), but using JAX.
6264  This is intended to be useful for testing purposes. It will likely
6265  not be particularly fast as it will copy the IMP Model and
6266  jax.jit-compile the scoring function each time.
6267 
6268  @param space The space in which the scoring function is evaluated
6269  (e.g. a periodic box). See IMP._jax_util.Space. If not
6270  specified, an unbounded (free) space is used.
6271  """
6272  import jax
6273  ji = self._get_jax(space)
6274  jm = ji.get_jax_model()
6275  axes = jm.get_vmap_axes()
6276  if axes is None:
6277  j = jax.jit(ji.score_func)
6278  else:
6279  # Extend scoring function to work on multiple attribute
6280  # sets if necessary
6281  j = jax.jit(jax.vmap(ji.score_func, in_axes=(axes,)))
6282  return j(jm)
6283 
6284  __swig_destroy__ = _IMP_kernel.delete_ScoringFunction
6285  def __disown__(self):
6286  self.this.disown()
6287  _IMP_kernel.disown_ScoringFunction(self)
6288  return weakref.proxy(self)
6289 
6290  def do_destroy(self):
6291  r"""do_destroy(ScoringFunction self)"""
6292  return _IMP_kernel.ScoringFunction_do_destroy(self)
6293 
6294  def handle_set_has_required_score_states(self, arg0):
6295  r"""handle_set_has_required_score_states(ScoringFunction self, bool arg0)"""
6296  return _IMP_kernel.ScoringFunction_handle_set_has_required_score_states(self, arg0)
6297 
6298  def do_get_inputs(self):
6299  r"""do_get_inputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6300  return _IMP_kernel.ScoringFunction_do_get_inputs(self)
6301 
6302  def do_get_interactions(self):
6303  r"""do_get_interactions(ScoringFunction self) -> IMP::ModelObjectsTemps"""
6304  return _IMP_kernel.ScoringFunction_do_get_interactions(self)
6305 
6306 # Register ScoringFunction in _IMP_kernel:
6307 _IMP_kernel.ScoringFunction_swigregister(ScoringFunction)
6308 
6309 def create_decomposition(*args):
6310  r"""
6311  create_decomposition(IMP::RestraintsTemp const & rs) -> IMP::Restraints
6312  create_decomposition(ScoringFunction sf) -> IMP::ScoringFunctions
6313  """
6314  return _IMP_kernel.create_decomposition(*args)
6315 class _ScoringFunctionAdaptor(_InputAdaptor):
6316  r"""Proxy of C++ IMP::ScoringFunctionAdaptor class."""
6317 
6318  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6319  __repr__ = _swig_repr
6320 
6321  def __init__(self, *args):
6322  r"""
6323  __init__(_ScoringFunctionAdaptor self) -> _ScoringFunctionAdaptor
6324  __init__(_ScoringFunctionAdaptor self, ScoringFunction sf) -> _ScoringFunctionAdaptor
6325  __init__(_ScoringFunctionAdaptor self, IMP::RestraintsTemp const & sf) -> _ScoringFunctionAdaptor
6326  __init__(_ScoringFunctionAdaptor self, IMP::Restraints const & sf) -> _ScoringFunctionAdaptor
6327  __init__(_ScoringFunctionAdaptor self, Restraint sf) -> _ScoringFunctionAdaptor
6328  """
6329  _IMP_kernel._ScoringFunctionAdaptor_swiginit(self, _IMP_kernel.new__ScoringFunctionAdaptor(*args))
6330  __swig_destroy__ = _IMP_kernel.delete__ScoringFunctionAdaptor
6331 
6332 # Register _ScoringFunctionAdaptor in _IMP_kernel:
6333 _IMP_kernel._ScoringFunctionAdaptor_swigregister(_ScoringFunctionAdaptor)
6334 
6335 def show_restraint_hierarchy(*args):
6336  r"""show_restraint_hierarchy(_ScoringFunctionAdaptor rs, _ostream out=std::cout)"""
6337  return _IMP_kernel.show_restraint_hierarchy(*args)
6338 class Undecorator(Object):
6339  r"""Proxy of C++ IMP::Undecorator class."""
6340 
6341  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6342 
6343  def __init__(self, m, name):
6344  r"""__init__(Undecorator self, Model m, std::string name) -> Undecorator"""
6345  if self.__class__ == Undecorator:
6346  _self = None
6347  else:
6348  _self = self
6349  _IMP_kernel.Undecorator_swiginit(self, _IMP_kernel.new_Undecorator(_self, m, name))
6350 
6351  if self.__class__ != Undecorator:
6352  _director_objects.register(self)
6353 
6354 
6355 
6356 
6357  def teardown(self, pi):
6358  r"""teardown(Undecorator self, ParticleIndex pi)"""
6359  return _IMP_kernel.Undecorator_teardown(self, pi)
6360 
6361  def __str__(self):
6362  r"""__str__(Undecorator self) -> std::string"""
6363  return _IMP_kernel.Undecorator___str__(self)
6364 
6365  def __repr__(self):
6366  r"""__repr__(Undecorator self) -> std::string"""
6367  return _IMP_kernel.Undecorator___repr__(self)
6368 
6369  @staticmethod
6370  def get_from(o):
6371  return _object_cast_to_Undecorator(o)
6372 
6373 
6374  def do_show(self, out):
6375  pass
6376 
6377  @staticmethod
6378  def get_from(o):
6379  return _object_cast_to_Undecorator(o)
6380 
6381  __swig_destroy__ = _IMP_kernel.delete_Undecorator
6382  def __disown__(self):
6383  self.this.disown()
6384  _IMP_kernel.disown_Undecorator(self)
6385  return weakref.proxy(self)
6386 
6387  def do_destroy(self):
6388  r"""do_destroy(Undecorator self)"""
6389  return _IMP_kernel.Undecorator_do_destroy(self)
6390 
6391 # Register Undecorator in _IMP_kernel:
6392 _IMP_kernel.Undecorator_swigregister(Undecorator)
6393 class Model(Object):
6394  r"""Proxy of C++ IMP::Model class."""
6395 
6396  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6397 
6398  def __init__(self, *args):
6399  r"""__init__(Model self, std::string name="Model %1%") -> Model"""
6400  _IMP_kernel.Model_swiginit(self, _IMP_kernel.new_Model(*args))
6401 
6402  if self not in _models_set:
6403  _models_set.add(self)
6404 
6405 
6406 
6407 
6408  def clear_particle_caches(self, pi):
6409  r"""clear_particle_caches(Model self, ParticleIndex pi)"""
6410  return _IMP_kernel.Model_clear_particle_caches(self, pi)
6411 
6412  def add_particle(self, name):
6413  r"""add_particle(Model self, std::string name) -> ParticleIndex"""
6414  return _IMP_kernel.Model_add_particle(self, name)
6415 
6416  def get_particle_name(self, pi):
6417  r"""get_particle_name(Model self, ParticleIndex pi) -> std::string"""
6418  return _IMP_kernel.Model_get_particle_name(self, pi)
6419 
6420  def add_undecorator(self, pi, d):
6421  r"""add_undecorator(Model self, ParticleIndex pi, Undecorator d)"""
6422  return _IMP_kernel.Model_add_undecorator(self, pi, d)
6423 
6424  def get_dependent_restraints_uncached(self, pi):
6425  r"""get_dependent_restraints_uncached(Model self, ParticleIndex pi) -> IMP::RestraintsTemp"""
6426  return _IMP_kernel.Model_get_dependent_restraints_uncached(self, pi)
6427 
6428  def get_dependent_particles_uncached(self, pi):
6429  r"""get_dependent_particles_uncached(Model self, ParticleIndex pi) -> IMP::ParticlesTemp"""
6430  return _IMP_kernel.Model_get_dependent_particles_uncached(self, pi)
6431 
6432  def get_dependent_score_states_uncached(self, pi):
6433  r"""get_dependent_score_states_uncached(Model self, ParticleIndex pi) -> IMP::ScoreStatesTemp"""
6434  return _IMP_kernel.Model_get_dependent_score_states_uncached(self, pi)
6435  def __get_score_states(self): return _list_util.VarList(getdimfunc=self.get_number_of_score_states, getfunc=self.get_score_state, erasefunc=self.erase_score_state, appendfunc=self.add_score_state, extendfunc=self.add_score_states, clearfunc=self.clear_score_states, indexfunc=self._python_index_score_state)
6436  def __set_score_states(self, obj): _list_util.set_varlist(self.score_states, obj)
6437  def __del_score_states(self): _list_util.del_varlist(self.score_states)
6438  score_states = property(__get_score_states, __set_score_states, __del_score_states, doc="List of ##ucnames")
6439 
6440  def remove_score_state(self, d):
6441  r"""remove_score_state(Model self, ScoreState d)"""
6442  return _IMP_kernel.Model_remove_score_state(self, d)
6443 
6444  def _python_index_score_state(self, d, start, stop):
6445  r"""_python_index_score_state(Model self, ScoreState d, unsigned int start, unsigned int stop) -> unsigned int"""
6446  return _IMP_kernel.Model__python_index_score_state(self, d, start, stop)
6447 
6448  def remove_score_states(self, d):
6449  r"""remove_score_states(Model self, IMP::ScoreStates const & d)"""
6450  return _IMP_kernel.Model_remove_score_states(self, d)
6451 
6452  def set_score_states(self, ps):
6453  r"""set_score_states(Model self, IMP::ScoreStates const & ps)"""
6454  return _IMP_kernel.Model_set_score_states(self, ps)
6455 
6456  def set_score_states_order(self, objs):
6457  r"""set_score_states_order(Model self, IMP::ScoreStates const & objs)"""
6458  return _IMP_kernel.Model_set_score_states_order(self, objs)
6459 
6460  def add_score_state(self, obj):
6461  r"""add_score_state(Model self, ScoreState obj) -> unsigned int"""
6462  return _IMP_kernel.Model_add_score_state(self, obj)
6463 
6464  def add_score_states(self, objs):
6465  r"""add_score_states(Model self, IMP::ScoreStates const & objs)"""
6466  return _IMP_kernel.Model_add_score_states(self, objs)
6467 
6468  def clear_score_states(self):
6469  r"""clear_score_states(Model self)"""
6470  return _IMP_kernel.Model_clear_score_states(self)
6471 
6472  def get_number_of_score_states(self):
6473  r"""get_number_of_score_states(Model self) -> unsigned int"""
6474  return _IMP_kernel.Model_get_number_of_score_states(self)
6475 
6476  def get_has_score_states(self):
6477  r"""get_has_score_states(Model self) -> bool"""
6478  return _IMP_kernel.Model_get_has_score_states(self)
6479 
6480  def get_score_state(self, i):
6481  r"""get_score_state(Model self, unsigned int i) -> ScoreState"""
6482  return _IMP_kernel.Model_get_score_state(self, i)
6483 
6484  def get_score_states(self):
6485  r"""get_score_states(Model self) -> IMP::ScoreStates"""
6486  return _IMP_kernel.Model_get_score_states(self)
6487 
6488  def erase_score_state(self, i):
6489  r"""erase_score_state(Model self, unsigned int i)"""
6490  return _IMP_kernel.Model_erase_score_state(self, i)
6491 
6492  def reserve_score_states(self, sz):
6493  r"""reserve_score_states(Model self, unsigned int sz)"""
6494  return _IMP_kernel.Model_reserve_score_states(self, sz)
6495 
6496  def update(self):
6497  r"""update(Model self)"""
6498  return _IMP_kernel.Model_update(self)
6499 
6500  def get_ordered_score_states(self):
6501  r"""get_ordered_score_states(Model self) -> IMP::ScoreStatesTemp"""
6502  return _IMP_kernel.Model_get_ordered_score_states(self)
6503 
6504  def add_cache_attribute(self, *args):
6505  r"""
6506  add_cache_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6507  add_cache_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6508  add_cache_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6509  add_cache_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6510  add_cache_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6511  add_cache_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6512  add_cache_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6513  add_cache_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6514  add_cache_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6515  add_cache_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6516  add_cache_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6517  add_cache_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6518  add_cache_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6519  """
6520  return _IMP_kernel.Model_add_cache_attribute(self, *args)
6521 
6522  def add_attribute(self, *args):
6523  r"""
6524  add_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6525  add_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6526  add_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6527  add_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6528  add_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6529  add_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6530  add_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6531  add_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6532  add_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6533  add_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6534  add_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6535  add_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6536  add_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6537  add_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6538  add_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6539  add_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6540  add_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6541  """
6542  return _IMP_kernel.Model_add_attribute(self, *args)
6543 
6544  def remove_attribute(self, *args):
6545  r"""
6546  remove_attribute(Model self, FloatKey attribute_key, ParticleIndex particle)
6547  remove_attribute(Model self, IntKey attribute_key, ParticleIndex particle)
6548  remove_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle)
6549  remove_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle)
6550  remove_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle)
6551  remove_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle)
6552  remove_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle)
6553  remove_attribute(Model self, IntsKey attribute_key, ParticleIndex particle)
6554  remove_attribute(Model self, StringKey attribute_key, ParticleIndex particle)
6555  remove_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle)
6556  remove_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle)
6557  remove_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle)
6558  remove_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle)
6559  remove_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle)
6560  remove_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle)
6561  remove_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle)
6562  remove_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle)
6563  """
6564  return _IMP_kernel.Model_remove_attribute(self, *args)
6565 
6566  def get_has_attribute(self, *args):
6567  r"""
6568  get_has_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> bool
6569  get_has_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> bool
6570  get_has_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> bool
6571  get_has_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> bool
6572  get_has_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> bool
6573  get_has_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> bool
6574  get_has_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> bool
6575  get_has_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> bool
6576  get_has_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> bool
6577  get_has_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> bool
6578  get_has_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6579  get_has_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> bool
6580  get_has_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> bool
6581  get_has_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> bool
6582  get_has_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> bool
6583  get_has_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> bool
6584  get_has_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6585  """
6586  return _IMP_kernel.Model_get_has_attribute(self, *args)
6587 
6588  def set_attribute(self, *args):
6589  r"""
6590  set_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6591  set_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6592  set_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6593  set_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6594  set_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6595  set_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6596  set_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6597  set_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6598  set_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6599  set_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6600  set_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6601  set_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6602  set_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6603  set_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6604  set_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6605  set_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6606  set_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6607  """
6608  return _IMP_kernel.Model_set_attribute(self, *args)
6609 
6610  def get_attribute(self, *args):
6611  r"""
6612  get_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6613  get_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> IMP::Int
6614  get_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> IMP::Floats
6615  get_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> Vector3D
6616  get_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> Vector4D
6617  get_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> Vector3D
6618  get_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> Vector4D
6619  get_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> IMP::Ints
6620  get_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> IMP::String
6621  get_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> IMP::ParticleIndexes
6622  get_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6623  get_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> Object
6624  get_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> Object
6625  get_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> IMP::String
6626  get_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> IMP::Int
6627  get_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6628  get_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6629  """
6630  return _IMP_kernel.Model_get_attribute(self, *args)
6631 
6632  def set_is_optimized(self, *args):
6633  r"""
6634  set_is_optimized(Model self, Vector3DDerivKey arg2, ParticleIndex arg3, bool arg4)
6635  set_is_optimized(Model self, Vector4DDerivKey arg2, ParticleIndex arg3, bool arg4)
6636  set_is_optimized(Model self, FloatKey arg2, ParticleIndex arg3, bool arg4)
6637  """
6638  return _IMP_kernel.Model_set_is_optimized(self, *args)
6639 
6640  def add_to_derivative(self, *args):
6641  r"""
6642  add_to_derivative(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D v, DerivativeAccumulator da)
6643  add_to_derivative(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D v, DerivativeAccumulator da)
6644  add_to_derivative(Model self, FloatKey k, ParticleIndex particle, double v, DerivativeAccumulator da)
6645  """
6646  return _IMP_kernel.Model_add_to_derivative(self, *args)
6647 
6648  def get_number_of_sphere_attribute_sets(self):
6649  r"""get_number_of_sphere_attribute_sets(Model self) -> int"""
6650  return _IMP_kernel.Model_get_number_of_sphere_attribute_sets(self)
6651 
6652  def set_number_of_sphere_attribute_sets(self, nsets):
6653  r"""set_number_of_sphere_attribute_sets(Model self, int nsets)"""
6654  return _IMP_kernel.Model_set_number_of_sphere_attribute_sets(self, nsets)
6655 
6656  def set_active_sphere_attribute_set(self, set):
6657  r"""set_active_sphere_attribute_set(Model self, int set)"""
6658  return _IMP_kernel.Model_set_active_sphere_attribute_set(self, set)
6659 
6660  def get_number_of_internal_coordinate_attribute_sets(self):
6661  r"""get_number_of_internal_coordinate_attribute_sets(Model self) -> int"""
6662  return _IMP_kernel.Model_get_number_of_internal_coordinate_attribute_sets(self)
6663 
6664  def set_number_of_internal_coordinate_attribute_sets(self, nsets):
6665  r"""set_number_of_internal_coordinate_attribute_sets(Model self, int nsets)"""
6666  return _IMP_kernel.Model_set_number_of_internal_coordinate_attribute_sets(self, nsets)
6667 
6668  def set_active_internal_coordinate_attribute_set(self, set):
6669  r"""set_active_internal_coordinate_attribute_set(Model self, int set)"""
6670  return _IMP_kernel.Model_set_active_internal_coordinate_attribute_set(self, set)
6671 
6672  def get_number_of_attribute_sets(self, *args):
6673  r"""
6674  get_number_of_attribute_sets(Model self)
6675  get_number_of_attribute_sets(Model self, FloatKey k) -> int
6676  get_number_of_attribute_sets(Model self, Vector3DKey k) -> int
6677  get_number_of_attribute_sets(Model self, Vector4DKey k) -> int
6678  get_number_of_attribute_sets(Model self, Vector3DDerivKey k) -> int
6679  get_number_of_attribute_sets(Model self, Vector4DDerivKey k) -> int
6680  """
6681  return _IMP_kernel.Model_get_number_of_attribute_sets(self, *args)
6682 
6683  def set_number_of_attribute_sets(self, *args):
6684  r"""
6685  set_number_of_attribute_sets(Model self)
6686  set_number_of_attribute_sets(Model self, FloatKey k, int nsets)
6687  set_number_of_attribute_sets(Model self, Vector3DKey k, int nsets)
6688  set_number_of_attribute_sets(Model self, Vector4DKey k, int nsets)
6689  set_number_of_attribute_sets(Model self, Vector3DDerivKey k, int nsets)
6690  set_number_of_attribute_sets(Model self, Vector4DDerivKey k, int nsets)
6691  """
6692  return _IMP_kernel.Model_set_number_of_attribute_sets(self, *args)
6693 
6694  def set_active_attribute_set(self, *args):
6695  r"""
6696  set_active_attribute_set(Model self)
6697  set_active_attribute_set(Model self, FloatKey k, int set)
6698  set_active_attribute_set(Model self, Vector3DKey k, int set)
6699  set_active_attribute_set(Model self, Vector4DKey k, int set)
6700  set_active_attribute_set(Model self, Vector3DDerivKey k, int set)
6701  set_active_attribute_set(Model self, Vector4DDerivKey k, int set)
6702  """
6703  return _IMP_kernel.Model_set_active_attribute_set(self, *args)
6704 
6705  def get_particle(self, p):
6706  r"""get_particle(Model self, ParticleIndex p) -> Particle"""
6707  return _IMP_kernel.Model_get_particle(self, p)
6708 
6709  def get_has_particle(self, p):
6710  r"""get_has_particle(Model self, ParticleIndex p) -> bool"""
6711  return _IMP_kernel.Model_get_has_particle(self, p)
6712 
6713  def get_particle_indexes(self):
6714  r"""get_particle_indexes(Model self) -> IMP::ParticleIndexes"""
6715  return _IMP_kernel.Model_get_particle_indexes(self)
6716 
6717  def get_model_objects(self):
6718  r"""get_model_objects(Model self) -> IMP::ModelObjectsTemp"""
6719  return _IMP_kernel.Model_get_model_objects(self)
6720 
6721  def remove_particle(self, pi):
6722  r"""remove_particle(Model self, ParticleIndex pi)"""
6723  return _IMP_kernel.Model_remove_particle(self, pi)
6724 
6725  def add_data(self, mk, o):
6726  r"""add_data(Model self, ModelKey mk, Object o)"""
6727  return _IMP_kernel.Model_add_data(self, mk, o)
6728 
6729  def get_data(self, mk):
6730  r"""get_data(Model self, ModelKey mk) -> Object"""
6731  return _IMP_kernel.Model_get_data(self, mk)
6732 
6733  def remove_data(self, mk):
6734  r"""remove_data(Model self, ModelKey mk)"""
6735  return _IMP_kernel.Model_remove_data(self, mk)
6736 
6737  def get_has_data(self, mk):
6738  r"""get_has_data(Model self, ModelKey mk) -> bool"""
6739  return _IMP_kernel.Model_get_has_data(self, mk)
6740 
6741  def get_age(self):
6742  r"""get_age(Model self) -> unsigned int"""
6743  return _IMP_kernel.Model_get_age(self)
6744 
6745  def get_trigger_last_updated(self, tk):
6746  r"""get_trigger_last_updated(Model self, TriggerKey tk) -> unsigned int"""
6747  return _IMP_kernel.Model_get_trigger_last_updated(self, tk)
6748 
6749  def set_trigger_updated(self, tk):
6750  r"""set_trigger_updated(Model self, TriggerKey tk)"""
6751  return _IMP_kernel.Model_set_trigger_updated(self, tk)
6752 
6753  def get_dependencies_updated(self):
6754  r"""get_dependencies_updated(Model self) -> unsigned int"""
6755  return _IMP_kernel.Model_get_dependencies_updated(self)
6756 
6757  def get_removed_particles_attributes_age(self):
6758  r"""get_removed_particles_attributes_age(Model self) -> unsigned int"""
6759  return _IMP_kernel.Model_get_removed_particles_attributes_age(self)
6760 
6761  def save_dependencies(self):
6762  r"""save_dependencies(Model self)"""
6763  return _IMP_kernel.Model_save_dependencies(self)
6764 
6765  def restore_dependencies(self):
6766  r"""restore_dependencies(Model self)"""
6767  return _IMP_kernel.Model_restore_dependencies(self)
6768 
6769  def get_particles_size(self):
6770  r"""get_particles_size(Model self) -> unsigned int"""
6771  return _IMP_kernel.Model_get_particles_size(self)
6772 
6773  def get_unique_id(self):
6774  r"""get_unique_id(Model self) -> uint32_t"""
6775  return _IMP_kernel.Model_get_unique_id(self)
6776 
6777  @staticmethod
6778  def get_by_unique_id(id):
6779  r"""get_by_unique_id(uint32_t id) -> Model"""
6780  return _IMP_kernel.Model_get_by_unique_id(id)
6781 
6782  def get_version_info(self):
6783  r"""get_version_info(Model self) -> VersionInfo"""
6784  return _IMP_kernel.Model_get_version_info(self)
6785  __swig_destroy__ = _IMP_kernel.delete_Model
6786  def __del__(self):
6787  r"""__del__(Model self)"""
6788 
6789  _director_objects.cleanup()
6790 
6791 
6792  pass
6793 
6794 
6795  def do_destroy(self):
6796  r"""do_destroy(Model self)"""
6797  return _IMP_kernel.Model_do_destroy(self)
6798 
6799  def __str__(self):
6800  r"""__str__(Model self) -> std::string"""
6801  return _IMP_kernel.Model___str__(self)
6802 
6803  def __repr__(self):
6804  r"""__repr__(Model self) -> std::string"""
6805  return _IMP_kernel.Model___repr__(self)
6806 
6807  @staticmethod
6808  def get_from(o):
6809  return _object_cast_to_Model(o)
6810 
6811 
6812  def _get_as_binary(self):
6813  r"""_get_as_binary(Model self) -> PyObject *"""
6814  return _IMP_kernel.Model__get_as_binary(self)
6815 
6816  def _set_from_binary(self, p):
6817  r"""_set_from_binary(Model self, PyObject * p)"""
6818  return _IMP_kernel.Model__set_from_binary(self, p)
6819 
6820  def __getstate__(self):
6821  p = self._get_as_binary()
6822  if len(self.__dict__) > 1:
6823  d = self.__dict__.copy()
6824  del d['this']
6825  p = (d, p)
6826  return p
6827 
6828  def __setstate__(self, p):
6829  if not hasattr(self, 'this'):
6830  self.__init__()
6831  if isinstance(p, tuple):
6832  d, p = p
6833  self.__dict__.update(d)
6834  return self._set_from_binary(p)
6835 
6836 
6837  def get_ints_numpy(self, k, read_only=False):
6838  """Get the model's attribute array for IntKey k as a NumPy array.
6839  The array is indexed by ParticleIndex; particles that don't have
6840  this attribute will either be off the end of the array or will have
6841  the value INT_MAX.
6842  This is a NumPy view that shares memory with the Model. Thus,
6843  any changes to values in this list will be reflected in the Model.
6844  Also, if the Model attribute array moves in memory (e.g. if particles
6845  or attributes are added) this array will be invalidated, so it is
6846  unsafe to keep it around long term.
6847  If read_only is set True, values in the array cannot be changed.
6848  """
6849  return _get_ints_numpy(self, k, self, read_only)
6850 
6851  def get_numpy(self, k, read_only=False):
6852  """Get the model's attribute array for any type of Key
6853  k as a NumPy array. See Model::get_ints_numpy() for more details."""
6854  _numpy_meth_map = {IntKey: _get_ints_numpy,
6855  FloatKey: _get_floats_numpy,
6856  Vector3DKey: _get_vector3ds_numpy,
6857  Vector3DDerivKey: _get_vector3dderiv_numpy,
6858  Vector4DKey: _get_vector4ds_numpy,
6859  Vector4DDerivKey: _get_vector4dderiv_numpy,
6860  ParticleIndexKey: _get_particle_indexes_numpy}
6861  return _numpy_meth_map[type(k)](self, k, self, read_only)
6862 
6863  def get_floats_numpy(self, k, read_only=False):
6864  """Get the model's attribute array for FloatKey k as a NumPy array.
6865  See Model::get_ints_numpy() for more details."""
6866  return _get_floats_numpy(self, k, self, read_only)
6867 
6868  def get_derivatives_numpy(self, k, read_only=False):
6869  """Get the model's attribute derivatives array for key k
6870  as a NumPy array. See Model::get_ints_numpy() for more details."""
6871  _numpy_meth_map = {
6872  FloatKey: _get_derivatives_numpy,
6873  Vector3DDerivKey: _get_vector3dderiv_derivatives_numpy,
6874  Vector4DDerivKey: _get_vector4dderiv_derivatives_numpy}
6875  return _numpy_meth_map[type(k)](self, k, self, read_only)
6876 
6877  def get_vector3ds_numpy(self, k, read_only=False):
6878  """Get the model's attribute array for Vector3DKey k as a NumPy array.
6879  See Model::get_ints_numpy() for more details."""
6880  return _get_vector3ds_numpy(self, k, self, read_only)
6881 
6882  def get_spheres_numpy(self, read_only=False):
6883  """Get the model's XYZR attribute arrays as NumPy arrays.
6884  The attribute arrays for Cartesian coordinates and radii are
6885  stored separately from those for other FloatKeys. This function
6886  returns a tuple of two NumPy arrays, the first of coordinates and
6887  the second of radii. See Model::get_ints_numpy() for more details."""
6888  return _get_spheres_numpy(self, self, read_only)
6889 
6890  def get_sphere_derivatives_numpy(self, read_only=False):
6891  """Get the model's XYZR attribute derivatives arrays as NumPy arrays.
6892  See Model::get_ints_numpy() for more details."""
6893  return _get_sphere_derivatives_numpy(self, self, read_only)
6894 
6895  def get_internal_coordinates_numpy(self, read_only=False):
6896  """Get the model's internal coordinate array as a NumPy array.
6897  The attribute arrays for rigid body internal coordinates are
6898  stored separately from those for other FloatKeys.
6899  See Model::get_ints_numpy() for more details."""
6900  return _get_internal_coordinates_numpy(self, self, read_only)
6901 
6902  def get_internal_coordinate_derivatives_numpy(self, read_only=False):
6903  """Get the model's internal coordinate derivative array as a
6904  NumPy array.
6905  See Model::get_ints_numpy() for more details."""
6906  return _get_internal_coordinate_derivatives_numpy(
6907  self, self, read_only)
6908 
6909 
6910 # Register Model in _IMP_kernel:
6911 _IMP_kernel.Model_swigregister(Model)
6912 class Decorator(_Value):
6913  r"""Proxy of C++ IMP::Decorator class."""
6914 
6915  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6916  __repr__ = _swig_repr
6917 
6918  def __init__(self, p):
6919  r"""__init__(Decorator self, _ParticleAdaptor p) -> Decorator"""
6920  _IMP_kernel.Decorator_swiginit(self, _IMP_kernel.new_Decorator(p))
6921 
6922  def __ne__(self, o):
6923  r"""__ne__(Decorator self, Object o) -> bool"""
6924  return _IMP_kernel.Decorator___ne__(self, o)
6925 
6926  def __lt__(self, o):
6927  r"""__lt__(Decorator self, Object o) -> bool"""
6928  return _IMP_kernel.Decorator___lt__(self, o)
6929 
6930  def __gt__(self, o):
6931  r"""__gt__(Decorator self, Object o) -> bool"""
6932  return _IMP_kernel.Decorator___gt__(self, o)
6933 
6934  def __ge__(self, o):
6935  r"""__ge__(Decorator self, Object o) -> bool"""
6936  return _IMP_kernel.Decorator___ge__(self, o)
6937 
6938  def __le__(self, o):
6939  r"""__le__(Decorator self, Object o) -> bool"""
6940  return _IMP_kernel.Decorator___le__(self, o)
6941 
6942  def get_particle(self):
6943  r"""get_particle(Decorator self) -> Particle"""
6944  return _IMP_kernel.Decorator_get_particle(self)
6945 
6946  def get_particle_index(self):
6947  r"""get_particle_index(Decorator self) -> ParticleIndex"""
6948  return _IMP_kernel.Decorator_get_particle_index(self)
6949 
6950  def get_model(self):
6951  m = _IMP_kernel.Decorator_get_model(self)
6952  if m in _models_set:
6953  m = _models_set_get(m)
6954  return m
6955 
6956 
6957 
6958  def get_is_valid(self):
6959  r"""get_is_valid(Decorator self) -> bool"""
6960  return _IMP_kernel.Decorator_get_is_valid(self)
6961 
6962  def __hash__(self):
6963  r"""__hash__(Decorator self) -> std::size_t"""
6964  return _IMP_kernel.Decorator___hash__(self)
6965 
6966  def __eq__(self, *args):
6967  r"""
6968  __eq__(Decorator self, Object o) -> bool
6969  __eq__(Decorator self, Decorator o) -> bool
6970  __eq__(Decorator self, Particle o) -> bool
6971  """
6972  return _IMP_kernel.Decorator___eq__(self, *args)
6973 
6974  def __bool__(self):
6975  r"""__bool__(Decorator self) -> bool"""
6976  return _IMP_kernel.Decorator___bool__(self)
6977  __swig_destroy__ = _IMP_kernel.delete_Decorator
6978 
6979 # Register Decorator in _IMP_kernel:
6980 _IMP_kernel.Decorator_swigregister(Decorator)
6981 
6982 def check_particle(m, pi):
6983  r"""check_particle(Model m, ParticleIndex pi)"""
6984  return _IMP_kernel.check_particle(m, pi)
6985 class UnaryFunction(Object):
6986  r"""Proxy of C++ IMP::UnaryFunction class."""
6987 
6988  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6989 
6990  def __init__(self, *args):
6991  r"""__init__(UnaryFunction self, std::string name="UnaryFunction%1%") -> UnaryFunction"""
6992  if self.__class__ == UnaryFunction:
6993  _self = None
6994  else:
6995  _self = self
6996  _IMP_kernel.UnaryFunction_swiginit(self, _IMP_kernel.new_UnaryFunction(_self, *args))
6997 
6998  if self.__class__ != UnaryFunction:
6999  _director_objects.register(self)
7000 
7001 
7002 
7003 
7004  def evaluate(self, feature):
7005  r"""evaluate(UnaryFunction self, double feature) -> double"""
7006  return _IMP_kernel.UnaryFunction_evaluate(self, feature)
7007 
7008  def evaluate_with_derivative(self, feature):
7009  r"""evaluate_with_derivative(UnaryFunction self, double feature) -> IMP::DerivativePair"""
7010  return _IMP_kernel.UnaryFunction_evaluate_with_derivative(self, feature)
7011  __swig_destroy__ = _IMP_kernel.delete_UnaryFunction
7012 
7013  def __str__(self):
7014  r"""__str__(UnaryFunction self) -> std::string"""
7015  return _IMP_kernel.UnaryFunction___str__(self)
7016 
7017  def __repr__(self):
7018  r"""__repr__(UnaryFunction self) -> std::string"""
7019  return _IMP_kernel.UnaryFunction___repr__(self)
7020 
7021  @staticmethod
7022  def get_from(o):
7023  return _object_cast_to_UnaryFunction(o)
7024 
7025 
7026  def do_show(self, out):
7027  pass
7028 
7029  @staticmethod
7030  def get_from(o):
7031  return _object_cast_to_UnaryFunction(o)
7032 
7033 
7034  def _get_jax(self):
7035  """Return a JAX implementation of this UnaryFunction.
7036  Implement this method in a UnaryFunction subclass to provide
7037  an equivalent function using [JAX](https://docs.jax.dev/)
7038  that scores the provided feature value.
7039  """
7040  raise NotImplementedError(
7041  f"No JAX implementation for {self} ({type(self)})")
7042 
7043  def __disown__(self):
7044  self.this.disown()
7045  _IMP_kernel.disown_UnaryFunction(self)
7046  return weakref.proxy(self)
7047 
7048  def do_destroy(self):
7049  r"""do_destroy(UnaryFunction self)"""
7050  return _IMP_kernel.UnaryFunction_do_destroy(self)
7051 
7052 # Register UnaryFunction in _IMP_kernel:
7053 _IMP_kernel.UnaryFunction_swigregister(UnaryFunction)
7055  r"""Proxy of C++ IMP::OptimizerState class."""
7056 
7057  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7058 
7059  def __init__(self, *args):
7060  r"""
7061  __init__(OptimizerState self, Model m, std::string name) -> OptimizerState
7062  __init__(OptimizerState self) -> OptimizerState
7063  """
7064  if self.__class__ == OptimizerState:
7065  _self = None
7066  else:
7067  _self = self
7068  _IMP_kernel.OptimizerState_swiginit(self, _IMP_kernel.new_OptimizerState(_self, *args))
7069 
7070  if self.__class__ != OptimizerState:
7071  _director_objects.register(self)
7072 
7073 
7074 
7075 
7076  def update(self):
7077  r"""update(OptimizerState self)"""
7078  return _IMP_kernel.OptimizerState_update(self)
7079 
7080  def set_is_optimizing(self, arg0):
7081  r"""set_is_optimizing(OptimizerState self, bool arg0)"""
7082  return _IMP_kernel.OptimizerState_set_is_optimizing(self, arg0)
7083 
7084  def get_optimizer(self):
7085  r"""get_optimizer(OptimizerState self) -> Optimizer"""
7086  return _IMP_kernel.OptimizerState_get_optimizer(self)
7087 
7088  def set_period(self, p):
7089  r"""set_period(OptimizerState self, unsigned int p)"""
7090  return _IMP_kernel.OptimizerState_set_period(self, p)
7091 
7092  def get_period(self):
7093  r"""get_period(OptimizerState self) -> unsigned int"""
7094  return _IMP_kernel.OptimizerState_get_period(self)
7095 
7096  def reset(self):
7097  r"""reset(OptimizerState self)"""
7098  return _IMP_kernel.OptimizerState_reset(self)
7099 
7100  def update_always(self):
7101  r"""update_always(OptimizerState self)"""
7102  return _IMP_kernel.OptimizerState_update_always(self)
7103 
7104  def get_number_of_updates(self):
7105  r"""get_number_of_updates(OptimizerState self) -> unsigned int"""
7106  return _IMP_kernel.OptimizerState_get_number_of_updates(self)
7107 
7108  def set_number_of_updates(self, n):
7109  r"""set_number_of_updates(OptimizerState self, unsigned int n)"""
7110  return _IMP_kernel.OptimizerState_set_number_of_updates(self, n)
7111  __swig_destroy__ = _IMP_kernel.delete_OptimizerState
7112 
7113  def do_update(self, arg0):
7114  r"""do_update(OptimizerState self, unsigned int arg0)"""
7115  return _IMP_kernel.OptimizerState_do_update(self, arg0)
7116 
7117  def do_set_is_optimizing(self, arg0):
7118  r"""do_set_is_optimizing(OptimizerState self, bool arg0)"""
7119  return _IMP_kernel.OptimizerState_do_set_is_optimizing(self, arg0)
7120 
7121  def do_get_inputs(self):
7122  r"""do_get_inputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
7123  return _IMP_kernel.OptimizerState_do_get_inputs(self)
7124 
7125  def do_get_outputs(self):
7126  r"""do_get_outputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
7127  return _IMP_kernel.OptimizerState_do_get_outputs(self)
7128 
7129  def __str__(self):
7130  r"""__str__(OptimizerState self) -> std::string"""
7131  return _IMP_kernel.OptimizerState___str__(self)
7132 
7133  def __repr__(self):
7134  r"""__repr__(OptimizerState self) -> std::string"""
7135  return _IMP_kernel.OptimizerState___repr__(self)
7136 
7137  @staticmethod
7138  def get_from(o):
7139  return _object_cast_to_OptimizerState(o)
7140 
7141 
7142  def do_show(self, out):
7143  pass
7144 
7145  @staticmethod
7146  def get_from(o):
7147  return _object_cast_to_OptimizerState(o)
7148 
7149 
7150  def _get_jax(self, state_index):
7151  """Add JAX support for this OptimizerState.
7152 
7153  Each OptimizerState must explicitly support how it is going to
7154  be called when the Optimizer is run via JAX.
7155 
7156  OptimizerStates can run as traditional IMP CPU code
7157  on the IMP Model object, in which case None should be returned here.
7158  The Optimizer will sync any necessary information from JAX back
7159  with the IMP Model before calling the OptimizerState. However,
7160  the OptimizerState is not permitted to modify the Model; any
7161  changes will not be propagated back to the Optimizer.
7162  (For example, a thermostat which tries to change particle
7163  velocities will not function correctly.)
7164 
7165  Alternatively, a pure JAX implementation can be provided.
7166  See _wrap_jax for more information.
7167  """
7168  raise NotImplementedError(
7169  f"No JAX implementation for {self} ({type(self)})")
7170 
7171  def _wrap_jax(self, init_func, apply_func):
7172  """Create the return value for _get_jax.
7173  Use this method in _get_jax() to wrap the JAX function
7174  with other OptimizerState-specific information.
7175 
7176  @param init_func a JAX function which, given a JAX Optimizer,
7177  does any necessary setup and returns a (possibly modified)
7178  JAX Optimizer. If any OptimizerState-specific
7179  persistent state is needed, it can be stored in
7180  `opt.optimizer_states[state_index]` and later retrieved or
7181  modified in apply_func.
7182  @param apply_func a JAX function which, given a JAX Optimizer,
7183  does the JAX equivalent of do_update() and returns a new
7184  JAX Optimizer.
7185  """
7186  from IMP._jax_util import JAXOptimizerStateInfo
7187  return JAXOptimizerStateInfo(self, init_func, apply_func)
7188 
7189  def __disown__(self):
7190  self.this.disown()
7191  _IMP_kernel.disown_OptimizerState(self)
7192  return weakref.proxy(self)
7193 
7194  def do_destroy(self):
7195  r"""do_destroy(OptimizerState self)"""
7196  return _IMP_kernel.OptimizerState_do_destroy(self)
7197 
7198  def handle_set_has_required_score_states(self, arg0):
7199  r"""handle_set_has_required_score_states(OptimizerState self, bool arg0)"""
7200  return _IMP_kernel.OptimizerState_handle_set_has_required_score_states(self, arg0)
7201 
7202  def do_get_interactions(self):
7203  r"""do_get_interactions(OptimizerState self) -> IMP::ModelObjectsTemps"""
7204  return _IMP_kernel.OptimizerState_do_get_interactions(self)
7205 
7206 # Register OptimizerState in _IMP_kernel:
7207 _IMP_kernel.OptimizerState_swigregister(OptimizerState)
7208 class Refiner(_ParticleInputs, Object):
7209  r"""Proxy of C++ IMP::Refiner class."""
7210 
7211  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7212 
7213  def __init__(self, *args):
7214  r"""__init__(Refiner self, std::string name="Refiner %1%", bool is_by_ref=False) -> Refiner"""
7215  if self.__class__ == Refiner:
7216  _self = None
7217  else:
7218  _self = self
7219  _IMP_kernel.Refiner_swiginit(self, _IMP_kernel.new_Refiner(_self, *args))
7220 
7221  if self.__class__ != Refiner:
7222  _director_objects.register(self)
7223 
7224 
7225 
7226 
7227  def get_can_refine(self, arg0):
7228  r"""get_can_refine(Refiner self, Particle arg0) -> bool"""
7229  return _IMP_kernel.Refiner_get_can_refine(self, arg0)
7230 
7231  def get_refined_indexes(self, m, pi):
7232  r"""get_refined_indexes(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes"""
7233  return _IMP_kernel.Refiner_get_refined_indexes(self, m, pi)
7234 
7235  def get_refined_indexes_by_ref(self, m, pi):
7236  r"""get_refined_indexes_by_ref(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes const &"""
7237  return _IMP_kernel.Refiner_get_refined_indexes_by_ref(self, m, pi)
7238 
7239  def get_is_by_ref_supported(self):
7240  r"""get_is_by_ref_supported(Refiner self) -> bool"""
7241  return _IMP_kernel.Refiner_get_is_by_ref_supported(self)
7242 
7243  def get_refined(self, *args):
7244  r"""
7245  get_refined(Refiner self, Particle a) -> IMP::ParticlesTemp const
7246  get_refined(Refiner self, Particle a, unsigned int i) -> Particle
7247  """
7248  return _IMP_kernel.Refiner_get_refined(self, *args)
7249 
7250  def get_number_of_refined(self, a):
7251  r"""get_number_of_refined(Refiner self, Particle a) -> unsigned int"""
7252  return _IMP_kernel.Refiner_get_number_of_refined(self, a)
7253 
7254  def __str__(self):
7255  r"""__str__(Refiner self) -> std::string"""
7256  return _IMP_kernel.Refiner___str__(self)
7257 
7258  def __repr__(self):
7259  r"""__repr__(Refiner self) -> std::string"""
7260  return _IMP_kernel.Refiner___repr__(self)
7261 
7262  @staticmethod
7263  def get_from(o):
7264  return _object_cast_to_Refiner(o)
7265 
7266 
7267  def do_show(self, out):
7268  pass
7269 
7270  @staticmethod
7271  def get_from(o):
7272  return _object_cast_to_Refiner(o)
7273 
7274  __swig_destroy__ = _IMP_kernel.delete_Refiner
7275  def __disown__(self):
7276  self.this.disown()
7277  _IMP_kernel.disown_Refiner(self)
7278  return weakref.proxy(self)
7279 
7280  def do_get_inputs(self, m, pis):
7281  r"""do_get_inputs(Refiner self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7282  return _IMP_kernel.Refiner_do_get_inputs(self, m, pis)
7283 
7284  def do_destroy(self):
7285  r"""do_destroy(Refiner self)"""
7286  return _IMP_kernel.Refiner_do_destroy(self)
7287 
7288 # Register Refiner in _IMP_kernel:
7289 _IMP_kernel.Refiner_swigregister(Refiner)
7290 class Optimizer(ModelObject):
7291  r"""Proxy of C++ IMP::Optimizer class."""
7292 
7293  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7294 
7295  def set_is_optimizing_states(self, tf):
7296  r"""set_is_optimizing_states(Optimizer self, bool tf)"""
7297  return _IMP_kernel.Optimizer_set_is_optimizing_states(self, tf)
7298 
7299  def get_optimizer_state_inputs(self):
7300  r"""get_optimizer_state_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7301  return _IMP_kernel.Optimizer_get_optimizer_state_inputs(self)
7302 
7303  def do_get_inputs(self):
7304  r"""do_get_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7305  return _IMP_kernel.Optimizer_do_get_inputs(self)
7306 
7307  def do_get_outputs(self):
7308  r"""do_get_outputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7309  return _IMP_kernel.Optimizer_do_get_outputs(self)
7310 
7311  def __init__(self, *args):
7312  r"""
7313  __init__(Optimizer self, Model m, std::string name="Optimizer %1%") -> Optimizer
7314  __init__(Optimizer self) -> Optimizer
7315  """
7316  if self.__class__ == Optimizer:
7317  _self = None
7318  else:
7319  _self = self
7320  _IMP_kernel.Optimizer_swiginit(self, _IMP_kernel.new_Optimizer(_self, *args))
7321 
7322  if self.__class__ != Optimizer:
7323  _director_objects.register(self)
7324 
7325 
7326 
7327 
7328  def optimize(self, max_steps):
7329  r"""optimize(Optimizer self, unsigned int max_steps) -> double"""
7330  return _IMP_kernel.Optimizer_optimize(self, max_steps)
7331 
7332  def set_stop_on_good_score(self, tf):
7333  r"""set_stop_on_good_score(Optimizer self, bool tf)"""
7334  return _IMP_kernel.Optimizer_set_stop_on_good_score(self, tf)
7335 
7336  def get_stop_on_good_score(self):
7337  r"""get_stop_on_good_score(Optimizer self) -> bool"""
7338  return _IMP_kernel.Optimizer_get_stop_on_good_score(self)
7339 
7340  def get_last_score(self):
7341  r"""get_last_score(Optimizer self) -> double"""
7342  return _IMP_kernel.Optimizer_get_last_score(self)
7343 
7344  def get_scoring_function(self):
7345  r"""get_scoring_function(Optimizer self) -> ScoringFunction"""
7346  return _IMP_kernel.Optimizer_get_scoring_function(self)
7347  def __get_optimizer_states(self): return _list_util.VarList(getdimfunc=self.get_number_of_optimizer_states, getfunc=self.get_optimizer_state, erasefunc=self.erase_optimizer_state, appendfunc=self.add_optimizer_state, extendfunc=self.add_optimizer_states, clearfunc=self.clear_optimizer_states, indexfunc=self._python_index_optimizer_state)
7348  def __set_optimizer_states(self, obj): _list_util.set_varlist(self.optimizer_states, obj)
7349  def __del_optimizer_states(self): _list_util.del_varlist(self.optimizer_states)
7350  optimizer_states = property(__get_optimizer_states, __set_optimizer_states, __del_optimizer_states, doc="List of ##ucnames")
7351 
7352  def remove_optimizer_state(self, d):
7353  r"""remove_optimizer_state(Optimizer self, OptimizerState d)"""
7354  return _IMP_kernel.Optimizer_remove_optimizer_state(self, d)
7355 
7356  def _python_index_optimizer_state(self, d, start, stop):
7357  r"""_python_index_optimizer_state(Optimizer self, OptimizerState d, unsigned int start, unsigned int stop) -> unsigned int"""
7358  return _IMP_kernel.Optimizer__python_index_optimizer_state(self, d, start, stop)
7359 
7360  def remove_optimizer_states(self, d):
7361  r"""remove_optimizer_states(Optimizer self, IMP::OptimizerStates const & d)"""
7362  return _IMP_kernel.Optimizer_remove_optimizer_states(self, d)
7363 
7364  def set_optimizer_states(self, ps):
7365  r"""set_optimizer_states(Optimizer self, IMP::OptimizerStates const & ps)"""
7366  return _IMP_kernel.Optimizer_set_optimizer_states(self, ps)
7367 
7368  def set_optimizer_states_order(self, objs):
7369  r"""set_optimizer_states_order(Optimizer self, IMP::OptimizerStates const & objs)"""
7370  return _IMP_kernel.Optimizer_set_optimizer_states_order(self, objs)
7371 
7372  def add_optimizer_state(self, obj):
7373  r"""add_optimizer_state(Optimizer self, OptimizerState obj) -> unsigned int"""
7374  return _IMP_kernel.Optimizer_add_optimizer_state(self, obj)
7375 
7376  def add_optimizer_states(self, objs):
7377  r"""add_optimizer_states(Optimizer self, IMP::OptimizerStates const & objs)"""
7378  return _IMP_kernel.Optimizer_add_optimizer_states(self, objs)
7379 
7380  def clear_optimizer_states(self):
7381  r"""clear_optimizer_states(Optimizer self)"""
7382  return _IMP_kernel.Optimizer_clear_optimizer_states(self)
7383 
7384  def get_number_of_optimizer_states(self):
7385  r"""get_number_of_optimizer_states(Optimizer self) -> unsigned int"""
7386  return _IMP_kernel.Optimizer_get_number_of_optimizer_states(self)
7387 
7388  def get_has_optimizer_states(self):
7389  r"""get_has_optimizer_states(Optimizer self) -> bool"""
7390  return _IMP_kernel.Optimizer_get_has_optimizer_states(self)
7391 
7392  def get_optimizer_state(self, i):
7393  r"""get_optimizer_state(Optimizer self, unsigned int i) -> OptimizerState"""
7394  return _IMP_kernel.Optimizer_get_optimizer_state(self, i)
7395 
7396  def get_optimizer_states(self):
7397  r"""get_optimizer_states(Optimizer self) -> IMP::OptimizerStates"""
7398  return _IMP_kernel.Optimizer_get_optimizer_states(self)
7399 
7400  def erase_optimizer_state(self, i):
7401  r"""erase_optimizer_state(Optimizer self, unsigned int i)"""
7402  return _IMP_kernel.Optimizer_erase_optimizer_state(self, i)
7403 
7404  def reserve_optimizer_states(self, sz):
7405  r"""reserve_optimizer_states(Optimizer self, unsigned int sz)"""
7406  return _IMP_kernel.Optimizer_reserve_optimizer_states(self, sz)
7407 
7408  def set_scoring_function(self, sf):
7409  r"""set_scoring_function(Optimizer self, _ScoringFunctionAdaptor sf)"""
7410  return _IMP_kernel.Optimizer_set_scoring_function(self, sf)
7411  __swig_destroy__ = _IMP_kernel.delete_Optimizer
7412  def __del__(self):
7413  r"""__del__(Optimizer self)"""
7414 
7415  _director_objects.cleanup()
7416 
7417 
7418  pass
7419 
7420 
7421  def do_optimize(self, ns):
7422  r"""do_optimize(Optimizer self, unsigned int ns) -> double"""
7423  return _IMP_kernel.Optimizer_do_optimize(self, ns)
7424 
7425  def update_states(self):
7426  r"""update_states(Optimizer self)"""
7427  return _IMP_kernel.Optimizer_update_states(self)
7428 
7429  def __str__(self):
7430  r"""__str__(Optimizer self) -> std::string"""
7431  return _IMP_kernel.Optimizer___str__(self)
7432 
7433  def __repr__(self):
7434  r"""__repr__(Optimizer self) -> std::string"""
7435  return _IMP_kernel.Optimizer___repr__(self)
7436 
7437  @staticmethod
7438  def get_from(o):
7439  return _object_cast_to_Optimizer(o)
7440 
7441 
7442  def do_show(self, out):
7443  pass
7444 
7445  @staticmethod
7446  def get_from(o):
7447  return _object_cast_to_Optimizer(o)
7448 
7449  def __disown__(self):
7450  self.this.disown()
7451  _IMP_kernel.disown_Optimizer(self)
7452  return weakref.proxy(self)
7453 
7454  def do_destroy(self):
7455  r"""do_destroy(Optimizer self)"""
7456  return _IMP_kernel.Optimizer_do_destroy(self)
7457 
7458  def handle_set_has_required_score_states(self, arg0):
7459  r"""handle_set_has_required_score_states(Optimizer self, bool arg0)"""
7460  return _IMP_kernel.Optimizer_handle_set_has_required_score_states(self, arg0)
7461 
7462  def do_get_interactions(self):
7463  r"""do_get_interactions(Optimizer self) -> IMP::ModelObjectsTemps"""
7464  return _IMP_kernel.Optimizer_do_get_interactions(self)
7465 
7466 # Register Optimizer in _IMP_kernel:
7467 _IMP_kernel.Optimizer_swigregister(Optimizer)
7469  r"""Proxy of C++ IMP::AttributeOptimizer class."""
7470 
7471  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7472 
7473  def __init__(self, *args):
7474  r"""
7475  __init__(AttributeOptimizer self, Model m, std::string name="Optimizer %1%") -> AttributeOptimizer
7476  __init__(AttributeOptimizer self) -> AttributeOptimizer
7477  """
7478  if self.__class__ == AttributeOptimizer:
7479  _self = None
7480  else:
7481  _self = self
7482  _IMP_kernel.AttributeOptimizer_swiginit(self, _IMP_kernel.new_AttributeOptimizer(_self, *args))
7483 
7484  if self.__class__ != AttributeOptimizer:
7485  _director_objects.register(self)
7486 
7487 
7488 
7489 
7490  def get_optimized_attributes(self):
7491  r"""get_optimized_attributes(AttributeOptimizer self) -> IMP::FloatIndexes"""
7492  return _IMP_kernel.AttributeOptimizer_get_optimized_attributes(self)
7493 
7494  def set_value(self, fi, v):
7495  r"""set_value(AttributeOptimizer self, FloatIndex fi, double v)"""
7496  return _IMP_kernel.AttributeOptimizer_set_value(self, fi, v)
7497 
7498  def get_value(self, fi):
7499  r"""get_value(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7500  return _IMP_kernel.AttributeOptimizer_get_value(self, fi)
7501 
7502  def get_derivative(self, fi):
7503  r"""get_derivative(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7504  return _IMP_kernel.AttributeOptimizer_get_derivative(self, fi)
7505 
7506  def get_width(self, k):
7507  r"""get_width(AttributeOptimizer self, FloatKey k) -> double"""
7508  return _IMP_kernel.AttributeOptimizer_get_width(self, k)
7509 
7510  def set_scaled_value(self, fi, v):
7511  r"""set_scaled_value(AttributeOptimizer self, FloatIndex fi, IMP::Float v)"""
7512  return _IMP_kernel.AttributeOptimizer_set_scaled_value(self, fi, v)
7513 
7514  def get_scaled_value(self, fi):
7515  r"""get_scaled_value(AttributeOptimizer self, FloatIndex fi) -> double"""
7516  return _IMP_kernel.AttributeOptimizer_get_scaled_value(self, fi)
7517 
7518  def get_scaled_derivative(self, fi):
7519  r"""get_scaled_derivative(AttributeOptimizer self, FloatIndex fi) -> double"""
7520  return _IMP_kernel.AttributeOptimizer_get_scaled_derivative(self, fi)
7521 
7522  def clear_range_cache(self):
7523  r"""clear_range_cache(AttributeOptimizer self)"""
7524  return _IMP_kernel.AttributeOptimizer_clear_range_cache(self)
7525 
7526  def __str__(self):
7527  r"""__str__(AttributeOptimizer self) -> std::string"""
7528  return _IMP_kernel.AttributeOptimizer___str__(self)
7529 
7530  def __repr__(self):
7531  r"""__repr__(AttributeOptimizer self) -> std::string"""
7532  return _IMP_kernel.AttributeOptimizer___repr__(self)
7533 
7534  @staticmethod
7535  def get_from(o):
7536  return _object_cast_to_AttributeOptimizer(o)
7537 
7538 
7539  def do_show(self, out):
7540  pass
7541 
7542  @staticmethod
7543  def get_from(o):
7544  return _object_cast_to_AttributeOptimizer(o)
7545 
7546  __swig_destroy__ = _IMP_kernel.delete_AttributeOptimizer
7547  def __disown__(self):
7548  self.this.disown()
7549  _IMP_kernel.disown_AttributeOptimizer(self)
7550  return weakref.proxy(self)
7551 
7552  def do_destroy(self):
7553  r"""do_destroy(AttributeOptimizer self)"""
7554  return _IMP_kernel.AttributeOptimizer_do_destroy(self)
7555 
7556  def handle_set_has_required_score_states(self, arg0):
7557  r"""handle_set_has_required_score_states(AttributeOptimizer self, bool arg0)"""
7558  return _IMP_kernel.AttributeOptimizer_handle_set_has_required_score_states(self, arg0)
7559 
7560  def do_get_inputs(self):
7561  r"""do_get_inputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7562  return _IMP_kernel.AttributeOptimizer_do_get_inputs(self)
7563 
7564  def do_get_outputs(self):
7565  r"""do_get_outputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7566  return _IMP_kernel.AttributeOptimizer_do_get_outputs(self)
7567 
7568  def do_get_interactions(self):
7569  r"""do_get_interactions(AttributeOptimizer self) -> IMP::ModelObjectsTemps"""
7570  return _IMP_kernel.AttributeOptimizer_do_get_interactions(self)
7571 
7572  def do_optimize(self, ns):
7573  r"""do_optimize(AttributeOptimizer self, unsigned int ns) -> double"""
7574  return _IMP_kernel.AttributeOptimizer_do_optimize(self, ns)
7575 
7576 # Register AttributeOptimizer in _IMP_kernel:
7577 _IMP_kernel.AttributeOptimizer_swigregister(AttributeOptimizer)
7578 class ConfigurationSet(Object):
7579  r"""Proxy of C++ IMP::ConfigurationSet class."""
7580 
7581  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7582 
7583  def __init__(self, *args):
7584  r"""__init__(ConfigurationSet self, Model m, std::string name="ConfigurationSet %1%") -> ConfigurationSet"""
7585  _IMP_kernel.ConfigurationSet_swiginit(self, _IMP_kernel.new_ConfigurationSet(*args))
7586 
7587  def save_configuration(self):
7588  r"""save_configuration(ConfigurationSet self)"""
7589  return _IMP_kernel.ConfigurationSet_save_configuration(self)
7590 
7591  def get_number_of_configurations(self):
7592  r"""get_number_of_configurations(ConfigurationSet self) -> unsigned int"""
7593  return _IMP_kernel.ConfigurationSet_get_number_of_configurations(self)
7594 
7595  def load_configuration(self, i):
7596  r"""load_configuration(ConfigurationSet self, int i)"""
7597  return _IMP_kernel.ConfigurationSet_load_configuration(self, i)
7598 
7599  def remove_configuration(self, i):
7600  r"""remove_configuration(ConfigurationSet self, unsigned int i)"""
7601  return _IMP_kernel.ConfigurationSet_remove_configuration(self, i)
7602 
7603  def get_model(self):
7604  r"""get_model(ConfigurationSet self) -> Model"""
7605  return _IMP_kernel.ConfigurationSet_get_model(self)
7606 
7607  def get_version_info(self):
7608  r"""get_version_info(ConfigurationSet self) -> VersionInfo"""
7609  return _IMP_kernel.ConfigurationSet_get_version_info(self)
7610  __swig_destroy__ = _IMP_kernel.delete_ConfigurationSet
7611 
7612  def __str__(self):
7613  r"""__str__(ConfigurationSet self) -> std::string"""
7614  return _IMP_kernel.ConfigurationSet___str__(self)
7615 
7616  def __repr__(self):
7617  r"""__repr__(ConfigurationSet self) -> std::string"""
7618  return _IMP_kernel.ConfigurationSet___repr__(self)
7619 
7620  @staticmethod
7621  def get_from(o):
7622  return _object_cast_to_ConfigurationSet(o)
7623 
7624 
7625 # Register ConfigurationSet in _IMP_kernel:
7626 _IMP_kernel.ConfigurationSet_swigregister(ConfigurationSet)
7628  r"""Proxy of C++ IMP::SaveToConfigurationSetOptimizerState class."""
7629 
7630  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7631 
7632  def __init__(self, cs):
7633  r"""__init__(SaveToConfigurationSetOptimizerState self, ConfigurationSet cs) -> SaveToConfigurationSetOptimizerState"""
7634  _IMP_kernel.SaveToConfigurationSetOptimizerState_swiginit(self, _IMP_kernel.new_SaveToConfigurationSetOptimizerState(cs))
7635 
7636  def get_version_info(self):
7637  r"""get_version_info(SaveToConfigurationSetOptimizerState self) -> VersionInfo"""
7638  return _IMP_kernel.SaveToConfigurationSetOptimizerState_get_version_info(self)
7639  __swig_destroy__ = _IMP_kernel.delete_SaveToConfigurationSetOptimizerState
7640 
7641  def __str__(self):
7642  r"""__str__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7643  return _IMP_kernel.SaveToConfigurationSetOptimizerState___str__(self)
7644 
7645  def __repr__(self):
7646  r"""__repr__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7647  return _IMP_kernel.SaveToConfigurationSetOptimizerState___repr__(self)
7648 
7649  @staticmethod
7650  def get_from(o):
7651  return _object_cast_to_SaveToConfigurationSetOptimizerState(o)
7652 
7653 
7654 # Register SaveToConfigurationSetOptimizerState in _IMP_kernel:
7655 _IMP_kernel.SaveToConfigurationSetOptimizerState_swigregister(SaveToConfigurationSetOptimizerState)
7656 class Configuration(Object):
7657  r"""Proxy of C++ IMP::Configuration class."""
7658 
7659  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7660 
7661  def __init__(self, *args):
7662  r"""
7663  __init__(Configuration self, Model m, std::string name="Configuration %1%") -> Configuration
7664  __init__(Configuration self, Model m, Configuration base, std::string name="Configuration %1%") -> Configuration
7665  __init__(Configuration self) -> Configuration
7666  """
7667  _IMP_kernel.Configuration_swiginit(self, _IMP_kernel.new_Configuration(*args))
7668 
7669  def load_configuration(self):
7670  r"""load_configuration(Configuration self)"""
7671  return _IMP_kernel.Configuration_load_configuration(self)
7672 
7673  def swap_configuration(self):
7674  r"""swap_configuration(Configuration self)"""
7675  return _IMP_kernel.Configuration_swap_configuration(self)
7676 
7677  def get_version_info(self):
7678  r"""get_version_info(Configuration self) -> VersionInfo"""
7679  return _IMP_kernel.Configuration_get_version_info(self)
7680  __swig_destroy__ = _IMP_kernel.delete_Configuration
7681 
7682  def __str__(self):
7683  r"""__str__(Configuration self) -> std::string"""
7684  return _IMP_kernel.Configuration___str__(self)
7685 
7686  def __repr__(self):
7687  r"""__repr__(Configuration self) -> std::string"""
7688  return _IMP_kernel.Configuration___repr__(self)
7689 
7690  @staticmethod
7691  def get_from(o):
7692  return _object_cast_to_Configuration(o)
7693 
7694 
7695  def _get_as_binary(self):
7696  r"""_get_as_binary(Configuration self) -> PyObject *"""
7697  return _IMP_kernel.Configuration__get_as_binary(self)
7698 
7699  def _set_from_binary(self, p):
7700  r"""_set_from_binary(Configuration self, PyObject * p)"""
7701  return _IMP_kernel.Configuration__set_from_binary(self, p)
7702 
7703  def __getstate__(self):
7704  p = self._get_as_binary()
7705  if len(self.__dict__) > 1:
7706  d = self.__dict__.copy()
7707  del d['this']
7708  p = (d, p)
7709  return p
7710 
7711  def __setstate__(self, p):
7712  if not hasattr(self, 'this'):
7713  self.__init__()
7714  if isinstance(p, tuple):
7715  d, p = p
7716  self.__dict__.update(d)
7717  return self._set_from_binary(p)
7718 
7719 
7720 # Register Configuration in _IMP_kernel:
7721 _IMP_kernel.Configuration_swigregister(Configuration)
7722 class Sampler(Object):
7723  r"""Proxy of C++ IMP::Sampler class."""
7724 
7725  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7726 
7727  def __init__(self, *args):
7728  r"""__init__(Sampler self, Model m, std::string name="Sampler %1%") -> Sampler"""
7729  if self.__class__ == Sampler:
7730  _self = None
7731  else:
7732  _self = self
7733  _IMP_kernel.Sampler_swiginit(self, _IMP_kernel.new_Sampler(_self, *args))
7734 
7735  if self.__class__ != Sampler:
7736  _director_objects.register(self)
7737 
7738 
7739 
7740 
7741  def create_sample(self):
7742  r"""create_sample(Sampler self) -> ConfigurationSet"""
7743  return _IMP_kernel.Sampler_create_sample(self)
7744 
7745  def get_scoring_function(self):
7746  r"""get_scoring_function(Sampler self) -> ScoringFunction"""
7747  return _IMP_kernel.Sampler_get_scoring_function(self)
7748 
7749  def set_scoring_function(self, sf):
7750  r"""set_scoring_function(Sampler self, _ScoringFunctionAdaptor sf)"""
7751  return _IMP_kernel.Sampler_set_scoring_function(self, sf)
7752 
7753  def get_model(self):
7754  r"""get_model(Sampler self) -> Model"""
7755  return _IMP_kernel.Sampler_get_model(self)
7756 
7757  def do_sample(self):
7758  r"""do_sample(Sampler self) -> ConfigurationSet"""
7759  return _IMP_kernel.Sampler_do_sample(self)
7760  __swig_destroy__ = _IMP_kernel.delete_Sampler
7761 
7762  def __str__(self):
7763  r"""__str__(Sampler self) -> std::string"""
7764  return _IMP_kernel.Sampler___str__(self)
7765 
7766  def __repr__(self):
7767  r"""__repr__(Sampler self) -> std::string"""
7768  return _IMP_kernel.Sampler___repr__(self)
7769 
7770  @staticmethod
7771  def get_from(o):
7772  return _object_cast_to_Sampler(o)
7773 
7774 
7775  def do_show(self, out):
7776  pass
7777 
7778  @staticmethod
7779  def get_from(o):
7780  return _object_cast_to_Sampler(o)
7781 
7782  def __disown__(self):
7783  self.this.disown()
7784  _IMP_kernel.disown_Sampler(self)
7785  return weakref.proxy(self)
7786 
7787  def do_destroy(self):
7788  r"""do_destroy(Sampler self)"""
7789  return _IMP_kernel.Sampler_do_destroy(self)
7790 
7791 # Register Sampler in _IMP_kernel:
7792 _IMP_kernel.Sampler_swigregister(Sampler)
7793 class PairModifier(_ParticleInputs, _ParticleOutputs, Object):
7794  r"""Proxy of C++ IMP::PairModifier class."""
7795 
7796  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7797 
7798  def __init__(self, *args):
7799  r"""__init__(PairModifier self, std::string name="PairModifier %1%") -> PairModifier"""
7800  if self.__class__ == PairModifier:
7801  _self = None
7802  else:
7803  _self = self
7804  _IMP_kernel.PairModifier_swiginit(self, _IMP_kernel.new_PairModifier(_self, *args))
7805 
7806  if self.__class__ != PairModifier:
7807  _director_objects.register(self)
7808 
7809 
7810 
7811 
7812  def apply_index(self, m, v):
7813  r"""apply_index(PairModifier self, Model m, IMP::ParticleIndexPair const & v)"""
7814  return _IMP_kernel.PairModifier_apply_index(self, m, v)
7815 
7816  def apply_indexes(self, m, o, lower_bound, upper_bound):
7817  r"""apply_indexes(PairModifier self, Model m, IMP::ParticleIndexPairs const & o, unsigned int lower_bound, unsigned int upper_bound)"""
7818  return _IMP_kernel.PairModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
7819 
7820  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
7821  r"""apply_indexes_moved(PairModifier self, Model m, IMP::ParticleIndexPairs const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7822  return _IMP_kernel.PairModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
7823 
7824  def __str__(self):
7825  r"""__str__(PairModifier self) -> std::string"""
7826  return _IMP_kernel.PairModifier___str__(self)
7827 
7828  def __repr__(self):
7829  r"""__repr__(PairModifier self) -> std::string"""
7830  return _IMP_kernel.PairModifier___repr__(self)
7831 
7832  @staticmethod
7833  def get_from(o):
7834  return _object_cast_to_PairModifier(o)
7835 
7836 
7837  def do_show(self, out):
7838  pass
7839 
7840  @staticmethod
7841  def get_from(o):
7842  return _object_cast_to_PairModifier(o)
7843 
7844  __swig_destroy__ = _IMP_kernel.delete_PairModifier
7845  def __disown__(self):
7846  self.this.disown()
7847  _IMP_kernel.disown_PairModifier(self)
7848  return weakref.proxy(self)
7849 
7850  def do_get_inputs(self, m, pis):
7851  r"""do_get_inputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7852  return _IMP_kernel.PairModifier_do_get_inputs(self, m, pis)
7853 
7854  def do_get_outputs(self, m, pis):
7855  r"""do_get_outputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7856  return _IMP_kernel.PairModifier_do_get_outputs(self, m, pis)
7857 
7858  def do_destroy(self):
7859  r"""do_destroy(PairModifier self)"""
7860  return _IMP_kernel.PairModifier_do_destroy(self)
7861 
7862 # Register PairModifier in _IMP_kernel:
7863 _IMP_kernel.PairModifier_swigregister(PairModifier)
7864 class PairScore(_ParticleInputs, Object):
7865  r"""Proxy of C++ IMP::PairScore class."""
7866 
7867  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7868 
7869  def __init__(self, *args):
7870  r"""__init__(PairScore self, std::string name="PairScore %1%") -> PairScore"""
7871  if self.__class__ == PairScore:
7872  _self = None
7873  else:
7874  _self = self
7875  _IMP_kernel.PairScore_swiginit(self, _IMP_kernel.new_PairScore(_self, *args))
7876 
7877  if self.__class__ != PairScore:
7878  _director_objects.register(self)
7879 
7880 
7881 
7882 
7883  def evaluate_index(self, m, vt, da):
7884  r"""evaluate_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da) -> double"""
7885  return _IMP_kernel.PairScore_evaluate_index(self, m, vt, da)
7886 
7887  def check_indexes(self, m, pis):
7888  r"""check_indexes(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
7889  return _IMP_kernel.PairScore_check_indexes(self, m, pis)
7890 
7891  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
7892  r"""evaluate_indexes(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7893  return _IMP_kernel.PairScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
7894 
7895  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7896  r"""evaluate_indexes_scores(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7897  return _IMP_kernel.PairScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
7898 
7899  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
7900  r"""evaluate_indexes_delta(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
7901  return _IMP_kernel.PairScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
7902 
7903  def evaluate_if_good_index(self, m, vt, da, max):
7904  r"""evaluate_if_good_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da, double max) -> double"""
7905  return _IMP_kernel.PairScore_evaluate_if_good_index(self, m, vt, da, max)
7906 
7907  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7908  r"""evaluate_if_good_indexes(PairScore self, Model m, IMP::ParticleIndexPairs const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
7909  return _IMP_kernel.PairScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
7910 
7911  def create_current_decomposition(self, m, vt):
7912  r"""create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7913  return _IMP_kernel.PairScore_create_current_decomposition(self, m, vt)
7914 
7915  def do_create_current_decomposition(self, m, vt):
7916  r"""do_create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7917  return _IMP_kernel.PairScore_do_create_current_decomposition(self, m, vt)
7918  __swig_destroy__ = _IMP_kernel.delete_PairScore
7919 
7920  def __str__(self):
7921  r"""__str__(PairScore self) -> std::string"""
7922  return _IMP_kernel.PairScore___str__(self)
7923 
7924  def __repr__(self):
7925  r"""__repr__(PairScore self) -> std::string"""
7926  return _IMP_kernel.PairScore___repr__(self)
7927 
7928  @staticmethod
7929  def get_from(o):
7930  return _object_cast_to_PairScore(o)
7931 
7932 
7933  def do_show(self, out):
7934  pass
7935 
7936  @staticmethod
7937  def get_from(o):
7938  return _object_cast_to_PairScore(o)
7939 
7940 
7941  def _wrap_jax(self, m, score_func, keys=None):
7942  """Create the return value for _get_jax.
7943  Use this method in _get_jax() to wrap the JAX scoring function
7944  with other score-specific information.
7945 
7946  @param m The IMP.Model that the score will act on.
7947  @param score_func A function implemented using JAX that takes
7948  one argument (the current JAX Model) and returns the total
7949  score.
7950  @param keys Model attributes used by the PairScore.
7951  See IMP::Restraint::_wrap_jax.
7952  """
7953  from IMP._jax_util import JAXScoreInfo
7954  return JAXScoreInfo(m, score_func=score_func, keys=keys)
7955 
7956  def _get_jax(self, m, indexes, space):
7957  """Return a JAX implementation of this PairScore.
7958  Implement this method in a PairScore subclass to provide
7959  an equivalent function using [JAX](https://docs.jax.dev/)
7960  that scores the current JAX Model with a given set of
7961  ParticlePairIndexes. See also _wrap_jax.
7962 
7963  @param m The IMP.Model that the score will act on.
7964  @param indexes The ParticlePairIndexes that the score will act on.
7965  @param space The space in which the score is evaluated
7966  (e.g. a periodic box). See IMP._jax_util.Space.
7967  """
7968  raise NotImplementedError(
7969  f"No JAX implementation for {self} ({type(self)})")
7970 
7971  def __disown__(self):
7972  self.this.disown()
7973  _IMP_kernel.disown_PairScore(self)
7974  return weakref.proxy(self)
7975 
7976  def do_get_inputs(self, m, pis):
7977  r"""do_get_inputs(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7978  return _IMP_kernel.PairScore_do_get_inputs(self, m, pis)
7979 
7980  def do_destroy(self):
7981  r"""do_destroy(PairScore self)"""
7982  return _IMP_kernel.PairScore_do_destroy(self)
7983 
7984 # Register PairScore in _IMP_kernel:
7985 _IMP_kernel.PairScore_swigregister(PairScore)
7986 class PairPredicate(_ParticleInputs, Object):
7987  r"""Proxy of C++ IMP::PairPredicate class."""
7988 
7989  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7990 
7991  def __init__(self, *args):
7992  r"""__init__(PairPredicate self, std::string name="PairPredicate %1%") -> PairPredicate"""
7993  if self.__class__ == PairPredicate:
7994  _self = None
7995  else:
7996  _self = self
7997  _IMP_kernel.PairPredicate_swiginit(self, _IMP_kernel.new_PairPredicate(_self, *args))
7998 
7999  if self.__class__ != PairPredicate:
8000  _director_objects.register(self)
8001 
8002 
8003 
8004 
8005  def setup_for_get_value_index_in_batch(self, arg0):
8006  r"""setup_for_get_value_index_in_batch(PairPredicate self, Model arg0)"""
8007  return _IMP_kernel.PairPredicate_setup_for_get_value_index_in_batch(self, arg0)
8008 
8009  def get_value_index_in_batch(self, m, vt):
8010  r"""get_value_index_in_batch(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
8011  return _IMP_kernel.PairPredicate_get_value_index_in_batch(self, m, vt)
8012 
8013  def __call__(self, m, vt):
8014  r"""__call__(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
8015  return _IMP_kernel.PairPredicate___call__(self, m, vt)
8016 
8017  def get_value_index(self, *args):
8018  r"""
8019  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int
8020  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
8021  """
8022  return _IMP_kernel.PairPredicate_get_value_index(self, *args)
8023  __swig_destroy__ = _IMP_kernel.delete_PairPredicate
8024 
8025  def __str__(self):
8026  r"""__str__(PairPredicate self) -> std::string"""
8027  return _IMP_kernel.PairPredicate___str__(self)
8028 
8029  def __repr__(self):
8030  r"""__repr__(PairPredicate self) -> std::string"""
8031  return _IMP_kernel.PairPredicate___repr__(self)
8032 
8033  @staticmethod
8034  def get_from(o):
8035  return _object_cast_to_PairPredicate(o)
8036 
8037 
8038  def do_show(self, out):
8039  pass
8040 
8041  @staticmethod
8042  def get_from(o):
8043  return _object_cast_to_PairPredicate(o)
8044 
8045  def __disown__(self):
8046  self.this.disown()
8047  _IMP_kernel.disown_PairPredicate(self)
8048  return weakref.proxy(self)
8049 
8050  def do_get_inputs(self, m, pis):
8051  r"""do_get_inputs(PairPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8052  return _IMP_kernel.PairPredicate_do_get_inputs(self, m, pis)
8053 
8054  def do_destroy(self):
8055  r"""do_destroy(PairPredicate self)"""
8056  return _IMP_kernel.PairPredicate_do_destroy(self)
8057 
8058 # Register PairPredicate in _IMP_kernel:
8059 _IMP_kernel.PairPredicate_swigregister(PairPredicate)
8060 class PairContainer(Container):
8061  r"""Proxy of C++ IMP::PairContainer class."""
8062 
8063  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8064 
8065  def apply_generic(self, m):
8066  r"""apply_generic(PairContainer self, PairModifier m)"""
8067  return _IMP_kernel.PairContainer_apply_generic(self, m)
8068 
8069  def apply_generic_moved(self, m, moved_pis, reset_pis):
8070  r"""apply_generic_moved(PairContainer self, PairModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8071  return _IMP_kernel.PairContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8072 
8073  def apply(self, sm):
8074  r"""apply(PairContainer self, PairModifier sm)"""
8075  return _IMP_kernel.PairContainer_apply(self, sm)
8076 
8077  def apply_moved(self, sm, moved_pis, reset_pis):
8078  r"""apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8079  return _IMP_kernel.PairContainer_apply_moved(self, sm, moved_pis, reset_pis)
8080 
8081  def get_range_indexes(self):
8082  r"""get_range_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
8083  return _IMP_kernel.PairContainer_get_range_indexes(self)
8084 
8085  def get_contents(self):
8086  r"""get_contents(PairContainer self) -> IMP::ParticleIndexPairs const &"""
8087  return _IMP_kernel.PairContainer_get_contents(self)
8088 
8089  def get_indexes(self):
8090  r"""get_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
8091  return _IMP_kernel.PairContainer_get_indexes(self)
8092 
8093  def get(self, *args):
8094  r"""
8095  get(PairContainer self) -> IMP::ParticlePairsTemp
8096  get(PairContainer self, unsigned int i) -> IMP::ParticlePair
8097  """
8098  return _IMP_kernel.PairContainer_get(self, *args)
8099 
8100  def get_number(self):
8101  r"""get_number(PairContainer self) -> unsigned int"""
8102  return _IMP_kernel.PairContainer_get_number(self)
8103 
8104  def __init__(self, *args):
8105  r"""
8106  __init__(PairContainer self, Model m, std::string name="PairContainer %1%") -> PairContainer
8107  __init__(PairContainer self) -> PairContainer
8108  """
8109  if self.__class__ == PairContainer:
8110  _self = None
8111  else:
8112  _self = self
8113  _IMP_kernel.PairContainer_swiginit(self, _IMP_kernel.new_PairContainer(_self, *args))
8114 
8115  if self.__class__ != PairContainer:
8116  _director_objects.register(self)
8117 
8118 
8119 
8120 
8121  def do_apply(self, sm):
8122  r"""do_apply(PairContainer self, PairModifier sm)"""
8123  return _IMP_kernel.PairContainer_do_apply(self, sm)
8124 
8125  def do_apply_moved(self, sm, moved_pis, reset_pis):
8126  r"""do_apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8127  return _IMP_kernel.PairContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8128 
8129  def do_get_provides_access(self):
8130  r"""do_get_provides_access(PairContainer self) -> bool"""
8131  return _IMP_kernel.PairContainer_do_get_provides_access(self)
8132  __swig_destroy__ = _IMP_kernel.delete_PairContainer
8133 
8134  def __str__(self):
8135  r"""__str__(PairContainer self) -> std::string"""
8136  return _IMP_kernel.PairContainer___str__(self)
8137 
8138  def __repr__(self):
8139  r"""__repr__(PairContainer self) -> std::string"""
8140  return _IMP_kernel.PairContainer___repr__(self)
8141 
8142  @staticmethod
8143  def get_from(o):
8144  return _object_cast_to_PairContainer(o)
8145 
8146 
8147  def do_show(self, out):
8148  pass
8149 
8150  @staticmethod
8151  def get_from(o):
8152  return _object_cast_to_PairContainer(o)
8153 
8154  def __disown__(self):
8155  self.this.disown()
8156  _IMP_kernel.disown_PairContainer(self)
8157  return weakref.proxy(self)
8158 
8159  def do_destroy(self):
8160  r"""do_destroy(PairContainer self)"""
8161  return _IMP_kernel.PairContainer_do_destroy(self)
8162 
8163  def handle_set_has_required_score_states(self, arg0):
8164  r"""handle_set_has_required_score_states(PairContainer self, bool arg0)"""
8165  return _IMP_kernel.PairContainer_handle_set_has_required_score_states(self, arg0)
8166 
8167  def do_get_inputs(self):
8168  r"""do_get_inputs(PairContainer self) -> IMP::ModelObjectsTemp"""
8169  return _IMP_kernel.PairContainer_do_get_inputs(self)
8170 
8171  def do_get_interactions(self):
8172  r"""do_get_interactions(PairContainer self) -> IMP::ModelObjectsTemps"""
8173  return _IMP_kernel.PairContainer_do_get_interactions(self)
8174 
8175  def do_get_contents_hash(self):
8176  r"""do_get_contents_hash(PairContainer self) -> std::size_t"""
8177  return _IMP_kernel.PairContainer_do_get_contents_hash(self)
8178 
8179 # Register PairContainer in _IMP_kernel:
8180 _IMP_kernel.PairContainer_swigregister(PairContainer)
8181 class _PairContainerAdaptor(_InputAdaptor):
8182  r"""Proxy of C++ IMP::PairContainerAdaptor class."""
8183 
8184  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8185  __repr__ = _swig_repr
8186 
8187  def __init__(self, *args):
8188  r"""
8189  __init__(_PairContainerAdaptor self) -> _PairContainerAdaptor
8190  __init__(_PairContainerAdaptor self, PairContainer c) -> _PairContainerAdaptor
8191  __init__(_PairContainerAdaptor self, IMP::ParticlePairsTemp const & t) -> _PairContainerAdaptor
8192  """
8193  _IMP_kernel._PairContainerAdaptor_swiginit(self, _IMP_kernel.new__PairContainerAdaptor(*args))
8194 
8195  def set_name_if_default(self, name):
8196  r"""set_name_if_default(_PairContainerAdaptor self, std::string name)"""
8197  return _IMP_kernel._PairContainerAdaptor_set_name_if_default(self, name)
8198  __swig_destroy__ = _IMP_kernel.delete__PairContainerAdaptor
8199 
8200 # Register _PairContainerAdaptor in _IMP_kernel:
8201 _IMP_kernel._PairContainerAdaptor_swigregister(_PairContainerAdaptor)
8202 class QuadModifier(_ParticleInputs, _ParticleOutputs, Object):
8203  r"""Proxy of C++ IMP::QuadModifier class."""
8204 
8205  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8206 
8207  def __init__(self, *args):
8208  r"""__init__(QuadModifier self, std::string name="QuadModifier %1%") -> QuadModifier"""
8209  if self.__class__ == QuadModifier:
8210  _self = None
8211  else:
8212  _self = self
8213  _IMP_kernel.QuadModifier_swiginit(self, _IMP_kernel.new_QuadModifier(_self, *args))
8214 
8215  if self.__class__ != QuadModifier:
8216  _director_objects.register(self)
8217 
8218 
8219 
8220 
8221  def apply_index(self, m, v):
8222  r"""apply_index(QuadModifier self, Model m, IMP::ParticleIndexQuad const & v)"""
8223  return _IMP_kernel.QuadModifier_apply_index(self, m, v)
8224 
8225  def apply_indexes(self, m, o, lower_bound, upper_bound):
8226  r"""apply_indexes(QuadModifier self, Model m, IMP::ParticleIndexQuads const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8227  return _IMP_kernel.QuadModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8228 
8229  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8230  r"""apply_indexes_moved(QuadModifier self, Model m, IMP::ParticleIndexQuads const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8231  return _IMP_kernel.QuadModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8232 
8233  def __str__(self):
8234  r"""__str__(QuadModifier self) -> std::string"""
8235  return _IMP_kernel.QuadModifier___str__(self)
8236 
8237  def __repr__(self):
8238  r"""__repr__(QuadModifier self) -> std::string"""
8239  return _IMP_kernel.QuadModifier___repr__(self)
8240 
8241  @staticmethod
8242  def get_from(o):
8243  return _object_cast_to_QuadModifier(o)
8244 
8245 
8246  def do_show(self, out):
8247  pass
8248 
8249  @staticmethod
8250  def get_from(o):
8251  return _object_cast_to_QuadModifier(o)
8252 
8253  __swig_destroy__ = _IMP_kernel.delete_QuadModifier
8254  def __disown__(self):
8255  self.this.disown()
8256  _IMP_kernel.disown_QuadModifier(self)
8257  return weakref.proxy(self)
8258 
8259  def do_get_inputs(self, m, pis):
8260  r"""do_get_inputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8261  return _IMP_kernel.QuadModifier_do_get_inputs(self, m, pis)
8262 
8263  def do_get_outputs(self, m, pis):
8264  r"""do_get_outputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8265  return _IMP_kernel.QuadModifier_do_get_outputs(self, m, pis)
8266 
8267  def do_destroy(self):
8268  r"""do_destroy(QuadModifier self)"""
8269  return _IMP_kernel.QuadModifier_do_destroy(self)
8270 
8271 # Register QuadModifier in _IMP_kernel:
8272 _IMP_kernel.QuadModifier_swigregister(QuadModifier)
8273 class QuadScore(_ParticleInputs, Object):
8274  r"""Proxy of C++ IMP::QuadScore class."""
8275 
8276  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8277 
8278  def __init__(self, *args):
8279  r"""__init__(QuadScore self, std::string name="QuadScore %1%") -> QuadScore"""
8280  if self.__class__ == QuadScore:
8281  _self = None
8282  else:
8283  _self = self
8284  _IMP_kernel.QuadScore_swiginit(self, _IMP_kernel.new_QuadScore(_self, *args))
8285 
8286  if self.__class__ != QuadScore:
8287  _director_objects.register(self)
8288 
8289 
8290 
8291 
8292  def evaluate_index(self, m, vt, da):
8293  r"""evaluate_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da) -> double"""
8294  return _IMP_kernel.QuadScore_evaluate_index(self, m, vt, da)
8295 
8296  def check_indexes(self, m, pis):
8297  r"""check_indexes(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8298  return _IMP_kernel.QuadScore_check_indexes(self, m, pis)
8299 
8300  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8301  r"""evaluate_indexes(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8302  return _IMP_kernel.QuadScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8303 
8304  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8305  r"""evaluate_indexes_scores(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8306  return _IMP_kernel.QuadScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8307 
8308  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8309  r"""evaluate_indexes_delta(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8310  return _IMP_kernel.QuadScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8311 
8312  def evaluate_if_good_index(self, m, vt, da, max):
8313  r"""evaluate_if_good_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da, double max) -> double"""
8314  return _IMP_kernel.QuadScore_evaluate_if_good_index(self, m, vt, da, max)
8315 
8316  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8317  r"""evaluate_if_good_indexes(QuadScore self, Model m, IMP::ParticleIndexQuads const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8318  return _IMP_kernel.QuadScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8319 
8320  def create_current_decomposition(self, m, vt):
8321  r"""create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8322  return _IMP_kernel.QuadScore_create_current_decomposition(self, m, vt)
8323 
8324  def do_create_current_decomposition(self, m, vt):
8325  r"""do_create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8326  return _IMP_kernel.QuadScore_do_create_current_decomposition(self, m, vt)
8327  __swig_destroy__ = _IMP_kernel.delete_QuadScore
8328 
8329  def __str__(self):
8330  r"""__str__(QuadScore self) -> std::string"""
8331  return _IMP_kernel.QuadScore___str__(self)
8332 
8333  def __repr__(self):
8334  r"""__repr__(QuadScore self) -> std::string"""
8335  return _IMP_kernel.QuadScore___repr__(self)
8336 
8337  @staticmethod
8338  def get_from(o):
8339  return _object_cast_to_QuadScore(o)
8340 
8341 
8342  def do_show(self, out):
8343  pass
8344 
8345  @staticmethod
8346  def get_from(o):
8347  return _object_cast_to_QuadScore(o)
8348 
8349  def __disown__(self):
8350  self.this.disown()
8351  _IMP_kernel.disown_QuadScore(self)
8352  return weakref.proxy(self)
8353 
8354  def do_get_inputs(self, m, pis):
8355  r"""do_get_inputs(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8356  return _IMP_kernel.QuadScore_do_get_inputs(self, m, pis)
8357 
8358  def do_destroy(self):
8359  r"""do_destroy(QuadScore self)"""
8360  return _IMP_kernel.QuadScore_do_destroy(self)
8361 
8362 # Register QuadScore in _IMP_kernel:
8363 _IMP_kernel.QuadScore_swigregister(QuadScore)
8364 class QuadPredicate(_ParticleInputs, Object):
8365  r"""Proxy of C++ IMP::QuadPredicate class."""
8366 
8367  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8368 
8369  def __init__(self, *args):
8370  r"""__init__(QuadPredicate self, std::string name="QuadPredicate %1%") -> QuadPredicate"""
8371  if self.__class__ == QuadPredicate:
8372  _self = None
8373  else:
8374  _self = self
8375  _IMP_kernel.QuadPredicate_swiginit(self, _IMP_kernel.new_QuadPredicate(_self, *args))
8376 
8377  if self.__class__ != QuadPredicate:
8378  _director_objects.register(self)
8379 
8380 
8381 
8382 
8383  def setup_for_get_value_index_in_batch(self, arg0):
8384  r"""setup_for_get_value_index_in_batch(QuadPredicate self, Model arg0)"""
8385  return _IMP_kernel.QuadPredicate_setup_for_get_value_index_in_batch(self, arg0)
8386 
8387  def get_value_index_in_batch(self, m, vt):
8388  r"""get_value_index_in_batch(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8389  return _IMP_kernel.QuadPredicate_get_value_index_in_batch(self, m, vt)
8390 
8391  def __call__(self, m, vt):
8392  r"""__call__(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8393  return _IMP_kernel.QuadPredicate___call__(self, m, vt)
8394 
8395  def get_value_index(self, *args):
8396  r"""
8397  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int
8398  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuads const & o) -> IMP::Ints
8399  """
8400  return _IMP_kernel.QuadPredicate_get_value_index(self, *args)
8401  __swig_destroy__ = _IMP_kernel.delete_QuadPredicate
8402 
8403  def __str__(self):
8404  r"""__str__(QuadPredicate self) -> std::string"""
8405  return _IMP_kernel.QuadPredicate___str__(self)
8406 
8407  def __repr__(self):
8408  r"""__repr__(QuadPredicate self) -> std::string"""
8409  return _IMP_kernel.QuadPredicate___repr__(self)
8410 
8411  @staticmethod
8412  def get_from(o):
8413  return _object_cast_to_QuadPredicate(o)
8414 
8415 
8416  def do_show(self, out):
8417  pass
8418 
8419  @staticmethod
8420  def get_from(o):
8421  return _object_cast_to_QuadPredicate(o)
8422 
8423  def __disown__(self):
8424  self.this.disown()
8425  _IMP_kernel.disown_QuadPredicate(self)
8426  return weakref.proxy(self)
8427 
8428  def do_get_inputs(self, m, pis):
8429  r"""do_get_inputs(QuadPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8430  return _IMP_kernel.QuadPredicate_do_get_inputs(self, m, pis)
8431 
8432  def do_destroy(self):
8433  r"""do_destroy(QuadPredicate self)"""
8434  return _IMP_kernel.QuadPredicate_do_destroy(self)
8435 
8436 # Register QuadPredicate in _IMP_kernel:
8437 _IMP_kernel.QuadPredicate_swigregister(QuadPredicate)
8438 class QuadContainer(Container):
8439  r"""Proxy of C++ IMP::QuadContainer class."""
8440 
8441  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8442 
8443  def apply_generic(self, m):
8444  r"""apply_generic(QuadContainer self, QuadModifier m)"""
8445  return _IMP_kernel.QuadContainer_apply_generic(self, m)
8446 
8447  def apply_generic_moved(self, m, moved_pis, reset_pis):
8448  r"""apply_generic_moved(QuadContainer self, QuadModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8449  return _IMP_kernel.QuadContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8450 
8451  def apply(self, sm):
8452  r"""apply(QuadContainer self, QuadModifier sm)"""
8453  return _IMP_kernel.QuadContainer_apply(self, sm)
8454 
8455  def apply_moved(self, sm, moved_pis, reset_pis):
8456  r"""apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8457  return _IMP_kernel.QuadContainer_apply_moved(self, sm, moved_pis, reset_pis)
8458 
8459  def get_range_indexes(self):
8460  r"""get_range_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8461  return _IMP_kernel.QuadContainer_get_range_indexes(self)
8462 
8463  def get_contents(self):
8464  r"""get_contents(QuadContainer self) -> IMP::ParticleIndexQuads const &"""
8465  return _IMP_kernel.QuadContainer_get_contents(self)
8466 
8467  def get_indexes(self):
8468  r"""get_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8469  return _IMP_kernel.QuadContainer_get_indexes(self)
8470 
8471  def get(self, *args):
8472  r"""
8473  get(QuadContainer self) -> IMP::ParticleQuadsTemp
8474  get(QuadContainer self, unsigned int i) -> IMP::ParticleQuad
8475  """
8476  return _IMP_kernel.QuadContainer_get(self, *args)
8477 
8478  def get_number(self):
8479  r"""get_number(QuadContainer self) -> unsigned int"""
8480  return _IMP_kernel.QuadContainer_get_number(self)
8481 
8482  def __init__(self, *args):
8483  r"""
8484  __init__(QuadContainer self, Model m, std::string name="QuadContainer %1%") -> QuadContainer
8485  __init__(QuadContainer self) -> QuadContainer
8486  """
8487  if self.__class__ == QuadContainer:
8488  _self = None
8489  else:
8490  _self = self
8491  _IMP_kernel.QuadContainer_swiginit(self, _IMP_kernel.new_QuadContainer(_self, *args))
8492 
8493  if self.__class__ != QuadContainer:
8494  _director_objects.register(self)
8495 
8496 
8497 
8498 
8499  def do_apply(self, sm):
8500  r"""do_apply(QuadContainer self, QuadModifier sm)"""
8501  return _IMP_kernel.QuadContainer_do_apply(self, sm)
8502 
8503  def do_apply_moved(self, sm, moved_pis, reset_pis):
8504  r"""do_apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8505  return _IMP_kernel.QuadContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8506 
8507  def do_get_provides_access(self):
8508  r"""do_get_provides_access(QuadContainer self) -> bool"""
8509  return _IMP_kernel.QuadContainer_do_get_provides_access(self)
8510  __swig_destroy__ = _IMP_kernel.delete_QuadContainer
8511 
8512  def __str__(self):
8513  r"""__str__(QuadContainer self) -> std::string"""
8514  return _IMP_kernel.QuadContainer___str__(self)
8515 
8516  def __repr__(self):
8517  r"""__repr__(QuadContainer self) -> std::string"""
8518  return _IMP_kernel.QuadContainer___repr__(self)
8519 
8520  @staticmethod
8521  def get_from(o):
8522  return _object_cast_to_QuadContainer(o)
8523 
8524 
8525  def do_show(self, out):
8526  pass
8527 
8528  @staticmethod
8529  def get_from(o):
8530  return _object_cast_to_QuadContainer(o)
8531 
8532  def __disown__(self):
8533  self.this.disown()
8534  _IMP_kernel.disown_QuadContainer(self)
8535  return weakref.proxy(self)
8536 
8537  def do_destroy(self):
8538  r"""do_destroy(QuadContainer self)"""
8539  return _IMP_kernel.QuadContainer_do_destroy(self)
8540 
8541  def handle_set_has_required_score_states(self, arg0):
8542  r"""handle_set_has_required_score_states(QuadContainer self, bool arg0)"""
8543  return _IMP_kernel.QuadContainer_handle_set_has_required_score_states(self, arg0)
8544 
8545  def do_get_inputs(self):
8546  r"""do_get_inputs(QuadContainer self) -> IMP::ModelObjectsTemp"""
8547  return _IMP_kernel.QuadContainer_do_get_inputs(self)
8548 
8549  def do_get_interactions(self):
8550  r"""do_get_interactions(QuadContainer self) -> IMP::ModelObjectsTemps"""
8551  return _IMP_kernel.QuadContainer_do_get_interactions(self)
8552 
8553  def do_get_contents_hash(self):
8554  r"""do_get_contents_hash(QuadContainer self) -> std::size_t"""
8555  return _IMP_kernel.QuadContainer_do_get_contents_hash(self)
8556 
8557 # Register QuadContainer in _IMP_kernel:
8558 _IMP_kernel.QuadContainer_swigregister(QuadContainer)
8559 class _QuadContainerAdaptor(_InputAdaptor):
8560  r"""Proxy of C++ IMP::QuadContainerAdaptor class."""
8561 
8562  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8563  __repr__ = _swig_repr
8564 
8565  def __init__(self, *args):
8566  r"""
8567  __init__(_QuadContainerAdaptor self) -> _QuadContainerAdaptor
8568  __init__(_QuadContainerAdaptor self, QuadContainer c) -> _QuadContainerAdaptor
8569  __init__(_QuadContainerAdaptor self, IMP::ParticleQuadsTemp const & t) -> _QuadContainerAdaptor
8570  """
8571  _IMP_kernel._QuadContainerAdaptor_swiginit(self, _IMP_kernel.new__QuadContainerAdaptor(*args))
8572 
8573  def set_name_if_default(self, name):
8574  r"""set_name_if_default(_QuadContainerAdaptor self, std::string name)"""
8575  return _IMP_kernel._QuadContainerAdaptor_set_name_if_default(self, name)
8576  __swig_destroy__ = _IMP_kernel.delete__QuadContainerAdaptor
8577 
8578 # Register _QuadContainerAdaptor in _IMP_kernel:
8579 _IMP_kernel._QuadContainerAdaptor_swigregister(_QuadContainerAdaptor)
8580 class SingletonModifier(_ParticleInputs, _ParticleOutputs, Object):
8581  r"""Proxy of C++ IMP::SingletonModifier class."""
8582 
8583  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8584 
8585  def __init__(self, *args):
8586  r"""__init__(SingletonModifier self, std::string name="SingletonModifier %1%") -> SingletonModifier"""
8587  if self.__class__ == SingletonModifier:
8588  _self = None
8589  else:
8590  _self = self
8591  _IMP_kernel.SingletonModifier_swiginit(self, _IMP_kernel.new_SingletonModifier(_self, *args))
8592 
8593  if self.__class__ != SingletonModifier:
8594  _director_objects.register(self)
8595 
8596 
8597 
8598 
8599  def apply_index(self, m, v):
8600  r"""apply_index(SingletonModifier self, Model m, ParticleIndex v)"""
8601  return _IMP_kernel.SingletonModifier_apply_index(self, m, v)
8602 
8603  def apply_indexes(self, m, o, lower_bound, upper_bound):
8604  r"""apply_indexes(SingletonModifier self, Model m, IMP::ParticleIndexes const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8605  return _IMP_kernel.SingletonModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8606 
8607  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8608  r"""apply_indexes_moved(SingletonModifier self, Model m, IMP::ParticleIndexes const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8609  return _IMP_kernel.SingletonModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8610 
8611  def __str__(self):
8612  r"""__str__(SingletonModifier self) -> std::string"""
8613  return _IMP_kernel.SingletonModifier___str__(self)
8614 
8615  def __repr__(self):
8616  r"""__repr__(SingletonModifier self) -> std::string"""
8617  return _IMP_kernel.SingletonModifier___repr__(self)
8618 
8619  @staticmethod
8620  def get_from(o):
8621  return _object_cast_to_SingletonModifier(o)
8622 
8623 
8624  def do_show(self, out):
8625  pass
8626 
8627  @staticmethod
8628  def get_from(o):
8629  return _object_cast_to_SingletonModifier(o)
8630 
8631 
8632  def _wrap_jax(self, apply_func, keys=None):
8633  """Create the return value for _get_jax.
8634  Use this method in _get_jax() to wrap the JAX function
8635  with other modifier-specific information.
8636 
8637  @param apply_func A function implemented using JAX that takes
8638  one argument (the current JAX Model) and returns a new
8639  modified JAX Model.
8640  @param keys Model attributes used by the SingletonModifier.
8641  See IMP::Restraint::_wrap_jax.
8642  """
8643  from IMP._jax_util import JAXModifierInfo
8644  return JAXModifierInfo(apply_func=apply_func, keys=keys)
8645 
8646  def _get_jax(self, m, indexes):
8647  """Return a JAX implementation of this SingletonModifier.
8648  Implement this method in a SingletonModifier subclass to provide
8649  an equivalent function using [JAX](https://docs.jax.dev/)
8650  that modifies the current JAX Model. See also _wrap_jax.
8651 
8652  @param m The IMP.Model that the modifier will act on.
8653  @param indexes The ParticleIndexes that the modifier will act on.
8654  """
8655  raise NotImplementedError(
8656  f"No JAX implementation for {self} ({type(self)})")
8657 
8658  __swig_destroy__ = _IMP_kernel.delete_SingletonModifier
8659  def __disown__(self):
8660  self.this.disown()
8661  _IMP_kernel.disown_SingletonModifier(self)
8662  return weakref.proxy(self)
8663 
8664  def do_get_inputs(self, m, pis):
8665  r"""do_get_inputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8666  return _IMP_kernel.SingletonModifier_do_get_inputs(self, m, pis)
8667 
8668  def do_get_outputs(self, m, pis):
8669  r"""do_get_outputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8670  return _IMP_kernel.SingletonModifier_do_get_outputs(self, m, pis)
8671 
8672  def do_destroy(self):
8673  r"""do_destroy(SingletonModifier self)"""
8674  return _IMP_kernel.SingletonModifier_do_destroy(self)
8675 
8676 # Register SingletonModifier in _IMP_kernel:
8677 _IMP_kernel.SingletonModifier_swigregister(SingletonModifier)
8678 class SingletonScore(_ParticleInputs, Object):
8679  r"""Proxy of C++ IMP::SingletonScore class."""
8680 
8681  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8682 
8683  def __init__(self, *args):
8684  r"""__init__(SingletonScore self, std::string name="SingletonScore %1%") -> SingletonScore"""
8685  if self.__class__ == SingletonScore:
8686  _self = None
8687  else:
8688  _self = self
8689  _IMP_kernel.SingletonScore_swiginit(self, _IMP_kernel.new_SingletonScore(_self, *args))
8690 
8691  if self.__class__ != SingletonScore:
8692  _director_objects.register(self)
8693 
8694 
8695 
8696 
8697  def evaluate_index(self, m, vt, da):
8698  r"""evaluate_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da) -> double"""
8699  return _IMP_kernel.SingletonScore_evaluate_index(self, m, vt, da)
8700 
8701  def check_indexes(self, m, pis):
8702  r"""check_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8703  return _IMP_kernel.SingletonScore_check_indexes(self, m, pis)
8704 
8705  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8706  r"""evaluate_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8707  return _IMP_kernel.SingletonScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8708 
8709  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8710  r"""evaluate_indexes_scores(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8711  return _IMP_kernel.SingletonScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8712 
8713  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8714  r"""evaluate_indexes_delta(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
8715  return _IMP_kernel.SingletonScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8716 
8717  def evaluate_if_good_index(self, m, vt, da, max):
8718  r"""evaluate_if_good_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da, double max) -> double"""
8719  return _IMP_kernel.SingletonScore_evaluate_if_good_index(self, m, vt, da, max)
8720 
8721  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8722  r"""evaluate_if_good_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
8723  return _IMP_kernel.SingletonScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8724 
8725  def create_current_decomposition(self, m, vt):
8726  r"""create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8727  return _IMP_kernel.SingletonScore_create_current_decomposition(self, m, vt)
8728 
8729  def do_create_current_decomposition(self, m, vt):
8730  r"""do_create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8731  return _IMP_kernel.SingletonScore_do_create_current_decomposition(self, m, vt)
8732  __swig_destroy__ = _IMP_kernel.delete_SingletonScore
8733 
8734  def __str__(self):
8735  r"""__str__(SingletonScore self) -> std::string"""
8736  return _IMP_kernel.SingletonScore___str__(self)
8737 
8738  def __repr__(self):
8739  r"""__repr__(SingletonScore self) -> std::string"""
8740  return _IMP_kernel.SingletonScore___repr__(self)
8741 
8742  @staticmethod
8743  def get_from(o):
8744  return _object_cast_to_SingletonScore(o)
8745 
8746 
8747  def do_show(self, out):
8748  pass
8749 
8750  @staticmethod
8751  def get_from(o):
8752  return _object_cast_to_SingletonScore(o)
8753 
8754 
8755  def _wrap_jax(self, m, score_func, keys=None):
8756  """See IMP::PairScore::_wrap_jax"""
8757  from IMP._jax_util import JAXScoreInfo
8758  return JAXScoreInfo(m, score_func=score_func, keys=keys)
8759 
8760  def _get_jax(self, m, indexes, space):
8761  """See IMP::PairScore::_get_jax"""
8762  raise NotImplementedError(
8763  f"No JAX implementation for {self} ({type(self)})")
8764 
8765  def __disown__(self):
8766  self.this.disown()
8767  _IMP_kernel.disown_SingletonScore(self)
8768  return weakref.proxy(self)
8769 
8770  def do_get_inputs(self, m, pis):
8771  r"""do_get_inputs(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8772  return _IMP_kernel.SingletonScore_do_get_inputs(self, m, pis)
8773 
8774  def do_destroy(self):
8775  r"""do_destroy(SingletonScore self)"""
8776  return _IMP_kernel.SingletonScore_do_destroy(self)
8777 
8778 # Register SingletonScore in _IMP_kernel:
8779 _IMP_kernel.SingletonScore_swigregister(SingletonScore)
8780 class SingletonPredicate(_ParticleInputs, Object):
8781  r"""Proxy of C++ IMP::SingletonPredicate class."""
8782 
8783  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8784 
8785  def __init__(self, *args):
8786  r"""__init__(SingletonPredicate self, std::string name="SingletonPredicate %1%") -> SingletonPredicate"""
8787  if self.__class__ == SingletonPredicate:
8788  _self = None
8789  else:
8790  _self = self
8791  _IMP_kernel.SingletonPredicate_swiginit(self, _IMP_kernel.new_SingletonPredicate(_self, *args))
8792 
8793  if self.__class__ != SingletonPredicate:
8794  _director_objects.register(self)
8795 
8796 
8797 
8798 
8799  def setup_for_get_value_index_in_batch(self, arg0):
8800  r"""setup_for_get_value_index_in_batch(SingletonPredicate self, Model arg0)"""
8801  return _IMP_kernel.SingletonPredicate_setup_for_get_value_index_in_batch(self, arg0)
8802 
8803  def get_value_index_in_batch(self, m, vt):
8804  r"""get_value_index_in_batch(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8805  return _IMP_kernel.SingletonPredicate_get_value_index_in_batch(self, m, vt)
8806 
8807  def __call__(self, m, vt):
8808  r"""__call__(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8809  return _IMP_kernel.SingletonPredicate___call__(self, m, vt)
8810 
8811  def get_value_index(self, *args):
8812  r"""
8813  get_value_index(SingletonPredicate self, Model m, ParticleIndex vt) -> int
8814  get_value_index(SingletonPredicate self, Model m, IMP::ParticleIndexes const & o) -> IMP::Ints
8815  """
8816  return _IMP_kernel.SingletonPredicate_get_value_index(self, *args)
8817  __swig_destroy__ = _IMP_kernel.delete_SingletonPredicate
8818 
8819  def __str__(self):
8820  r"""__str__(SingletonPredicate self) -> std::string"""
8821  return _IMP_kernel.SingletonPredicate___str__(self)
8822 
8823  def __repr__(self):
8824  r"""__repr__(SingletonPredicate self) -> std::string"""
8825  return _IMP_kernel.SingletonPredicate___repr__(self)
8826 
8827  @staticmethod
8828  def get_from(o):
8829  return _object_cast_to_SingletonPredicate(o)
8830 
8831 
8832  def do_show(self, out):
8833  pass
8834 
8835  @staticmethod
8836  def get_from(o):
8837  return _object_cast_to_SingletonPredicate(o)
8838 
8839  def __disown__(self):
8840  self.this.disown()
8841  _IMP_kernel.disown_SingletonPredicate(self)
8842  return weakref.proxy(self)
8843 
8844  def do_get_inputs(self, m, pis):
8845  r"""do_get_inputs(SingletonPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8846  return _IMP_kernel.SingletonPredicate_do_get_inputs(self, m, pis)
8847 
8848  def do_destroy(self):
8849  r"""do_destroy(SingletonPredicate self)"""
8850  return _IMP_kernel.SingletonPredicate_do_destroy(self)
8851 
8852 # Register SingletonPredicate in _IMP_kernel:
8853 _IMP_kernel.SingletonPredicate_swigregister(SingletonPredicate)
8855  r"""Proxy of C++ IMP::SingletonContainer class."""
8856 
8857  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8858 
8859  def apply_generic(self, m):
8860  r"""apply_generic(SingletonContainer self, SingletonModifier m)"""
8861  return _IMP_kernel.SingletonContainer_apply_generic(self, m)
8862 
8863  def apply_generic_moved(self, m, moved_pis, reset_pis):
8864  r"""apply_generic_moved(SingletonContainer self, SingletonModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8865  return _IMP_kernel.SingletonContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8866 
8867  def apply(self, sm):
8868  r"""apply(SingletonContainer self, SingletonModifier sm)"""
8869  return _IMP_kernel.SingletonContainer_apply(self, sm)
8870 
8871  def apply_moved(self, sm, moved_pis, reset_pis):
8872  r"""apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8873  return _IMP_kernel.SingletonContainer_apply_moved(self, sm, moved_pis, reset_pis)
8874 
8875  def get_range_indexes(self):
8876  r"""get_range_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8877  return _IMP_kernel.SingletonContainer_get_range_indexes(self)
8878 
8879  def get_contents(self):
8880  r"""get_contents(SingletonContainer self) -> IMP::ParticleIndexes const &"""
8881  return _IMP_kernel.SingletonContainer_get_contents(self)
8882 
8883  def get_indexes(self):
8884  r"""get_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8885  return _IMP_kernel.SingletonContainer_get_indexes(self)
8886 
8887  def get(self, *args):
8888  r"""
8889  get(SingletonContainer self) -> IMP::ParticlesTemp
8890  get(SingletonContainer self, unsigned int i) -> Particle
8891  """
8892  return _IMP_kernel.SingletonContainer_get(self, *args)
8893 
8894  def get_number(self):
8895  r"""get_number(SingletonContainer self) -> unsigned int"""
8896  return _IMP_kernel.SingletonContainer_get_number(self)
8897 
8898  def __init__(self, *args):
8899  r"""
8900  __init__(SingletonContainer self, Model m, std::string name="SingletonContainer %1%") -> SingletonContainer
8901  __init__(SingletonContainer self) -> SingletonContainer
8902  """
8903  if self.__class__ == SingletonContainer:
8904  _self = None
8905  else:
8906  _self = self
8907  _IMP_kernel.SingletonContainer_swiginit(self, _IMP_kernel.new_SingletonContainer(_self, *args))
8908 
8909  if self.__class__ != SingletonContainer:
8910  _director_objects.register(self)
8911 
8912 
8913 
8914 
8915  def do_apply(self, sm):
8916  r"""do_apply(SingletonContainer self, SingletonModifier sm)"""
8917  return _IMP_kernel.SingletonContainer_do_apply(self, sm)
8918 
8919  def do_apply_moved(self, sm, moved_pis, reset_pis):
8920  r"""do_apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8921  return _IMP_kernel.SingletonContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8922 
8923  def do_get_provides_access(self):
8924  r"""do_get_provides_access(SingletonContainer self) -> bool"""
8925  return _IMP_kernel.SingletonContainer_do_get_provides_access(self)
8926  __swig_destroy__ = _IMP_kernel.delete_SingletonContainer
8927 
8928  def __str__(self):
8929  r"""__str__(SingletonContainer self) -> std::string"""
8930  return _IMP_kernel.SingletonContainer___str__(self)
8931 
8932  def __repr__(self):
8933  r"""__repr__(SingletonContainer self) -> std::string"""
8934  return _IMP_kernel.SingletonContainer___repr__(self)
8935 
8936  @staticmethod
8937  def get_from(o):
8938  return _object_cast_to_SingletonContainer(o)
8939 
8940 
8941  def do_show(self, out):
8942  pass
8943 
8944  @staticmethod
8945  def get_from(o):
8946  return _object_cast_to_SingletonContainer(o)
8947 
8948  def __disown__(self):
8949  self.this.disown()
8950  _IMP_kernel.disown_SingletonContainer(self)
8951  return weakref.proxy(self)
8952 
8953  def do_destroy(self):
8954  r"""do_destroy(SingletonContainer self)"""
8955  return _IMP_kernel.SingletonContainer_do_destroy(self)
8956 
8957  def handle_set_has_required_score_states(self, arg0):
8958  r"""handle_set_has_required_score_states(SingletonContainer self, bool arg0)"""
8959  return _IMP_kernel.SingletonContainer_handle_set_has_required_score_states(self, arg0)
8960 
8961  def do_get_inputs(self):
8962  r"""do_get_inputs(SingletonContainer self) -> IMP::ModelObjectsTemp"""
8963  return _IMP_kernel.SingletonContainer_do_get_inputs(self)
8964 
8965  def do_get_interactions(self):
8966  r"""do_get_interactions(SingletonContainer self) -> IMP::ModelObjectsTemps"""
8967  return _IMP_kernel.SingletonContainer_do_get_interactions(self)
8968 
8969  def do_get_contents_hash(self):
8970  r"""do_get_contents_hash(SingletonContainer self) -> std::size_t"""
8971  return _IMP_kernel.SingletonContainer_do_get_contents_hash(self)
8972 
8973 # Register SingletonContainer in _IMP_kernel:
8974 _IMP_kernel.SingletonContainer_swigregister(SingletonContainer)
8975 class _SingletonContainerAdaptor(_InputAdaptor):
8976  r"""Proxy of C++ IMP::SingletonContainerAdaptor class."""
8977 
8978  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8979  __repr__ = _swig_repr
8980 
8981  def __init__(self, *args):
8982  r"""
8983  __init__(_SingletonContainerAdaptor self) -> _SingletonContainerAdaptor
8984  __init__(_SingletonContainerAdaptor self, SingletonContainer c) -> _SingletonContainerAdaptor
8985  __init__(_SingletonContainerAdaptor self, IMP::ParticlesTemp const & t) -> _SingletonContainerAdaptor
8986  """
8987  _IMP_kernel._SingletonContainerAdaptor_swiginit(self, _IMP_kernel.new__SingletonContainerAdaptor(*args))
8988 
8989  def set_name_if_default(self, name):
8990  r"""set_name_if_default(_SingletonContainerAdaptor self, std::string name)"""
8991  return _IMP_kernel._SingletonContainerAdaptor_set_name_if_default(self, name)
8992  __swig_destroy__ = _IMP_kernel.delete__SingletonContainerAdaptor
8993 
8994 # Register _SingletonContainerAdaptor in _IMP_kernel:
8995 _IMP_kernel._SingletonContainerAdaptor_swigregister(_SingletonContainerAdaptor)
8996 class TripletModifier(_ParticleInputs, _ParticleOutputs, Object):
8997  r"""Proxy of C++ IMP::TripletModifier class."""
8998 
8999  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9000 
9001  def __init__(self, *args):
9002  r"""__init__(TripletModifier self, std::string name="TripletModifier %1%") -> TripletModifier"""
9003  if self.__class__ == TripletModifier:
9004  _self = None
9005  else:
9006  _self = self
9007  _IMP_kernel.TripletModifier_swiginit(self, _IMP_kernel.new_TripletModifier(_self, *args))
9008 
9009  if self.__class__ != TripletModifier:
9010  _director_objects.register(self)
9011 
9012 
9013 
9014 
9015  def apply_index(self, m, v):
9016  r"""apply_index(TripletModifier self, Model m, IMP::ParticleIndexTriplet const & v)"""
9017  return _IMP_kernel.TripletModifier_apply_index(self, m, v)
9018 
9019  def apply_indexes(self, m, o, lower_bound, upper_bound):
9020  r"""apply_indexes(TripletModifier self, Model m, IMP::ParticleIndexTriplets const & o, unsigned int lower_bound, unsigned int upper_bound)"""
9021  return _IMP_kernel.TripletModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
9022 
9023  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
9024  r"""apply_indexes_moved(TripletModifier self, Model m, IMP::ParticleIndexTriplets const & o, unsigned int lower_bound, unsigned int upper_bound, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9025  return _IMP_kernel.TripletModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
9026 
9027  def __str__(self):
9028  r"""__str__(TripletModifier self) -> std::string"""
9029  return _IMP_kernel.TripletModifier___str__(self)
9030 
9031  def __repr__(self):
9032  r"""__repr__(TripletModifier self) -> std::string"""
9033  return _IMP_kernel.TripletModifier___repr__(self)
9034 
9035  @staticmethod
9036  def get_from(o):
9037  return _object_cast_to_TripletModifier(o)
9038 
9039 
9040  def do_show(self, out):
9041  pass
9042 
9043  @staticmethod
9044  def get_from(o):
9045  return _object_cast_to_TripletModifier(o)
9046 
9047  __swig_destroy__ = _IMP_kernel.delete_TripletModifier
9048  def __disown__(self):
9049  self.this.disown()
9050  _IMP_kernel.disown_TripletModifier(self)
9051  return weakref.proxy(self)
9052 
9053  def do_get_inputs(self, m, pis):
9054  r"""do_get_inputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9055  return _IMP_kernel.TripletModifier_do_get_inputs(self, m, pis)
9056 
9057  def do_get_outputs(self, m, pis):
9058  r"""do_get_outputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9059  return _IMP_kernel.TripletModifier_do_get_outputs(self, m, pis)
9060 
9061  def do_destroy(self):
9062  r"""do_destroy(TripletModifier self)"""
9063  return _IMP_kernel.TripletModifier_do_destroy(self)
9064 
9065 # Register TripletModifier in _IMP_kernel:
9066 _IMP_kernel.TripletModifier_swigregister(TripletModifier)
9067 class TripletScore(_ParticleInputs, Object):
9068  r"""Proxy of C++ IMP::TripletScore class."""
9069 
9070  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9071 
9072  def __init__(self, *args):
9073  r"""__init__(TripletScore self, std::string name="TripletScore %1%") -> TripletScore"""
9074  if self.__class__ == TripletScore:
9075  _self = None
9076  else:
9077  _self = self
9078  _IMP_kernel.TripletScore_swiginit(self, _IMP_kernel.new_TripletScore(_self, *args))
9079 
9080  if self.__class__ != TripletScore:
9081  _director_objects.register(self)
9082 
9083 
9084 
9085 
9086  def evaluate_index(self, m, vt, da):
9087  r"""evaluate_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da) -> double"""
9088  return _IMP_kernel.TripletScore_evaluate_index(self, m, vt, da)
9089 
9090  def check_indexes(self, m, pis):
9091  r"""check_indexes(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
9092  return _IMP_kernel.TripletScore_check_indexes(self, m, pis)
9093 
9094  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
9095  r"""evaluate_indexes(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9096  return _IMP_kernel.TripletScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
9097 
9098  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9099  r"""evaluate_indexes_scores(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9100  return _IMP_kernel.TripletScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
9101 
9102  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
9103  r"""evaluate_indexes_delta(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9104  return _IMP_kernel.TripletScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
9105 
9106  def evaluate_if_good_index(self, m, vt, da, max):
9107  r"""evaluate_if_good_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da, double max) -> double"""
9108  return _IMP_kernel.TripletScore_evaluate_if_good_index(self, m, vt, da, max)
9109 
9110  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9111  r"""evaluate_if_good_indexes(TripletScore self, Model m, IMP::ParticleIndexTriplets const & o, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9112  return _IMP_kernel.TripletScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
9113 
9114  def create_current_decomposition(self, m, vt):
9115  r"""create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
9116  return _IMP_kernel.TripletScore_create_current_decomposition(self, m, vt)
9117 
9118  def do_create_current_decomposition(self, m, vt):
9119  r"""do_create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
9120  return _IMP_kernel.TripletScore_do_create_current_decomposition(self, m, vt)
9121  __swig_destroy__ = _IMP_kernel.delete_TripletScore
9122 
9123  def __str__(self):
9124  r"""__str__(TripletScore self) -> std::string"""
9125  return _IMP_kernel.TripletScore___str__(self)
9126 
9127  def __repr__(self):
9128  r"""__repr__(TripletScore self) -> std::string"""
9129  return _IMP_kernel.TripletScore___repr__(self)
9130 
9131  @staticmethod
9132  def get_from(o):
9133  return _object_cast_to_TripletScore(o)
9134 
9135 
9136  def do_show(self, out):
9137  pass
9138 
9139  @staticmethod
9140  def get_from(o):
9141  return _object_cast_to_TripletScore(o)
9142 
9143  def __disown__(self):
9144  self.this.disown()
9145  _IMP_kernel.disown_TripletScore(self)
9146  return weakref.proxy(self)
9147 
9148  def do_get_inputs(self, m, pis):
9149  r"""do_get_inputs(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9150  return _IMP_kernel.TripletScore_do_get_inputs(self, m, pis)
9151 
9152  def do_destroy(self):
9153  r"""do_destroy(TripletScore self)"""
9154  return _IMP_kernel.TripletScore_do_destroy(self)
9155 
9156 # Register TripletScore in _IMP_kernel:
9157 _IMP_kernel.TripletScore_swigregister(TripletScore)
9158 class TripletPredicate(_ParticleInputs, Object):
9159  r"""Proxy of C++ IMP::TripletPredicate class."""
9160 
9161  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9162 
9163  def __init__(self, *args):
9164  r"""__init__(TripletPredicate self, std::string name="TripletPredicate %1%") -> TripletPredicate"""
9165  if self.__class__ == TripletPredicate:
9166  _self = None
9167  else:
9168  _self = self
9169  _IMP_kernel.TripletPredicate_swiginit(self, _IMP_kernel.new_TripletPredicate(_self, *args))
9170 
9171  if self.__class__ != TripletPredicate:
9172  _director_objects.register(self)
9173 
9174 
9175 
9176 
9177  def setup_for_get_value_index_in_batch(self, arg0):
9178  r"""setup_for_get_value_index_in_batch(TripletPredicate self, Model arg0)"""
9179  return _IMP_kernel.TripletPredicate_setup_for_get_value_index_in_batch(self, arg0)
9180 
9181  def get_value_index_in_batch(self, m, vt):
9182  r"""get_value_index_in_batch(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9183  return _IMP_kernel.TripletPredicate_get_value_index_in_batch(self, m, vt)
9184 
9185  def __call__(self, m, vt):
9186  r"""__call__(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9187  return _IMP_kernel.TripletPredicate___call__(self, m, vt)
9188 
9189  def get_value_index(self, *args):
9190  r"""
9191  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int
9192  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplets const & o) -> IMP::Ints
9193  """
9194  return _IMP_kernel.TripletPredicate_get_value_index(self, *args)
9195  __swig_destroy__ = _IMP_kernel.delete_TripletPredicate
9196 
9197  def __str__(self):
9198  r"""__str__(TripletPredicate self) -> std::string"""
9199  return _IMP_kernel.TripletPredicate___str__(self)
9200 
9201  def __repr__(self):
9202  r"""__repr__(TripletPredicate self) -> std::string"""
9203  return _IMP_kernel.TripletPredicate___repr__(self)
9204 
9205  @staticmethod
9206  def get_from(o):
9207  return _object_cast_to_TripletPredicate(o)
9208 
9209 
9210  def do_show(self, out):
9211  pass
9212 
9213  @staticmethod
9214  def get_from(o):
9215  return _object_cast_to_TripletPredicate(o)
9216 
9217  def __disown__(self):
9218  self.this.disown()
9219  _IMP_kernel.disown_TripletPredicate(self)
9220  return weakref.proxy(self)
9221 
9222  def do_get_inputs(self, m, pis):
9223  r"""do_get_inputs(TripletPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9224  return _IMP_kernel.TripletPredicate_do_get_inputs(self, m, pis)
9225 
9226  def do_destroy(self):
9227  r"""do_destroy(TripletPredicate self)"""
9228  return _IMP_kernel.TripletPredicate_do_destroy(self)
9229 
9230 # Register TripletPredicate in _IMP_kernel:
9231 _IMP_kernel.TripletPredicate_swigregister(TripletPredicate)
9233  r"""Proxy of C++ IMP::TripletContainer class."""
9234 
9235  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9236 
9237  def apply_generic(self, m):
9238  r"""apply_generic(TripletContainer self, TripletModifier m)"""
9239  return _IMP_kernel.TripletContainer_apply_generic(self, m)
9240 
9241  def apply_generic_moved(self, m, moved_pis, reset_pis):
9242  r"""apply_generic_moved(TripletContainer self, TripletModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9243  return _IMP_kernel.TripletContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
9244 
9245  def apply(self, sm):
9246  r"""apply(TripletContainer self, TripletModifier sm)"""
9247  return _IMP_kernel.TripletContainer_apply(self, sm)
9248 
9249  def apply_moved(self, sm, moved_pis, reset_pis):
9250  r"""apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9251  return _IMP_kernel.TripletContainer_apply_moved(self, sm, moved_pis, reset_pis)
9252 
9253  def get_range_indexes(self):
9254  r"""get_range_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9255  return _IMP_kernel.TripletContainer_get_range_indexes(self)
9256 
9257  def get_contents(self):
9258  r"""get_contents(TripletContainer self) -> IMP::ParticleIndexTriplets const &"""
9259  return _IMP_kernel.TripletContainer_get_contents(self)
9260 
9261  def get_indexes(self):
9262  r"""get_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9263  return _IMP_kernel.TripletContainer_get_indexes(self)
9264 
9265  def get(self, *args):
9266  r"""
9267  get(TripletContainer self) -> IMP::ParticleTripletsTemp
9268  get(TripletContainer self, unsigned int i) -> IMP::ParticleTriplet
9269  """
9270  return _IMP_kernel.TripletContainer_get(self, *args)
9271 
9272  def get_number(self):
9273  r"""get_number(TripletContainer self) -> unsigned int"""
9274  return _IMP_kernel.TripletContainer_get_number(self)
9275 
9276  def __init__(self, *args):
9277  r"""
9278  __init__(TripletContainer self, Model m, std::string name="TripletContainer %1%") -> TripletContainer
9279  __init__(TripletContainer self) -> TripletContainer
9280  """
9281  if self.__class__ == TripletContainer:
9282  _self = None
9283  else:
9284  _self = self
9285  _IMP_kernel.TripletContainer_swiginit(self, _IMP_kernel.new_TripletContainer(_self, *args))
9286 
9287  if self.__class__ != TripletContainer:
9288  _director_objects.register(self)
9289 
9290 
9291 
9292 
9293  def do_apply(self, sm):
9294  r"""do_apply(TripletContainer self, TripletModifier sm)"""
9295  return _IMP_kernel.TripletContainer_do_apply(self, sm)
9296 
9297  def do_apply_moved(self, sm, moved_pis, reset_pis):
9298  r"""do_apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9299  return _IMP_kernel.TripletContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
9300 
9301  def do_get_provides_access(self):
9302  r"""do_get_provides_access(TripletContainer self) -> bool"""
9303  return _IMP_kernel.TripletContainer_do_get_provides_access(self)
9304  __swig_destroy__ = _IMP_kernel.delete_TripletContainer
9305 
9306  def __str__(self):
9307  r"""__str__(TripletContainer self) -> std::string"""
9308  return _IMP_kernel.TripletContainer___str__(self)
9309 
9310  def __repr__(self):
9311  r"""__repr__(TripletContainer self) -> std::string"""
9312  return _IMP_kernel.TripletContainer___repr__(self)
9313 
9314  @staticmethod
9315  def get_from(o):
9316  return _object_cast_to_TripletContainer(o)
9317 
9318 
9319  def do_show(self, out):
9320  pass
9321 
9322  @staticmethod
9323  def get_from(o):
9324  return _object_cast_to_TripletContainer(o)
9325 
9326  def __disown__(self):
9327  self.this.disown()
9328  _IMP_kernel.disown_TripletContainer(self)
9329  return weakref.proxy(self)
9330 
9331  def do_destroy(self):
9332  r"""do_destroy(TripletContainer self)"""
9333  return _IMP_kernel.TripletContainer_do_destroy(self)
9334 
9335  def handle_set_has_required_score_states(self, arg0):
9336  r"""handle_set_has_required_score_states(TripletContainer self, bool arg0)"""
9337  return _IMP_kernel.TripletContainer_handle_set_has_required_score_states(self, arg0)
9338 
9339  def do_get_inputs(self):
9340  r"""do_get_inputs(TripletContainer self) -> IMP::ModelObjectsTemp"""
9341  return _IMP_kernel.TripletContainer_do_get_inputs(self)
9342 
9343  def do_get_interactions(self):
9344  r"""do_get_interactions(TripletContainer self) -> IMP::ModelObjectsTemps"""
9345  return _IMP_kernel.TripletContainer_do_get_interactions(self)
9346 
9347  def do_get_contents_hash(self):
9348  r"""do_get_contents_hash(TripletContainer self) -> std::size_t"""
9349  return _IMP_kernel.TripletContainer_do_get_contents_hash(self)
9350 
9351 # Register TripletContainer in _IMP_kernel:
9352 _IMP_kernel.TripletContainer_swigregister(TripletContainer)
9353 class _TripletContainerAdaptor(_InputAdaptor):
9354  r"""Proxy of C++ IMP::TripletContainerAdaptor class."""
9355 
9356  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9357  __repr__ = _swig_repr
9358 
9359  def __init__(self, *args):
9360  r"""
9361  __init__(_TripletContainerAdaptor self) -> _TripletContainerAdaptor
9362  __init__(_TripletContainerAdaptor self, TripletContainer c) -> _TripletContainerAdaptor
9363  __init__(_TripletContainerAdaptor self, IMP::ParticleTripletsTemp const & t) -> _TripletContainerAdaptor
9364  """
9365  _IMP_kernel._TripletContainerAdaptor_swiginit(self, _IMP_kernel.new__TripletContainerAdaptor(*args))
9366 
9367  def set_name_if_default(self, name):
9368  r"""set_name_if_default(_TripletContainerAdaptor self, std::string name)"""
9369  return _IMP_kernel._TripletContainerAdaptor_set_name_if_default(self, name)
9370  __swig_destroy__ = _IMP_kernel.delete__TripletContainerAdaptor
9371 
9372 # Register _TripletContainerAdaptor in _IMP_kernel:
9373 _IMP_kernel._TripletContainerAdaptor_swigregister(_TripletContainerAdaptor)
9374 
9375 def write_particles_to_buffer(particles, keys):
9376  r"""write_particles_to_buffer(IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys) -> IMP::Vector< char,std::allocator< char > >"""
9377  return _IMP_kernel.write_particles_to_buffer(particles, keys)
9378 
9379 def read_particles_from_buffer(buffer, particles, keys):
9380  r"""read_particles_from_buffer(IMP::Vector< char,std::allocator< char > > const & buffer, IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys)"""
9381  return _IMP_kernel.read_particles_from_buffer(buffer, particles, keys)
9382 
9383 def get_particles(m, ps):
9384  r"""get_particles(Model m, IMP::ParticleIndexes const & ps) -> IMP::ParticlesTemp"""
9385  return _IMP_kernel.get_particles(m, ps)
9386 
9387 def get_indexes(*args):
9388  r"""
9389  get_indexes(IMP::ParticlesTemp const & ps) -> IMP::ParticleIndexes
9390  get_indexes(IMP::ParticlePairsTemp const & ps) -> IMP::ParticleIndexPairs
9391  """
9392  return _IMP_kernel.get_indexes(*args)
9393 class _ParticleIndexAdaptor(object):
9394  r"""Proxy of C++ IMP::ParticleIndexAdaptor class."""
9395 
9396  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9397  __repr__ = _swig_repr
9398 
9399  def __init__(self, *args):
9400  r"""
9401  __init__(_ParticleIndexAdaptor self, Particle p) -> _ParticleIndexAdaptor
9402  __init__(_ParticleIndexAdaptor self, ParticleIndex pi) -> _ParticleIndexAdaptor
9403  __init__(_ParticleIndexAdaptor self, Decorator d) -> _ParticleIndexAdaptor
9404  """
9405  _IMP_kernel._ParticleIndexAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexAdaptor(*args))
9406  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexAdaptor
9407 
9408 # Register _ParticleIndexAdaptor in _IMP_kernel:
9409 _IMP_kernel._ParticleIndexAdaptor_swigregister(_ParticleIndexAdaptor)
9410 class _ParticleIndexesAdaptor(_InputAdaptor):
9411  r"""Proxy of C++ IMP::ParticleIndexesAdaptor class."""
9412 
9413  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9414  __repr__ = _swig_repr
9415 
9416  def __init__(self, *args):
9417  r"""
9418  __init__(_ParticleIndexesAdaptor self, IMP::ParticlesTemp const & ps) -> _ParticleIndexesAdaptor
9419  __init__(_ParticleIndexesAdaptor self, IMP::ParticleIndexes const & pi) -> _ParticleIndexesAdaptor
9420  __init__(_ParticleIndexesAdaptor self) -> _ParticleIndexesAdaptor
9421  """
9422  _IMP_kernel._ParticleIndexesAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexesAdaptor(*args))
9423  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexesAdaptor
9424 
9425 # Register _ParticleIndexesAdaptor in _IMP_kernel:
9426 _IMP_kernel._ParticleIndexesAdaptor_swigregister(_ParticleIndexesAdaptor)
9427 class _ParticleIndexPairsAdaptor(object):
9428  r"""Proxy of C++ IMP::ParticleIndexPairsAdaptor class."""
9429 
9430  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9431  __repr__ = _swig_repr
9432 
9433  def __init__(self, *args):
9434  r"""
9435  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticlePairsTemp const & ps) -> _ParticleIndexPairsAdaptor
9436  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticleIndexPairs const & pi) -> _ParticleIndexPairsAdaptor
9437  __init__(_ParticleIndexPairsAdaptor self) -> _ParticleIndexPairsAdaptor
9438  """
9439  _IMP_kernel._ParticleIndexPairsAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexPairsAdaptor(*args))
9440  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexPairsAdaptor
9441 
9442 # Register _ParticleIndexPairsAdaptor in _IMP_kernel:
9443 _IMP_kernel._ParticleIndexPairsAdaptor_swigregister(_ParticleIndexPairsAdaptor)
9444 class _ConstRestraint(Restraint):
9445  r"""Proxy of C++ IMP::internal::_ConstRestraint class."""
9446 
9447  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9448 
9449  def __init__(self, *args):
9450  r"""
9451  __init__(_ConstRestraint self, Model m, IMP::ParticleIndexes const & pis, double v) -> _ConstRestraint
9452  __init__(_ConstRestraint self) -> _ConstRestraint
9453  """
9454  _IMP_kernel._ConstRestraint_swiginit(self, _IMP_kernel.new__ConstRestraint(*args))
9455 
9456  def get_value(self):
9457  r"""get_value(_ConstRestraint self) -> double"""
9458  return _IMP_kernel._ConstRestraint_get_value(self)
9459 
9460  def do_create_decomposition(self):
9461  r"""do_create_decomposition(_ConstRestraint self) -> IMP::Restraints"""
9462  return _IMP_kernel._ConstRestraint_do_create_decomposition(self)
9463 
9464  def do_get_inputs(self):
9465  r"""do_get_inputs(_ConstRestraint self) -> IMP::ModelObjectsTemp"""
9466  return _IMP_kernel._ConstRestraint_do_get_inputs(self)
9467 
9468  def get_version_info(self):
9469  r"""get_version_info(_ConstRestraint self) -> VersionInfo"""
9470  return _IMP_kernel._ConstRestraint_get_version_info(self)
9471  __swig_destroy__ = _IMP_kernel.delete__ConstRestraint
9472 
9473  def __str__(self):
9474  r"""__str__(_ConstRestraint self) -> std::string"""
9475  return _IMP_kernel._ConstRestraint___str__(self)
9476 
9477  def __repr__(self):
9478  r"""__repr__(_ConstRestraint self) -> std::string"""
9479  return _IMP_kernel._ConstRestraint___repr__(self)
9480 
9481  @staticmethod
9482  def get_from(o):
9483  return _object_cast_to__ConstRestraint(o)
9484 
9485 
9486  def _get_as_binary(self):
9487  r"""_get_as_binary(_ConstRestraint self) -> PyObject *"""
9488  return _IMP_kernel._ConstRestraint__get_as_binary(self)
9489 
9490  def _set_from_binary(self, p):
9491  r"""_set_from_binary(_ConstRestraint self, PyObject * p)"""
9492  return _IMP_kernel._ConstRestraint__set_from_binary(self, p)
9493 
9494  def __getstate__(self):
9495  p = self._get_as_binary()
9496  if len(self.__dict__) > 1:
9497  d = self.__dict__.copy()
9498  del d['this']
9499  p = (d, p)
9500  return p
9501 
9502  def __setstate__(self, p):
9503  if not hasattr(self, 'this'):
9504  self.__init__()
9505  if isinstance(p, tuple):
9506  d, p = p
9507  self.__dict__.update(d)
9508  return self._set_from_binary(p)
9509 
9510 
9511  def _get_jax(self, space):
9512  value = self.get_value()
9513  # We always return `value` regardless of the JAX Model
9514  return self._wrap_jax(lambda jm: value)
9515 
9516 
9517 # Register _ConstRestraint in _IMP_kernel:
9518 _IMP_kernel._ConstRestraint_swigregister(_ConstRestraint)
9519 class _ConstSingletonScore(SingletonScore):
9520  r"""Proxy of C++ IMP::internal::_ConstSingletonScore class."""
9521 
9522  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9523 
9524  def __init__(self, *args):
9525  r"""
9526  __init__(_ConstSingletonScore self, double v) -> _ConstSingletonScore
9527  __init__(_ConstSingletonScore self) -> _ConstSingletonScore
9528  """
9529  _IMP_kernel._ConstSingletonScore_swiginit(self, _IMP_kernel.new__ConstSingletonScore(*args))
9530 
9531  def get_value(self):
9532  r"""get_value(_ConstSingletonScore self) -> double"""
9533  return _IMP_kernel._ConstSingletonScore_get_value(self)
9534 
9535  def do_get_inputs(self, arg2, arg3):
9536  r"""do_get_inputs(_ConstSingletonScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9537  return _IMP_kernel._ConstSingletonScore_do_get_inputs(self, arg2, arg3)
9538 
9539  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9540  r"""evaluate_indexes(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9541  return _IMP_kernel._ConstSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9542 
9543  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9544  r"""evaluate_indexes_scores(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9545  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9546 
9547  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9548  r"""evaluate_indexes_delta(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9549  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9550 
9551  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9552  r"""evaluate_if_good_indexes(_ConstSingletonScore self, Model m, IMP::ParticleIndexes const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9553  return _IMP_kernel._ConstSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9554 
9555  def get_version_info(self):
9556  r"""get_version_info(_ConstSingletonScore self) -> VersionInfo"""
9557  return _IMP_kernel._ConstSingletonScore_get_version_info(self)
9558  __swig_destroy__ = _IMP_kernel.delete__ConstSingletonScore
9559 
9560  def __str__(self):
9561  r"""__str__(_ConstSingletonScore self) -> std::string"""
9562  return _IMP_kernel._ConstSingletonScore___str__(self)
9563 
9564  def __repr__(self):
9565  r"""__repr__(_ConstSingletonScore self) -> std::string"""
9566  return _IMP_kernel._ConstSingletonScore___repr__(self)
9567 
9568  @staticmethod
9569  def get_from(o):
9570  return _object_cast_to__ConstSingletonScore(o)
9571 
9572 
9573  def _get_as_binary(self):
9574  r"""_get_as_binary(_ConstSingletonScore self) -> PyObject *"""
9575  return _IMP_kernel._ConstSingletonScore__get_as_binary(self)
9576 
9577  def _set_from_binary(self, p):
9578  r"""_set_from_binary(_ConstSingletonScore self, PyObject * p)"""
9579  return _IMP_kernel._ConstSingletonScore__set_from_binary(self, p)
9580 
9581  def __getstate__(self):
9582  p = self._get_as_binary()
9583  if len(self.__dict__) > 1:
9584  d = self.__dict__.copy()
9585  del d['this']
9586  p = (d, p)
9587  return p
9588 
9589  def __setstate__(self, p):
9590  if not hasattr(self, 'this'):
9591  self.__init__()
9592  if isinstance(p, tuple):
9593  d, p = p
9594  self.__dict__.update(d)
9595  return self._set_from_binary(p)
9596 
9597 
9598  def _get_jax(self, m, indexes, space):
9599  value = self.get_value()
9600  # We always return `value` regardless of the JAX Model or indexes
9601  return self._wrap_jax(m, lambda jm: value)
9602 
9603 
9604 # Register _ConstSingletonScore in _IMP_kernel:
9605 _IMP_kernel._ConstSingletonScore_swigregister(_ConstSingletonScore)
9606 class _ConstPairScore(PairScore):
9607  r"""Proxy of C++ IMP::internal::_ConstPairScore class."""
9608 
9609  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9610 
9611  def __init__(self, *args):
9612  r"""
9613  __init__(_ConstPairScore self, double v) -> _ConstPairScore
9614  __init__(_ConstPairScore self) -> _ConstPairScore
9615  """
9616  _IMP_kernel._ConstPairScore_swiginit(self, _IMP_kernel.new__ConstPairScore(*args))
9617 
9618  def get_value(self):
9619  r"""get_value(_ConstPairScore self) -> double"""
9620  return _IMP_kernel._ConstPairScore_get_value(self)
9621 
9622  def do_get_inputs(self, arg2, arg3):
9623  r"""do_get_inputs(_ConstPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9624  return _IMP_kernel._ConstPairScore_do_get_inputs(self, arg2, arg3)
9625 
9626  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9627  r"""evaluate_indexes(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9628  return _IMP_kernel._ConstPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9629 
9630  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9631  r"""evaluate_indexes_scores(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9632  return _IMP_kernel._ConstPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9633 
9634  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9635  r"""evaluate_indexes_delta(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
9636  return _IMP_kernel._ConstPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9637 
9638  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9639  r"""evaluate_if_good_indexes(_ConstPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
9640  return _IMP_kernel._ConstPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9641 
9642  def get_version_info(self):
9643  r"""get_version_info(_ConstPairScore self) -> VersionInfo"""
9644  return _IMP_kernel._ConstPairScore_get_version_info(self)
9645  __swig_destroy__ = _IMP_kernel.delete__ConstPairScore
9646 
9647  def __str__(self):
9648  r"""__str__(_ConstPairScore self) -> std::string"""
9649  return _IMP_kernel._ConstPairScore___str__(self)
9650 
9651  def __repr__(self):
9652  r"""__repr__(_ConstPairScore self) -> std::string"""
9653  return _IMP_kernel._ConstPairScore___repr__(self)
9654 
9655  @staticmethod
9656  def get_from(o):
9657  return _object_cast_to__ConstPairScore(o)
9658 
9659 
9660  def _get_as_binary(self):
9661  r"""_get_as_binary(_ConstPairScore self) -> PyObject *"""
9662  return _IMP_kernel._ConstPairScore__get_as_binary(self)
9663 
9664  def _set_from_binary(self, p):
9665  r"""_set_from_binary(_ConstPairScore self, PyObject * p)"""
9666  return _IMP_kernel._ConstPairScore__set_from_binary(self, p)
9667 
9668  def __getstate__(self):
9669  p = self._get_as_binary()
9670  if len(self.__dict__) > 1:
9671  d = self.__dict__.copy()
9672  del d['this']
9673  p = (d, p)
9674  return p
9675 
9676  def __setstate__(self, p):
9677  if not hasattr(self, 'this'):
9678  self.__init__()
9679  if isinstance(p, tuple):
9680  d, p = p
9681  self.__dict__.update(d)
9682  return self._set_from_binary(p)
9683 
9684 
9685  def _get_jax(self, m, indexes, space):
9686  value = self.get_value()
9687  # We always return `value` regardless of the JAX Model or indexes
9688  return self._wrap_jax(m, lambda jm: value)
9689 
9690 
9691 # Register _ConstPairScore in _IMP_kernel:
9692 _IMP_kernel._ConstPairScore_swigregister(_ConstPairScore)
9693 class _TrivialDecorator(Decorator):
9694  r"""Proxy of C++ IMP::internal::_TrivialDecorator class."""
9695 
9696  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9697 
9698  def __init__(self, *args):
9699  r"""
9700  __init__(_TrivialDecorator self) -> _TrivialDecorator
9701  __init__(_TrivialDecorator self, Model m, ParticleIndex id) -> _TrivialDecorator
9702  __init__(_TrivialDecorator self, _ParticleAdaptor d) -> _TrivialDecorator
9703  """
9704  _IMP_kernel._TrivialDecorator_swiginit(self, _IMP_kernel.new__TrivialDecorator(*args))
9705 
9706  def show(self, *args):
9707  r"""show(_TrivialDecorator self, _ostream out=std::cout)"""
9708  return _IMP_kernel._TrivialDecorator_show(self, *args)
9709 
9710  @staticmethod
9711  def setup_particle(*args):
9712  r"""
9713  setup_particle(Model m, ParticleIndex pi) -> _TrivialDecorator
9714  setup_particle(_ParticleAdaptor pa) -> _TrivialDecorator
9715  """
9716  return _IMP_kernel._TrivialDecorator_setup_particle(*args)
9717 
9718  @staticmethod
9719  def get_is_setup(*args):
9720  r"""
9721  get_is_setup(_ParticleAdaptor p) -> bool
9722  get_is_setup(Model m, ParticleIndex pi) -> bool
9723  """
9724  return _IMP_kernel._TrivialDecorator_get_is_setup(*args)
9725 
9726  def add_attribute(self, *args):
9727  r"""
9728  add_attribute(_TrivialDecorator self, FloatKey k, IMP::Float v, bool opt)
9729  add_attribute(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9730  add_attribute(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9731  add_attribute(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9732  add_attribute(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9733  add_attribute(_TrivialDecorator self, StringKey a0, IMP::String a1)
9734  add_attribute(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9735  add_attribute(_TrivialDecorator self, ObjectKey a0, Object a1)
9736  add_attribute(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9737  add_attribute(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9738  add_attribute(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9739  add_attribute(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9740  """
9741  return _IMP_kernel._TrivialDecorator_add_attribute(self, *args)
9742 
9743  def get_value(self, *args):
9744  r"""
9745  get_value(_TrivialDecorator self, FloatKey a0) -> IMP::Float
9746  get_value(_TrivialDecorator self, IntKey a0) -> IMP::Int
9747  get_value(_TrivialDecorator self, FloatsKey a0) -> IMP::Floats
9748  get_value(_TrivialDecorator self, IntsKey a0) -> IMP::Ints
9749  get_value(_TrivialDecorator self, StringKey a0) -> IMP::String
9750  get_value(_TrivialDecorator self, ParticleIndexKey a0) -> Particle
9751  get_value(_TrivialDecorator self, ObjectKey a0) -> Object
9752  get_value(_TrivialDecorator self, SparseFloatKey a0) -> IMP::Float
9753  get_value(_TrivialDecorator self, SparseIntKey a0) -> IMP::Int
9754  get_value(_TrivialDecorator self, SparseStringKey a0) -> IMP::String
9755  get_value(_TrivialDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9756  """
9757  return _IMP_kernel._TrivialDecorator_get_value(self, *args)
9758 
9759  def set_value(self, *args):
9760  r"""
9761  set_value(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9762  set_value(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9763  set_value(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9764  set_value(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9765  set_value(_TrivialDecorator self, StringKey a0, IMP::String a1)
9766  set_value(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9767  set_value(_TrivialDecorator self, ObjectKey a0, Object a1)
9768  set_value(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9769  set_value(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9770  set_value(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9771  set_value(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9772  """
9773  return _IMP_kernel._TrivialDecorator_set_value(self, *args)
9774 
9775  def remove_attribute(self, *args):
9776  r"""
9777  remove_attribute(_TrivialDecorator self, FloatKey a0)
9778  remove_attribute(_TrivialDecorator self, IntKey a0)
9779  remove_attribute(_TrivialDecorator self, FloatsKey a0)
9780  remove_attribute(_TrivialDecorator self, IntsKey a0)
9781  remove_attribute(_TrivialDecorator self, StringKey a0)
9782  remove_attribute(_TrivialDecorator self, ParticleIndexKey a0)
9783  remove_attribute(_TrivialDecorator self, ObjectKey a0)
9784  remove_attribute(_TrivialDecorator self, SparseFloatKey a0)
9785  remove_attribute(_TrivialDecorator self, SparseIntKey a0)
9786  remove_attribute(_TrivialDecorator self, SparseStringKey a0)
9787  remove_attribute(_TrivialDecorator self, SparseParticleIndexKey a0)
9788  """
9789  return _IMP_kernel._TrivialDecorator_remove_attribute(self, *args)
9790 
9791  def has_attribute(self, *args):
9792  r"""
9793  has_attribute(_TrivialDecorator self, FloatKey a0) -> bool
9794  has_attribute(_TrivialDecorator self, IntKey a0) -> bool
9795  has_attribute(_TrivialDecorator self, FloatsKey a0) -> bool
9796  has_attribute(_TrivialDecorator self, IntsKey a0) -> bool
9797  has_attribute(_TrivialDecorator self, StringKey a0) -> bool
9798  has_attribute(_TrivialDecorator self, ParticleIndexKey a0) -> bool
9799  has_attribute(_TrivialDecorator self, ObjectKey a0) -> bool
9800  has_attribute(_TrivialDecorator self, SparseFloatKey a0) -> bool
9801  has_attribute(_TrivialDecorator self, SparseIntKey a0) -> bool
9802  has_attribute(_TrivialDecorator self, SparseStringKey a0) -> bool
9803  has_attribute(_TrivialDecorator self, SparseParticleIndexKey a0) -> bool
9804  """
9805  return _IMP_kernel._TrivialDecorator_has_attribute(self, *args)
9806 
9807  def get_derivative(self, a0):
9808  r"""get_derivative(_TrivialDecorator self, FloatKey a0) -> double"""
9809  return _IMP_kernel._TrivialDecorator_get_derivative(self, a0)
9810 
9811  def get_name(self):
9812  r"""get_name(_TrivialDecorator self) -> std::string"""
9813  return _IMP_kernel._TrivialDecorator_get_name(self)
9814 
9815  def clear_caches(self):
9816  r"""clear_caches(_TrivialDecorator self)"""
9817  return _IMP_kernel._TrivialDecorator_clear_caches(self)
9818 
9819  def set_name(self, a0):
9820  r"""set_name(_TrivialDecorator self, std::string a0)"""
9821  return _IMP_kernel._TrivialDecorator_set_name(self, a0)
9822 
9823  def set_check_level(self, a0):
9824  r"""set_check_level(_TrivialDecorator self, IMP::CheckLevel a0)"""
9825  return _IMP_kernel._TrivialDecorator_set_check_level(self, a0)
9826 
9827  def add_to_derivative(self, a0, a1, a2):
9828  r"""add_to_derivative(_TrivialDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9829  return _IMP_kernel._TrivialDecorator_add_to_derivative(self, a0, a1, a2)
9830 
9831  def set_is_optimized(self, a0, a1):
9832  r"""set_is_optimized(_TrivialDecorator self, FloatKey a0, bool a1)"""
9833  return _IMP_kernel._TrivialDecorator_set_is_optimized(self, a0, a1)
9834 
9835  def get_is_optimized(self, a0):
9836  r"""get_is_optimized(_TrivialDecorator self, FloatKey a0) -> bool"""
9837  return _IMP_kernel._TrivialDecorator_get_is_optimized(self, a0)
9838 
9839  def get_check_level(self):
9840  r"""get_check_level(_TrivialDecorator self) -> IMP::CheckLevel"""
9841  return _IMP_kernel._TrivialDecorator_get_check_level(self)
9842 
9843  def __eq__(self, *args):
9844  r"""
9845  __eq__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9846  __eq__(_TrivialDecorator self, Particle d) -> bool
9847  """
9848  return _IMP_kernel._TrivialDecorator___eq__(self, *args)
9849 
9850  def __ne__(self, *args):
9851  r"""
9852  __ne__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9853  __ne__(_TrivialDecorator self, Particle d) -> bool
9854  """
9855  return _IMP_kernel._TrivialDecorator___ne__(self, *args)
9856 
9857  def __le__(self, *args):
9858  r"""
9859  __le__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9860  __le__(_TrivialDecorator self, Particle d) -> bool
9861  """
9862  return _IMP_kernel._TrivialDecorator___le__(self, *args)
9863 
9864  def __lt__(self, *args):
9865  r"""
9866  __lt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9867  __lt__(_TrivialDecorator self, Particle d) -> bool
9868  """
9869  return _IMP_kernel._TrivialDecorator___lt__(self, *args)
9870 
9871  def __ge__(self, *args):
9872  r"""
9873  __ge__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9874  __ge__(_TrivialDecorator self, Particle d) -> bool
9875  """
9876  return _IMP_kernel._TrivialDecorator___ge__(self, *args)
9877 
9878  def __gt__(self, *args):
9879  r"""
9880  __gt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9881  __gt__(_TrivialDecorator self, Particle d) -> bool
9882  """
9883  return _IMP_kernel._TrivialDecorator___gt__(self, *args)
9884 
9885  def __hash__(self):
9886  r"""__hash__(_TrivialDecorator self) -> std::size_t"""
9887  return _IMP_kernel._TrivialDecorator___hash__(self)
9888 
9889  def __str__(self):
9890  r"""__str__(_TrivialDecorator self) -> std::string"""
9891  return _IMP_kernel._TrivialDecorator___str__(self)
9892 
9893  def __repr__(self):
9894  r"""__repr__(_TrivialDecorator self) -> std::string"""
9895  return _IMP_kernel._TrivialDecorator___repr__(self)
9896 
9897  def _get_as_binary(self):
9898  r"""_get_as_binary(_TrivialDecorator self) -> PyObject *"""
9899  return _IMP_kernel._TrivialDecorator__get_as_binary(self)
9900 
9901  def _set_from_binary(self, p):
9902  r"""_set_from_binary(_TrivialDecorator self, PyObject * p)"""
9903  return _IMP_kernel._TrivialDecorator__set_from_binary(self, p)
9904 
9905  def __getstate__(self):
9906  p = self._get_as_binary()
9907  if len(self.__dict__) > 1:
9908  d = self.__dict__.copy()
9909  del d['this']
9910  p = (d, p)
9911  return p
9912 
9913  def __setstate__(self, p):
9914  if not hasattr(self, 'this'):
9915  self.__init__()
9916  if isinstance(p, tuple):
9917  d, p = p
9918  self.__dict__.update(d)
9919  return self._set_from_binary(p)
9920 
9921  __swig_destroy__ = _IMP_kernel.delete__TrivialDecorator
9922 
9923 # Register _TrivialDecorator in _IMP_kernel:
9924 _IMP_kernel._TrivialDecorator_swigregister(_TrivialDecorator)
9925 class _TrivialDerivedDecorator(_TrivialDecorator):
9926  r"""Proxy of C++ IMP::internal::_TrivialDerivedDecorator class."""
9927 
9928  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9929 
9930  def __init__(self, *args):
9931  r"""
9932  __init__(_TrivialDerivedDecorator self) -> _TrivialDerivedDecorator
9933  __init__(_TrivialDerivedDecorator self, Model m, ParticleIndex id) -> _TrivialDerivedDecorator
9934  __init__(_TrivialDerivedDecorator self, _ParticleAdaptor d) -> _TrivialDerivedDecorator
9935  """
9936  _IMP_kernel._TrivialDerivedDecorator_swiginit(self, _IMP_kernel.new__TrivialDerivedDecorator(*args))
9937 
9938  def show(self, *args):
9939  r"""show(_TrivialDerivedDecorator self, _ostream out=std::cout)"""
9940  return _IMP_kernel._TrivialDerivedDecorator_show(self, *args)
9941 
9942  @staticmethod
9943  def setup_particle(*args):
9944  r"""
9945  setup_particle(Model m, ParticleIndex pi) -> _TrivialDerivedDecorator
9946  setup_particle(_ParticleAdaptor pa) -> _TrivialDerivedDecorator
9947  """
9948  return _IMP_kernel._TrivialDerivedDecorator_setup_particle(*args)
9949 
9950  @staticmethod
9951  def get_is_setup(*args):
9952  r"""
9953  get_is_setup(_ParticleAdaptor p) -> bool
9954  get_is_setup(Model m, ParticleIndex pi) -> bool
9955  """
9956  return _IMP_kernel._TrivialDerivedDecorator_get_is_setup(*args)
9957 
9958  def add_attribute(self, *args):
9959  r"""
9960  add_attribute(_TrivialDerivedDecorator self, FloatKey k, IMP::Float v, bool opt)
9961  add_attribute(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
9962  add_attribute(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
9963  add_attribute(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
9964  add_attribute(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
9965  add_attribute(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
9966  add_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
9967  add_attribute(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
9968  add_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
9969  add_attribute(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
9970  add_attribute(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
9971  add_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9972  """
9973  return _IMP_kernel._TrivialDerivedDecorator_add_attribute(self, *args)
9974 
9975  def get_value(self, *args):
9976  r"""
9977  get_value(_TrivialDerivedDecorator self, FloatKey a0) -> IMP::Float
9978  get_value(_TrivialDerivedDecorator self, IntKey a0) -> IMP::Int
9979  get_value(_TrivialDerivedDecorator self, FloatsKey a0) -> IMP::Floats
9980  get_value(_TrivialDerivedDecorator self, IntsKey a0) -> IMP::Ints
9981  get_value(_TrivialDerivedDecorator self, StringKey a0) -> IMP::String
9982  get_value(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> Particle
9983  get_value(_TrivialDerivedDecorator self, ObjectKey a0) -> Object
9984  get_value(_TrivialDerivedDecorator self, SparseFloatKey a0) -> IMP::Float
9985  get_value(_TrivialDerivedDecorator self, SparseIntKey a0) -> IMP::Int
9986  get_value(_TrivialDerivedDecorator self, SparseStringKey a0) -> IMP::String
9987  get_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9988  """
9989  return _IMP_kernel._TrivialDerivedDecorator_get_value(self, *args)
9990 
9991  def set_value(self, *args):
9992  r"""
9993  set_value(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
9994  set_value(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
9995  set_value(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
9996  set_value(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
9997  set_value(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
9998  set_value(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
9999  set_value(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
10000  set_value(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
10001  set_value(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
10002  set_value(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
10003  set_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10004  """
10005  return _IMP_kernel._TrivialDerivedDecorator_set_value(self, *args)
10006 
10007  def remove_attribute(self, *args):
10008  r"""
10009  remove_attribute(_TrivialDerivedDecorator self, FloatKey a0)
10010  remove_attribute(_TrivialDerivedDecorator self, IntKey a0)
10011  remove_attribute(_TrivialDerivedDecorator self, FloatsKey a0)
10012  remove_attribute(_TrivialDerivedDecorator self, IntsKey a0)
10013  remove_attribute(_TrivialDerivedDecorator self, StringKey a0)
10014  remove_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0)
10015  remove_attribute(_TrivialDerivedDecorator self, ObjectKey a0)
10016  remove_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0)
10017  remove_attribute(_TrivialDerivedDecorator self, SparseIntKey a0)
10018  remove_attribute(_TrivialDerivedDecorator self, SparseStringKey a0)
10019  remove_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0)
10020  """
10021  return _IMP_kernel._TrivialDerivedDecorator_remove_attribute(self, *args)
10022 
10023  def has_attribute(self, *args):
10024  r"""
10025  has_attribute(_TrivialDerivedDecorator self, FloatKey a0) -> bool
10026  has_attribute(_TrivialDerivedDecorator self, IntKey a0) -> bool
10027  has_attribute(_TrivialDerivedDecorator self, FloatsKey a0) -> bool
10028  has_attribute(_TrivialDerivedDecorator self, IntsKey a0) -> bool
10029  has_attribute(_TrivialDerivedDecorator self, StringKey a0) -> bool
10030  has_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> bool
10031  has_attribute(_TrivialDerivedDecorator self, ObjectKey a0) -> bool
10032  has_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0) -> bool
10033  has_attribute(_TrivialDerivedDecorator self, SparseIntKey a0) -> bool
10034  has_attribute(_TrivialDerivedDecorator self, SparseStringKey a0) -> bool
10035  has_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> bool
10036  """
10037  return _IMP_kernel._TrivialDerivedDecorator_has_attribute(self, *args)
10038 
10039  def get_derivative(self, a0):
10040  r"""get_derivative(_TrivialDerivedDecorator self, FloatKey a0) -> double"""
10041  return _IMP_kernel._TrivialDerivedDecorator_get_derivative(self, a0)
10042 
10043  def get_name(self):
10044  r"""get_name(_TrivialDerivedDecorator self) -> std::string"""
10045  return _IMP_kernel._TrivialDerivedDecorator_get_name(self)
10046 
10047  def clear_caches(self):
10048  r"""clear_caches(_TrivialDerivedDecorator self)"""
10049  return _IMP_kernel._TrivialDerivedDecorator_clear_caches(self)
10050 
10051  def set_name(self, a0):
10052  r"""set_name(_TrivialDerivedDecorator self, std::string a0)"""
10053  return _IMP_kernel._TrivialDerivedDecorator_set_name(self, a0)
10054 
10055  def set_check_level(self, a0):
10056  r"""set_check_level(_TrivialDerivedDecorator self, IMP::CheckLevel a0)"""
10057  return _IMP_kernel._TrivialDerivedDecorator_set_check_level(self, a0)
10058 
10059  def add_to_derivative(self, a0, a1, a2):
10060  r"""add_to_derivative(_TrivialDerivedDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10061  return _IMP_kernel._TrivialDerivedDecorator_add_to_derivative(self, a0, a1, a2)
10062 
10063  def set_is_optimized(self, a0, a1):
10064  r"""set_is_optimized(_TrivialDerivedDecorator self, FloatKey a0, bool a1)"""
10065  return _IMP_kernel._TrivialDerivedDecorator_set_is_optimized(self, a0, a1)
10066 
10067  def get_is_optimized(self, a0):
10068  r"""get_is_optimized(_TrivialDerivedDecorator self, FloatKey a0) -> bool"""
10069  return _IMP_kernel._TrivialDerivedDecorator_get_is_optimized(self, a0)
10070 
10071  def get_check_level(self):
10072  r"""get_check_level(_TrivialDerivedDecorator self) -> IMP::CheckLevel"""
10073  return _IMP_kernel._TrivialDerivedDecorator_get_check_level(self)
10074 
10075  def __eq__(self, *args):
10076  r"""
10077  __eq__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10078  __eq__(_TrivialDerivedDecorator self, Particle d) -> bool
10079  """
10080  return _IMP_kernel._TrivialDerivedDecorator___eq__(self, *args)
10081 
10082  def __ne__(self, *args):
10083  r"""
10084  __ne__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10085  __ne__(_TrivialDerivedDecorator self, Particle d) -> bool
10086  """
10087  return _IMP_kernel._TrivialDerivedDecorator___ne__(self, *args)
10088 
10089  def __le__(self, *args):
10090  r"""
10091  __le__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10092  __le__(_TrivialDerivedDecorator self, Particle d) -> bool
10093  """
10094  return _IMP_kernel._TrivialDerivedDecorator___le__(self, *args)
10095 
10096  def __lt__(self, *args):
10097  r"""
10098  __lt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10099  __lt__(_TrivialDerivedDecorator self, Particle d) -> bool
10100  """
10101  return _IMP_kernel._TrivialDerivedDecorator___lt__(self, *args)
10102 
10103  def __ge__(self, *args):
10104  r"""
10105  __ge__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10106  __ge__(_TrivialDerivedDecorator self, Particle d) -> bool
10107  """
10108  return _IMP_kernel._TrivialDerivedDecorator___ge__(self, *args)
10109 
10110  def __gt__(self, *args):
10111  r"""
10112  __gt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10113  __gt__(_TrivialDerivedDecorator self, Particle d) -> bool
10114  """
10115  return _IMP_kernel._TrivialDerivedDecorator___gt__(self, *args)
10116 
10117  def __hash__(self):
10118  r"""__hash__(_TrivialDerivedDecorator self) -> std::size_t"""
10119  return _IMP_kernel._TrivialDerivedDecorator___hash__(self)
10120 
10121  def __str__(self):
10122  r"""__str__(_TrivialDerivedDecorator self) -> std::string"""
10123  return _IMP_kernel._TrivialDerivedDecorator___str__(self)
10124 
10125  def __repr__(self):
10126  r"""__repr__(_TrivialDerivedDecorator self) -> std::string"""
10127  return _IMP_kernel._TrivialDerivedDecorator___repr__(self)
10128 
10129  def _get_as_binary(self):
10130  r"""_get_as_binary(_TrivialDerivedDecorator self) -> PyObject *"""
10131  return _IMP_kernel._TrivialDerivedDecorator__get_as_binary(self)
10132 
10133  def _set_from_binary(self, p):
10134  r"""_set_from_binary(_TrivialDerivedDecorator self, PyObject * p)"""
10135  return _IMP_kernel._TrivialDerivedDecorator__set_from_binary(self, p)
10136 
10137  def __getstate__(self):
10138  p = self._get_as_binary()
10139  if len(self.__dict__) > 1:
10140  d = self.__dict__.copy()
10141  del d['this']
10142  p = (d, p)
10143  return p
10144 
10145  def __setstate__(self, p):
10146  if not hasattr(self, 'this'):
10147  self.__init__()
10148  if isinstance(p, tuple):
10149  d, p = p
10150  self.__dict__.update(d)
10151  return self._set_from_binary(p)
10152 
10153  __swig_destroy__ = _IMP_kernel.delete__TrivialDerivedDecorator
10154 
10155 # Register _TrivialDerivedDecorator in _IMP_kernel:
10156 _IMP_kernel._TrivialDerivedDecorator_swigregister(_TrivialDerivedDecorator)
10157 class _TrivialTraitsDecorator(Decorator):
10158  r"""Proxy of C++ IMP::internal::_TrivialTraitsDecorator class."""
10159 
10160  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10161 
10162  def get_decorator_traits(self):
10163  r"""get_decorator_traits(_TrivialTraitsDecorator self) -> StringKey"""
10164  return _IMP_kernel._TrivialTraitsDecorator_get_decorator_traits(self)
10165 
10166  @staticmethod
10167  def get_default_decorator_traits():
10168  r"""get_default_decorator_traits() -> StringKey"""
10169  return _IMP_kernel._TrivialTraitsDecorator_get_default_decorator_traits()
10170 
10171  def __init__(self, *args):
10172  r"""
10173  __init__(_TrivialTraitsDecorator self) -> _TrivialTraitsDecorator
10174  __init__(_TrivialTraitsDecorator self, Model m, ParticleIndex id, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10175  __init__(_TrivialTraitsDecorator self, _ParticleAdaptor d, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10176  """
10177  _IMP_kernel._TrivialTraitsDecorator_swiginit(self, _IMP_kernel.new__TrivialTraitsDecorator(*args))
10178 
10179  def show(self, *args):
10180  r"""show(_TrivialTraitsDecorator self, _ostream out=std::cout)"""
10181  return _IMP_kernel._TrivialTraitsDecorator_show(self, *args)
10182 
10183  @staticmethod
10184  def setup_particle(*args):
10185  r"""
10186  setup_particle(Model m, ParticleIndex pi, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10187  setup_particle(_ParticleAdaptor d, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10188  """
10189  return _IMP_kernel._TrivialTraitsDecorator_setup_particle(*args)
10190 
10191  @staticmethod
10192  def get_is_setup(*args):
10193  r"""
10194  get_is_setup(_ParticleAdaptor p, StringKey tr=get_default_key()) -> bool
10195  get_is_setup(Model m, ParticleIndex pi, StringKey k=get_default_key()) -> bool
10196  """
10197  return _IMP_kernel._TrivialTraitsDecorator_get_is_setup(*args)
10198 
10199  @staticmethod
10200  def get_default_key():
10201  r"""get_default_key() -> StringKey"""
10202  return _IMP_kernel._TrivialTraitsDecorator_get_default_key()
10203 
10204  def add_attribute(self, *args):
10205  r"""
10206  add_attribute(_TrivialTraitsDecorator self, FloatKey k, IMP::Float v, bool opt)
10207  add_attribute(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10208  add_attribute(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10209  add_attribute(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10210  add_attribute(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10211  add_attribute(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10212  add_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10213  add_attribute(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10214  add_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10215  add_attribute(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10216  add_attribute(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10217  add_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10218  """
10219  return _IMP_kernel._TrivialTraitsDecorator_add_attribute(self, *args)
10220 
10221  def get_value(self, *args):
10222  r"""
10223  get_value(_TrivialTraitsDecorator self, FloatKey a0) -> IMP::Float
10224  get_value(_TrivialTraitsDecorator self, IntKey a0) -> IMP::Int
10225  get_value(_TrivialTraitsDecorator self, FloatsKey a0) -> IMP::Floats
10226  get_value(_TrivialTraitsDecorator self, IntsKey a0) -> IMP::Ints
10227  get_value(_TrivialTraitsDecorator self, StringKey a0) -> IMP::String
10228  get_value(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> Particle
10229  get_value(_TrivialTraitsDecorator self, ObjectKey a0) -> Object
10230  get_value(_TrivialTraitsDecorator self, SparseFloatKey a0) -> IMP::Float
10231  get_value(_TrivialTraitsDecorator self, SparseIntKey a0) -> IMP::Int
10232  get_value(_TrivialTraitsDecorator self, SparseStringKey a0) -> IMP::String
10233  get_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
10234  """
10235  return _IMP_kernel._TrivialTraitsDecorator_get_value(self, *args)
10236 
10237  def set_value(self, *args):
10238  r"""
10239  set_value(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10240  set_value(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10241  set_value(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10242  set_value(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10243  set_value(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10244  set_value(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10245  set_value(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10246  set_value(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10247  set_value(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10248  set_value(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10249  set_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10250  """
10251  return _IMP_kernel._TrivialTraitsDecorator_set_value(self, *args)
10252 
10253  def remove_attribute(self, *args):
10254  r"""
10255  remove_attribute(_TrivialTraitsDecorator self, FloatKey a0)
10256  remove_attribute(_TrivialTraitsDecorator self, IntKey a0)
10257  remove_attribute(_TrivialTraitsDecorator self, FloatsKey a0)
10258  remove_attribute(_TrivialTraitsDecorator self, IntsKey a0)
10259  remove_attribute(_TrivialTraitsDecorator self, StringKey a0)
10260  remove_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0)
10261  remove_attribute(_TrivialTraitsDecorator self, ObjectKey a0)
10262  remove_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0)
10263  remove_attribute(_TrivialTraitsDecorator self, SparseIntKey a0)
10264  remove_attribute(_TrivialTraitsDecorator self, SparseStringKey a0)
10265  remove_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0)
10266  """
10267  return _IMP_kernel._TrivialTraitsDecorator_remove_attribute(self, *args)
10268 
10269  def has_attribute(self, *args):
10270  r"""
10271  has_attribute(_TrivialTraitsDecorator self, FloatKey a0) -> bool
10272  has_attribute(_TrivialTraitsDecorator self, IntKey a0) -> bool
10273  has_attribute(_TrivialTraitsDecorator self, FloatsKey a0) -> bool
10274  has_attribute(_TrivialTraitsDecorator self, IntsKey a0) -> bool
10275  has_attribute(_TrivialTraitsDecorator self, StringKey a0) -> bool
10276  has_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> bool
10277  has_attribute(_TrivialTraitsDecorator self, ObjectKey a0) -> bool
10278  has_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0) -> bool
10279  has_attribute(_TrivialTraitsDecorator self, SparseIntKey a0) -> bool
10280  has_attribute(_TrivialTraitsDecorator self, SparseStringKey a0) -> bool
10281  has_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> bool
10282  """
10283  return _IMP_kernel._TrivialTraitsDecorator_has_attribute(self, *args)
10284 
10285  def get_derivative(self, a0):
10286  r"""get_derivative(_TrivialTraitsDecorator self, FloatKey a0) -> double"""
10287  return _IMP_kernel._TrivialTraitsDecorator_get_derivative(self, a0)
10288 
10289  def get_name(self):
10290  r"""get_name(_TrivialTraitsDecorator self) -> std::string"""
10291  return _IMP_kernel._TrivialTraitsDecorator_get_name(self)
10292 
10293  def clear_caches(self):
10294  r"""clear_caches(_TrivialTraitsDecorator self)"""
10295  return _IMP_kernel._TrivialTraitsDecorator_clear_caches(self)
10296 
10297  def set_name(self, a0):
10298  r"""set_name(_TrivialTraitsDecorator self, std::string a0)"""
10299  return _IMP_kernel._TrivialTraitsDecorator_set_name(self, a0)
10300 
10301  def set_check_level(self, a0):
10302  r"""set_check_level(_TrivialTraitsDecorator self, IMP::CheckLevel a0)"""
10303  return _IMP_kernel._TrivialTraitsDecorator_set_check_level(self, a0)
10304 
10305  def add_to_derivative(self, a0, a1, a2):
10306  r"""add_to_derivative(_TrivialTraitsDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10307  return _IMP_kernel._TrivialTraitsDecorator_add_to_derivative(self, a0, a1, a2)
10308 
10309  def set_is_optimized(self, a0, a1):
10310  r"""set_is_optimized(_TrivialTraitsDecorator self, FloatKey a0, bool a1)"""
10311  return _IMP_kernel._TrivialTraitsDecorator_set_is_optimized(self, a0, a1)
10312 
10313  def get_is_optimized(self, a0):
10314  r"""get_is_optimized(_TrivialTraitsDecorator self, FloatKey a0) -> bool"""
10315  return _IMP_kernel._TrivialTraitsDecorator_get_is_optimized(self, a0)
10316 
10317  def get_check_level(self):
10318  r"""get_check_level(_TrivialTraitsDecorator self) -> IMP::CheckLevel"""
10319  return _IMP_kernel._TrivialTraitsDecorator_get_check_level(self)
10320 
10321  def __eq__(self, *args):
10322  r"""
10323  __eq__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10324  __eq__(_TrivialTraitsDecorator self, Particle d) -> bool
10325  """
10326  return _IMP_kernel._TrivialTraitsDecorator___eq__(self, *args)
10327 
10328  def __ne__(self, *args):
10329  r"""
10330  __ne__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10331  __ne__(_TrivialTraitsDecorator self, Particle d) -> bool
10332  """
10333  return _IMP_kernel._TrivialTraitsDecorator___ne__(self, *args)
10334 
10335  def __le__(self, *args):
10336  r"""
10337  __le__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10338  __le__(_TrivialTraitsDecorator self, Particle d) -> bool
10339  """
10340  return _IMP_kernel._TrivialTraitsDecorator___le__(self, *args)
10341 
10342  def __lt__(self, *args):
10343  r"""
10344  __lt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10345  __lt__(_TrivialTraitsDecorator self, Particle d) -> bool
10346  """
10347  return _IMP_kernel._TrivialTraitsDecorator___lt__(self, *args)
10348 
10349  def __ge__(self, *args):
10350  r"""
10351  __ge__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10352  __ge__(_TrivialTraitsDecorator self, Particle d) -> bool
10353  """
10354  return _IMP_kernel._TrivialTraitsDecorator___ge__(self, *args)
10355 
10356  def __gt__(self, *args):
10357  r"""
10358  __gt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10359  __gt__(_TrivialTraitsDecorator self, Particle d) -> bool
10360  """
10361  return _IMP_kernel._TrivialTraitsDecorator___gt__(self, *args)
10362 
10363  def __hash__(self):
10364  r"""__hash__(_TrivialTraitsDecorator self) -> std::size_t"""
10365  return _IMP_kernel._TrivialTraitsDecorator___hash__(self)
10366 
10367  def __str__(self):
10368  r"""__str__(_TrivialTraitsDecorator self) -> std::string"""
10369  return _IMP_kernel._TrivialTraitsDecorator___str__(self)
10370 
10371  def __repr__(self):
10372  r"""__repr__(_TrivialTraitsDecorator self) -> std::string"""
10373  return _IMP_kernel._TrivialTraitsDecorator___repr__(self)
10374  __swig_destroy__ = _IMP_kernel.delete__TrivialTraitsDecorator
10375 
10376 # Register _TrivialTraitsDecorator in _IMP_kernel:
10377 _IMP_kernel._TrivialTraitsDecorator_swigregister(_TrivialTraitsDecorator)
10378 
10379 def __lshift__(*args):
10380  r"""
10381  __lshift__(_ostream out, _TrivialDecorator n) -> _ostream
10382  __lshift__(_ostream out, _TrivialDerivedDecorator n) -> _ostream
10383  __lshift__(_ostream out, _TrivialTraitsDecorator n) -> _ostream
10384  """
10385  return _IMP_kernel.__lshift__(*args)
10386 class _ConstOptimizer(Optimizer):
10387  r"""Proxy of C++ IMP::internal::_ConstOptimizer class."""
10388 
10389  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10390 
10391  def __init__(self, *args):
10392  r"""
10393  __init__(_ConstOptimizer self, Model m) -> _ConstOptimizer
10394  __init__(_ConstOptimizer self) -> _ConstOptimizer
10395  """
10396  _IMP_kernel._ConstOptimizer_swiginit(self, _IMP_kernel.new__ConstOptimizer(*args))
10397 
10398  def do_optimize(self, max_steps):
10399  r"""do_optimize(_ConstOptimizer self, unsigned int max_steps) -> IMP::Float"""
10400  return _IMP_kernel._ConstOptimizer_do_optimize(self, max_steps)
10401 
10402  def get_version_info(self):
10403  r"""get_version_info(_ConstOptimizer self) -> VersionInfo"""
10404  return _IMP_kernel._ConstOptimizer_get_version_info(self)
10405  __swig_destroy__ = _IMP_kernel.delete__ConstOptimizer
10406 
10407  def __str__(self):
10408  r"""__str__(_ConstOptimizer self) -> std::string"""
10409  return _IMP_kernel._ConstOptimizer___str__(self)
10410 
10411  def __repr__(self):
10412  r"""__repr__(_ConstOptimizer self) -> std::string"""
10413  return _IMP_kernel._ConstOptimizer___repr__(self)
10414 
10415  @staticmethod
10416  def get_from(o):
10417  return _object_cast_to__ConstOptimizer(o)
10418 
10419 
10420  def _get_as_binary(self):
10421  r"""_get_as_binary(_ConstOptimizer self) -> PyObject *"""
10422  return _IMP_kernel._ConstOptimizer__get_as_binary(self)
10423 
10424  def _set_from_binary(self, p):
10425  r"""_set_from_binary(_ConstOptimizer self, PyObject * p)"""
10426  return _IMP_kernel._ConstOptimizer__set_from_binary(self, p)
10427 
10428  def __getstate__(self):
10429  p = self._get_as_binary()
10430  if len(self.__dict__) > 1:
10431  d = self.__dict__.copy()
10432  del d['this']
10433  p = (d, p)
10434  return p
10435 
10436  def __setstate__(self, p):
10437  if not hasattr(self, 'this'):
10438  self.__init__()
10439  if isinstance(p, tuple):
10440  d, p = p
10441  self.__dict__.update(d)
10442  return self._set_from_binary(p)
10443 
10444 
10445 # Register _ConstOptimizer in _IMP_kernel:
10446 _IMP_kernel._ConstOptimizer_swigregister(_ConstOptimizer)
10447 
10448 def get_particle(p):
10449  r"""get_particle(Particle p) -> Particle"""
10450  return _IMP_kernel.get_particle(p)
10451 
10452 def _decorator_test(p):
10453  r"""_decorator_test(Particle p)"""
10454  return _IMP_kernel._decorator_test(p)
10455 
10456 def _overloaded_decorator(*args):
10457  r"""
10458  _overloaded_decorator(_TrivialDecorator a) -> int
10459  _overloaded_decorator(_TrivialDerivedDecorator a) -> int
10460  """
10461  return _IMP_kernel._overloaded_decorator(*args)
10462 
10463 def _take_particles(*args):
10464  r"""
10465  _take_particles(IMP::Particles const & ps) -> unsigned int
10466  _take_particles(Model m, IMP::Particles const & ps) -> unsigned int
10467  _take_particles(Model m, IMP::Particles const & ps, TextOutput out) -> unsigned int
10468  """
10469  return _IMP_kernel._take_particles(*args)
10470 
10471 def _give_particles(m):
10472  r"""_give_particles(Model m) -> IMP::Particles const &"""
10473  return _IMP_kernel._give_particles(m)
10474 
10475 def _pass_particles(ps):
10476  r"""_pass_particles(IMP::Particles const & ps) -> IMP::Particles const &"""
10477  return _IMP_kernel._pass_particles(ps)
10478 
10479 def _pass_particle(ps):
10480  r"""_pass_particle(Particle ps) -> Particle"""
10481  return _IMP_kernel._pass_particle(ps)
10482 
10483 def _pass_particle_pair(pp):
10484  r"""_pass_particle_pair(IMP::ParticlePair const & pp) -> IMP::ParticlePair const &"""
10485  return _IMP_kernel._pass_particle_pair(pp)
10486 
10487 def _give_particles_copy(m):
10488  r"""_give_particles_copy(Model m) -> IMP::Particles"""
10489  return _IMP_kernel._give_particles_copy(m)
10490 
10491 def _pass_float_keys(input):
10492  r"""_pass_float_keys(IMP::FloatKeys const & input) -> IMP::FloatKeys"""
10493  return _IMP_kernel._pass_float_keys(input)
10494 
10495 def _pass(*args):
10496  r"""
10497  _pass(IMP::Particles const & p) -> IMP::Particles const
10498  _pass(IMP::Restraints const & p) -> IMP::Restraints const &
10499  """
10500  return _IMP_kernel._pass(*args)
10501 
10502 def _pass_decorators(p):
10503  r"""_pass_decorators(IMP::internal::_TrivialDecorators const & p) -> IMP::internal::_TrivialDecorators const &"""
10504  return _IMP_kernel._pass_decorators(p)
10505 
10506 def _pass_decorator_traits(p):
10507  r"""_pass_decorator_traits(IMP::internal::_TrivialTraitsDecorators const & p) -> IMP::internal::_TrivialTraitsDecorators const &"""
10508  return _IMP_kernel._pass_decorator_traits(p)
10509 
10510 def _pass_particle_pairs(p):
10511  r"""_pass_particle_pairs(IMP::ParticlePairsTemp const & p) -> IMP::ParticlePairsTemp"""
10512  return _IMP_kernel._pass_particle_pairs(p)
10513 
10514 def _pass_particle_index_pairs(p):
10515  r"""_pass_particle_index_pairs(IMP::ParticleIndexPairs const & p) -> IMP::ParticleIndexPairs"""
10516  return _IMP_kernel._pass_particle_index_pairs(p)
10517 
10518 def _pass_model_objects(p):
10519  r"""_pass_model_objects(IMP::ModelObjectsTemp const & p) -> IMP::ModelObjectsTemp"""
10520  return _IMP_kernel._pass_model_objects(p)
10521 
10522 def _pass_particles_temps(ps):
10523  r"""_pass_particles_temps(IMP::ParticlesTemps const & ps) -> IMP::ParticlesTemps"""
10524  return _IMP_kernel._pass_particles_temps(ps)
10525 
10526 def _test_overload(*args):
10527  r"""
10528  _test_overload(IMP::Particles const & ps) -> int
10529  _test_overload(IMP::Restraints const & ps) -> int
10530  """
10531  return _IMP_kernel._test_overload(*args)
10532 
10533 def _get_range(m, k):
10534  r"""_get_range(Model m, FloatKey k) -> IMP::FloatRange"""
10535  return _IMP_kernel._get_range(m, k)
10536 
10537 def _create_particles_from_pdb(name, m):
10538  r"""_create_particles_from_pdb(std::string name, Model m) -> IMP::ParticleIndexes"""
10539  return _IMP_kernel._create_particles_from_pdb(name, m)
10540 class _LogPairScore(PairScore):
10541  r"""Proxy of C++ IMP::internal::_LogPairScore class."""
10542 
10543  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10544  __repr__ = _swig_repr
10545 
10546  def __init__(self):
10547  r"""__init__(_LogPairScore self) -> _LogPairScore"""
10548  _IMP_kernel._LogPairScore_swiginit(self, _IMP_kernel.new__LogPairScore())
10549 
10550  def do_get_inputs(self, arg2, arg3):
10551  r"""do_get_inputs(_LogPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
10552  return _IMP_kernel._LogPairScore_do_get_inputs(self, arg2, arg3)
10553 
10554  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
10555  r"""evaluate_indexes(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
10556  return _IMP_kernel._LogPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
10557 
10558  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
10559  r"""evaluate_indexes_scores(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
10560  return _IMP_kernel._LogPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
10561 
10562  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
10563  r"""evaluate_indexes_delta(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, std::vector< double,std::allocator< double > > & score, bool all_indexes_checked=False) -> double"""
10564  return _IMP_kernel._LogPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
10565 
10566  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
10567  r"""evaluate_if_good_indexes(_LogPairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, double max, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
10568  return _IMP_kernel._LogPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
10569 
10570  def get_version_info(self):
10571  r"""get_version_info(_LogPairScore self) -> VersionInfo"""
10572  return _IMP_kernel._LogPairScore_get_version_info(self)
10573  __swig_destroy__ = _IMP_kernel.delete__LogPairScore
10574 
10575  def get_particle_pairs(self):
10576  r"""get_particle_pairs(_LogPairScore self) -> IMP::ParticlePairsTemp"""
10577  return _IMP_kernel._LogPairScore_get_particle_pairs(self)
10578 
10579  def clear(self):
10580  r"""clear(_LogPairScore self)"""
10581  return _IMP_kernel._LogPairScore_clear(self)
10582 
10583  def get_contains(self, pp):
10584  r"""get_contains(_LogPairScore self, IMP::ParticlePair const & pp) -> bool"""
10585  return _IMP_kernel._LogPairScore_get_contains(self, pp)
10586 
10587 # Register _LogPairScore in _IMP_kernel:
10588 _IMP_kernel._LogPairScore_swigregister(_LogPairScore)
10589 
10590 def _overloaded_particles(*args):
10591  r"""
10592  _overloaded_particles(Particle arg1)
10593  _overloaded_particles(IMP::Particles const & arg1)
10594  _overloaded_particles(IMP::ParticlesTemp const & arg1)
10595  _overloaded_particles(Model arg1, IMP::ParticleIndexes const & arg2)
10596  _overloaded_particles(IMP::internal::_TrivialDecorators const & arg1)
10597  _overloaded_particles(_TrivialDecorator arg1)
10598  """
10599  return _IMP_kernel._overloaded_particles(*args)
10600 class _ImplicitParticles(object):
10601  r"""Proxy of C++ IMP::internal::_ImplicitParticles class."""
10602 
10603  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10604  __repr__ = _swig_repr
10605 
10606  def __init__(self, *args):
10607  r"""
10608  __init__(_ImplicitParticles self, Particle arg2) -> _ImplicitParticles
10609  __init__(_ImplicitParticles self, IMP::Particles const & arg2) -> _ImplicitParticles
10610  __init__(_ImplicitParticles self, IMP::ParticlesTemp const & arg2) -> _ImplicitParticles
10611  __init__(_ImplicitParticles self, Model arg2, IMP::ParticleIndexes const & arg3) -> _ImplicitParticles
10612  __init__(_ImplicitParticles self, IMP::internal::_TrivialDecorators const & arg2) -> _ImplicitParticles
10613  __init__(_ImplicitParticles self, _TrivialDecorator arg2) -> _ImplicitParticles
10614  """
10615  _IMP_kernel._ImplicitParticles_swiginit(self, _IMP_kernel.new__ImplicitParticles(*args))
10616  __swig_destroy__ = _IMP_kernel.delete__ImplicitParticles
10617 
10618 # Register _ImplicitParticles in _IMP_kernel:
10619 _IMP_kernel._ImplicitParticles_swigregister(_ImplicitParticles)
10620 
10621 def _implicit_particles(arg1):
10622  r"""_implicit_particles(_ImplicitParticles arg1)"""
10623  return _IMP_kernel._implicit_particles(arg1)
10624 
10625 def _take_particle_adaptor(pa):
10626  r"""_take_particle_adaptor(_ParticleAdaptor pa) -> ParticleIndex"""
10627  return _IMP_kernel._take_particle_adaptor(pa)
10628 
10629 def _take_particle_indexes_adaptor(pa):
10630  r"""_take_particle_indexes_adaptor(_ParticleIndexesAdaptor pa) -> IMP::ParticleIndexes"""
10631  return _IMP_kernel._take_particle_indexes_adaptor(pa)
10632 class Vector1D(_VectorBase1D):
10633  r"""Proxy of C++ IMP::VectorD< 1 > class."""
10634 
10635  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10636 
10637  def get_unit_vector(self):
10638  r"""get_unit_vector(Vector1D self) -> Vector1D"""
10639  return _IMP_kernel.Vector1D_get_unit_vector(self)
10640 
10641  def __truediv__(self, *args):
10642  return _IMP_kernel.Vector1D___truediv__(self, *args)
10643 
10644 
10645 
10646  def __neg__(self):
10647  r"""__neg__(Vector1D self) -> Vector1D"""
10648  return _IMP_kernel.Vector1D___neg__(self)
10649 
10650  def __sub__(self, o):
10651  r"""__sub__(Vector1D self, Vector1D o) -> Vector1D"""
10652  return _IMP_kernel.Vector1D___sub__(self, o)
10653 
10654  def __add__(self, ret):
10655  r"""__add__(Vector1D self, Vector1D ret) -> Vector1D"""
10656  return _IMP_kernel.Vector1D___add__(self, ret)
10657 
10658  def __mul__(self, *args):
10659  r"""
10660  __mul__(Vector1D self, double s) -> Vector1D
10661  __mul__(Vector1D self, Vector1D o) -> double
10662  """
10663  return _IMP_kernel.Vector1D___mul__(self, *args)
10664 
10665  def __init__(self, *args):
10666  r"""
10667  __init__(Vector1D self, IMP::Floats const & f) -> Vector1D
10668  __init__(Vector1D self) -> Vector1D
10669  __init__(Vector1D self, double x) -> Vector1D
10670  """
10671  _IMP_kernel.Vector1D_swiginit(self, _IMP_kernel.new_Vector1D(*args))
10672 
10673  def __iadd__(self, *args):
10674  _IMP_kernel.Vector1D___iadd__(self, *args)
10675  return self
10676 
10677 
10678 
10679  def __imul__(self, *args):
10680  _IMP_kernel.Vector1D___imul__(self, *args)
10681  return self
10682 
10683 
10684 
10685  def __itruediv__(self, *args):
10686  _IMP_kernel.Vector1D___itruediv__(self, *args)
10687  return self
10688 
10689 
10690 
10691  def __isub__(self, *args):
10692  _IMP_kernel.Vector1D___isub__(self, *args)
10693  return self
10694 
10695 
10696 
10697  def __len__(self):
10698  r"""__len__(Vector1D self) -> unsigned int"""
10699  return _IMP_kernel.Vector1D___len__(self)
10700 
10701  def __rmul__(self, f):
10702  r"""__rmul__(Vector1D self, double f) -> Vector1D"""
10703  return _IMP_kernel.Vector1D___rmul__(self, f)
10704 
10705  def __str__(self):
10706  r"""__str__(Vector1D self) -> std::string"""
10707  return _IMP_kernel.Vector1D___str__(self)
10708 
10709  def __repr__(self):
10710  r"""__repr__(Vector1D self) -> std::string"""
10711  return _IMP_kernel.Vector1D___repr__(self)
10712 
10713  def __cmp__(self, arg2):
10714  r"""__cmp__(Vector1D self, Vector1D arg2) -> int"""
10715  return _IMP_kernel.Vector1D___cmp__(self, arg2)
10716 
10717  def __eq__(self, arg2):
10718  r"""__eq__(Vector1D self, Vector1D arg2) -> bool"""
10719  return _IMP_kernel.Vector1D___eq__(self, arg2)
10720 
10721  def _get_as_binary(self):
10722  r"""_get_as_binary(Vector1D self) -> PyObject *"""
10723  return _IMP_kernel.Vector1D__get_as_binary(self)
10724 
10725  def _set_from_binary(self, p):
10726  r"""_set_from_binary(Vector1D self, PyObject * p)"""
10727  return _IMP_kernel.Vector1D__set_from_binary(self, p)
10728 
10729  def __getstate__(self):
10730  p = self._get_as_binary()
10731  if len(self.__dict__) > 1:
10732  d = self.__dict__.copy()
10733  del d['this']
10734  p = (d, p)
10735  return p
10736 
10737  def __setstate__(self, p):
10738  if not hasattr(self, 'this'):
10739  self.__init__()
10740  if isinstance(p, tuple):
10741  d, p = p
10742  self.__dict__.update(d)
10743  return self._set_from_binary(p)
10744 
10745 
10746  def __getitem__(self, index):
10747  if isinstance(index, slice):
10748  return [self[i] for i in range(*index.indices(len(self)))]
10749  else:
10750  return _IMP_kernel.Vector1D___getitem__(self, index)
10751 
10752 
10753 
10754  def __setitem__(self, index, val):
10755  if isinstance(index, slice):
10756  if not hasattr(val, '__iter__'):
10757  raise TypeError("must assign iterable to extended slice")
10758  inds = range(*index.indices(len(self)))
10759  if len(inds) != len(val):
10760  raise ValueError(
10761  "attempt to assign sequence of size %d "
10762  "to extended slice of size %d" % (len(val), len(inds)))
10763  for ind, v in zip(inds, val):
10764  self[ind] = v
10765  else:
10766  return _IMP_kernel.Vector1D___setitem__(self, index, val)
10767 
10768 
10769  __swig_destroy__ = _IMP_kernel.delete_Vector1D
10770 
10771 # Register Vector1D in _IMP_kernel:
10772 _IMP_kernel.Vector1D_swigregister(Vector1D)
10773 class Vector2D(_VectorBase2D):
10774  r"""Proxy of C++ IMP::VectorD< 2 > class."""
10775 
10776  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10777 
10778  def get_unit_vector(self):
10779  r"""get_unit_vector(Vector2D self) -> Vector2D"""
10780  return _IMP_kernel.Vector2D_get_unit_vector(self)
10781 
10782  def __truediv__(self, *args):
10783  return _IMP_kernel.Vector2D___truediv__(self, *args)
10784 
10785 
10786 
10787  def __neg__(self):
10788  r"""__neg__(Vector2D self) -> Vector2D"""
10789  return _IMP_kernel.Vector2D___neg__(self)
10790 
10791  def __sub__(self, o):
10792  r"""__sub__(Vector2D self, Vector2D o) -> Vector2D"""
10793  return _IMP_kernel.Vector2D___sub__(self, o)
10794 
10795  def __add__(self, ret):
10796  r"""__add__(Vector2D self, Vector2D ret) -> Vector2D"""
10797  return _IMP_kernel.Vector2D___add__(self, ret)
10798 
10799  def __mul__(self, *args):
10800  r"""
10801  __mul__(Vector2D self, double s) -> Vector2D
10802  __mul__(Vector2D self, Vector2D o) -> double
10803  """
10804  return _IMP_kernel.Vector2D___mul__(self, *args)
10805 
10806  def __init__(self, *args):
10807  r"""
10808  __init__(Vector2D self, IMP::Floats const & f) -> Vector2D
10809  __init__(Vector2D self) -> Vector2D
10810  __init__(Vector2D self, double x, double y) -> Vector2D
10811  """
10812  _IMP_kernel.Vector2D_swiginit(self, _IMP_kernel.new_Vector2D(*args))
10813 
10814  def __iadd__(self, *args):
10815  _IMP_kernel.Vector2D___iadd__(self, *args)
10816  return self
10817 
10818 
10819 
10820  def __imul__(self, *args):
10821  _IMP_kernel.Vector2D___imul__(self, *args)
10822  return self
10823 
10824 
10825 
10826  def __itruediv__(self, *args):
10827  _IMP_kernel.Vector2D___itruediv__(self, *args)
10828  return self
10829 
10830 
10831 
10832  def __isub__(self, *args):
10833  _IMP_kernel.Vector2D___isub__(self, *args)
10834  return self
10835 
10836 
10837 
10838  def __len__(self):
10839  r"""__len__(Vector2D self) -> unsigned int"""
10840  return _IMP_kernel.Vector2D___len__(self)
10841 
10842  def __rmul__(self, f):
10843  r"""__rmul__(Vector2D self, double f) -> Vector2D"""
10844  return _IMP_kernel.Vector2D___rmul__(self, f)
10845 
10846  def __str__(self):
10847  r"""__str__(Vector2D self) -> std::string"""
10848  return _IMP_kernel.Vector2D___str__(self)
10849 
10850  def __repr__(self):
10851  r"""__repr__(Vector2D self) -> std::string"""
10852  return _IMP_kernel.Vector2D___repr__(self)
10853 
10854  def __cmp__(self, arg2):
10855  r"""__cmp__(Vector2D self, Vector2D arg2) -> int"""
10856  return _IMP_kernel.Vector2D___cmp__(self, arg2)
10857 
10858  def __eq__(self, arg2):
10859  r"""__eq__(Vector2D self, Vector2D arg2) -> bool"""
10860  return _IMP_kernel.Vector2D___eq__(self, arg2)
10861 
10862  def _get_as_binary(self):
10863  r"""_get_as_binary(Vector2D self) -> PyObject *"""
10864  return _IMP_kernel.Vector2D__get_as_binary(self)
10865 
10866  def _set_from_binary(self, p):
10867  r"""_set_from_binary(Vector2D self, PyObject * p)"""
10868  return _IMP_kernel.Vector2D__set_from_binary(self, p)
10869 
10870  def __getstate__(self):
10871  p = self._get_as_binary()
10872  if len(self.__dict__) > 1:
10873  d = self.__dict__.copy()
10874  del d['this']
10875  p = (d, p)
10876  return p
10877 
10878  def __setstate__(self, p):
10879  if not hasattr(self, 'this'):
10880  self.__init__()
10881  if isinstance(p, tuple):
10882  d, p = p
10883  self.__dict__.update(d)
10884  return self._set_from_binary(p)
10885 
10886 
10887  def __getitem__(self, index):
10888  if isinstance(index, slice):
10889  return [self[i] for i in range(*index.indices(len(self)))]
10890  else:
10891  return _IMP_kernel.Vector2D___getitem__(self, index)
10892 
10893 
10894 
10895  def __setitem__(self, index, val):
10896  if isinstance(index, slice):
10897  if not hasattr(val, '__iter__'):
10898  raise TypeError("must assign iterable to extended slice")
10899  inds = range(*index.indices(len(self)))
10900  if len(inds) != len(val):
10901  raise ValueError(
10902  "attempt to assign sequence of size %d "
10903  "to extended slice of size %d" % (len(val), len(inds)))
10904  for ind, v in zip(inds, val):
10905  self[ind] = v
10906  else:
10907  return _IMP_kernel.Vector2D___setitem__(self, index, val)
10908 
10909 
10910  __swig_destroy__ = _IMP_kernel.delete_Vector2D
10911 
10912 # Register Vector2D in _IMP_kernel:
10913 _IMP_kernel.Vector2D_swigregister(Vector2D)
10914 class Vector3D(_VectorBase3D):
10915  r"""Proxy of C++ IMP::VectorD< 3 > class."""
10916 
10917  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10918 
10919  def get_unit_vector(self):
10920  r"""get_unit_vector(Vector3D self) -> Vector3D"""
10921  return _IMP_kernel.Vector3D_get_unit_vector(self)
10922 
10923  def __truediv__(self, *args):
10924  return _IMP_kernel.Vector3D___truediv__(self, *args)
10925 
10926 
10927 
10928  def __neg__(self):
10929  r"""__neg__(Vector3D self) -> Vector3D"""
10930  return _IMP_kernel.Vector3D___neg__(self)
10931 
10932  def __sub__(self, o):
10933  r"""__sub__(Vector3D self, Vector3D o) -> Vector3D"""
10934  return _IMP_kernel.Vector3D___sub__(self, o)
10935 
10936  def __add__(self, ret):
10937  r"""__add__(Vector3D self, Vector3D ret) -> Vector3D"""
10938  return _IMP_kernel.Vector3D___add__(self, ret)
10939 
10940  def __mul__(self, *args):
10941  r"""
10942  __mul__(Vector3D self, double s) -> Vector3D
10943  __mul__(Vector3D self, Vector3D o) -> double
10944  """
10945  return _IMP_kernel.Vector3D___mul__(self, *args)
10946 
10947  def __init__(self, *args):
10948  r"""
10949  __init__(Vector3D self, IMP::Floats const & f) -> Vector3D
10950  __init__(Vector3D self) -> Vector3D
10951  __init__(Vector3D self, double x, double y, double z) -> Vector3D
10952  """
10953  _IMP_kernel.Vector3D_swiginit(self, _IMP_kernel.new_Vector3D(*args))
10954 
10955  def __iadd__(self, *args):
10956  _IMP_kernel.Vector3D___iadd__(self, *args)
10957  return self
10958 
10959 
10960 
10961  def __imul__(self, *args):
10962  _IMP_kernel.Vector3D___imul__(self, *args)
10963  return self
10964 
10965 
10966 
10967  def __itruediv__(self, *args):
10968  _IMP_kernel.Vector3D___itruediv__(self, *args)
10969  return self
10970 
10971 
10972 
10973  def __isub__(self, *args):
10974  _IMP_kernel.Vector3D___isub__(self, *args)
10975  return self
10976 
10977 
10978 
10979  def __len__(self):
10980  r"""__len__(Vector3D self) -> unsigned int"""
10981  return _IMP_kernel.Vector3D___len__(self)
10982 
10983  def __rmul__(self, f):
10984  r"""__rmul__(Vector3D self, double f) -> Vector3D"""
10985  return _IMP_kernel.Vector3D___rmul__(self, f)
10986 
10987  def __str__(self):
10988  r"""__str__(Vector3D self) -> std::string"""
10989  return _IMP_kernel.Vector3D___str__(self)
10990 
10991  def __repr__(self):
10992  r"""__repr__(Vector3D self) -> std::string"""
10993  return _IMP_kernel.Vector3D___repr__(self)
10994 
10995  def __cmp__(self, arg2):
10996  r"""__cmp__(Vector3D self, Vector3D arg2) -> int"""
10997  return _IMP_kernel.Vector3D___cmp__(self, arg2)
10998 
10999  def __eq__(self, arg2):
11000  r"""__eq__(Vector3D self, Vector3D arg2) -> bool"""
11001  return _IMP_kernel.Vector3D___eq__(self, arg2)
11002 
11003  def _get_as_binary(self):
11004  r"""_get_as_binary(Vector3D self) -> PyObject *"""
11005  return _IMP_kernel.Vector3D__get_as_binary(self)
11006 
11007  def _set_from_binary(self, p):
11008  r"""_set_from_binary(Vector3D self, PyObject * p)"""
11009  return _IMP_kernel.Vector3D__set_from_binary(self, p)
11010 
11011  def __getstate__(self):
11012  p = self._get_as_binary()
11013  if len(self.__dict__) > 1:
11014  d = self.__dict__.copy()
11015  del d['this']
11016  p = (d, p)
11017  return p
11018 
11019  def __setstate__(self, p):
11020  if not hasattr(self, 'this'):
11021  self.__init__()
11022  if isinstance(p, tuple):
11023  d, p = p
11024  self.__dict__.update(d)
11025  return self._set_from_binary(p)
11026 
11027 
11028  def __getitem__(self, index):
11029  if isinstance(index, slice):
11030  return [self[i] for i in range(*index.indices(len(self)))]
11031  else:
11032  return _IMP_kernel.Vector3D___getitem__(self, index)
11033 
11034 
11035 
11036  def __setitem__(self, index, val):
11037  if isinstance(index, slice):
11038  if not hasattr(val, '__iter__'):
11039  raise TypeError("must assign iterable to extended slice")
11040  inds = range(*index.indices(len(self)))
11041  if len(inds) != len(val):
11042  raise ValueError(
11043  "attempt to assign sequence of size %d "
11044  "to extended slice of size %d" % (len(val), len(inds)))
11045  for ind, v in zip(inds, val):
11046  self[ind] = v
11047  else:
11048  return _IMP_kernel.Vector3D___setitem__(self, index, val)
11049 
11050 
11051  __swig_destroy__ = _IMP_kernel.delete_Vector3D
11052 
11053 # Register Vector3D in _IMP_kernel:
11054 _IMP_kernel.Vector3D_swigregister(Vector3D)
11055 class Vector4D(_VectorBase4D):
11056  r"""Proxy of C++ IMP::VectorD< 4 > class."""
11057 
11058  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11059 
11060  def get_unit_vector(self):
11061  r"""get_unit_vector(Vector4D self) -> Vector4D"""
11062  return _IMP_kernel.Vector4D_get_unit_vector(self)
11063 
11064  def __truediv__(self, *args):
11065  return _IMP_kernel.Vector4D___truediv__(self, *args)
11066 
11067 
11068 
11069  def __neg__(self):
11070  r"""__neg__(Vector4D self) -> Vector4D"""
11071  return _IMP_kernel.Vector4D___neg__(self)
11072 
11073  def __sub__(self, o):
11074  r"""__sub__(Vector4D self, Vector4D o) -> Vector4D"""
11075  return _IMP_kernel.Vector4D___sub__(self, o)
11076 
11077  def __add__(self, ret):
11078  r"""__add__(Vector4D self, Vector4D ret) -> Vector4D"""
11079  return _IMP_kernel.Vector4D___add__(self, ret)
11080 
11081  def __mul__(self, *args):
11082  r"""
11083  __mul__(Vector4D self, double s) -> Vector4D
11084  __mul__(Vector4D self, Vector4D o) -> double
11085  """
11086  return _IMP_kernel.Vector4D___mul__(self, *args)
11087 
11088  def __init__(self, *args):
11089  r"""
11090  __init__(Vector4D self, IMP::Floats const & f) -> Vector4D
11091  __init__(Vector4D self) -> Vector4D
11092  __init__(Vector4D self, double x0, double x1, double x2, double x3) -> Vector4D
11093  """
11094  _IMP_kernel.Vector4D_swiginit(self, _IMP_kernel.new_Vector4D(*args))
11095 
11096  def __iadd__(self, *args):
11097  _IMP_kernel.Vector4D___iadd__(self, *args)
11098  return self
11099 
11100 
11101 
11102  def __imul__(self, *args):
11103  _IMP_kernel.Vector4D___imul__(self, *args)
11104  return self
11105 
11106 
11107 
11108  def __itruediv__(self, *args):
11109  _IMP_kernel.Vector4D___itruediv__(self, *args)
11110  return self
11111 
11112 
11113 
11114  def __isub__(self, *args):
11115  _IMP_kernel.Vector4D___isub__(self, *args)
11116  return self
11117 
11118 
11119 
11120  def __len__(self):
11121  r"""__len__(Vector4D self) -> unsigned int"""
11122  return _IMP_kernel.Vector4D___len__(self)
11123 
11124  def __rmul__(self, f):
11125  r"""__rmul__(Vector4D self, double f) -> Vector4D"""
11126  return _IMP_kernel.Vector4D___rmul__(self, f)
11127 
11128  def __str__(self):
11129  r"""__str__(Vector4D self) -> std::string"""
11130  return _IMP_kernel.Vector4D___str__(self)
11131 
11132  def __repr__(self):
11133  r"""__repr__(Vector4D self) -> std::string"""
11134  return _IMP_kernel.Vector4D___repr__(self)
11135 
11136  def __cmp__(self, arg2):
11137  r"""__cmp__(Vector4D self, Vector4D arg2) -> int"""
11138  return _IMP_kernel.Vector4D___cmp__(self, arg2)
11139 
11140  def __eq__(self, arg2):
11141  r"""__eq__(Vector4D self, Vector4D arg2) -> bool"""
11142  return _IMP_kernel.Vector4D___eq__(self, arg2)
11143 
11144  def _get_as_binary(self):
11145  r"""_get_as_binary(Vector4D self) -> PyObject *"""
11146  return _IMP_kernel.Vector4D__get_as_binary(self)
11147 
11148  def _set_from_binary(self, p):
11149  r"""_set_from_binary(Vector4D self, PyObject * p)"""
11150  return _IMP_kernel.Vector4D__set_from_binary(self, p)
11151 
11152  def __getstate__(self):
11153  p = self._get_as_binary()
11154  if len(self.__dict__) > 1:
11155  d = self.__dict__.copy()
11156  del d['this']
11157  p = (d, p)
11158  return p
11159 
11160  def __setstate__(self, p):
11161  if not hasattr(self, 'this'):
11162  self.__init__()
11163  if isinstance(p, tuple):
11164  d, p = p
11165  self.__dict__.update(d)
11166  return self._set_from_binary(p)
11167 
11168 
11169  def __getitem__(self, index):
11170  if isinstance(index, slice):
11171  return [self[i] for i in range(*index.indices(len(self)))]
11172  else:
11173  return _IMP_kernel.Vector4D___getitem__(self, index)
11174 
11175 
11176 
11177  def __setitem__(self, index, val):
11178  if isinstance(index, slice):
11179  if not hasattr(val, '__iter__'):
11180  raise TypeError("must assign iterable to extended slice")
11181  inds = range(*index.indices(len(self)))
11182  if len(inds) != len(val):
11183  raise ValueError(
11184  "attempt to assign sequence of size %d "
11185  "to extended slice of size %d" % (len(val), len(inds)))
11186  for ind, v in zip(inds, val):
11187  self[ind] = v
11188  else:
11189  return _IMP_kernel.Vector4D___setitem__(self, index, val)
11190 
11191 
11192  __swig_destroy__ = _IMP_kernel.delete_Vector4D
11193 
11194 # Register Vector4D in _IMP_kernel:
11195 _IMP_kernel.Vector4D_swigregister(Vector4D)
11196 class Vector5D(_VectorBase5D):
11197  r"""Proxy of C++ IMP::VectorD< 5 > class."""
11198 
11199  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11200 
11201  def get_unit_vector(self):
11202  r"""get_unit_vector(Vector5D self) -> Vector5D"""
11203  return _IMP_kernel.Vector5D_get_unit_vector(self)
11204 
11205  def __truediv__(self, *args):
11206  return _IMP_kernel.Vector5D___truediv__(self, *args)
11207 
11208 
11209 
11210  def __neg__(self):
11211  r"""__neg__(Vector5D self) -> Vector5D"""
11212  return _IMP_kernel.Vector5D___neg__(self)
11213 
11214  def __sub__(self, o):
11215  r"""__sub__(Vector5D self, Vector5D o) -> Vector5D"""
11216  return _IMP_kernel.Vector5D___sub__(self, o)
11217 
11218  def __add__(self, ret):
11219  r"""__add__(Vector5D self, Vector5D ret) -> Vector5D"""
11220  return _IMP_kernel.Vector5D___add__(self, ret)
11221 
11222  def __mul__(self, *args):
11223  r"""
11224  __mul__(Vector5D self, double s) -> Vector5D
11225  __mul__(Vector5D self, Vector5D o) -> double
11226  """
11227  return _IMP_kernel.Vector5D___mul__(self, *args)
11228 
11229  def __init__(self, *args):
11230  r"""
11231  __init__(Vector5D self, IMP::Floats const & f) -> Vector5D
11232  __init__(Vector5D self) -> Vector5D
11233  __init__(Vector5D self, double x0, double x1, double x2, double x3, double x4) -> Vector5D
11234  """
11235  _IMP_kernel.Vector5D_swiginit(self, _IMP_kernel.new_Vector5D(*args))
11236 
11237  def __iadd__(self, *args):
11238  _IMP_kernel.Vector5D___iadd__(self, *args)
11239  return self
11240 
11241 
11242 
11243  def __imul__(self, *args):
11244  _IMP_kernel.Vector5D___imul__(self, *args)
11245  return self
11246 
11247 
11248 
11249  def __itruediv__(self, *args):
11250  _IMP_kernel.Vector5D___itruediv__(self, *args)
11251  return self
11252 
11253 
11254 
11255  def __isub__(self, *args):
11256  _IMP_kernel.Vector5D___isub__(self, *args)
11257  return self
11258 
11259 
11260 
11261  def __len__(self):
11262  r"""__len__(Vector5D self) -> unsigned int"""
11263  return _IMP_kernel.Vector5D___len__(self)
11264 
11265  def __rmul__(self, f):
11266  r"""__rmul__(Vector5D self, double f) -> Vector5D"""
11267  return _IMP_kernel.Vector5D___rmul__(self, f)
11268 
11269  def __str__(self):
11270  r"""__str__(Vector5D self) -> std::string"""
11271  return _IMP_kernel.Vector5D___str__(self)
11272 
11273  def __repr__(self):
11274  r"""__repr__(Vector5D self) -> std::string"""
11275  return _IMP_kernel.Vector5D___repr__(self)
11276 
11277  def __cmp__(self, arg2):
11278  r"""__cmp__(Vector5D self, Vector5D arg2) -> int"""
11279  return _IMP_kernel.Vector5D___cmp__(self, arg2)
11280 
11281  def __eq__(self, arg2):
11282  r"""__eq__(Vector5D self, Vector5D arg2) -> bool"""
11283  return _IMP_kernel.Vector5D___eq__(self, arg2)
11284 
11285  def _get_as_binary(self):
11286  r"""_get_as_binary(Vector5D self) -> PyObject *"""
11287  return _IMP_kernel.Vector5D__get_as_binary(self)
11288 
11289  def _set_from_binary(self, p):
11290  r"""_set_from_binary(Vector5D self, PyObject * p)"""
11291  return _IMP_kernel.Vector5D__set_from_binary(self, p)
11292 
11293  def __getstate__(self):
11294  p = self._get_as_binary()
11295  if len(self.__dict__) > 1:
11296  d = self.__dict__.copy()
11297  del d['this']
11298  p = (d, p)
11299  return p
11300 
11301  def __setstate__(self, p):
11302  if not hasattr(self, 'this'):
11303  self.__init__()
11304  if isinstance(p, tuple):
11305  d, p = p
11306  self.__dict__.update(d)
11307  return self._set_from_binary(p)
11308 
11309 
11310  def __getitem__(self, index):
11311  if isinstance(index, slice):
11312  return [self[i] for i in range(*index.indices(len(self)))]
11313  else:
11314  return _IMP_kernel.Vector5D___getitem__(self, index)
11315 
11316 
11317 
11318  def __setitem__(self, index, val):
11319  if isinstance(index, slice):
11320  if not hasattr(val, '__iter__'):
11321  raise TypeError("must assign iterable to extended slice")
11322  inds = range(*index.indices(len(self)))
11323  if len(inds) != len(val):
11324  raise ValueError(
11325  "attempt to assign sequence of size %d "
11326  "to extended slice of size %d" % (len(val), len(inds)))
11327  for ind, v in zip(inds, val):
11328  self[ind] = v
11329  else:
11330  return _IMP_kernel.Vector5D___setitem__(self, index, val)
11331 
11332 
11333  __swig_destroy__ = _IMP_kernel.delete_Vector5D
11334 
11335 # Register Vector5D in _IMP_kernel:
11336 _IMP_kernel.Vector5D_swigregister(Vector5D)
11337 class Vector6D(_VectorBase6D):
11338  r"""Proxy of C++ IMP::VectorD< 6 > class."""
11339 
11340  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11341 
11342  def get_unit_vector(self):
11343  r"""get_unit_vector(Vector6D self) -> Vector6D"""
11344  return _IMP_kernel.Vector6D_get_unit_vector(self)
11345 
11346  def __truediv__(self, *args):
11347  return _IMP_kernel.Vector6D___truediv__(self, *args)
11348 
11349 
11350 
11351  def __neg__(self):
11352  r"""__neg__(Vector6D self) -> Vector6D"""
11353  return _IMP_kernel.Vector6D___neg__(self)
11354 
11355  def __sub__(self, o):
11356  r"""__sub__(Vector6D self, Vector6D o) -> Vector6D"""
11357  return _IMP_kernel.Vector6D___sub__(self, o)
11358 
11359  def __add__(self, ret):
11360  r"""__add__(Vector6D self, Vector6D ret) -> Vector6D"""
11361  return _IMP_kernel.Vector6D___add__(self, ret)
11362 
11363  def __mul__(self, *args):
11364  r"""
11365  __mul__(Vector6D self, double s) -> Vector6D
11366  __mul__(Vector6D self, Vector6D o) -> double
11367  """
11368  return _IMP_kernel.Vector6D___mul__(self, *args)
11369 
11370  def __init__(self, *args):
11371  r"""
11372  __init__(Vector6D self, IMP::Floats const & f) -> Vector6D
11373  __init__(Vector6D self) -> Vector6D
11374  __init__(Vector6D self, double x0, double x1, double x2, double x3, double x4, double x5) -> Vector6D
11375  """
11376  _IMP_kernel.Vector6D_swiginit(self, _IMP_kernel.new_Vector6D(*args))
11377 
11378  def __iadd__(self, *args):
11379  _IMP_kernel.Vector6D___iadd__(self, *args)
11380  return self
11381 
11382 
11383 
11384  def __imul__(self, *args):
11385  _IMP_kernel.Vector6D___imul__(self, *args)
11386  return self
11387 
11388 
11389 
11390  def __itruediv__(self, *args):
11391  _IMP_kernel.Vector6D___itruediv__(self, *args)
11392  return self
11393 
11394 
11395 
11396  def __isub__(self, *args):
11397  _IMP_kernel.Vector6D___isub__(self, *args)
11398  return self
11399 
11400 
11401 
11402  def __len__(self):
11403  r"""__len__(Vector6D self) -> unsigned int"""
11404  return _IMP_kernel.Vector6D___len__(self)
11405 
11406  def __rmul__(self, f):
11407  r"""__rmul__(Vector6D self, double f) -> Vector6D"""
11408  return _IMP_kernel.Vector6D___rmul__(self, f)
11409 
11410  def __str__(self):
11411  r"""__str__(Vector6D self) -> std::string"""
11412  return _IMP_kernel.Vector6D___str__(self)
11413 
11414  def __repr__(self):
11415  r"""__repr__(Vector6D self) -> std::string"""
11416  return _IMP_kernel.Vector6D___repr__(self)
11417 
11418  def __cmp__(self, arg2):
11419  r"""__cmp__(Vector6D self, Vector6D arg2) -> int"""
11420  return _IMP_kernel.Vector6D___cmp__(self, arg2)
11421 
11422  def __eq__(self, arg2):
11423  r"""__eq__(Vector6D self, Vector6D arg2) -> bool"""
11424  return _IMP_kernel.Vector6D___eq__(self, arg2)
11425 
11426  def _get_as_binary(self):
11427  r"""_get_as_binary(Vector6D self) -> PyObject *"""
11428  return _IMP_kernel.Vector6D__get_as_binary(self)
11429 
11430  def _set_from_binary(self, p):
11431  r"""_set_from_binary(Vector6D self, PyObject * p)"""
11432  return _IMP_kernel.Vector6D__set_from_binary(self, p)
11433 
11434  def __getstate__(self):
11435  p = self._get_as_binary()
11436  if len(self.__dict__) > 1:
11437  d = self.__dict__.copy()
11438  del d['this']
11439  p = (d, p)
11440  return p
11441 
11442  def __setstate__(self, p):
11443  if not hasattr(self, 'this'):
11444  self.__init__()
11445  if isinstance(p, tuple):
11446  d, p = p
11447  self.__dict__.update(d)
11448  return self._set_from_binary(p)
11449 
11450 
11451  def __getitem__(self, index):
11452  if isinstance(index, slice):
11453  return [self[i] for i in range(*index.indices(len(self)))]
11454  else:
11455  return _IMP_kernel.Vector6D___getitem__(self, index)
11456 
11457 
11458 
11459  def __setitem__(self, index, val):
11460  if isinstance(index, slice):
11461  if not hasattr(val, '__iter__'):
11462  raise TypeError("must assign iterable to extended slice")
11463  inds = range(*index.indices(len(self)))
11464  if len(inds) != len(val):
11465  raise ValueError(
11466  "attempt to assign sequence of size %d "
11467  "to extended slice of size %d" % (len(val), len(inds)))
11468  for ind, v in zip(inds, val):
11469  self[ind] = v
11470  else:
11471  return _IMP_kernel.Vector6D___setitem__(self, index, val)
11472 
11473 
11474  __swig_destroy__ = _IMP_kernel.delete_Vector6D
11475 
11476 # Register Vector6D in _IMP_kernel:
11477 _IMP_kernel.Vector6D_swigregister(Vector6D)
11478 class VectorKD(_VectorBaseKD):
11479  r"""Proxy of C++ IMP::VectorD< -1 > class."""
11480 
11481  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11482 
11483  def get_unit_vector(self):
11484  r"""get_unit_vector(VectorKD self) -> VectorKD"""
11485  return _IMP_kernel.VectorKD_get_unit_vector(self)
11486 
11487  def __truediv__(self, *args):
11488  return _IMP_kernel.VectorKD___truediv__(self, *args)
11489 
11490 
11491 
11492  def __neg__(self):
11493  r"""__neg__(VectorKD self) -> VectorKD"""
11494  return _IMP_kernel.VectorKD___neg__(self)
11495 
11496  def __sub__(self, o):
11497  r"""__sub__(VectorKD self, VectorKD o) -> VectorKD"""
11498  return _IMP_kernel.VectorKD___sub__(self, o)
11499 
11500  def __add__(self, ret):
11501  r"""__add__(VectorKD self, VectorKD ret) -> VectorKD"""
11502  return _IMP_kernel.VectorKD___add__(self, ret)
11503 
11504  def __mul__(self, *args):
11505  r"""
11506  __mul__(VectorKD self, double s) -> VectorKD
11507  __mul__(VectorKD self, VectorKD o) -> double
11508  """
11509  return _IMP_kernel.VectorKD___mul__(self, *args)
11510 
11511  def __init__(self, *args):
11512  r"""
11513  __init__(VectorKD self, IMP::Floats const & f) -> VectorKD
11514  __init__(VectorKD self) -> VectorKD
11515  __init__(VectorKD self, double x0, double x1=std::numeric_limits< double >::max(), double x2=std::numeric_limits< double >::max(), double x3=std::numeric_limits< double >::max(), double x4=std::numeric_limits< double >::max(), double x5=std::numeric_limits< double >::max()) -> VectorKD
11516  """
11517  _IMP_kernel.VectorKD_swiginit(self, _IMP_kernel.new_VectorKD(*args))
11518 
11519  def __iadd__(self, *args):
11520  _IMP_kernel.VectorKD___iadd__(self, *args)
11521  return self
11522 
11523 
11524 
11525  def __imul__(self, *args):
11526  _IMP_kernel.VectorKD___imul__(self, *args)
11527  return self
11528 
11529 
11530 
11531  def __itruediv__(self, *args):
11532  _IMP_kernel.VectorKD___itruediv__(self, *args)
11533  return self
11534 
11535 
11536 
11537  def __isub__(self, *args):
11538  _IMP_kernel.VectorKD___isub__(self, *args)
11539  return self
11540 
11541 
11542 
11543  def __len__(self):
11544  r"""__len__(VectorKD self) -> unsigned int"""
11545  return _IMP_kernel.VectorKD___len__(self)
11546 
11547  def __rmul__(self, f):
11548  r"""__rmul__(VectorKD self, double f) -> VectorKD"""
11549  return _IMP_kernel.VectorKD___rmul__(self, f)
11550 
11551  def __str__(self):
11552  r"""__str__(VectorKD self) -> std::string"""
11553  return _IMP_kernel.VectorKD___str__(self)
11554 
11555  def __repr__(self):
11556  r"""__repr__(VectorKD self) -> std::string"""
11557  return _IMP_kernel.VectorKD___repr__(self)
11558 
11559  def __cmp__(self, arg2):
11560  r"""__cmp__(VectorKD self, VectorKD arg2) -> int"""
11561  return _IMP_kernel.VectorKD___cmp__(self, arg2)
11562 
11563  def __eq__(self, arg2):
11564  r"""__eq__(VectorKD self, VectorKD arg2) -> bool"""
11565  return _IMP_kernel.VectorKD___eq__(self, arg2)
11566 
11567  def _get_as_binary(self):
11568  r"""_get_as_binary(VectorKD self) -> PyObject *"""
11569  return _IMP_kernel.VectorKD__get_as_binary(self)
11570 
11571  def _set_from_binary(self, p):
11572  r"""_set_from_binary(VectorKD self, PyObject * p)"""
11573  return _IMP_kernel.VectorKD__set_from_binary(self, p)
11574 
11575  def __getstate__(self):
11576  p = self._get_as_binary()
11577  if len(self.__dict__) > 1:
11578  d = self.__dict__.copy()
11579  del d['this']
11580  p = (d, p)
11581  return p
11582 
11583  def __setstate__(self, p):
11584  if not hasattr(self, 'this'):
11585  self.__init__()
11586  if isinstance(p, tuple):
11587  d, p = p
11588  self.__dict__.update(d)
11589  return self._set_from_binary(p)
11590 
11591 
11592  def __getitem__(self, index):
11593  if isinstance(index, slice):
11594  return [self[i] for i in range(*index.indices(len(self)))]
11595  else:
11596  return _IMP_kernel.VectorKD___getitem__(self, index)
11597 
11598 
11599 
11600  def __setitem__(self, index, val):
11601  if isinstance(index, slice):
11602  if not hasattr(val, '__iter__'):
11603  raise TypeError("must assign iterable to extended slice")
11604  inds = range(*index.indices(len(self)))
11605  if len(inds) != len(val):
11606  raise ValueError(
11607  "attempt to assign sequence of size %d "
11608  "to extended slice of size %d" % (len(val), len(inds)))
11609  for ind, v in zip(inds, val):
11610  self[ind] = v
11611  else:
11612  return _IMP_kernel.VectorKD___setitem__(self, index, val)
11613 
11614 
11615  __swig_destroy__ = _IMP_kernel.delete_VectorKD
11616 
11617 # Register VectorKD in _IMP_kernel:
11618 _IMP_kernel.VectorKD_swigregister(VectorKD)
11619 
11620 def get_basis_vector_1d(coordinate):
11621  r"""get_basis_vector_1d(unsigned int coordinate) -> Vector1D"""
11622  return _IMP_kernel.get_basis_vector_1d(coordinate)
11623 
11624 def get_basis_vector_2d(coordinate):
11625  r"""get_basis_vector_2d(unsigned int coordinate) -> Vector2D"""
11626  return _IMP_kernel.get_basis_vector_2d(coordinate)
11627 
11628 def get_basis_vector_3d(coordinate):
11629  r"""get_basis_vector_3d(unsigned int coordinate) -> Vector3D"""
11630  return _IMP_kernel.get_basis_vector_3d(coordinate)
11631 
11632 def get_basis_vector_4d(coordinate):
11633  r"""get_basis_vector_4d(unsigned int coordinate) -> Vector4D"""
11634  return _IMP_kernel.get_basis_vector_4d(coordinate)
11635 
11636 def get_basis_vector_5d(coordinate):
11637  r"""get_basis_vector_5d(unsigned int coordinate) -> Vector5D"""
11638  return _IMP_kernel.get_basis_vector_5d(coordinate)
11639 
11640 def get_basis_vector_6d(coordinate):
11641  r"""get_basis_vector_6d(unsigned int coordinate) -> Vector6D"""
11642  return _IMP_kernel.get_basis_vector_6d(coordinate)
11643 
11644 def get_zero_vector_1d():
11645  r"""get_zero_vector_1d() -> Vector1D"""
11646  return _IMP_kernel.get_zero_vector_1d()
11647 
11648 def get_zero_vector_2d():
11649  r"""get_zero_vector_2d() -> Vector2D"""
11650  return _IMP_kernel.get_zero_vector_2d()
11651 
11652 def get_zero_vector_3d():
11653  r"""get_zero_vector_3d() -> Vector3D"""
11654  return _IMP_kernel.get_zero_vector_3d()
11655 
11656 def get_zero_vector_4d():
11657  r"""get_zero_vector_4d() -> Vector4D"""
11658  return _IMP_kernel.get_zero_vector_4d()
11659 
11660 def get_zero_vector_5d():
11661  r"""get_zero_vector_5d() -> Vector5D"""
11662  return _IMP_kernel.get_zero_vector_5d()
11663 
11664 def get_zero_vector_6d():
11665  r"""get_zero_vector_6d() -> Vector6D"""
11666  return _IMP_kernel.get_zero_vector_6d()
11667 
11668 def get_ones_vector_1d(v=1):
11669  r"""get_ones_vector_1d(double v=1) -> Vector1D"""
11670  return _IMP_kernel.get_ones_vector_1d(v)
11671 
11672 def get_ones_vector_2d(v=1):
11673  r"""get_ones_vector_2d(double v=1) -> Vector2D"""
11674  return _IMP_kernel.get_ones_vector_2d(v)
11675 
11676 def get_ones_vector_3d(v=1):
11677  r"""get_ones_vector_3d(double v=1) -> Vector3D"""
11678  return _IMP_kernel.get_ones_vector_3d(v)
11679 
11680 def get_ones_vector_4d(v=1):
11681  r"""get_ones_vector_4d(double v=1) -> Vector4D"""
11682  return _IMP_kernel.get_ones_vector_4d(v)
11683 
11684 def get_ones_vector_5d(v=1):
11685  r"""get_ones_vector_5d(double v=1) -> Vector5D"""
11686  return _IMP_kernel.get_ones_vector_5d(v)
11687 
11688 def get_ones_vector_6d(v=1):
11689  r"""get_ones_vector_6d(double v=1) -> Vector6D"""
11690  return _IMP_kernel.get_ones_vector_6d(v)
11691 class _RestraintsScoringFunction(ScoringFunction):
11692  r"""Proxy of C++ IMP::internal::GenericRestraintsScoringFunction< ::IMP::Restraints > class."""
11693 
11694  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11695  __repr__ = _swig_repr
11696 
11697  def __init__(self, *args):
11698  r"""
11699  __init__(_RestraintsScoringFunction self, IMP::RestraintsTemp const & rs, double weight=1.0, double max=NO_MAX, std::string name="RestraintsScoringFunction%1%") -> _RestraintsScoringFunction
11700  __init__(_RestraintsScoringFunction self) -> _RestraintsScoringFunction
11701  """
11702  _IMP_kernel._RestraintsScoringFunction_swiginit(self, _IMP_kernel.new__RestraintsScoringFunction(*args))
11703 
11704  def do_add_score_and_derivatives(self, sa, ss):
11705  r"""do_add_score_and_derivatives(_RestraintsScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
11706  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives(self, sa, ss)
11707 
11708  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
11709  r"""do_add_score_and_derivatives_moved(_RestraintsScoringFunction self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, IMP::ScoreStatesTemp const & ss)"""
11710  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
11711 
11712  def do_get_inputs(self):
11713  r"""do_get_inputs(_RestraintsScoringFunction self) -> IMP::ModelObjectsTemp"""
11714  return _IMP_kernel._RestraintsScoringFunction_do_get_inputs(self)
11715 
11716  def get_restraints(self):
11717  r"""get_restraints(_RestraintsScoringFunction self) -> IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const &"""
11718  return _IMP_kernel._RestraintsScoringFunction_get_restraints(self)
11719 
11720  def set_restraints(self, s):
11721  r"""set_restraints(_RestraintsScoringFunction self, IMP::RestraintsTemp const & s)"""
11722  return _IMP_kernel._RestraintsScoringFunction_set_restraints(self, s)
11723 
11724  def get_number_of_restraints(self):
11725  r"""get_number_of_restraints(_RestraintsScoringFunction self) -> unsigned int"""
11726  return _IMP_kernel._RestraintsScoringFunction_get_number_of_restraints(self)
11727 
11728  def clear_restraints(self):
11729  r"""clear_restraints(_RestraintsScoringFunction self)"""
11730  return _IMP_kernel._RestraintsScoringFunction_clear_restraints(self)
11731 
11732  def get_restraint(self, i):
11733  r"""get_restraint(_RestraintsScoringFunction self, unsigned int i) -> Restraint"""
11734  return _IMP_kernel._RestraintsScoringFunction_get_restraint(self, i)
11735 
11736  def erase_restraint(self, i):
11737  r"""erase_restraint(_RestraintsScoringFunction self, unsigned int i)"""
11738  return _IMP_kernel._RestraintsScoringFunction_erase_restraint(self, i)
11739 
11740  def add_restraint(self, r):
11741  r"""add_restraint(_RestraintsScoringFunction self, Restraint r) -> unsigned int"""
11742  return _IMP_kernel._RestraintsScoringFunction_add_restraint(self, r)
11743 
11744  def add_restraints(self, r):
11745  r"""add_restraints(_RestraintsScoringFunction self, IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const & r)"""
11746  return _IMP_kernel._RestraintsScoringFunction_add_restraints(self, r)
11747 
11748  def _python_index_restraint(self, r, start, stop):
11749  r"""_python_index_restraint(_RestraintsScoringFunction self, Restraint r, unsigned int start, unsigned int stop) -> unsigned int"""
11750  return _IMP_kernel._RestraintsScoringFunction__python_index_restraint(self, r, start, stop)
11751 
11752  def get_version_info(self):
11753  r"""get_version_info(_RestraintsScoringFunction self) -> VersionInfo"""
11754  return _IMP_kernel._RestraintsScoringFunction_get_version_info(self)
11755  __swig_destroy__ = _IMP_kernel.delete__RestraintsScoringFunction
11756 
11757  @staticmethod
11758  def get_from(o):
11759  return _object_cast_to__RestraintsScoringFunction(o)
11760 
11761 
11762  def __get_restraints(self):
11763  return _list_util.VarList(
11764  getdimfunc=self.get_number_of_restraints,
11765  getfunc=self.get_restraint, erasefunc=self.erase_restraint,
11766  appendfunc=self.add_restraint, extendfunc=self.add_restraints,
11767  clearfunc=self.clear_restraints,
11768  indexfunc=self._python_index_restraint)
11769 
11770  def __set_restraints(self, obj):
11771  _list_util.set_varlist(self.restraints, obj)
11772 
11773  def __del_restraints(self):
11774  _list_util.del_varlist(self.restraints)
11775 
11776  restraints = property(__get_restraints, __set_restraints,
11777  __del_restraints, doc="List of Restraints")
11778 
11779 
11780  def _get_jax(self, space=None):
11781  import IMP.jax
11782  space = space or IMP.jax.FreeSpace
11783  jis = [r.get_derived_object()._get_jax(space) for r in self.restraints]
11784  funcs = [j.score_func for j in jis]
11785  keys = frozenset(x for j in jis for x in j._keys)
11786  def jax_sf(jm):
11787  return sum(f(jm) for f in funcs)
11788  return IMP._jax_util.JAXRestraintInfo(
11789  m=self.get_model(), score_func=jax_sf, weight=1.0, keys=keys)
11790 
11791 
11792 # Register _RestraintsScoringFunction in _IMP_kernel:
11793 _IMP_kernel._RestraintsScoringFunction_swigregister(_RestraintsScoringFunction)
11794 class ScopedSetFloatAttribute(_RAII):
11795  r"""Proxy of C++ IMP::ScopedSetAttribute< IMP::FloatKey,IMP::Float > class."""
11796 
11797  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11798 
11799  def __init__(self, *args):
11800  r"""
11801  __init__(ScopedSetFloatAttribute self) -> ScopedSetFloatAttribute
11802  __init__(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value) -> ScopedSetFloatAttribute
11803  """
11804  _IMP_kernel.ScopedSetFloatAttribute_swiginit(self, _IMP_kernel.new_ScopedSetFloatAttribute(*args))
11805 
11806  def set(self, p, key, value):
11807  r"""set(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value)"""
11808  return _IMP_kernel.ScopedSetFloatAttribute_set(self, p, key, value)
11809 
11810  def reset(self):
11811  r"""reset(ScopedSetFloatAttribute self)"""
11812  return _IMP_kernel.ScopedSetFloatAttribute_reset(self)
11813  __swig_destroy__ = _IMP_kernel.delete_ScopedSetFloatAttribute
11814 
11815  def show(self, *args):
11816  r"""show(ScopedSetFloatAttribute self, _ostream out=std::cout)"""
11817  return _IMP_kernel.ScopedSetFloatAttribute_show(self, *args)
11818 
11819  def __str__(self):
11820  r"""__str__(ScopedSetFloatAttribute self) -> std::string"""
11821  return _IMP_kernel.ScopedSetFloatAttribute___str__(self)
11822 
11823  def __repr__(self):
11824  r"""__repr__(ScopedSetFloatAttribute self) -> std::string"""
11825  return _IMP_kernel.ScopedSetFloatAttribute___repr__(self)
11826 
11827 # Register ScopedSetFloatAttribute in _IMP_kernel:
11828 _IMP_kernel.ScopedSetFloatAttribute_swigregister(ScopedSetFloatAttribute)
11829 
11830 def _get_module_data_path(module, file_name):
11831  r"""_get_module_data_path(std::string module, std::string file_name) -> std::string"""
11832  return _IMP_kernel._get_module_data_path(module, file_name)
11833 
11834 def _get_module_example_path(module, file_name):
11835  r"""_get_module_example_path(std::string module, std::string file_name) -> std::string"""
11836  return _IMP_kernel._get_module_example_path(module, file_name)
11837 
11838 #used_modules=[]
11839 #def show_used_modules():
11840 # for m in used_modules:
11841 # print "%-20s %s" % (m.get_module(), m.get_version())
11842 
11843 # Ensure that Windows gets the PATH set to include anything in the library
11844 # search path
11845 if sys.platform == 'win32' and 'IMP_LD_PATH' in os.environ:
11846  dirs = os.environ['IMP_LD_PATH'].split(":")
11847  pathcomps = os.environ['PATH'].split(";")
11848  for d in dirs:
11849  if d not in pathcomps:
11850  os.environ['PATH'] = d + ';' + os.environ['PATH']
11851 
11852 
11853 
11854 import sys
11855 import os
11856 
11858  """Allow command line tools to easily implement multiple commands.
11859  Typically, an IMP command line tool will use an instance of this class
11860  to provide a consistent interface to multiple distinct commands
11861  from a single binary, rather than providing a potentially large
11862  number of binaries. This is similar to the way a number of common
11863  command line tools outside of IMP function (e.g. Git provides a single
11864  `git` tool which implements multiple commands - `git add`, `git commit`,
11865  `git push` and so on).
11866 
11867  Each command is implemented with a Python module of the same name
11868  that can be imported from the module (for example, if `module_name`
11869  is `IMP.foo`, the `bar` command is provided by the `IMP.foo.bar` Python
11870  module, which would usually be found as `modules/foo/pyext/src/bar.py`).
11871  Each such module should have a docstring and a `%main()` method
11872  that takes no arguments (the module should also call its `%main()` method
11873  if it is run directly, i.e. with something like
11874  `if __name__=="__main__": %main()`). The encompassing module
11875  (`IMP.foo` in the example) should define `_all_commands` as a Python
11876  list of all valid commands.
11877 
11878  See the `multifit` and `cnmultifit` command line tools for example
11879  usage.
11880  """
11881 
11882  def __init__(self, short_help, long_help, module_name):
11883  """Constructor.
11884  @param short_help A few words that describe the command line tool.
11885  @param long_help Longer text, used in the `help` command.
11886  @param module_name Name of the module (e.g. `IMP.foo`) that
11887  implements the commands.
11888  """
11889  self.short_help = short_help
11890  self.long_help = long_help
11891  self.module_name = module_name
11892  self._all_commands = self.import_module()._all_commands
11893  self._progname = os.path.basename(sys.argv[0])
11894 
11895  def main(self):
11896  """Call this method to act upon the user-provided command line"""
11897  if len(sys.argv) <= 1:
11898  print(self.short_help + " Use '%s help' for help." % self._progname)
11899  else:
11900  command = sys.argv[1]
11901  if command in ('help', '--help', '-h'):
11902  if len(sys.argv) == 3:
11903  self.show_command_help(sys.argv[2])
11904  else:
11905  self.show_help()
11906  elif command == '--version':
11907  self.show_version()
11908  elif command in self._all_commands:
11909  self.do_command(command)
11910  else:
11911  self.unknown_command(command)
11912 
11913  def import_module(self, mod=None):
11914  modname = self.module_name
11915  if mod is not None:
11916  modname += "." + mod
11917  return __import__(modname, {}, {}, [''])
11918 
11919  def unknown_command(self, command):
11920  print("Unknown command: '%s'" % command)
11921  print("Use '%s help' for help." % self._progname)
11922  sys.exit(1)
11923 
11924  def _get_version(self):
11925  return self.import_module().get_module_version()
11926 
11927  def show_version(self):
11928  print(self._progname + ' ' + self._get_version())
11929 
11930  def show_help(self):
11931  ver = self._get_version()
11932  print("%s, version %s." % (self._progname, ver))
11933  print(self.long_help + """
11934 
11935 This program is part of IMP, the Integrative Modeling Platform,
11936 which is %s.
11937 For additional information about IMP, see <https://integrativemodeling.org>.
11938 
11939 Usage: %s <command> [options] [args]
11940 
11941 Commands:""" % (get_copyright(), self._progname))
11942  commands = self._all_commands[:] + ['help']
11943  commands.sort()
11944  cmdlen = max([len(c) for c in commands])
11945  for c in commands:
11946  if c == 'help':
11947  doc = 'Get help on using %s.' % self._progname
11948  else:
11949  doc = self.import_module(c).__doc__ or "<no help>"
11950  c += ' ' * (cmdlen - len(c))
11951  print(' ' + c + ' ' + doc)
11952  print("""
11953 Use "%s help <command>" for detailed help on any command
11954  or "%s --version" to see the version number.""" % (self._progname,
11955  self._progname))
11956 
11957  def do_command(self, command):
11958  mod = self.import_module(command)
11959  sys.argv[0] = self._progname + ' ' + command
11960  del sys.argv[1]
11961  mod.main()
11962 
11963  def show_command_help(self, command):
11964  if command == 'help':
11965  self.show_help()
11966  elif command in self._all_commands or command == 'help':
11967  mod = self.import_module(command)
11968  sys.argv = [self._progname + ' ' + command, '--help']
11969  mod.main()
11970  else:
11971  self.unknown_command(command)
11972 
11973 
11974 
11975 
11976 def get_networkx_graph(ig):
11977  import networkx
11978  g = networkx.DiGraph()
11979  if len(ig.get_vertices()) == 0:
11980  return g
11981 
11982  class NodeWrapper:
11983 
11984  def __init__(self, p):
11985  self.p = p
11986 
11987  def __str__(self):
11988  return self.p.get_name()
11989 
11990  def __call__(self, name):
11991  return self.p.__call__(name)
11992 
11993  for vi in ig.get_vertices():
11994  n = ig.get_vertex_name(vi)
11995  g.add_node(NodeWrapper(n))
11996  for vi in ig.get_vertices():
11997  n = ig.get_vertex_name(vi)
11998  for ni in ig.get_out_neighbors(vi):
11999  nn = ig.get_vertex_name(ni)
12000  g.add_edge(NodeWrapper(n), NodeWrapper(nn))
12001  return g
12002 
12003 
12004 def show_altgraph(g):
12005  def clean(name):
12006  try:
12007  n0 = name.get_name()
12008  except:
12009  n0 = str(name)
12010  n1 = str(n0).replace('"', '')
12011  n2 = n1.replace("\n", '')
12012  return n2
12013  import altgraph
12014  from altgraph import Graph, Dot
12015  graph = Graph.Graph()
12016  for i, v in enumerate(g.get_vertices()):
12017  graph.add_node(i) # , node_data=g.get_vertex_name(v)
12018  for i, v in enumerate(g.get_vertices()):
12019  for n in g.get_out_neighbors(v):
12020  graph.add_edge(v, n)
12021  dot = Dot.Dot(graph) # , graph_type="digraph"
12022  for i, v in enumerate(g.get_vertices()):
12023  dot.node_style(i, label=clean(g.get_vertex_name(v)))
12024  dot.display()
12025 
12026 
12027 def show_graphviz(g):
12028  import subprocess
12029  tfn = create_temporary_file_name("graph", ".dot")
12030  tfon = create_temporary_file_name("graph", ".pdf")
12031  st = g.get_graphviz_string()
12032  with open(tfn, "w") as fh:
12033  fh.write(st)
12034  try:
12035  print("running dot")
12036  sp = subprocess.Popen(["dot", "-Tpdf", tfn, "-o" + tfon])
12037  sp.wait()
12038  except:
12039  import sys
12040  sys.stderr.write("The dot command from the graphviz package was not found. Please make sure it is in the PATH passed to IMP.\n")
12041  return
12042  import platform
12043  if platform.system() == "Darwin":
12044  cmd = ["open"]
12045  else:
12046  cmd = ["gv", "acroread", "xpdf"]
12047  success = False
12048  for c in cmd:
12049  print("launching viewer " + c)
12050  try:
12051  subprocess.check_call([c, tfon])
12052  success = True
12053  break
12054  except:
12055  pass
12056  if not success:
12057  print("Could not display file. It is saved at " + tfon)
12058  return tfon
12059 
12060 
12061 
12062 
12063 import functools
12064 import contextlib
12065 
12066 def deprecated_module(version, module, help_message):
12067  """Mark a Python module as deprecated.
12068  @note The `module` argument would normally be `__name__`.
12069  @see [deprecation support](@ref deprecation)."""
12071  "Module %s is deprecated. %s\n" % (module, help_message))
12072 
12073 def deprecated_object(version, help_message):
12074  """Python decorator to mark a class as deprecated.
12075  @see [deprecation support](@ref deprecation)."""
12076  def wrapper(obj):
12077  orig_init = obj.__init__
12078 # Don't try to copy __module__ since __init__ may not have it
12079 # (e.g. if we subclassed object but didn't override __init__)
12080  @functools.wraps(orig_init, ('__name__', '__doc__'))
12081  def __init__(obj, *args, **keys):
12082  handle_use_deprecated("Object %s is deprecated. %s\n"
12083  % (type(obj), help_message))
12084  orig_init(obj, *args, **keys)
12085  obj.__init__ = __init__
12086  return obj
12087  return wrapper
12088 
12089 def deprecated_method(version, help_message):
12090  """Python decorator to mark a method as deprecated.
12091  @see [deprecation support](@ref deprecation)."""
12092  def out_wrapper(obj):
12093  @functools.wraps(obj)
12094  def wrapper(cls, *args, **keys):
12095  handle_use_deprecated("Method %s in %s is deprecated. %s\n"
12096  % (obj.__name__, type(cls), help_message))
12097  return obj(cls, *args, **keys)
12098  return wrapper
12099  return out_wrapper
12100 
12101 def deprecated_function(version, help_message):
12102  """Python decorator to mark a function as deprecated.
12103  @see [deprecation support](@ref deprecation)."""
12104  def out_wrapper(obj):
12105  @functools.wraps(obj)
12106  def wrapper(*args, **keys):
12107  handle_use_deprecated("Function %s is deprecated. %s\n"
12108  % (obj.__name__, help_message))
12109  return obj(*args, **keys)
12110  return wrapper
12111  return out_wrapper
12112 
12113 @contextlib.contextmanager
12114 def allow_deprecated(allow=True):
12115  """Context manager to temporarily allow (or disallow) deprecated code.
12116  @see [deprecation support](@ref deprecation)."""
12118  set_deprecation_exceptions(not allow)
12119  yield
12121 
12122 
12123 def _get_all_flags(ntokens):
12124  r"""_get_all_flags(unsigned int ntokens) -> IMP::Strings"""
12125  return _IMP_kernel._get_all_flags(ntokens)
12126 
12127 def _print_internal_help(out, description):
12128  r"""_print_internal_help(_ostream out, std::string description)"""
12129  return _IMP_kernel._print_internal_help(out, description)
12130 
12131 
12132 import argparse
12133 import sys
12134 
12135 class _PassThroughAction(argparse.Action):
12136  """Pass an argument through to the IMP Boost parser"""
12137  def __call__(self, parser, namespace, values, option_string=None):
12138  parser._boost_command_line.append(option_string)
12139  if values != []:
12140  parser._boost_command_line.append(values)
12141 # Terminate processing immediately if necessary (otherwise argparse
12142 # may fail if we're missing positional arguments)
12143  if option_string in ('-h', '--help', '--help_advanced', '--version'):
12144  parser._handle_boost()
12145 
12146 
12147 class ArgumentParser(argparse.ArgumentParser):
12148  """IMP-specific subclass of argparse.ArgumentParser.
12149  This adds options common to all IMP applications
12150  (see IMP::setup_from_argv()).
12151  """
12152 
12153  def __init__(self, *args, **kwargs):
12154 # Don't add --help option (since the Boost option parser handles it)
12155  kwargs['add_help'] = False
12156  super().__init__(*args, **kwargs)
12157  for ntoken in (0, 1):
12158  flags = _get_all_flags(ntoken)
12159  for f in flags:
12160  arg = ['-h', '--help'] if f == 'help' else ['--' + f]
12161  self.add_argument(*arg, help=argparse.SUPPRESS,
12162  nargs=None if ntoken else 0,
12163  action=_PassThroughAction,
12164  default=argparse.SUPPRESS)
12165 
12166  def parse_args(self, args=None, namespace=None):
12167  """Parse the command line and return optional and positional arguments.
12168  This functions in the same way as the method in the base class
12169  argparse.ArgumentParser, except that it also processes optional
12170  arguments common to all IMP applications (these are not returned
12171  in `args`, but can be obtained in the usual way, e.g. by calling
12172  IMP::get_string_flag()).
12173  @returns args
12174  """
12175  self._boost_command_line = [sys.argv[0]]
12176  ret = super().parse_args(args, namespace)
12177  if len(self._boost_command_line) > 1:
12178  self._handle_boost()
12179  return ret
12180 
12181  def _get_description(self):
12182  return self.format_help() + "\nOptions common to all IMP applications:"
12183 
12184  def print_help(self, file=None):
12185  _print_internal_help(file if file else sys.stdout,
12186  self._get_description())
12187 
12188  def _handle_boost(self):
12189  setup_from_argv(self._boost_command_line,
12190  self._get_description(),
12191  '==SUPPRESS==', 0)
12192 
12193 class RandomNumberGenerator(object):
12194  r"""Proxy of C++ IMP::RandomNumberGenerator class."""
12195 
12196  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12197  __repr__ = _swig_repr
12198 
12199  def seed(self, x):
12200  r"""seed(RandomNumberGenerator self, int x)"""
12201  return _IMP_kernel.RandomNumberGenerator_seed(self, x)
12202 
12203  def __call__(self):
12204  r"""__call__(RandomNumberGenerator self) -> int"""
12205  return _IMP_kernel.RandomNumberGenerator___call__(self)
12206 
12207  def get_state(self):
12208  r"""get_state(RandomNumberGenerator self) -> PyObject *"""
12209  return _IMP_kernel.RandomNumberGenerator_get_state(self)
12210 
12211  def set_state(self, p):
12212  r"""set_state(RandomNumberGenerator self, PyObject * p)"""
12213  return _IMP_kernel.RandomNumberGenerator_set_state(self, p)
12214 
12215  def __init__(self):
12216  r"""__init__(RandomNumberGenerator self) -> RandomNumberGenerator"""
12217  _IMP_kernel.RandomNumberGenerator_swiginit(self, _IMP_kernel.new_RandomNumberGenerator())
12218  __swig_destroy__ = _IMP_kernel.delete_RandomNumberGenerator
12219 
12220 # Register RandomNumberGenerator in _IMP_kernel:
12221 _IMP_kernel.RandomNumberGenerator_swigregister(RandomNumberGenerator)
12222 
12223 def get_random_float_uniform(*args):
12224  r"""
12225  get_random_float_uniform() -> float
12226  get_random_float_uniform(float min, float max) -> float
12227  """
12228  return _IMP_kernel.get_random_float_uniform(*args)
12229 
12230 def get_random_double_uniform(*args):
12231  r"""
12232  get_random_double_uniform() -> double
12233  get_random_double_uniform(double min, double max) -> double
12234  """
12235  return _IMP_kernel.get_random_double_uniform(*args)
12236 
12237 def get_random_floats_normal(n, mean=0.0, stddev=1.0):
12238  r"""get_random_floats_normal(unsigned int n, float mean=0.0, float stddev=1.0) -> IMP::Vector< float,std::allocator< float > >"""
12239  return _IMP_kernel.get_random_floats_normal(n, mean, stddev)
12240 
12241 def get_random_doubles_normal(n, mean=0.0, stddev=1.0):
12242  r"""get_random_doubles_normal(unsigned int n, double mean=0.0, double stddev=1.0) -> IMP::Vector< double,std::allocator< double > >"""
12243  return _IMP_kernel.get_random_doubles_normal(n, mean, stddev)
12244 
12245 def get_random_floats_uniform(n):
12246  r"""get_random_floats_uniform(unsigned int n) -> IMP::Vector< float,std::allocator< float > >"""
12247  return _IMP_kernel.get_random_floats_uniform(n)
12248 
12249 def get_random_doubles_uniform(n):
12250  r"""get_random_doubles_uniform(unsigned int n) -> IMP::Vector< double,std::allocator< double > >"""
12251  return _IMP_kernel.get_random_doubles_uniform(n)
12252 
12253 def get_random_seed():
12254  r"""get_random_seed() -> boost::uint64_t"""
12255  return _IMP_kernel.get_random_seed()
12256 
12257 def _get_derivatives_numpy(m, k, m_pyobj, read_only):
12258  r"""_get_derivatives_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12259  return _IMP_kernel._get_derivatives_numpy(m, k, m_pyobj, read_only)
12260 
12261 def _get_floats_numpy(m, k, m_pyobj, read_only):
12262  r"""_get_floats_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12263  return _IMP_kernel._get_floats_numpy(m, k, m_pyobj, read_only)
12264 
12265 def _get_ints_numpy(m, k, m_pyobj, read_only):
12266  r"""_get_ints_numpy(Model m, IntKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12267  return _IMP_kernel._get_ints_numpy(m, k, m_pyobj, read_only)
12268 
12269 def _get_particle_indexes_numpy(m, k, m_pyobj, read_only):
12270  r"""_get_particle_indexes_numpy(Model m, ParticleIndexKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12271  return _IMP_kernel._get_particle_indexes_numpy(m, k, m_pyobj, read_only)
12272 
12273 def _get_vector3ds_numpy(m, k, m_pyobj, read_only):
12274  r"""_get_vector3ds_numpy(Model m, Vector3DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12275  return _IMP_kernel._get_vector3ds_numpy(m, k, m_pyobj, read_only)
12276 
12277 def _get_vector3dderiv_numpy(m, k, m_pyobj, read_only):
12278  r"""_get_vector3dderiv_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12279  return _IMP_kernel._get_vector3dderiv_numpy(m, k, m_pyobj, read_only)
12280 
12281 def _get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12282  r"""_get_vector3dderiv_derivatives_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12283  return _IMP_kernel._get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12284 
12285 def _get_vector4ds_numpy(m, k, m_pyobj, read_only):
12286  r"""_get_vector4ds_numpy(Model m, Vector4DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12287  return _IMP_kernel._get_vector4ds_numpy(m, k, m_pyobj, read_only)
12288 
12289 def _get_vector4dderiv_numpy(m, k, m_pyobj, read_only):
12290  r"""_get_vector4dderiv_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12291  return _IMP_kernel._get_vector4dderiv_numpy(m, k, m_pyobj, read_only)
12292 
12293 def _get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12294  r"""_get_vector4dderiv_derivatives_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12295  return _IMP_kernel._get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12296 
12297 def _get_spheres_numpy(m, m_pyobj, read_only):
12298  r"""_get_spheres_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12299  return _IMP_kernel._get_spheres_numpy(m, m_pyobj, read_only)
12300 
12301 def _get_sphere_derivatives_numpy(m, m_pyobj, read_only):
12302  r"""_get_sphere_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12303  return _IMP_kernel._get_sphere_derivatives_numpy(m, m_pyobj, read_only)
12304 
12305 def _get_internal_coordinates_numpy(m, m_pyobj, read_only):
12306  r"""_get_internal_coordinates_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12307  return _IMP_kernel._get_internal_coordinates_numpy(m, m_pyobj, read_only)
12308 
12309 def _get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only):
12310  r"""_get_internal_coordinate_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12311  return _IMP_kernel._get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only)
12312 
12313 try:
12314  import numpy
12315  ParticleIndex = numpy.intc
12316 except ImportError:
12317  pass
12318 
12319 
12320 class JAXWarning(UserWarning):
12321  """Warning for incomplete JAX support or different behavior of JAX code"""
12322  pass
12323 
12324 
12325 def get_module_name():
12326  r"""get_module_name() -> std::string const"""
12327  return _IMP_kernel.get_module_name()
12328 
12329 def get_module_version():
12330  r"""get_module_version() -> std::string const"""
12331  return _IMP_kernel.get_module_version()
12332 
12333 def get_example_path(fname):
12334  r"""get_example_path(std::string fname) -> std::string"""
12335  return _IMP_kernel.get_example_path(fname)
12336 
12337 def get_data_path(fname):
12338  r"""get_data_path(std::string fname) -> std::string"""
12339  return _IMP_kernel.get_data_path(fname)
12340 
12341 from . import _version_check
12342 _version_check.check_version(get_module_version())
12343 __version__ = get_module_version()
12344 
12345 
12346 random_number_generator = cvar.random_number_generator
12347 
Particle * get_particle(ParticleIndex p) const
Get the particle from an index.
Definition: Model.h:612
A base class for modifiers of ParticlesTemp.
A class to store a configuration of a model.
Definition: Configuration.h:22
def get_ints_numpy
Get the model's attribute array for IntKey k as a NumPy array.
Definition: __init__.py:6837
VectorD< D > get_basis_vector_kd(int Di, unsigned int coordinate)
Return the basis vector for the given coordinate.
Definition: VectorD.h:222
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:44
A shared container for Pairs.
Definition: PairContainer.h:39
void add_int_flag(std::string name, size_t default_value, std::string description)
Allow command line tools to easily implement multiple commands.
Definition: __init__.py:11857
CheckLevel get_check_level()
Get the current audit mode.
Definition: exception.h:80
VectorD< D > get_ones_vector_kd(unsigned int Di, double v=1)
Return a vector of ones (or another constant)
Definition: VectorD.h:295
Key< 11 > TriggerKey
The type used to identify changed model properties.
Definition: base_types.h:82
bool get_is_quick_test()
Definition: flags.h:183
Abstract predicate function.
Definition: QuadPredicate.h:31
Key< 0 > FloatKey
The type used to identify float attributes in the Particles.
Definition: base_types.h:32
def allow_deprecated
Context manager to temporarily allow (or disallow) deprecated code.
Definition: __init__.py:12114
std::string get_unique_name(std::string templ)
Return a unique name produced from the string.
DependencyGraph get_dependency_graph(Model *m)
def get_floats_numpy
Get the model's attribute array for FloatKey k as a NumPy array.
Definition: __init__.py:6863
Objects get_live_objects()
Return pointers to all live objects.
def get_derived_object
Return this object cast to the most derived subclass.
Definition: __init__.py:1347
Vector< char > write_particles_to_buffer(const ParticlesTemp &particles, const FloatKeys &keys)
return a binary buffer with the data
Key< 13 > SparseIntKey
The type used to identify sparse int attributes in the Particles.
Definition: base_types.h:90
def main
Call this method to act upon the user-provided command line.
Definition: __init__.py:11895
Key< 15 > SparseParticleIndexKey
The type used to identify sparse particle attributes in the Particles.
Definition: base_types.h:98
Vector3D get_orthogonal_vector(const Vector3D &v)
Return a vector that is perpendicular to the given vector.
Definition: Vector3D.h:50
boost::graph DependencyGraph
Directed graph on the interactions between the various objects in the model.
ContainersTemp get_input_containers(const ModelObjectsTemp &mos)
Return all the input particles for a given ModelObject.
def deprecated_module
Mark a Python module as deprecated.
Definition: __init__.py:12066
Key< 16 > Vector3DKey
The type used to identify 3D vector attributes in the Particles.
Definition: base_types.h:102
Vector< VectorD< D > > get_vertices(const BoundingBoxD< D > &bb)
Return a list of the 2^D bounding points for the bounding box.
Definition: BoundingBoxD.h:301
Array< 4, WeakPointer< Particle >, Particle * > ParticleQuad
Definition: base_types.h:184
bool get_bool_flag(std::string name)
VectorD< D > get_zero_vector_kd(int Di)
Return a dynamically sized vector of zeros.
Definition: VectorD.h:262
void handle_use_deprecated(std::string message)
Break in this method in gdb to find deprecated uses at runtime.
void set_progress_display(std::string description, unsigned int steps)
Set up the progress bar with the passed description.
def deprecated_function
Python decorator to mark a function as deprecated.
Definition: __init__.py:12101
virtual ::IMP::VersionInfo get_version_info() const override
Get information about the module and version of the object.
Definition: Model.h:774
void remove_attribute(TypeKey attribute_key, ParticleIndex particle)
remove particle attribute with the specified key
Index< ParticleIndexTag > ParticleIndex
Definition: base_types.h:194
ParticlesTemp get_particles(Model *m, const ParticleIndexes &ps)
Get the particles from a list of indexes.
An unbounded space with no periodic boundary conditions.
Definition: jax.py:37
Key< 19 > Vector4DDerivKey
The type used to identify 4D vector attributes&derivatives in the Particles.
Definition: base_types.h:114
Key< 6 > ParticleIndexesKey
The type used to identify a particle attribute in the Particles.
Definition: base_types.h:64
Array< 3, WeakPointer< Particle >, Particle * > ParticleTriplet
Definition: base_types.h:181
ContainersTemp get_output_containers(const ModelObjectsTemp &mos)
Return all the output particles for a given ModelObject.
Base class for all samplers.
Definition: Sampler.h:31
void add_particle(RMF::FileHandle fh, Particle *hs)
virtual void clear_caches()
Definition: Object.h:270
std::string get_data_path(std::string file_name)
Return the full path to one of this module's data files.
void add_string_flag(std::string name, std::string default_value, std::string description)
LogLevel get_log_level()
Get the currently active global log level.
Definition: log.h:92
def get_sphere_derivatives_numpy
Get the model's XYZR attribute derivatives arrays as NumPy arrays.
Definition: __init__.py:6890
void set_deprecation_warnings(bool tf)
Toggle printing of warnings on using deprecated classes.
Vector3D get_centroid(const Vector3Ds &ps)
Return the centroid of a set of vectors.
Definition: Vector3D.h:67
def get_numpy
Get the model's attribute array for any type of Key k as a NumPy array.
Definition: __init__.py:6851
TextOutput create_temporary_file(std::string prefix="imp_temp", std::string suffix="")
Create a temporary file. The path can be extracted from the TextOutput.
ParticlesTemp get_output_particles(const ModelObjectsTemp &mos)
Return all the output particles for a given ModelObject.
ScoringFunction * create_scoring_function(RestraintType *rs, double weight=1.0, double max=NO_MAX, std::string name=std::string())
Create a ScoringFunction on a single restraint.
Definition: generic.h:23
A base class for modifiers of ParticlePairsTemp.
Definition: PairModifier.h:31
void write_help(std::ostream &out=std::cerr)
Key< 2 > StringKey
The type used to identify string attributes in the Particles.
Definition: base_types.h:40
size_t get_int_flag(std::string name)
Key< 10 > FloatsKey
The type used to identify float vector attributes in the Particles.
Definition: base_types.h:60
void add_restraint(RMF::FileHandle fh, Restraint *hs)
Key< 17 > Vector3DDerivKey
The type used to identify 3D vector attributes&derivatives in the Particles.
Definition: base_types.h:106
Abstract class for scoring object(s) of type ParticleIndexQuad.
Definition: QuadScore.h:44
Base class for objects in a Model that depend on other objects.
Definition: ModelObject.h:28
boost::uint64_t get_random_seed()
Return the initial random seed.
Abstract predicate function.
Key< 3 > ParticleIndexKey
The type used to identify a particle attribute in the Particles.
Definition: base_types.h:44
Strings get_live_object_names()
Return the names of all live objects.
void add_to_progress_display(unsigned int step=1)
Set the current progress.
void add_attribute(TypeKey attribute_key, ParticleIndex particle, Type value)
add particle attribute with the specified key and initial value
void add_float_flag(std::string name, double default_value, std::string description)
virtual void do_destroy()
Definition: Object.h:274
Ints get_index(const ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
double get_radius_of_gyration(const Vector3Ds &ps)
Return the radius of gyration of a set of points.
Definition: Vector3D.h:76
Common base class for heavy weight IMP objects.
Definition: Object.h:111
ParticleIndexes get_particle_indexes(ParticlesTemp const &particles)
def deprecated_method
Python decorator to mark a method as deprecated.
Definition: __init__.py:12089
Abstract class for scoring object(s) of type ParticleIndex.
Base class for all optimizers.
Definition: Optimizer.h:48
void reset_log_timer()
Reset the log timer.
void add_restraints(RMF::FileHandle fh, const Restraints &hs)
void add_to_log(LogLevel level, std::string to_write)
Write a string to the log, for Python.
def parse_args
Parse the command line and return optional and positional arguments.
Definition: __init__.py:12166
def get_internal_coordinates_numpy
Get the model's internal coordinate array as a NumPy array.
Definition: __init__.py:6896
double get_distance(const VectorD< D > &v1, const VectorD< D > &v2)
Compute the distance between two vectors.
Definition: VectorD.h:195
void set_is_optimized(TypeKey attribute_key, ParticleIndex particle, bool true_or_false)
Key< 1 > IntKey
The type used to identify int attributes in the Particles.
Definition: base_types.h:36
Restraints create_decomposition(const RestraintsTemp &rs)
Return the decomposition of a list of restraints.
std::string get_relative_path(std::string base, std::string relative)
Return a path to a file relative to another file.
A class to store a set of configurations of a model.
A shared container for Quads.
Definition: QuadContainer.h:39
def get_internal_coordinate_derivatives_numpy
Get the model's internal coordinate derivative array as a NumPy array.
Definition: __init__.py:6902
A shared container for Singletons.
void set_deprecation_exceptions(bool tf)
Toggle whether an exception is thrown when a deprecated method is used.
Support for the JAX Python library.
Definition: jax.py:1
def get_spheres_numpy
Get the model's XYZR attribute arrays as NumPy arrays.
Definition: __init__.py:6884
Key< 4 > ObjectKey
The type used to identify an Object attribute.
Definition: base_types.h:48
Interface to specialized Particle types (e.g. atoms)
Definition: Decorator.h:119
IMP-specific subclass of argparse.ArgumentParser.
Definition: __init__.py:12147
def get_derivatives_numpy
Get the model's attribute derivatives array for key k as a NumPy array.
Definition: __init__.py:6868
std::ostream & show(Hierarchy h, std::ostream &out=std::cout)
Print the hierarchy using a given decorator to display each node.
std::string get_absolute_path(std::string file)
Convert a possibly relative path to an absolute path.
std::string get_executable_name()
Return the name of the current executable.
void set_log_level(LogLevel l)
Set the current global log level.
unsigned int get_number_of_threads()
float get_random_float_uniform()
Return a uniformly distributed float number in range [0..1)
Definition: random_utils.h:138
def deprecated_object
Python decorator to mark a class as deprecated.
Definition: __init__.py:12073
ParticlesTemp get_input_particles(const ModelObjectsTemp &mos)
Return all the input particles for a given ModelObject.
Base class for optimizers that act on individual attributes.
void set_show_leaked_objects(bool tf)
Set whether to complain about objects not being properly cleaned up.
Abstract predicate function.
Definition: PairPredicate.h:31
bool get_deprecation_exceptions()
Get whether an exception is thrown when a deprecated method is used.
Represents a scoring function on the model.
void set_log_timer(bool tb)
Set whether log messages are tagged with the current log time.
void show_restraint_hierarchy(ScoringFunctionAdaptor rs, std::ostream &out=std::cout)
Print the hierarchy of restraints.
DependencyGraph get_pruned_dependency_graph(Model *m)
std::string get_example_path(std::string file_name)
Return the full path to one of this module's example files.
Warning for incomplete JAX support or different behavior of JAX code.
Definition: __init__.py:12320
Object(std::string name)
Construct an object with the given name.
Array< 2, WeakPointer< Particle >, Particle * > ParticlePair
Definition: base_types.h:175
Key< 5 > IntsKey
The type used to identify int attributes in the Particles.
Definition: base_types.h:56
virtual VersionInfo get_version_info() const
Get information about the module and version of the object.
Definition: Object.h:206
Restraints create_restraints(RMF::FileConstHandle fh, Model *m)
Shared optimizer state that is invoked upon commitment of new coordinates.
Abstract predicate function.
Abstract class to implement hierarchical methods.
Definition: Refiner.h:36
A base class for modifiers of ParticleTripletsTemp.
std::string show_graphviz(Graph g)
void set_check_level(CheckLevel l)
std::string get_string_flag(std::string name)
networkx::DiGraph get_networkx_graph(Graph g)
Key< 18 > Vector4DKey
The type used to identify 4D vector attributes in the Particles.
Definition: base_types.h:110
def __init__
Constructor.
Definition: __init__.py:11882
double get_random_double_uniform()
Return a uniformly distributed double number in range [0..1)
Definition: random_utils.h:173
Key< 8 > ModelKey
The type used to identify data stored directly in the model.
Definition: base_types.h:78
A base class for modifiers of ParticleQuadsTemp.
Definition: QuadModifier.h:31
Key< 14 > SparseFloatKey
The type used to identify sparse float attributes in the Particles.
Definition: base_types.h:94
A shared container for Triplets.
def get_vector3ds_numpy
Get the model's attribute array for Vector3DKey k as a NumPy array.
Definition: __init__.py:6877
Vector3D get_vector_product(const Vector3D &p1, const Vector3D &p2)
Return the vector product (cross product) of two vectors.
Definition: Vector3D.h:31
Abstract class for scoring object(s) of type ParticleIndexTriplet.
Definition: TripletScore.h:44
void show_altgraph(Graph g)
void update()
Sometimes it is useful to be able to make sure the model is up to date.
void setup_from_argv(int argc, char **argv, std::string description)
Parse the command line flags and return the positional arguments.
void add_bool_flag(std::string name, std::string description)
ParticleIndexes get_indexes(const ParticlesTemp &ps)
Get the indexes from a list of particles.
Abstract class for containers of particles.
void read_particles_from_buffer(const Vector< char > &buffer, const ParticlesTemp &particles, const FloatKeys &keys)
load found attributes into the particles
Abstract single variable functor class for score functions.
Definition: UnaryFunction.h:27
void set_number_of_threads(unsigned int n)
double get_float_flag(std::string name)
void set_check_level(CheckLevel tf)
Control runtime checks in the code.
Definition: exception.h:72
ScoreStatesTemp get_update_order(ScoreStatesTemp input)
std::string get_module_version()
Return the version of this module, as a string.
std::string create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="")
Create a temporary file.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:56
Key< 12 > SparseStringKey
The type used to identify sparse string attributes in the Particles.
Definition: base_types.h:86
std::string get_copyright()
Get the IMP copyright notice.