IMP logo
IMP Reference Guide  develop.ef7183ce54,2026/10/07
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  def _get_jax(self, space):
5471  """Return a JAX implementation of this Restraint.
5472  Implement this method in a Restraint subclass to provide
5473  an equivalent function using [JAX](https://docs.jax.dev/)
5474  that scores the current JAX Model. See also _wrap_jax.
5475 
5476  @param space The space in which the restraint is evaluated
5477  (e.g. a periodic box). See IMP._jax_util.Space.
5478  """
5479  raise NotImplementedError(
5480  f"No JAX implementation for {self} ({type(self)})")
5481 
5482  def _evaluate_jax(self, space=None):
5483  """Similar to evaluate(False), but using JAX.
5484  This is intended to be useful for testing purposes. It will likely
5485  not be particularly fast as it will copy the IMP Model and
5486  jax.jit-compile the scoring function each time.
5487 
5488  @param space The space in which the restraint is evaluated
5489  (e.g. a periodic box). See IMP._jax_util.Space. If not
5490  specified, an unbounded (free) space is used.
5491  """
5492  import jax
5493  import IMP.jax
5494  ji = self._get_jax(space=space or IMP.jax.FreeSpace)
5495  jm = ji.get_jax_model()
5496  j = jax.jit(ji.score_func)
5497  return j(jm)
5498 
5499  def __disown__(self):
5500  self.this.disown()
5501  _IMP_kernel.disown_Restraint(self)
5502  return weakref.proxy(self)
5503 
5504  def do_destroy(self):
5505  r"""do_destroy(Restraint self)"""
5506  return _IMP_kernel.Restraint_do_destroy(self)
5507 
5508  def handle_set_has_required_score_states(self, arg0):
5509  r"""handle_set_has_required_score_states(Restraint self, bool arg0)"""
5510  return _IMP_kernel.Restraint_handle_set_has_required_score_states(self, arg0)
5511 
5512  def do_get_inputs(self):
5513  r"""do_get_inputs(Restraint self) -> IMP::ModelObjectsTemp"""
5514  return _IMP_kernel.Restraint_do_get_inputs(self)
5515 
5516  def do_get_interactions(self):
5517  r"""do_get_interactions(Restraint self) -> IMP::ModelObjectsTemps"""
5518  return _IMP_kernel.Restraint_do_get_interactions(self)
5519 
5520 # Register Restraint in _IMP_kernel:
5521 _IMP_kernel.Restraint_swigregister(Restraint)
5522 class _RestraintsAdaptor(_InputAdaptor):
5523  r"""Proxy of C++ IMP::RestraintsAdaptor class."""
5524 
5525  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5526  __repr__ = _swig_repr
5527 
5528  def __init__(self, *args):
5529  r"""
5530  __init__(_RestraintsAdaptor self) -> _RestraintsAdaptor
5531  __init__(_RestraintsAdaptor self, IMP::Restraints const & sf) -> _RestraintsAdaptor
5532  __init__(_RestraintsAdaptor self, IMP::RestraintsTemp const & sf) -> _RestraintsAdaptor
5533  __init__(_RestraintsAdaptor self, Restraint sf) -> _RestraintsAdaptor
5534  """
5535  _IMP_kernel._RestraintsAdaptor_swiginit(self, _IMP_kernel.new__RestraintsAdaptor(*args))
5536  __swig_destroy__ = _IMP_kernel.delete__RestraintsAdaptor
5537 
5538 # Register _RestraintsAdaptor in _IMP_kernel:
5539 _IMP_kernel._RestraintsAdaptor_swigregister(_RestraintsAdaptor)
5540 class RestraintSet(Restraint):
5541  r"""Proxy of C++ IMP::RestraintSet class."""
5542 
5543  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5544 
5545  def __init__(self, *args):
5546  r"""
5547  __init__(RestraintSet self, Model m, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5548  __init__(RestraintSet self, Model m, std::string const & name="RestraintSet %1%") -> RestraintSet
5549  __init__(RestraintSet self, IMP::RestraintsTemp const & rs, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5550  __init__(RestraintSet self) -> RestraintSet
5551  """
5552  if self.__class__ == RestraintSet:
5553  _self = None
5554  else:
5555  _self = self
5556  _IMP_kernel.RestraintSet_swiginit(self, _IMP_kernel.new_RestraintSet(_self, *args))
5557 
5558  if self.__class__ != RestraintSet:
5559  _director_objects.register(self)
5560 
5561 
5562 
5563 
5564  def unprotected_evaluate(self, da):
5565  r"""unprotected_evaluate(RestraintSet self, DerivativeAccumulator da) -> double"""
5566  return _IMP_kernel.RestraintSet_unprotected_evaluate(self, da)
5567 
5568  def get_type_name(self):
5569  r"""get_type_name(RestraintSet self) -> std::string"""
5570  return _IMP_kernel.RestraintSet_get_type_name(self)
5571 
5572  def get_version_info(self):
5573  r"""get_version_info(RestraintSet self) -> VersionInfo"""
5574  return _IMP_kernel.RestraintSet_get_version_info(self)
5575  __swig_destroy__ = _IMP_kernel.delete_RestraintSet
5576  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)
5577  def __set_restraints(self, obj): _list_util.set_varlist(self.restraints, obj)
5578  def __del_restraints(self): _list_util.del_varlist(self.restraints)
5579  restraints = property(__get_restraints, __set_restraints, __del_restraints, doc="List of ##ucnames")
5580 
5581  def remove_restraint(self, d):
5582  r"""remove_restraint(RestraintSet self, Restraint d)"""
5583  return _IMP_kernel.RestraintSet_remove_restraint(self, d)
5584 
5585  def _python_index_restraint(self, d, start, stop):
5586  r"""_python_index_restraint(RestraintSet self, Restraint d, unsigned int start, unsigned int stop) -> unsigned int"""
5587  return _IMP_kernel.RestraintSet__python_index_restraint(self, d, start, stop)
5588 
5589  def remove_restraints(self, d):
5590  r"""remove_restraints(RestraintSet self, IMP::Restraints const & d)"""
5591  return _IMP_kernel.RestraintSet_remove_restraints(self, d)
5592 
5593  def set_restraints(self, ps):
5594  r"""set_restraints(RestraintSet self, IMP::Restraints const & ps)"""
5595  return _IMP_kernel.RestraintSet_set_restraints(self, ps)
5596 
5597  def set_restraints_order(self, objs):
5598  r"""set_restraints_order(RestraintSet self, IMP::Restraints const & objs)"""
5599  return _IMP_kernel.RestraintSet_set_restraints_order(self, objs)
5600 
5601  def add_restraint(self, obj):
5602  r"""add_restraint(RestraintSet self, Restraint obj) -> unsigned int"""
5603  return _IMP_kernel.RestraintSet_add_restraint(self, obj)
5604 
5605  def add_restraints(self, objs):
5606  r"""add_restraints(RestraintSet self, IMP::Restraints const & objs)"""
5607  return _IMP_kernel.RestraintSet_add_restraints(self, objs)
5608 
5609  def clear_restraints(self):
5610  r"""clear_restraints(RestraintSet self)"""
5611  return _IMP_kernel.RestraintSet_clear_restraints(self)
5612 
5613  def get_number_of_restraints(self):
5614  r"""get_number_of_restraints(RestraintSet self) -> unsigned int"""
5615  return _IMP_kernel.RestraintSet_get_number_of_restraints(self)
5616 
5617  def get_has_restraints(self):
5618  r"""get_has_restraints(RestraintSet self) -> bool"""
5619  return _IMP_kernel.RestraintSet_get_has_restraints(self)
5620 
5621  def get_restraint(self, i):
5622  r"""get_restraint(RestraintSet self, unsigned int i) -> Restraint"""
5623  return _IMP_kernel.RestraintSet_get_restraint(self, i)
5624 
5625  def get_restraints(self):
5626  r"""get_restraints(RestraintSet self) -> IMP::Restraints"""
5627  return _IMP_kernel.RestraintSet_get_restraints(self)
5628 
5629  def erase_restraint(self, i):
5630  r"""erase_restraint(RestraintSet self, unsigned int i)"""
5631  return _IMP_kernel.RestraintSet_erase_restraint(self, i)
5632 
5633  def reserve_restraints(self, sz):
5634  r"""reserve_restraints(RestraintSet self, unsigned int sz)"""
5635  return _IMP_kernel.RestraintSet_reserve_restraints(self, sz)
5636 
5637  def get_non_sets_and_sets(self):
5638  r"""get_non_sets_and_sets(RestraintSet self) -> std::pair< IMP::RestraintsTemp,IMP::RestraintSetsTemp >"""
5639  return _IMP_kernel.RestraintSet_get_non_sets_and_sets(self)
5640 
5641  def do_get_inputs(self):
5642  r"""do_get_inputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5643  return _IMP_kernel.RestraintSet_do_get_inputs(self)
5644 
5645  def create_scoring_function(self, *args):
5646  r"""create_scoring_function(RestraintSet self, double weight=1.0, double max=std::numeric_limits< double >::max()) -> ScoringFunction"""
5647  return _IMP_kernel.RestraintSet_create_scoring_function(self, *args)
5648 
5649  def get_last_score(self):
5650  r"""get_last_score(RestraintSet self) -> double"""
5651  return _IMP_kernel.RestraintSet_get_last_score(self)
5652 
5653  def __str__(self):
5654  r"""__str__(RestraintSet self) -> std::string"""
5655  return _IMP_kernel.RestraintSet___str__(self)
5656 
5657  def __repr__(self):
5658  r"""__repr__(RestraintSet self) -> std::string"""
5659  return _IMP_kernel.RestraintSet___repr__(self)
5660 
5661  @staticmethod
5662  def get_from(o):
5663  return _object_cast_to_RestraintSet(o)
5664 
5665 
5666  def do_show(self, out):
5667  pass
5668 
5669  @staticmethod
5670  def get_from(o):
5671  return _object_cast_to_RestraintSet(o)
5672 
5673 
5674  def _get_as_binary(self):
5675  r"""_get_as_binary(RestraintSet self) -> PyObject *"""
5676  return _IMP_kernel.RestraintSet__get_as_binary(self)
5677 
5678  def _set_from_binary(self, p):
5679  r"""_set_from_binary(RestraintSet self, PyObject * p)"""
5680  return _IMP_kernel.RestraintSet__set_from_binary(self, p)
5681 
5682  def __getstate__(self):
5683  p = self._get_as_binary()
5684  if len(self.__dict__) > 1:
5685  d = self.__dict__.copy()
5686  del d['this']
5687  p = (d, p)
5688  return p
5689 
5690  def __setstate__(self, p):
5691  if not hasattr(self, 'this'):
5692  self.__init__()
5693  if isinstance(p, tuple):
5694  d, p = p
5695  self.__dict__.update(d)
5696  return self._set_from_binary(p)
5697 
5698 
5699  def _get_restraint_jax_funcs_keys(self, space):
5700  jis = [r.get_derived_object()._get_jax(space) for r in self.restraints]
5701  funcs = [j.score_func for j in jis]
5702  keys = frozenset(x for j in jis for x in j._keys)
5703  return funcs, keys
5704 
5705  def _get_jax(self, space):
5706  funcs, keys = self._get_restraint_jax_funcs_keys(space)
5707  def jax_sf(jm):
5708  if funcs:
5709  return sum(f(jm) for f in funcs)
5710  else:
5711  # sum([]) returns int, but we must return float
5712  return 0.
5713  return self._wrap_jax(jax_sf, keys=keys)
5714 
5715  def __disown__(self):
5716  self.this.disown()
5717  _IMP_kernel.disown_RestraintSet(self)
5718  return weakref.proxy(self)
5719 
5720  def do_destroy(self):
5721  r"""do_destroy(RestraintSet self)"""
5722  return _IMP_kernel.RestraintSet_do_destroy(self)
5723 
5724  def handle_set_has_required_score_states(self, arg0):
5725  r"""handle_set_has_required_score_states(RestraintSet self, bool arg0)"""
5726  return _IMP_kernel.RestraintSet_handle_set_has_required_score_states(self, arg0)
5727 
5728  def do_get_outputs(self):
5729  r"""do_get_outputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5730  return _IMP_kernel.RestraintSet_do_get_outputs(self)
5731 
5732  def do_get_interactions(self):
5733  r"""do_get_interactions(RestraintSet self) -> IMP::ModelObjectsTemps"""
5734  return _IMP_kernel.RestraintSet_do_get_interactions(self)
5735 
5736  def do_create_decomposition(self):
5737  r"""do_create_decomposition(RestraintSet self) -> IMP::Restraints"""
5738  return _IMP_kernel.RestraintSet_do_create_decomposition(self)
5739 
5740  def do_create_current_decomposition(self):
5741  r"""do_create_current_decomposition(RestraintSet self) -> IMP::Restraints"""
5742  return _IMP_kernel.RestraintSet_do_create_current_decomposition(self)
5743 
5744  def do_add_score_and_derivatives(self, sa):
5745  r"""do_add_score_and_derivatives(RestraintSet self, ScoreAccumulator sa)"""
5746  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives(self, sa)
5747 
5748  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5749  r"""do_add_score_and_derivatives_moved(RestraintSet self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5750  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5751 
5752 # Register RestraintSet in _IMP_kernel:
5753 _IMP_kernel.RestraintSet_swigregister(RestraintSet)
5754 
5755 def get_restraints(rs):
5756  r"""get_restraints(IMP::RestraintsTemp const & rs) -> IMP::RestraintsTemp"""
5757  return _IMP_kernel.get_restraints(rs)
5758 
5759 def _check_particle(p, a):
5760  if (not p.get_is_active()):
5761  raise ValueError("Inactive Particle")
5762  if (type(a)() == a):
5763  raise IndexError("Cannot use default Index")
5764  if (not p.has_attribute(a)):
5765  raise IndexError("Particle does not have attribute")
5766 
5767 class Particle(ModelObject):
5768  r"""Proxy of C++ IMP::Particle class."""
5769 
5770  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5771 
5772  def get_version_info(self):
5773  r"""get_version_info(Particle self) -> VersionInfo"""
5774  return _IMP_kernel.Particle_get_version_info(self)
5775  __swig_destroy__ = _IMP_kernel.delete_Particle
5776 
5777  def __init__(self, *args):
5778  r"""
5779  __init__(Particle self, Model m, std::string name) -> Particle
5780  __init__(Particle self, Model m) -> Particle
5781  __init__(Particle self) -> Particle
5782  """
5783  _IMP_kernel.Particle_swiginit(self, _IMP_kernel.new_Particle(*args))
5784 
5785  def get_float_keys(self):
5786  r"""get_float_keys(Particle self) -> IMP::FloatKeys"""
5787  return _IMP_kernel.Particle_get_float_keys(self)
5788 
5789  def get_floats_keys(self):
5790  r"""get_floats_keys(Particle self) -> IMP::FloatsKeys"""
5791  return _IMP_kernel.Particle_get_floats_keys(self)
5792 
5793  def get_int_keys(self):
5794  r"""get_int_keys(Particle self) -> IMP::IntKeys"""
5795  return _IMP_kernel.Particle_get_int_keys(self)
5796 
5797  def get_ints_keys(self):
5798  r"""get_ints_keys(Particle self) -> IMP::IntsKeys"""
5799  return _IMP_kernel.Particle_get_ints_keys(self)
5800 
5801  def get_string_keys(self):
5802  r"""get_string_keys(Particle self) -> IMP::StringKeys"""
5803  return _IMP_kernel.Particle_get_string_keys(self)
5804 
5805  def get_object_keys(self):
5806  r"""get_object_keys(Particle self) -> IMP::ObjectKeys"""
5807  return _IMP_kernel.Particle_get_object_keys(self)
5808 
5809  def add_cache_attribute(self, *args):
5810  r"""
5811  add_cache_attribute(Particle self, FloatKey name, IMP::Float value)
5812  add_cache_attribute(Particle self, FloatsKey name, IMP::Floats value)
5813  add_cache_attribute(Particle self, IntKey name, IMP::Int value)
5814  add_cache_attribute(Particle self, IntsKey name, IMP::Ints value)
5815  add_cache_attribute(Particle self, StringKey name, IMP::String value)
5816  add_cache_attribute(Particle self, ObjectKey name, Object value)
5817  add_cache_attribute(Particle self, IMP::WeakObjectKey name, Object value)
5818  """
5819  return _IMP_kernel.Particle_add_cache_attribute(self, *args)
5820 
5821  def get_weak_object_keys(self):
5822  r"""get_weak_object_keys(Particle self) -> IMP::WeakObjectKeys"""
5823  return _IMP_kernel.Particle_get_weak_object_keys(self)
5824 
5825  def add_to_derivative(self, *args):
5826  r"""
5827  add_to_derivative(Particle self, FloatKey key, IMP::Float value, DerivativeAccumulator da)
5828  add_to_derivative(Particle self, Vector3DDerivKey key, Vector3D value, DerivativeAccumulator da)
5829  add_to_derivative(Particle self, Vector4DDerivKey key, Vector4D value, DerivativeAccumulator da)
5830  """
5831  return _IMP_kernel.Particle_add_to_derivative(self, *args)
5832 
5833  def set_is_optimized(self, *args):
5834  r"""
5835  set_is_optimized(Particle self, FloatKey k, bool tf)
5836  set_is_optimized(Particle self, Vector3DDerivKey k, bool tf)
5837  set_is_optimized(Particle self, Vector4DDerivKey k, bool tf)
5838  """
5839  return _IMP_kernel.Particle_set_is_optimized(self, *args)
5840 
5841  def get_is_optimized(self, *args):
5842  r"""
5843  get_is_optimized(Particle self, FloatKey k) -> bool
5844  get_is_optimized(Particle self, Vector3DDerivKey k) -> bool
5845  get_is_optimized(Particle self, Vector4DDerivKey k) -> bool
5846  """
5847  return _IMP_kernel.Particle_get_is_optimized(self, *args)
5848 
5849  def get_derivative(self, *args):
5850  r"""
5851  get_derivative(Particle self, FloatKey k) -> IMP::Float
5852  get_derivative(Particle self, Vector3DDerivKey k) -> Vector3D
5853  get_derivative(Particle self, Vector4DDerivKey k) -> Vector4D
5854  """
5855  return _IMP_kernel.Particle_get_derivative(self, *args)
5856 
5857  def add_attribute(self, *args):
5858  r"""
5859  add_attribute(Particle self, FloatKey name, IMP::Float initial_value)
5860  add_attribute(Particle self, FloatsKey name, IMP::Floats initial_value)
5861  add_attribute(Particle self, IntKey name, IMP::Int initial_value)
5862  add_attribute(Particle self, IntsKey name, IMP::Ints initial_value)
5863  add_attribute(Particle self, StringKey name, IMP::String initial_value)
5864  add_attribute(Particle self, ObjectKey name, Object initial_value)
5865  add_attribute(Particle self, IMP::WeakObjectKey name, Object initial_value)
5866  add_attribute(Particle self, SparseStringKey name, IMP::String initial_value)
5867  add_attribute(Particle self, SparseIntKey name, IMP::Int initial_value)
5868  add_attribute(Particle self, SparseFloatKey name, IMP::Float initial_value)
5869  add_attribute(Particle self, SparseParticleIndexKey name, ParticleIndex initial_value)
5870  add_attribute(Particle self, FloatKey name, IMP::Float const initial_value, bool optimized)
5871  add_attribute(Particle self, ParticleIndexKey k, Particle v)
5872  """
5873  return _IMP_kernel.Particle_add_attribute(self, *args)
5874 
5875  def has_attribute(self, *args):
5876  r"""
5877  has_attribute(Particle self, FloatKey name) -> bool
5878  has_attribute(Particle self, FloatsKey name) -> bool
5879  has_attribute(Particle self, IntKey name) -> bool
5880  has_attribute(Particle self, IntsKey name) -> bool
5881  has_attribute(Particle self, StringKey name) -> bool
5882  has_attribute(Particle self, ObjectKey name) -> bool
5883  has_attribute(Particle self, IMP::WeakObjectKey name) -> bool
5884  has_attribute(Particle self, SparseStringKey name) -> bool
5885  has_attribute(Particle self, SparseIntKey name) -> bool
5886  has_attribute(Particle self, SparseFloatKey name) -> bool
5887  has_attribute(Particle self, SparseParticleIndexKey name) -> bool
5888  has_attribute(Particle self, ParticleIndexKey k) -> bool
5889  """
5890  return _IMP_kernel.Particle_has_attribute(self, *args)
5891 
5892  def set_value(self, *args):
5893  r"""
5894  set_value(Particle self, FloatKey name, IMP::Float value)
5895  set_value(Particle self, FloatsKey name, IMP::Floats value)
5896  set_value(Particle self, IntKey name, IMP::Int value)
5897  set_value(Particle self, IntsKey name, IMP::Ints value)
5898  set_value(Particle self, StringKey name, IMP::String value)
5899  set_value(Particle self, ObjectKey name, Object value)
5900  set_value(Particle self, IMP::WeakObjectKey name, Object value)
5901  set_value(Particle self, SparseStringKey name, IMP::String value)
5902  set_value(Particle self, SparseIntKey name, IMP::Int value)
5903  set_value(Particle self, SparseFloatKey name, IMP::Float value)
5904  set_value(Particle self, SparseParticleIndexKey name, ParticleIndex value)
5905  set_value(Particle self, ParticleIndexKey k, Particle v)
5906  """
5907  return _IMP_kernel.Particle_set_value(self, *args)
5908 
5909  def get_value(self, *args):
5910  r"""
5911  get_value(Particle self, FloatKey name) -> IMP::Float
5912  get_value(Particle self, FloatsKey name) -> IMP::Floats
5913  get_value(Particle self, IntKey name) -> IMP::Int
5914  get_value(Particle self, IntsKey name) -> IMP::Ints
5915  get_value(Particle self, StringKey name) -> IMP::String
5916  get_value(Particle self, ObjectKey name) -> Object
5917  get_value(Particle self, IMP::WeakObjectKey name) -> Object
5918  get_value(Particle self, SparseStringKey name) -> IMP::String
5919  get_value(Particle self, SparseIntKey name) -> IMP::Int
5920  get_value(Particle self, SparseFloatKey name) -> IMP::Float
5921  get_value(Particle self, SparseParticleIndexKey name) -> ParticleIndex
5922  get_value(Particle self, ParticleIndexKey k) -> Particle
5923  """
5924  return _IMP_kernel.Particle_get_value(self, *args)
5925 
5926  def remove_attribute(self, *args):
5927  r"""
5928  remove_attribute(Particle self, FloatKey name)
5929  remove_attribute(Particle self, FloatsKey name)
5930  remove_attribute(Particle self, IntKey name)
5931  remove_attribute(Particle self, IntsKey name)
5932  remove_attribute(Particle self, StringKey name)
5933  remove_attribute(Particle self, ObjectKey name)
5934  remove_attribute(Particle self, IMP::WeakObjectKey name)
5935  remove_attribute(Particle self, SparseStringKey name)
5936  remove_attribute(Particle self, SparseIntKey name)
5937  remove_attribute(Particle self, SparseFloatKey name)
5938  remove_attribute(Particle self, SparseParticleIndexKey name)
5939  remove_attribute(Particle self, ParticleIndexKey k)
5940  """
5941  return _IMP_kernel.Particle_remove_attribute(self, *args)
5942 
5943  def get_particle_keys(self):
5944  r"""get_particle_keys(Particle self) -> IMP::ParticleIndexKeys"""
5945  return _IMP_kernel.Particle_get_particle_keys(self)
5946 
5947  def show(self, *args):
5948  r"""show(Particle self, _ostream out=std::cout)"""
5949  return _IMP_kernel.Particle_show(self, *args)
5950 
5951  def get_is_active(self):
5952  r"""get_is_active(Particle self) -> bool"""
5953  return _IMP_kernel.Particle_get_is_active(self)
5954 
5955  def get_index(self):
5956  r"""get_index(Particle self) -> ParticleIndex"""
5957  return _IMP_kernel.Particle_get_index(self)
5958 
5959  def __eq__(self, *args):
5960  r"""
5961  __eq__(Particle self, Particle o) -> bool
5962  __eq__(Particle self, Decorator d) -> bool
5963  """
5964  return _IMP_kernel.Particle___eq__(self, *args)
5965 
5966  def __ne__(self, *args):
5967  r"""
5968  __ne__(Particle self, Particle o) -> bool
5969  __ne__(Particle self, Decorator d) -> bool
5970  """
5971  return _IMP_kernel.Particle___ne__(self, *args)
5972 
5973  def __le__(self, *args):
5974  r"""
5975  __le__(Particle self, Particle o) -> bool
5976  __le__(Particle self, Decorator d) -> bool
5977  """
5978  return _IMP_kernel.Particle___le__(self, *args)
5979 
5980  def __lt__(self, *args):
5981  r"""
5982  __lt__(Particle self, Particle o) -> bool
5983  __lt__(Particle self, Decorator d) -> bool
5984  """
5985  return _IMP_kernel.Particle___lt__(self, *args)
5986 
5987  def __ge__(self, *args):
5988  r"""
5989  __ge__(Particle self, Particle o) -> bool
5990  __ge__(Particle self, Decorator d) -> bool
5991  """
5992  return _IMP_kernel.Particle___ge__(self, *args)
5993 
5994  def __gt__(self, *args):
5995  r"""
5996  __gt__(Particle self, Particle o) -> bool
5997  __gt__(Particle self, Decorator d) -> bool
5998  """
5999  return _IMP_kernel.Particle___gt__(self, *args)
6000 
6001  __hash__ = ModelObject.__hash__
6002 
6003 
6004  def __str__(self):
6005  r"""__str__(Particle self) -> std::string"""
6006  return _IMP_kernel.Particle___str__(self)
6007 
6008  def __repr__(self):
6009  r"""__repr__(Particle self) -> std::string"""
6010  return _IMP_kernel.Particle___repr__(self)
6011 
6012  @staticmethod
6013  def get_from(o):
6014  return _object_cast_to_Particle(o)
6015 
6016 
6017  def _get_as_binary(self):
6018  r"""_get_as_binary(Particle self) -> PyObject *"""
6019  return _IMP_kernel.Particle__get_as_binary(self)
6020 
6021  def _set_from_binary(self, p):
6022  r"""_set_from_binary(Particle self, PyObject * p)"""
6023  return _IMP_kernel.Particle__set_from_binary(self, p)
6024 
6025  def __getstate__(self):
6026  p = self._get_as_binary()
6027  if len(self.__dict__) > 1:
6028  d = self.__dict__.copy()
6029  del d['this']
6030  p = (d, p)
6031  return p
6032 
6033  def __setstate__(self, p):
6034  if not hasattr(self, 'this'):
6035  self.__init__()
6036  if isinstance(p, tuple):
6037  d, p = p
6038  self.__dict__.update(d)
6039  return self._set_from_binary(p)
6040 
6041 
6042 # Register Particle in _IMP_kernel:
6043 _IMP_kernel.Particle_swigregister(Particle)
6044 class _ParticleAdaptor(_InputAdaptor):
6045  r"""Proxy of C++ IMP::ParticleAdaptor class."""
6046 
6047  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6048  __repr__ = _swig_repr
6049 
6050  def __init__(self, *args):
6051  r"""
6052  __init__(_ParticleAdaptor self) -> _ParticleAdaptor
6053  __init__(_ParticleAdaptor self, Particle p) -> _ParticleAdaptor
6054  __init__(_ParticleAdaptor self, Decorator d) -> _ParticleAdaptor
6055  """
6056  _IMP_kernel._ParticleAdaptor_swiginit(self, _IMP_kernel.new__ParticleAdaptor(*args))
6057 
6058  def get_model(self):
6059  r"""get_model(_ParticleAdaptor self) -> Model"""
6060  return _IMP_kernel._ParticleAdaptor_get_model(self)
6061 
6062  def get_particle_index(self):
6063  r"""get_particle_index(_ParticleAdaptor self) -> ParticleIndex"""
6064  return _IMP_kernel._ParticleAdaptor_get_particle_index(self)
6065  __swig_destroy__ = _IMP_kernel.delete__ParticleAdaptor
6066 
6067 # Register _ParticleAdaptor in _IMP_kernel:
6068 _IMP_kernel._ParticleAdaptor_swigregister(_ParticleAdaptor)
6069 class _DependencyGraphVertexIndex(object):
6070  r"""Proxy of C++ IMP::DependencyGraphVertexIndex class."""
6071 
6072  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6073  __repr__ = _swig_repr
6074 
6075  def __init__(self):
6076  r"""__init__(_DependencyGraphVertexIndex self) -> _DependencyGraphVertexIndex"""
6077  _IMP_kernel._DependencyGraphVertexIndex_swiginit(self, _IMP_kernel.new__DependencyGraphVertexIndex())
6078  __swig_destroy__ = _IMP_kernel.delete__DependencyGraphVertexIndex
6079 
6080 # Register _DependencyGraphVertexIndex in _IMP_kernel:
6081 _IMP_kernel._DependencyGraphVertexIndex_swigregister(_DependencyGraphVertexIndex)
6082 
6083 def show_as_graphviz(name, out):
6084  r"""show_as_graphviz(IMP::DependencyGraph const & name, TextOutput out)"""
6085  return _IMP_kernel.show_as_graphviz(name, out)
6086 
6087 def get_vertex_index(g):
6088  r"""get_vertex_index(IMP::DependencyGraph const & g) -> _DependencyGraphVertexIndex"""
6089  return _IMP_kernel.get_vertex_index(g)
6090 
6091 def get_dependency_graph(m):
6092  r"""get_dependency_graph(Model m) -> IMP::DependencyGraph"""
6093  return _IMP_kernel.get_dependency_graph(m)
6094 
6096  r"""get_pruned_dependency_graph(Model m) -> IMP::DependencyGraph"""
6097  return _IMP_kernel.get_pruned_dependency_graph(m)
6098 
6099 def get_dependent_particles(p, all, dg, index):
6100  r"""get_dependent_particles(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ParticlesTemp"""
6101  return _IMP_kernel.get_dependent_particles(p, all, dg, index)
6102 
6103 def get_required_score_states(*args):
6104  r"""
6105  get_required_score_states(IMP::ModelObjectsTemp const & mos, IMP::ScoreStatesTemp exclude=IMP::ScoreStatesTemp()) -> IMP::ScoreStatesTemp
6106  get_required_score_states(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ScoreStatesTemp
6107  get_required_score_states(Model m, ParticleIndex pi) -> IMP::ScoreStatesTemp
6108  """
6109  return _IMP_kernel.get_required_score_states(*args)
6110 class ScoringFunction(ModelObject):
6111  r"""Proxy of C++ IMP::ScoringFunction class."""
6112 
6113  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6114 
6115  def do_add_score_and_derivatives(self, sa, ss):
6116  r"""do_add_score_and_derivatives(ScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
6117  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives(self, sa, ss)
6118 
6119  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
6120  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)"""
6121  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
6122 
6123  def get_score_accumulator_if_below(self, deriv, max):
6124  r"""get_score_accumulator_if_below(ScoringFunction self, bool deriv, double max) -> ScoreAccumulator"""
6125  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_below(self, deriv, max)
6126 
6127  def get_score_accumulator_if_good(self, deriv):
6128  r"""get_score_accumulator_if_good(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6129  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_good(self, deriv)
6130 
6131  def get_score_accumulator(self, deriv):
6132  r"""get_score_accumulator(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6133  return _IMP_kernel.ScoringFunction_get_score_accumulator(self, deriv)
6134 
6135  def __init__(self, *args):
6136  r"""
6137  __init__(ScoringFunction self, Model m, std::string name) -> ScoringFunction
6138  __init__(ScoringFunction self) -> ScoringFunction
6139  """
6140  if self.__class__ == ScoringFunction:
6141  _self = None
6142  else:
6143  _self = self
6144  _IMP_kernel.ScoringFunction_swiginit(self, _IMP_kernel.new_ScoringFunction(_self, *args))
6145 
6146  if self.__class__ != ScoringFunction:
6147  _director_objects.register(self)
6148 
6149 
6150 
6151 
6152  def do_get_outputs(self):
6153  r"""do_get_outputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6154  return _IMP_kernel.ScoringFunction_do_get_outputs(self)
6155 
6156  def evaluate(self, derivatives):
6157  r"""evaluate(ScoringFunction self, bool derivatives) -> double"""
6158  return _IMP_kernel.ScoringFunction_evaluate(self, derivatives)
6159 
6160  def evaluate_if_good(self, derivatives):
6161  r"""evaluate_if_good(ScoringFunction self, bool derivatives) -> double"""
6162  return _IMP_kernel.ScoringFunction_evaluate_if_good(self, derivatives)
6163 
6164  def evaluate_if_below(self, derivatives, max):
6165  r"""evaluate_if_below(ScoringFunction self, bool derivatives, double max) -> double"""
6166  return _IMP_kernel.ScoringFunction_evaluate_if_below(self, derivatives, max)
6167 
6168  def evaluate_moved(self, derivatives, moved_pis, reset_pis):
6169  r"""evaluate_moved(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6170  return _IMP_kernel.ScoringFunction_evaluate_moved(self, derivatives, moved_pis, reset_pis)
6171 
6172  def evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max):
6173  r"""evaluate_moved_if_below(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
6174  return _IMP_kernel.ScoringFunction_evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max)
6175 
6176  def evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis):
6177  r"""evaluate_moved_if_good(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6178  return _IMP_kernel.ScoringFunction_evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis)
6179 
6180  def clear_moved_cache(self):
6181  r"""clear_moved_cache(ScoringFunction self)"""
6182  return _IMP_kernel.ScoringFunction_clear_moved_cache(self)
6183 
6184  def get_had_good_score(self):
6185  r"""get_had_good_score(ScoringFunction self) -> bool"""
6186  return _IMP_kernel.ScoringFunction_get_had_good_score(self)
6187 
6188  def get_last_score(self):
6189  r"""get_last_score(ScoringFunction self) -> double"""
6190  return _IMP_kernel.ScoringFunction_get_last_score(self)
6191 
6192  def create_restraints(self):
6193  r"""create_restraints(ScoringFunction self) -> IMP::Restraints"""
6194  return _IMP_kernel.ScoringFunction_create_restraints(self)
6195 
6196  def get_single_restraint(self):
6197  r"""get_single_restraint(ScoringFunction self) -> Restraint"""
6198  return _IMP_kernel.ScoringFunction_get_single_restraint(self)
6199 
6200  def __str__(self):
6201  r"""__str__(ScoringFunction self) -> std::string"""
6202  return _IMP_kernel.ScoringFunction___str__(self)
6203 
6204  def __repr__(self):
6205  r"""__repr__(ScoringFunction self) -> std::string"""
6206  return _IMP_kernel.ScoringFunction___repr__(self)
6207 
6208  @staticmethod
6209  def get_from(o):
6210  return _object_cast_to_ScoringFunction(o)
6211 
6212 
6213  def do_show(self, out):
6214  pass
6215 
6216  @staticmethod
6217  def get_from(o):
6218  return _object_cast_to_ScoringFunction(o)
6219 
6220 
6221  def _get_jax(self, space=None):
6222  import IMP.jax
6223  space = space or IMP.jax.FreeSpace
6224  r = self.get_single_restraint()
6225  if r is None:
6226  raise NotImplementedError(
6227  f"No JAX implementation for {self} ({type(self)})")
6228  else:
6229  return r.get_derived_object()._get_jax(space)
6230 
6231  def _evaluate_jax(self, space=None):
6232  """Similar to evaluate(False), but using JAX.
6233  This is intended to be useful for testing purposes. It will likely
6234  not be particularly fast as it will copy the IMP Model and
6235  jax.jit-compile the scoring function each time.
6236 
6237  @param space The space in which the scoring function is evaluated
6238  (e.g. a periodic box). See IMP._jax_util.Space. If not
6239  specified, an unbounded (free) space is used.
6240  """
6241  import jax
6242  ji = self._get_jax(space)
6243  jm = ji.get_jax_model()
6244  j = jax.jit(ji.score_func)
6245  return j(jm)
6246 
6247  __swig_destroy__ = _IMP_kernel.delete_ScoringFunction
6248  def __disown__(self):
6249  self.this.disown()
6250  _IMP_kernel.disown_ScoringFunction(self)
6251  return weakref.proxy(self)
6252 
6253  def do_destroy(self):
6254  r"""do_destroy(ScoringFunction self)"""
6255  return _IMP_kernel.ScoringFunction_do_destroy(self)
6256 
6257  def handle_set_has_required_score_states(self, arg0):
6258  r"""handle_set_has_required_score_states(ScoringFunction self, bool arg0)"""
6259  return _IMP_kernel.ScoringFunction_handle_set_has_required_score_states(self, arg0)
6260 
6261  def do_get_inputs(self):
6262  r"""do_get_inputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6263  return _IMP_kernel.ScoringFunction_do_get_inputs(self)
6264 
6265  def do_get_interactions(self):
6266  r"""do_get_interactions(ScoringFunction self) -> IMP::ModelObjectsTemps"""
6267  return _IMP_kernel.ScoringFunction_do_get_interactions(self)
6268 
6269 # Register ScoringFunction in _IMP_kernel:
6270 _IMP_kernel.ScoringFunction_swigregister(ScoringFunction)
6271 
6272 def create_decomposition(*args):
6273  r"""
6274  create_decomposition(IMP::RestraintsTemp const & rs) -> IMP::Restraints
6275  create_decomposition(ScoringFunction sf) -> IMP::ScoringFunctions
6276  """
6277  return _IMP_kernel.create_decomposition(*args)
6278 class _ScoringFunctionAdaptor(_InputAdaptor):
6279  r"""Proxy of C++ IMP::ScoringFunctionAdaptor class."""
6280 
6281  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6282  __repr__ = _swig_repr
6283 
6284  def __init__(self, *args):
6285  r"""
6286  __init__(_ScoringFunctionAdaptor self) -> _ScoringFunctionAdaptor
6287  __init__(_ScoringFunctionAdaptor self, ScoringFunction sf) -> _ScoringFunctionAdaptor
6288  __init__(_ScoringFunctionAdaptor self, IMP::RestraintsTemp const & sf) -> _ScoringFunctionAdaptor
6289  __init__(_ScoringFunctionAdaptor self, IMP::Restraints const & sf) -> _ScoringFunctionAdaptor
6290  __init__(_ScoringFunctionAdaptor self, Restraint sf) -> _ScoringFunctionAdaptor
6291  """
6292  _IMP_kernel._ScoringFunctionAdaptor_swiginit(self, _IMP_kernel.new__ScoringFunctionAdaptor(*args))
6293  __swig_destroy__ = _IMP_kernel.delete__ScoringFunctionAdaptor
6294 
6295 # Register _ScoringFunctionAdaptor in _IMP_kernel:
6296 _IMP_kernel._ScoringFunctionAdaptor_swigregister(_ScoringFunctionAdaptor)
6297 
6298 def show_restraint_hierarchy(*args):
6299  r"""show_restraint_hierarchy(_ScoringFunctionAdaptor rs, _ostream out=std::cout)"""
6300  return _IMP_kernel.show_restraint_hierarchy(*args)
6301 class Undecorator(Object):
6302  r"""Proxy of C++ IMP::Undecorator class."""
6303 
6304  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6305 
6306  def __init__(self, m, name):
6307  r"""__init__(Undecorator self, Model m, std::string name) -> Undecorator"""
6308  if self.__class__ == Undecorator:
6309  _self = None
6310  else:
6311  _self = self
6312  _IMP_kernel.Undecorator_swiginit(self, _IMP_kernel.new_Undecorator(_self, m, name))
6313 
6314  if self.__class__ != Undecorator:
6315  _director_objects.register(self)
6316 
6317 
6318 
6319 
6320  def teardown(self, pi):
6321  r"""teardown(Undecorator self, ParticleIndex pi)"""
6322  return _IMP_kernel.Undecorator_teardown(self, pi)
6323 
6324  def __str__(self):
6325  r"""__str__(Undecorator self) -> std::string"""
6326  return _IMP_kernel.Undecorator___str__(self)
6327 
6328  def __repr__(self):
6329  r"""__repr__(Undecorator self) -> std::string"""
6330  return _IMP_kernel.Undecorator___repr__(self)
6331 
6332  @staticmethod
6333  def get_from(o):
6334  return _object_cast_to_Undecorator(o)
6335 
6336 
6337  def do_show(self, out):
6338  pass
6339 
6340  @staticmethod
6341  def get_from(o):
6342  return _object_cast_to_Undecorator(o)
6343 
6344  __swig_destroy__ = _IMP_kernel.delete_Undecorator
6345  def __disown__(self):
6346  self.this.disown()
6347  _IMP_kernel.disown_Undecorator(self)
6348  return weakref.proxy(self)
6349 
6350  def do_destroy(self):
6351  r"""do_destroy(Undecorator self)"""
6352  return _IMP_kernel.Undecorator_do_destroy(self)
6353 
6354 # Register Undecorator in _IMP_kernel:
6355 _IMP_kernel.Undecorator_swigregister(Undecorator)
6356 class Model(Object):
6357  r"""Proxy of C++ IMP::Model class."""
6358 
6359  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6360 
6361  def __init__(self, *args):
6362  r"""__init__(Model self, std::string name="Model %1%") -> Model"""
6363  _IMP_kernel.Model_swiginit(self, _IMP_kernel.new_Model(*args))
6364 
6365  if self not in _models_set:
6366  _models_set.add(self)
6367 
6368 
6369 
6370 
6371  def clear_particle_caches(self, pi):
6372  r"""clear_particle_caches(Model self, ParticleIndex pi)"""
6373  return _IMP_kernel.Model_clear_particle_caches(self, pi)
6374 
6375  def add_particle(self, name):
6376  r"""add_particle(Model self, std::string name) -> ParticleIndex"""
6377  return _IMP_kernel.Model_add_particle(self, name)
6378 
6379  def get_particle_name(self, pi):
6380  r"""get_particle_name(Model self, ParticleIndex pi) -> std::string"""
6381  return _IMP_kernel.Model_get_particle_name(self, pi)
6382 
6383  def add_undecorator(self, pi, d):
6384  r"""add_undecorator(Model self, ParticleIndex pi, Undecorator d)"""
6385  return _IMP_kernel.Model_add_undecorator(self, pi, d)
6386 
6387  def get_dependent_restraints_uncached(self, pi):
6388  r"""get_dependent_restraints_uncached(Model self, ParticleIndex pi) -> IMP::RestraintsTemp"""
6389  return _IMP_kernel.Model_get_dependent_restraints_uncached(self, pi)
6390 
6391  def get_dependent_particles_uncached(self, pi):
6392  r"""get_dependent_particles_uncached(Model self, ParticleIndex pi) -> IMP::ParticlesTemp"""
6393  return _IMP_kernel.Model_get_dependent_particles_uncached(self, pi)
6394 
6395  def get_dependent_score_states_uncached(self, pi):
6396  r"""get_dependent_score_states_uncached(Model self, ParticleIndex pi) -> IMP::ScoreStatesTemp"""
6397  return _IMP_kernel.Model_get_dependent_score_states_uncached(self, pi)
6398  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)
6399  def __set_score_states(self, obj): _list_util.set_varlist(self.score_states, obj)
6400  def __del_score_states(self): _list_util.del_varlist(self.score_states)
6401  score_states = property(__get_score_states, __set_score_states, __del_score_states, doc="List of ##ucnames")
6402 
6403  def remove_score_state(self, d):
6404  r"""remove_score_state(Model self, ScoreState d)"""
6405  return _IMP_kernel.Model_remove_score_state(self, d)
6406 
6407  def _python_index_score_state(self, d, start, stop):
6408  r"""_python_index_score_state(Model self, ScoreState d, unsigned int start, unsigned int stop) -> unsigned int"""
6409  return _IMP_kernel.Model__python_index_score_state(self, d, start, stop)
6410 
6411  def remove_score_states(self, d):
6412  r"""remove_score_states(Model self, IMP::ScoreStates const & d)"""
6413  return _IMP_kernel.Model_remove_score_states(self, d)
6414 
6415  def set_score_states(self, ps):
6416  r"""set_score_states(Model self, IMP::ScoreStates const & ps)"""
6417  return _IMP_kernel.Model_set_score_states(self, ps)
6418 
6419  def set_score_states_order(self, objs):
6420  r"""set_score_states_order(Model self, IMP::ScoreStates const & objs)"""
6421  return _IMP_kernel.Model_set_score_states_order(self, objs)
6422 
6423  def add_score_state(self, obj):
6424  r"""add_score_state(Model self, ScoreState obj) -> unsigned int"""
6425  return _IMP_kernel.Model_add_score_state(self, obj)
6426 
6427  def add_score_states(self, objs):
6428  r"""add_score_states(Model self, IMP::ScoreStates const & objs)"""
6429  return _IMP_kernel.Model_add_score_states(self, objs)
6430 
6431  def clear_score_states(self):
6432  r"""clear_score_states(Model self)"""
6433  return _IMP_kernel.Model_clear_score_states(self)
6434 
6435  def get_number_of_score_states(self):
6436  r"""get_number_of_score_states(Model self) -> unsigned int"""
6437  return _IMP_kernel.Model_get_number_of_score_states(self)
6438 
6439  def get_has_score_states(self):
6440  r"""get_has_score_states(Model self) -> bool"""
6441  return _IMP_kernel.Model_get_has_score_states(self)
6442 
6443  def get_score_state(self, i):
6444  r"""get_score_state(Model self, unsigned int i) -> ScoreState"""
6445  return _IMP_kernel.Model_get_score_state(self, i)
6446 
6447  def get_score_states(self):
6448  r"""get_score_states(Model self) -> IMP::ScoreStates"""
6449  return _IMP_kernel.Model_get_score_states(self)
6450 
6451  def erase_score_state(self, i):
6452  r"""erase_score_state(Model self, unsigned int i)"""
6453  return _IMP_kernel.Model_erase_score_state(self, i)
6454 
6455  def reserve_score_states(self, sz):
6456  r"""reserve_score_states(Model self, unsigned int sz)"""
6457  return _IMP_kernel.Model_reserve_score_states(self, sz)
6458 
6459  def update(self):
6460  r"""update(Model self)"""
6461  return _IMP_kernel.Model_update(self)
6462 
6463  def get_ordered_score_states(self):
6464  r"""get_ordered_score_states(Model self) -> IMP::ScoreStatesTemp"""
6465  return _IMP_kernel.Model_get_ordered_score_states(self)
6466 
6467  def add_cache_attribute(self, *args):
6468  r"""
6469  add_cache_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6470  add_cache_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6471  add_cache_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6472  add_cache_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6473  add_cache_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6474  add_cache_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6475  add_cache_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6476  add_cache_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6477  add_cache_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6478  add_cache_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6479  add_cache_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6480  add_cache_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6481  add_cache_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6482  """
6483  return _IMP_kernel.Model_add_cache_attribute(self, *args)
6484 
6485  def add_attribute(self, *args):
6486  r"""
6487  add_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6488  add_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6489  add_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6490  add_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6491  add_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6492  add_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6493  add_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6494  add_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6495  add_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6496  add_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6497  add_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6498  add_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6499  add_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6500  add_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6501  add_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6502  add_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6503  add_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6504  """
6505  return _IMP_kernel.Model_add_attribute(self, *args)
6506 
6507  def remove_attribute(self, *args):
6508  r"""
6509  remove_attribute(Model self, FloatKey attribute_key, ParticleIndex particle)
6510  remove_attribute(Model self, IntKey attribute_key, ParticleIndex particle)
6511  remove_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle)
6512  remove_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle)
6513  remove_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle)
6514  remove_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle)
6515  remove_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle)
6516  remove_attribute(Model self, IntsKey attribute_key, ParticleIndex particle)
6517  remove_attribute(Model self, StringKey attribute_key, ParticleIndex particle)
6518  remove_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle)
6519  remove_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle)
6520  remove_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle)
6521  remove_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle)
6522  remove_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle)
6523  remove_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle)
6524  remove_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle)
6525  remove_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle)
6526  """
6527  return _IMP_kernel.Model_remove_attribute(self, *args)
6528 
6529  def get_has_attribute(self, *args):
6530  r"""
6531  get_has_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> bool
6532  get_has_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> bool
6533  get_has_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> bool
6534  get_has_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> bool
6535  get_has_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> bool
6536  get_has_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> bool
6537  get_has_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> bool
6538  get_has_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> bool
6539  get_has_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> bool
6540  get_has_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> bool
6541  get_has_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6542  get_has_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> bool
6543  get_has_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> bool
6544  get_has_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> bool
6545  get_has_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> bool
6546  get_has_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> bool
6547  get_has_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6548  """
6549  return _IMP_kernel.Model_get_has_attribute(self, *args)
6550 
6551  def set_attribute(self, *args):
6552  r"""
6553  set_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6554  set_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6555  set_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6556  set_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6557  set_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6558  set_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6559  set_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6560  set_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6561  set_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6562  set_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6563  set_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6564  set_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6565  set_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6566  set_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6567  set_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6568  set_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6569  set_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6570  """
6571  return _IMP_kernel.Model_set_attribute(self, *args)
6572 
6573  def get_attribute(self, *args):
6574  r"""
6575  get_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6576  get_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> IMP::Int
6577  get_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> IMP::Floats
6578  get_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> Vector3D
6579  get_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> Vector4D
6580  get_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> Vector3D
6581  get_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> Vector4D
6582  get_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> IMP::Ints
6583  get_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> IMP::String
6584  get_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> IMP::ParticleIndexes
6585  get_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6586  get_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> Object
6587  get_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> Object
6588  get_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> IMP::String
6589  get_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> IMP::Int
6590  get_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6591  get_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6592  """
6593  return _IMP_kernel.Model_get_attribute(self, *args)
6594 
6595  def set_is_optimized(self, *args):
6596  r"""
6597  set_is_optimized(Model self, Vector3DDerivKey arg2, ParticleIndex arg3, bool arg4)
6598  set_is_optimized(Model self, Vector4DDerivKey arg2, ParticleIndex arg3, bool arg4)
6599  set_is_optimized(Model self, FloatKey arg2, ParticleIndex arg3, bool arg4)
6600  """
6601  return _IMP_kernel.Model_set_is_optimized(self, *args)
6602 
6603  def add_to_derivative(self, *args):
6604  r"""
6605  add_to_derivative(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D v, DerivativeAccumulator da)
6606  add_to_derivative(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D v, DerivativeAccumulator da)
6607  add_to_derivative(Model self, FloatKey k, ParticleIndex particle, double v, DerivativeAccumulator da)
6608  """
6609  return _IMP_kernel.Model_add_to_derivative(self, *args)
6610 
6611  def get_particle(self, p):
6612  r"""get_particle(Model self, ParticleIndex p) -> Particle"""
6613  return _IMP_kernel.Model_get_particle(self, p)
6614 
6615  def get_has_particle(self, p):
6616  r"""get_has_particle(Model self, ParticleIndex p) -> bool"""
6617  return _IMP_kernel.Model_get_has_particle(self, p)
6618 
6619  def get_particle_indexes(self):
6620  r"""get_particle_indexes(Model self) -> IMP::ParticleIndexes"""
6621  return _IMP_kernel.Model_get_particle_indexes(self)
6622 
6623  def get_model_objects(self):
6624  r"""get_model_objects(Model self) -> IMP::ModelObjectsTemp"""
6625  return _IMP_kernel.Model_get_model_objects(self)
6626 
6627  def remove_particle(self, pi):
6628  r"""remove_particle(Model self, ParticleIndex pi)"""
6629  return _IMP_kernel.Model_remove_particle(self, pi)
6630 
6631  def add_data(self, mk, o):
6632  r"""add_data(Model self, ModelKey mk, Object o)"""
6633  return _IMP_kernel.Model_add_data(self, mk, o)
6634 
6635  def get_data(self, mk):
6636  r"""get_data(Model self, ModelKey mk) -> Object"""
6637  return _IMP_kernel.Model_get_data(self, mk)
6638 
6639  def remove_data(self, mk):
6640  r"""remove_data(Model self, ModelKey mk)"""
6641  return _IMP_kernel.Model_remove_data(self, mk)
6642 
6643  def get_has_data(self, mk):
6644  r"""get_has_data(Model self, ModelKey mk) -> bool"""
6645  return _IMP_kernel.Model_get_has_data(self, mk)
6646 
6647  def get_age(self):
6648  r"""get_age(Model self) -> unsigned int"""
6649  return _IMP_kernel.Model_get_age(self)
6650 
6651  def get_trigger_last_updated(self, tk):
6652  r"""get_trigger_last_updated(Model self, TriggerKey tk) -> unsigned int"""
6653  return _IMP_kernel.Model_get_trigger_last_updated(self, tk)
6654 
6655  def set_trigger_updated(self, tk):
6656  r"""set_trigger_updated(Model self, TriggerKey tk)"""
6657  return _IMP_kernel.Model_set_trigger_updated(self, tk)
6658 
6659  def get_dependencies_updated(self):
6660  r"""get_dependencies_updated(Model self) -> unsigned int"""
6661  return _IMP_kernel.Model_get_dependencies_updated(self)
6662 
6663  def get_removed_particles_attributes_age(self):
6664  r"""get_removed_particles_attributes_age(Model self) -> unsigned int"""
6665  return _IMP_kernel.Model_get_removed_particles_attributes_age(self)
6666 
6667  def save_dependencies(self):
6668  r"""save_dependencies(Model self)"""
6669  return _IMP_kernel.Model_save_dependencies(self)
6670 
6671  def restore_dependencies(self):
6672  r"""restore_dependencies(Model self)"""
6673  return _IMP_kernel.Model_restore_dependencies(self)
6674 
6675  def get_particles_size(self):
6676  r"""get_particles_size(Model self) -> unsigned int"""
6677  return _IMP_kernel.Model_get_particles_size(self)
6678 
6679  def get_unique_id(self):
6680  r"""get_unique_id(Model self) -> uint32_t"""
6681  return _IMP_kernel.Model_get_unique_id(self)
6682 
6683  @staticmethod
6684  def get_by_unique_id(id):
6685  r"""get_by_unique_id(uint32_t id) -> Model"""
6686  return _IMP_kernel.Model_get_by_unique_id(id)
6687 
6688  def get_version_info(self):
6689  r"""get_version_info(Model self) -> VersionInfo"""
6690  return _IMP_kernel.Model_get_version_info(self)
6691  __swig_destroy__ = _IMP_kernel.delete_Model
6692  def __del__(self):
6693  r"""__del__(Model self)"""
6694 
6695  _director_objects.cleanup()
6696 
6697 
6698  pass
6699 
6700 
6701  def do_destroy(self):
6702  r"""do_destroy(Model self)"""
6703  return _IMP_kernel.Model_do_destroy(self)
6704 
6705  def __str__(self):
6706  r"""__str__(Model self) -> std::string"""
6707  return _IMP_kernel.Model___str__(self)
6708 
6709  def __repr__(self):
6710  r"""__repr__(Model self) -> std::string"""
6711  return _IMP_kernel.Model___repr__(self)
6712 
6713  @staticmethod
6714  def get_from(o):
6715  return _object_cast_to_Model(o)
6716 
6717 
6718  def _get_as_binary(self):
6719  r"""_get_as_binary(Model self) -> PyObject *"""
6720  return _IMP_kernel.Model__get_as_binary(self)
6721 
6722  def _set_from_binary(self, p):
6723  r"""_set_from_binary(Model self, PyObject * p)"""
6724  return _IMP_kernel.Model__set_from_binary(self, p)
6725 
6726  def __getstate__(self):
6727  p = self._get_as_binary()
6728  if len(self.__dict__) > 1:
6729  d = self.__dict__.copy()
6730  del d['this']
6731  p = (d, p)
6732  return p
6733 
6734  def __setstate__(self, p):
6735  if not hasattr(self, 'this'):
6736  self.__init__()
6737  if isinstance(p, tuple):
6738  d, p = p
6739  self.__dict__.update(d)
6740  return self._set_from_binary(p)
6741 
6742 
6743  def get_ints_numpy(self, k, read_only=False):
6744  """Get the model's attribute array for IntKey k as a NumPy array.
6745  The array is indexed by ParticleIndex; particles that don't have
6746  this attribute will either be off the end of the array or will have
6747  the value INT_MAX.
6748  This is a NumPy view that shares memory with the Model. Thus,
6749  any changes to values in this list will be reflected in the Model.
6750  Also, if the Model attribute array moves in memory (e.g. if particles
6751  or attributes are added) this array will be invalidated, so it is
6752  unsafe to keep it around long term.
6753  If read_only is set True, values in the array cannot be changed.
6754  """
6755  return _get_ints_numpy(self, k, self, read_only)
6756 
6757  def get_numpy(self, k, read_only=False):
6758  """Get the model's attribute array for any type of Key
6759  k as a NumPy array. See Model::get_ints_numpy() for more details."""
6760  _numpy_meth_map = {IntKey: _get_ints_numpy,
6761  FloatKey: _get_floats_numpy,
6762  Vector3DKey: _get_vector3ds_numpy,
6763  Vector3DDerivKey: _get_vector3dderiv_numpy,
6764  Vector4DKey: _get_vector4ds_numpy,
6765  Vector4DDerivKey: _get_vector4dderiv_numpy,
6766  ParticleIndexKey: _get_particle_indexes_numpy}
6767  return _numpy_meth_map[type(k)](self, k, self, read_only)
6768 
6769  def get_floats_numpy(self, k, read_only=False):
6770  """Get the model's attribute array for FloatKey k as a NumPy array.
6771  See Model::get_ints_numpy() for more details."""
6772  return _get_floats_numpy(self, k, self, read_only)
6773 
6774  def get_derivatives_numpy(self, k, read_only=False):
6775  """Get the model's attribute derivatives array for key k
6776  as a NumPy array. See Model::get_ints_numpy() for more details."""
6777  _numpy_meth_map = {
6778  FloatKey: _get_derivatives_numpy,
6779  Vector3DDerivKey: _get_vector3dderiv_derivatives_numpy,
6780  Vector4DDerivKey: _get_vector4dderiv_derivatives_numpy}
6781  return _numpy_meth_map[type(k)](self, k, self, read_only)
6782 
6783  def get_vector3ds_numpy(self, k, read_only=False):
6784  """Get the model's attribute array for Vector3DKey k as a NumPy array.
6785  See Model::get_ints_numpy() for more details."""
6786  return _get_vector3ds_numpy(self, k, self, read_only)
6787 
6788  def get_spheres_numpy(self, read_only=False):
6789  """Get the model's XYZR attribute arrays as NumPy arrays.
6790  The attribute arrays for Cartesian coordinates and radii are
6791  stored separately from those for other FloatKeys. This function
6792  returns a tuple of two NumPy arrays, the first of coordinates and
6793  the second of radii. See Model::get_ints_numpy() for more details."""
6794  return _get_spheres_numpy(self, self, read_only)
6795 
6796  def get_sphere_derivatives_numpy(self, read_only=False):
6797  """Get the model's XYZR attribute derivatives arrays as NumPy arrays.
6798  See Model::get_ints_numpy() for more details."""
6799  return _get_sphere_derivatives_numpy(self, self, read_only)
6800 
6801  def get_internal_coordinates_numpy(self, read_only=False):
6802  """Get the model's internal coordinate array as a NumPy array.
6803  The attribute arrays for rigid body internal coordinates are
6804  stored separately from those for other FloatKeys.
6805  See Model::get_ints_numpy() for more details."""
6806  return _get_internal_coordinates_numpy(self, self, read_only)
6807 
6808  def get_internal_coordinate_derivatives_numpy(self, read_only=False):
6809  """Get the model's internal coordinate derivative array as a
6810  NumPy array.
6811  See Model::get_ints_numpy() for more details."""
6812  return _get_internal_coordinate_derivatives_numpy(
6813  self, self, read_only)
6814 
6815 
6816 # Register Model in _IMP_kernel:
6817 _IMP_kernel.Model_swigregister(Model)
6818 class Decorator(_Value):
6819  r"""Proxy of C++ IMP::Decorator class."""
6820 
6821  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6822  __repr__ = _swig_repr
6823 
6824  def __init__(self, p):
6825  r"""__init__(Decorator self, _ParticleAdaptor p) -> Decorator"""
6826  _IMP_kernel.Decorator_swiginit(self, _IMP_kernel.new_Decorator(p))
6827 
6828  def __ne__(self, o):
6829  r"""__ne__(Decorator self, Object o) -> bool"""
6830  return _IMP_kernel.Decorator___ne__(self, o)
6831 
6832  def __lt__(self, o):
6833  r"""__lt__(Decorator self, Object o) -> bool"""
6834  return _IMP_kernel.Decorator___lt__(self, o)
6835 
6836  def __gt__(self, o):
6837  r"""__gt__(Decorator self, Object o) -> bool"""
6838  return _IMP_kernel.Decorator___gt__(self, o)
6839 
6840  def __ge__(self, o):
6841  r"""__ge__(Decorator self, Object o) -> bool"""
6842  return _IMP_kernel.Decorator___ge__(self, o)
6843 
6844  def __le__(self, o):
6845  r"""__le__(Decorator self, Object o) -> bool"""
6846  return _IMP_kernel.Decorator___le__(self, o)
6847 
6848  def get_particle(self):
6849  r"""get_particle(Decorator self) -> Particle"""
6850  return _IMP_kernel.Decorator_get_particle(self)
6851 
6852  def get_particle_index(self):
6853  r"""get_particle_index(Decorator self) -> ParticleIndex"""
6854  return _IMP_kernel.Decorator_get_particle_index(self)
6855 
6856  def get_model(self):
6857  m = _IMP_kernel.Decorator_get_model(self)
6858  if m in _models_set:
6859  m = _models_set_get(m)
6860  return m
6861 
6862 
6863 
6864  def get_is_valid(self):
6865  r"""get_is_valid(Decorator self) -> bool"""
6866  return _IMP_kernel.Decorator_get_is_valid(self)
6867 
6868  def __hash__(self):
6869  r"""__hash__(Decorator self) -> std::size_t"""
6870  return _IMP_kernel.Decorator___hash__(self)
6871 
6872  def __eq__(self, *args):
6873  r"""
6874  __eq__(Decorator self, Object o) -> bool
6875  __eq__(Decorator self, Decorator o) -> bool
6876  __eq__(Decorator self, Particle o) -> bool
6877  """
6878  return _IMP_kernel.Decorator___eq__(self, *args)
6879 
6880  def __bool__(self):
6881  r"""__bool__(Decorator self) -> bool"""
6882  return _IMP_kernel.Decorator___bool__(self)
6883  __swig_destroy__ = _IMP_kernel.delete_Decorator
6884 
6885 # Register Decorator in _IMP_kernel:
6886 _IMP_kernel.Decorator_swigregister(Decorator)
6887 
6888 def check_particle(m, pi):
6889  r"""check_particle(Model m, ParticleIndex pi)"""
6890  return _IMP_kernel.check_particle(m, pi)
6891 class UnaryFunction(Object):
6892  r"""Proxy of C++ IMP::UnaryFunction class."""
6893 
6894  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6895 
6896  def __init__(self, *args):
6897  r"""__init__(UnaryFunction self, std::string name="UnaryFunction%1%") -> UnaryFunction"""
6898  if self.__class__ == UnaryFunction:
6899  _self = None
6900  else:
6901  _self = self
6902  _IMP_kernel.UnaryFunction_swiginit(self, _IMP_kernel.new_UnaryFunction(_self, *args))
6903 
6904  if self.__class__ != UnaryFunction:
6905  _director_objects.register(self)
6906 
6907 
6908 
6909 
6910  def evaluate(self, feature):
6911  r"""evaluate(UnaryFunction self, double feature) -> double"""
6912  return _IMP_kernel.UnaryFunction_evaluate(self, feature)
6913 
6914  def evaluate_with_derivative(self, feature):
6915  r"""evaluate_with_derivative(UnaryFunction self, double feature) -> IMP::DerivativePair"""
6916  return _IMP_kernel.UnaryFunction_evaluate_with_derivative(self, feature)
6917  __swig_destroy__ = _IMP_kernel.delete_UnaryFunction
6918 
6919  def __str__(self):
6920  r"""__str__(UnaryFunction self) -> std::string"""
6921  return _IMP_kernel.UnaryFunction___str__(self)
6922 
6923  def __repr__(self):
6924  r"""__repr__(UnaryFunction self) -> std::string"""
6925  return _IMP_kernel.UnaryFunction___repr__(self)
6926 
6927  @staticmethod
6928  def get_from(o):
6929  return _object_cast_to_UnaryFunction(o)
6930 
6931 
6932  def do_show(self, out):
6933  pass
6934 
6935  @staticmethod
6936  def get_from(o):
6937  return _object_cast_to_UnaryFunction(o)
6938 
6939 
6940  def _get_jax(self):
6941  """Return a JAX implementation of this UnaryFunction.
6942  Implement this method in a UnaryFunction subclass to provide
6943  an equivalent function using [JAX](https://docs.jax.dev/)
6944  that scores the provided feature value.
6945  """
6946  raise NotImplementedError(
6947  f"No JAX implementation for {self} ({type(self)})")
6948 
6949  def __disown__(self):
6950  self.this.disown()
6951  _IMP_kernel.disown_UnaryFunction(self)
6952  return weakref.proxy(self)
6953 
6954  def do_destroy(self):
6955  r"""do_destroy(UnaryFunction self)"""
6956  return _IMP_kernel.UnaryFunction_do_destroy(self)
6957 
6958 # Register UnaryFunction in _IMP_kernel:
6959 _IMP_kernel.UnaryFunction_swigregister(UnaryFunction)
6961  r"""Proxy of C++ IMP::OptimizerState class."""
6962 
6963  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6964 
6965  def __init__(self, *args):
6966  r"""
6967  __init__(OptimizerState self, Model m, std::string name) -> OptimizerState
6968  __init__(OptimizerState self) -> OptimizerState
6969  """
6970  if self.__class__ == OptimizerState:
6971  _self = None
6972  else:
6973  _self = self
6974  _IMP_kernel.OptimizerState_swiginit(self, _IMP_kernel.new_OptimizerState(_self, *args))
6975 
6976  if self.__class__ != OptimizerState:
6977  _director_objects.register(self)
6978 
6979 
6980 
6981 
6982  def update(self):
6983  r"""update(OptimizerState self)"""
6984  return _IMP_kernel.OptimizerState_update(self)
6985 
6986  def set_is_optimizing(self, arg0):
6987  r"""set_is_optimizing(OptimizerState self, bool arg0)"""
6988  return _IMP_kernel.OptimizerState_set_is_optimizing(self, arg0)
6989 
6990  def get_optimizer(self):
6991  r"""get_optimizer(OptimizerState self) -> Optimizer"""
6992  return _IMP_kernel.OptimizerState_get_optimizer(self)
6993 
6994  def set_period(self, p):
6995  r"""set_period(OptimizerState self, unsigned int p)"""
6996  return _IMP_kernel.OptimizerState_set_period(self, p)
6997 
6998  def get_period(self):
6999  r"""get_period(OptimizerState self) -> unsigned int"""
7000  return _IMP_kernel.OptimizerState_get_period(self)
7001 
7002  def reset(self):
7003  r"""reset(OptimizerState self)"""
7004  return _IMP_kernel.OptimizerState_reset(self)
7005 
7006  def update_always(self):
7007  r"""update_always(OptimizerState self)"""
7008  return _IMP_kernel.OptimizerState_update_always(self)
7009 
7010  def get_number_of_updates(self):
7011  r"""get_number_of_updates(OptimizerState self) -> unsigned int"""
7012  return _IMP_kernel.OptimizerState_get_number_of_updates(self)
7013 
7014  def set_number_of_updates(self, n):
7015  r"""set_number_of_updates(OptimizerState self, unsigned int n)"""
7016  return _IMP_kernel.OptimizerState_set_number_of_updates(self, n)
7017  __swig_destroy__ = _IMP_kernel.delete_OptimizerState
7018 
7019  def do_update(self, arg0):
7020  r"""do_update(OptimizerState self, unsigned int arg0)"""
7021  return _IMP_kernel.OptimizerState_do_update(self, arg0)
7022 
7023  def do_set_is_optimizing(self, arg0):
7024  r"""do_set_is_optimizing(OptimizerState self, bool arg0)"""
7025  return _IMP_kernel.OptimizerState_do_set_is_optimizing(self, arg0)
7026 
7027  def do_get_inputs(self):
7028  r"""do_get_inputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
7029  return _IMP_kernel.OptimizerState_do_get_inputs(self)
7030 
7031  def do_get_outputs(self):
7032  r"""do_get_outputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
7033  return _IMP_kernel.OptimizerState_do_get_outputs(self)
7034 
7035  def __str__(self):
7036  r"""__str__(OptimizerState self) -> std::string"""
7037  return _IMP_kernel.OptimizerState___str__(self)
7038 
7039  def __repr__(self):
7040  r"""__repr__(OptimizerState self) -> std::string"""
7041  return _IMP_kernel.OptimizerState___repr__(self)
7042 
7043  @staticmethod
7044  def get_from(o):
7045  return _object_cast_to_OptimizerState(o)
7046 
7047 
7048  def do_show(self, out):
7049  pass
7050 
7051  @staticmethod
7052  def get_from(o):
7053  return _object_cast_to_OptimizerState(o)
7054 
7055 
7056  def _get_jax(self, state_index):
7057  """Add JAX support for this OptimizerState.
7058 
7059  Each OptimizerState must explicitly support how it is going to
7060  be called when the Optimizer is run via JAX.
7061 
7062  OptimizerStates can run as traditional IMP CPU code
7063  on the IMP Model object, in which case None should be returned here.
7064  The Optimizer will sync any necessary information from JAX back
7065  with the IMP Model before calling the OptimizerState. However,
7066  the OptimizerState is not permitted to modify the Model; any
7067  changes will not be propagated back to the Optimizer.
7068  (For example, a thermostat which tries to change particle
7069  velocities will not function correctly.)
7070 
7071  Alternatively, a pure JAX implementation can be provided.
7072  See _wrap_jax for more information.
7073  """
7074  raise NotImplementedError(
7075  f"No JAX implementation for {self} ({type(self)})")
7076 
7077  def _wrap_jax(self, init_func, apply_func):
7078  """Create the return value for _get_jax.
7079  Use this method in _get_jax() to wrap the JAX function
7080  with other OptimizerState-specific information.
7081 
7082  @param init_func a JAX function which, given a JAX Optimizer,
7083  does any necessary setup and returns a (possibly modified)
7084  JAX Optimizer. If any OptimizerState-specific
7085  persistent state is needed, it can be stored in
7086  `opt.optimizer_states[state_index]` and later retrieved or
7087  modified in apply_func.
7088  @param apply_func a JAX function which, given a JAX Optimizer,
7089  does the JAX equivalent of do_update() and returns a new
7090  JAX Optimizer.
7091  """
7092  from IMP._jax_util import JAXOptimizerStateInfo
7093  return JAXOptimizerStateInfo(self, init_func, apply_func)
7094 
7095  def __disown__(self):
7096  self.this.disown()
7097  _IMP_kernel.disown_OptimizerState(self)
7098  return weakref.proxy(self)
7099 
7100  def do_destroy(self):
7101  r"""do_destroy(OptimizerState self)"""
7102  return _IMP_kernel.OptimizerState_do_destroy(self)
7103 
7104  def handle_set_has_required_score_states(self, arg0):
7105  r"""handle_set_has_required_score_states(OptimizerState self, bool arg0)"""
7106  return _IMP_kernel.OptimizerState_handle_set_has_required_score_states(self, arg0)
7107 
7108  def do_get_interactions(self):
7109  r"""do_get_interactions(OptimizerState self) -> IMP::ModelObjectsTemps"""
7110  return _IMP_kernel.OptimizerState_do_get_interactions(self)
7111 
7112 # Register OptimizerState in _IMP_kernel:
7113 _IMP_kernel.OptimizerState_swigregister(OptimizerState)
7114 class Refiner(_ParticleInputs, Object):
7115  r"""Proxy of C++ IMP::Refiner class."""
7116 
7117  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7118 
7119  def __init__(self, *args):
7120  r"""__init__(Refiner self, std::string name="Refiner %1%", bool is_by_ref=False) -> Refiner"""
7121  if self.__class__ == Refiner:
7122  _self = None
7123  else:
7124  _self = self
7125  _IMP_kernel.Refiner_swiginit(self, _IMP_kernel.new_Refiner(_self, *args))
7126 
7127  if self.__class__ != Refiner:
7128  _director_objects.register(self)
7129 
7130 
7131 
7132 
7133  def get_can_refine(self, arg0):
7134  r"""get_can_refine(Refiner self, Particle arg0) -> bool"""
7135  return _IMP_kernel.Refiner_get_can_refine(self, arg0)
7136 
7137  def get_refined_indexes(self, m, pi):
7138  r"""get_refined_indexes(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes"""
7139  return _IMP_kernel.Refiner_get_refined_indexes(self, m, pi)
7140 
7141  def get_refined_indexes_by_ref(self, m, pi):
7142  r"""get_refined_indexes_by_ref(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes const &"""
7143  return _IMP_kernel.Refiner_get_refined_indexes_by_ref(self, m, pi)
7144 
7145  def get_is_by_ref_supported(self):
7146  r"""get_is_by_ref_supported(Refiner self) -> bool"""
7147  return _IMP_kernel.Refiner_get_is_by_ref_supported(self)
7148 
7149  def get_refined(self, *args):
7150  r"""
7151  get_refined(Refiner self, Particle a) -> IMP::ParticlesTemp const
7152  get_refined(Refiner self, Particle a, unsigned int i) -> Particle
7153  """
7154  return _IMP_kernel.Refiner_get_refined(self, *args)
7155 
7156  def get_number_of_refined(self, a):
7157  r"""get_number_of_refined(Refiner self, Particle a) -> unsigned int"""
7158  return _IMP_kernel.Refiner_get_number_of_refined(self, a)
7159 
7160  def __str__(self):
7161  r"""__str__(Refiner self) -> std::string"""
7162  return _IMP_kernel.Refiner___str__(self)
7163 
7164  def __repr__(self):
7165  r"""__repr__(Refiner self) -> std::string"""
7166  return _IMP_kernel.Refiner___repr__(self)
7167 
7168  @staticmethod
7169  def get_from(o):
7170  return _object_cast_to_Refiner(o)
7171 
7172 
7173  def do_show(self, out):
7174  pass
7175 
7176  @staticmethod
7177  def get_from(o):
7178  return _object_cast_to_Refiner(o)
7179 
7180  __swig_destroy__ = _IMP_kernel.delete_Refiner
7181  def __disown__(self):
7182  self.this.disown()
7183  _IMP_kernel.disown_Refiner(self)
7184  return weakref.proxy(self)
7185 
7186  def do_get_inputs(self, m, pis):
7187  r"""do_get_inputs(Refiner self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7188  return _IMP_kernel.Refiner_do_get_inputs(self, m, pis)
7189 
7190  def do_destroy(self):
7191  r"""do_destroy(Refiner self)"""
7192  return _IMP_kernel.Refiner_do_destroy(self)
7193 
7194 # Register Refiner in _IMP_kernel:
7195 _IMP_kernel.Refiner_swigregister(Refiner)
7196 class Optimizer(ModelObject):
7197  r"""Proxy of C++ IMP::Optimizer class."""
7198 
7199  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7200 
7201  def set_is_optimizing_states(self, tf):
7202  r"""set_is_optimizing_states(Optimizer self, bool tf)"""
7203  return _IMP_kernel.Optimizer_set_is_optimizing_states(self, tf)
7204 
7205  def get_optimizer_state_inputs(self):
7206  r"""get_optimizer_state_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7207  return _IMP_kernel.Optimizer_get_optimizer_state_inputs(self)
7208 
7209  def do_get_inputs(self):
7210  r"""do_get_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7211  return _IMP_kernel.Optimizer_do_get_inputs(self)
7212 
7213  def do_get_outputs(self):
7214  r"""do_get_outputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7215  return _IMP_kernel.Optimizer_do_get_outputs(self)
7216 
7217  def __init__(self, *args):
7218  r"""
7219  __init__(Optimizer self, Model m, std::string name="Optimizer %1%") -> Optimizer
7220  __init__(Optimizer self) -> Optimizer
7221  """
7222  if self.__class__ == Optimizer:
7223  _self = None
7224  else:
7225  _self = self
7226  _IMP_kernel.Optimizer_swiginit(self, _IMP_kernel.new_Optimizer(_self, *args))
7227 
7228  if self.__class__ != Optimizer:
7229  _director_objects.register(self)
7230 
7231 
7232 
7233 
7234  def optimize(self, max_steps):
7235  r"""optimize(Optimizer self, unsigned int max_steps) -> double"""
7236  return _IMP_kernel.Optimizer_optimize(self, max_steps)
7237 
7238  def set_stop_on_good_score(self, tf):
7239  r"""set_stop_on_good_score(Optimizer self, bool tf)"""
7240  return _IMP_kernel.Optimizer_set_stop_on_good_score(self, tf)
7241 
7242  def get_stop_on_good_score(self):
7243  r"""get_stop_on_good_score(Optimizer self) -> bool"""
7244  return _IMP_kernel.Optimizer_get_stop_on_good_score(self)
7245 
7246  def get_last_score(self):
7247  r"""get_last_score(Optimizer self) -> double"""
7248  return _IMP_kernel.Optimizer_get_last_score(self)
7249 
7250  def get_scoring_function(self):
7251  r"""get_scoring_function(Optimizer self) -> ScoringFunction"""
7252  return _IMP_kernel.Optimizer_get_scoring_function(self)
7253  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)
7254  def __set_optimizer_states(self, obj): _list_util.set_varlist(self.optimizer_states, obj)
7255  def __del_optimizer_states(self): _list_util.del_varlist(self.optimizer_states)
7256  optimizer_states = property(__get_optimizer_states, __set_optimizer_states, __del_optimizer_states, doc="List of ##ucnames")
7257 
7258  def remove_optimizer_state(self, d):
7259  r"""remove_optimizer_state(Optimizer self, OptimizerState d)"""
7260  return _IMP_kernel.Optimizer_remove_optimizer_state(self, d)
7261 
7262  def _python_index_optimizer_state(self, d, start, stop):
7263  r"""_python_index_optimizer_state(Optimizer self, OptimizerState d, unsigned int start, unsigned int stop) -> unsigned int"""
7264  return _IMP_kernel.Optimizer__python_index_optimizer_state(self, d, start, stop)
7265 
7266  def remove_optimizer_states(self, d):
7267  r"""remove_optimizer_states(Optimizer self, IMP::OptimizerStates const & d)"""
7268  return _IMP_kernel.Optimizer_remove_optimizer_states(self, d)
7269 
7270  def set_optimizer_states(self, ps):
7271  r"""set_optimizer_states(Optimizer self, IMP::OptimizerStates const & ps)"""
7272  return _IMP_kernel.Optimizer_set_optimizer_states(self, ps)
7273 
7274  def set_optimizer_states_order(self, objs):
7275  r"""set_optimizer_states_order(Optimizer self, IMP::OptimizerStates const & objs)"""
7276  return _IMP_kernel.Optimizer_set_optimizer_states_order(self, objs)
7277 
7278  def add_optimizer_state(self, obj):
7279  r"""add_optimizer_state(Optimizer self, OptimizerState obj) -> unsigned int"""
7280  return _IMP_kernel.Optimizer_add_optimizer_state(self, obj)
7281 
7282  def add_optimizer_states(self, objs):
7283  r"""add_optimizer_states(Optimizer self, IMP::OptimizerStates const & objs)"""
7284  return _IMP_kernel.Optimizer_add_optimizer_states(self, objs)
7285 
7286  def clear_optimizer_states(self):
7287  r"""clear_optimizer_states(Optimizer self)"""
7288  return _IMP_kernel.Optimizer_clear_optimizer_states(self)
7289 
7290  def get_number_of_optimizer_states(self):
7291  r"""get_number_of_optimizer_states(Optimizer self) -> unsigned int"""
7292  return _IMP_kernel.Optimizer_get_number_of_optimizer_states(self)
7293 
7294  def get_has_optimizer_states(self):
7295  r"""get_has_optimizer_states(Optimizer self) -> bool"""
7296  return _IMP_kernel.Optimizer_get_has_optimizer_states(self)
7297 
7298  def get_optimizer_state(self, i):
7299  r"""get_optimizer_state(Optimizer self, unsigned int i) -> OptimizerState"""
7300  return _IMP_kernel.Optimizer_get_optimizer_state(self, i)
7301 
7302  def get_optimizer_states(self):
7303  r"""get_optimizer_states(Optimizer self) -> IMP::OptimizerStates"""
7304  return _IMP_kernel.Optimizer_get_optimizer_states(self)
7305 
7306  def erase_optimizer_state(self, i):
7307  r"""erase_optimizer_state(Optimizer self, unsigned int i)"""
7308  return _IMP_kernel.Optimizer_erase_optimizer_state(self, i)
7309 
7310  def reserve_optimizer_states(self, sz):
7311  r"""reserve_optimizer_states(Optimizer self, unsigned int sz)"""
7312  return _IMP_kernel.Optimizer_reserve_optimizer_states(self, sz)
7313 
7314  def set_scoring_function(self, sf):
7315  r"""set_scoring_function(Optimizer self, _ScoringFunctionAdaptor sf)"""
7316  return _IMP_kernel.Optimizer_set_scoring_function(self, sf)
7317  __swig_destroy__ = _IMP_kernel.delete_Optimizer
7318  def __del__(self):
7319  r"""__del__(Optimizer self)"""
7320 
7321  _director_objects.cleanup()
7322 
7323 
7324  pass
7325 
7326 
7327  def do_optimize(self, ns):
7328  r"""do_optimize(Optimizer self, unsigned int ns) -> double"""
7329  return _IMP_kernel.Optimizer_do_optimize(self, ns)
7330 
7331  def update_states(self):
7332  r"""update_states(Optimizer self)"""
7333  return _IMP_kernel.Optimizer_update_states(self)
7334 
7335  def __str__(self):
7336  r"""__str__(Optimizer self) -> std::string"""
7337  return _IMP_kernel.Optimizer___str__(self)
7338 
7339  def __repr__(self):
7340  r"""__repr__(Optimizer self) -> std::string"""
7341  return _IMP_kernel.Optimizer___repr__(self)
7342 
7343  @staticmethod
7344  def get_from(o):
7345  return _object_cast_to_Optimizer(o)
7346 
7347 
7348  def do_show(self, out):
7349  pass
7350 
7351  @staticmethod
7352  def get_from(o):
7353  return _object_cast_to_Optimizer(o)
7354 
7355  def __disown__(self):
7356  self.this.disown()
7357  _IMP_kernel.disown_Optimizer(self)
7358  return weakref.proxy(self)
7359 
7360  def do_destroy(self):
7361  r"""do_destroy(Optimizer self)"""
7362  return _IMP_kernel.Optimizer_do_destroy(self)
7363 
7364  def handle_set_has_required_score_states(self, arg0):
7365  r"""handle_set_has_required_score_states(Optimizer self, bool arg0)"""
7366  return _IMP_kernel.Optimizer_handle_set_has_required_score_states(self, arg0)
7367 
7368  def do_get_interactions(self):
7369  r"""do_get_interactions(Optimizer self) -> IMP::ModelObjectsTemps"""
7370  return _IMP_kernel.Optimizer_do_get_interactions(self)
7371 
7372 # Register Optimizer in _IMP_kernel:
7373 _IMP_kernel.Optimizer_swigregister(Optimizer)
7375  r"""Proxy of C++ IMP::AttributeOptimizer class."""
7376 
7377  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7378 
7379  def __init__(self, *args):
7380  r"""
7381  __init__(AttributeOptimizer self, Model m, std::string name="Optimizer %1%") -> AttributeOptimizer
7382  __init__(AttributeOptimizer self) -> AttributeOptimizer
7383  """
7384  if self.__class__ == AttributeOptimizer:
7385  _self = None
7386  else:
7387  _self = self
7388  _IMP_kernel.AttributeOptimizer_swiginit(self, _IMP_kernel.new_AttributeOptimizer(_self, *args))
7389 
7390  if self.__class__ != AttributeOptimizer:
7391  _director_objects.register(self)
7392 
7393 
7394 
7395 
7396  def get_optimized_attributes(self):
7397  r"""get_optimized_attributes(AttributeOptimizer self) -> IMP::FloatIndexes"""
7398  return _IMP_kernel.AttributeOptimizer_get_optimized_attributes(self)
7399 
7400  def set_value(self, fi, v):
7401  r"""set_value(AttributeOptimizer self, FloatIndex fi, double v)"""
7402  return _IMP_kernel.AttributeOptimizer_set_value(self, fi, v)
7403 
7404  def get_value(self, fi):
7405  r"""get_value(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7406  return _IMP_kernel.AttributeOptimizer_get_value(self, fi)
7407 
7408  def get_derivative(self, fi):
7409  r"""get_derivative(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7410  return _IMP_kernel.AttributeOptimizer_get_derivative(self, fi)
7411 
7412  def get_width(self, k):
7413  r"""get_width(AttributeOptimizer self, FloatKey k) -> double"""
7414  return _IMP_kernel.AttributeOptimizer_get_width(self, k)
7415 
7416  def set_scaled_value(self, fi, v):
7417  r"""set_scaled_value(AttributeOptimizer self, FloatIndex fi, IMP::Float v)"""
7418  return _IMP_kernel.AttributeOptimizer_set_scaled_value(self, fi, v)
7419 
7420  def get_scaled_value(self, fi):
7421  r"""get_scaled_value(AttributeOptimizer self, FloatIndex fi) -> double"""
7422  return _IMP_kernel.AttributeOptimizer_get_scaled_value(self, fi)
7423 
7424  def get_scaled_derivative(self, fi):
7425  r"""get_scaled_derivative(AttributeOptimizer self, FloatIndex fi) -> double"""
7426  return _IMP_kernel.AttributeOptimizer_get_scaled_derivative(self, fi)
7427 
7428  def clear_range_cache(self):
7429  r"""clear_range_cache(AttributeOptimizer self)"""
7430  return _IMP_kernel.AttributeOptimizer_clear_range_cache(self)
7431 
7432  def __str__(self):
7433  r"""__str__(AttributeOptimizer self) -> std::string"""
7434  return _IMP_kernel.AttributeOptimizer___str__(self)
7435 
7436  def __repr__(self):
7437  r"""__repr__(AttributeOptimizer self) -> std::string"""
7438  return _IMP_kernel.AttributeOptimizer___repr__(self)
7439 
7440  @staticmethod
7441  def get_from(o):
7442  return _object_cast_to_AttributeOptimizer(o)
7443 
7444 
7445  def do_show(self, out):
7446  pass
7447 
7448  @staticmethod
7449  def get_from(o):
7450  return _object_cast_to_AttributeOptimizer(o)
7451 
7452  __swig_destroy__ = _IMP_kernel.delete_AttributeOptimizer
7453  def __disown__(self):
7454  self.this.disown()
7455  _IMP_kernel.disown_AttributeOptimizer(self)
7456  return weakref.proxy(self)
7457 
7458  def do_destroy(self):
7459  r"""do_destroy(AttributeOptimizer self)"""
7460  return _IMP_kernel.AttributeOptimizer_do_destroy(self)
7461 
7462  def handle_set_has_required_score_states(self, arg0):
7463  r"""handle_set_has_required_score_states(AttributeOptimizer self, bool arg0)"""
7464  return _IMP_kernel.AttributeOptimizer_handle_set_has_required_score_states(self, arg0)
7465 
7466  def do_get_inputs(self):
7467  r"""do_get_inputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7468  return _IMP_kernel.AttributeOptimizer_do_get_inputs(self)
7469 
7470  def do_get_outputs(self):
7471  r"""do_get_outputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7472  return _IMP_kernel.AttributeOptimizer_do_get_outputs(self)
7473 
7474  def do_get_interactions(self):
7475  r"""do_get_interactions(AttributeOptimizer self) -> IMP::ModelObjectsTemps"""
7476  return _IMP_kernel.AttributeOptimizer_do_get_interactions(self)
7477 
7478  def do_optimize(self, ns):
7479  r"""do_optimize(AttributeOptimizer self, unsigned int ns) -> double"""
7480  return _IMP_kernel.AttributeOptimizer_do_optimize(self, ns)
7481 
7482 # Register AttributeOptimizer in _IMP_kernel:
7483 _IMP_kernel.AttributeOptimizer_swigregister(AttributeOptimizer)
7484 class ConfigurationSet(Object):
7485  r"""Proxy of C++ IMP::ConfigurationSet class."""
7486 
7487  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7488 
7489  def __init__(self, *args):
7490  r"""__init__(ConfigurationSet self, Model m, std::string name="ConfigurationSet %1%") -> ConfigurationSet"""
7491  _IMP_kernel.ConfigurationSet_swiginit(self, _IMP_kernel.new_ConfigurationSet(*args))
7492 
7493  def save_configuration(self):
7494  r"""save_configuration(ConfigurationSet self)"""
7495  return _IMP_kernel.ConfigurationSet_save_configuration(self)
7496 
7497  def get_number_of_configurations(self):
7498  r"""get_number_of_configurations(ConfigurationSet self) -> unsigned int"""
7499  return _IMP_kernel.ConfigurationSet_get_number_of_configurations(self)
7500 
7501  def load_configuration(self, i):
7502  r"""load_configuration(ConfigurationSet self, int i)"""
7503  return _IMP_kernel.ConfigurationSet_load_configuration(self, i)
7504 
7505  def remove_configuration(self, i):
7506  r"""remove_configuration(ConfigurationSet self, unsigned int i)"""
7507  return _IMP_kernel.ConfigurationSet_remove_configuration(self, i)
7508 
7509  def get_model(self):
7510  r"""get_model(ConfigurationSet self) -> Model"""
7511  return _IMP_kernel.ConfigurationSet_get_model(self)
7512 
7513  def get_version_info(self):
7514  r"""get_version_info(ConfigurationSet self) -> VersionInfo"""
7515  return _IMP_kernel.ConfigurationSet_get_version_info(self)
7516  __swig_destroy__ = _IMP_kernel.delete_ConfigurationSet
7517 
7518  def __str__(self):
7519  r"""__str__(ConfigurationSet self) -> std::string"""
7520  return _IMP_kernel.ConfigurationSet___str__(self)
7521 
7522  def __repr__(self):
7523  r"""__repr__(ConfigurationSet self) -> std::string"""
7524  return _IMP_kernel.ConfigurationSet___repr__(self)
7525 
7526  @staticmethod
7527  def get_from(o):
7528  return _object_cast_to_ConfigurationSet(o)
7529 
7530 
7531 # Register ConfigurationSet in _IMP_kernel:
7532 _IMP_kernel.ConfigurationSet_swigregister(ConfigurationSet)
7534  r"""Proxy of C++ IMP::SaveToConfigurationSetOptimizerState class."""
7535 
7536  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7537 
7538  def __init__(self, cs):
7539  r"""__init__(SaveToConfigurationSetOptimizerState self, ConfigurationSet cs) -> SaveToConfigurationSetOptimizerState"""
7540  _IMP_kernel.SaveToConfigurationSetOptimizerState_swiginit(self, _IMP_kernel.new_SaveToConfigurationSetOptimizerState(cs))
7541 
7542  def get_version_info(self):
7543  r"""get_version_info(SaveToConfigurationSetOptimizerState self) -> VersionInfo"""
7544  return _IMP_kernel.SaveToConfigurationSetOptimizerState_get_version_info(self)
7545  __swig_destroy__ = _IMP_kernel.delete_SaveToConfigurationSetOptimizerState
7546 
7547  def __str__(self):
7548  r"""__str__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7549  return _IMP_kernel.SaveToConfigurationSetOptimizerState___str__(self)
7550 
7551  def __repr__(self):
7552  r"""__repr__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7553  return _IMP_kernel.SaveToConfigurationSetOptimizerState___repr__(self)
7554 
7555  @staticmethod
7556  def get_from(o):
7557  return _object_cast_to_SaveToConfigurationSetOptimizerState(o)
7558 
7559 
7560 # Register SaveToConfigurationSetOptimizerState in _IMP_kernel:
7561 _IMP_kernel.SaveToConfigurationSetOptimizerState_swigregister(SaveToConfigurationSetOptimizerState)
7562 class Configuration(Object):
7563  r"""Proxy of C++ IMP::Configuration class."""
7564 
7565  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7566 
7567  def __init__(self, *args):
7568  r"""
7569  __init__(Configuration self, Model m, std::string name="Configuration %1%") -> Configuration
7570  __init__(Configuration self, Model m, Configuration base, std::string name="Configuration %1%") -> Configuration
7571  __init__(Configuration self) -> Configuration
7572  """
7573  _IMP_kernel.Configuration_swiginit(self, _IMP_kernel.new_Configuration(*args))
7574 
7575  def load_configuration(self):
7576  r"""load_configuration(Configuration self)"""
7577  return _IMP_kernel.Configuration_load_configuration(self)
7578 
7579  def swap_configuration(self):
7580  r"""swap_configuration(Configuration self)"""
7581  return _IMP_kernel.Configuration_swap_configuration(self)
7582 
7583  def get_version_info(self):
7584  r"""get_version_info(Configuration self) -> VersionInfo"""
7585  return _IMP_kernel.Configuration_get_version_info(self)
7586  __swig_destroy__ = _IMP_kernel.delete_Configuration
7587 
7588  def __str__(self):
7589  r"""__str__(Configuration self) -> std::string"""
7590  return _IMP_kernel.Configuration___str__(self)
7591 
7592  def __repr__(self):
7593  r"""__repr__(Configuration self) -> std::string"""
7594  return _IMP_kernel.Configuration___repr__(self)
7595 
7596  @staticmethod
7597  def get_from(o):
7598  return _object_cast_to_Configuration(o)
7599 
7600 
7601  def _get_as_binary(self):
7602  r"""_get_as_binary(Configuration self) -> PyObject *"""
7603  return _IMP_kernel.Configuration__get_as_binary(self)
7604 
7605  def _set_from_binary(self, p):
7606  r"""_set_from_binary(Configuration self, PyObject * p)"""
7607  return _IMP_kernel.Configuration__set_from_binary(self, p)
7608 
7609  def __getstate__(self):
7610  p = self._get_as_binary()
7611  if len(self.__dict__) > 1:
7612  d = self.__dict__.copy()
7613  del d['this']
7614  p = (d, p)
7615  return p
7616 
7617  def __setstate__(self, p):
7618  if not hasattr(self, 'this'):
7619  self.__init__()
7620  if isinstance(p, tuple):
7621  d, p = p
7622  self.__dict__.update(d)
7623  return self._set_from_binary(p)
7624 
7625 
7626 # Register Configuration in _IMP_kernel:
7627 _IMP_kernel.Configuration_swigregister(Configuration)
7628 class Sampler(Object):
7629  r"""Proxy of C++ IMP::Sampler class."""
7630 
7631  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7632 
7633  def __init__(self, *args):
7634  r"""__init__(Sampler self, Model m, std::string name="Sampler %1%") -> Sampler"""
7635  if self.__class__ == Sampler:
7636  _self = None
7637  else:
7638  _self = self
7639  _IMP_kernel.Sampler_swiginit(self, _IMP_kernel.new_Sampler(_self, *args))
7640 
7641  if self.__class__ != Sampler:
7642  _director_objects.register(self)
7643 
7644 
7645 
7646 
7647  def create_sample(self):
7648  r"""create_sample(Sampler self) -> ConfigurationSet"""
7649  return _IMP_kernel.Sampler_create_sample(self)
7650 
7651  def get_scoring_function(self):
7652  r"""get_scoring_function(Sampler self) -> ScoringFunction"""
7653  return _IMP_kernel.Sampler_get_scoring_function(self)
7654 
7655  def set_scoring_function(self, sf):
7656  r"""set_scoring_function(Sampler self, _ScoringFunctionAdaptor sf)"""
7657  return _IMP_kernel.Sampler_set_scoring_function(self, sf)
7658 
7659  def get_model(self):
7660  r"""get_model(Sampler self) -> Model"""
7661  return _IMP_kernel.Sampler_get_model(self)
7662 
7663  def do_sample(self):
7664  r"""do_sample(Sampler self) -> ConfigurationSet"""
7665  return _IMP_kernel.Sampler_do_sample(self)
7666  __swig_destroy__ = _IMP_kernel.delete_Sampler
7667 
7668  def __str__(self):
7669  r"""__str__(Sampler self) -> std::string"""
7670  return _IMP_kernel.Sampler___str__(self)
7671 
7672  def __repr__(self):
7673  r"""__repr__(Sampler self) -> std::string"""
7674  return _IMP_kernel.Sampler___repr__(self)
7675 
7676  @staticmethod
7677  def get_from(o):
7678  return _object_cast_to_Sampler(o)
7679 
7680 
7681  def do_show(self, out):
7682  pass
7683 
7684  @staticmethod
7685  def get_from(o):
7686  return _object_cast_to_Sampler(o)
7687 
7688  def __disown__(self):
7689  self.this.disown()
7690  _IMP_kernel.disown_Sampler(self)
7691  return weakref.proxy(self)
7692 
7693  def do_destroy(self):
7694  r"""do_destroy(Sampler self)"""
7695  return _IMP_kernel.Sampler_do_destroy(self)
7696 
7697 # Register Sampler in _IMP_kernel:
7698 _IMP_kernel.Sampler_swigregister(Sampler)
7699 class PairModifier(_ParticleInputs, _ParticleOutputs, Object):
7700  r"""Proxy of C++ IMP::PairModifier class."""
7701 
7702  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7703 
7704  def __init__(self, *args):
7705  r"""__init__(PairModifier self, std::string name="PairModifier %1%") -> PairModifier"""
7706  if self.__class__ == PairModifier:
7707  _self = None
7708  else:
7709  _self = self
7710  _IMP_kernel.PairModifier_swiginit(self, _IMP_kernel.new_PairModifier(_self, *args))
7711 
7712  if self.__class__ != PairModifier:
7713  _director_objects.register(self)
7714 
7715 
7716 
7717 
7718  def apply_index(self, m, v):
7719  r"""apply_index(PairModifier self, Model m, IMP::ParticleIndexPair const & v)"""
7720  return _IMP_kernel.PairModifier_apply_index(self, m, v)
7721 
7722  def apply_indexes(self, m, o, lower_bound, upper_bound):
7723  r"""apply_indexes(PairModifier self, Model m, IMP::ParticleIndexPairs const & o, unsigned int lower_bound, unsigned int upper_bound)"""
7724  return _IMP_kernel.PairModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
7725 
7726  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
7727  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)"""
7728  return _IMP_kernel.PairModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
7729 
7730  def __str__(self):
7731  r"""__str__(PairModifier self) -> std::string"""
7732  return _IMP_kernel.PairModifier___str__(self)
7733 
7734  def __repr__(self):
7735  r"""__repr__(PairModifier self) -> std::string"""
7736  return _IMP_kernel.PairModifier___repr__(self)
7737 
7738  @staticmethod
7739  def get_from(o):
7740  return _object_cast_to_PairModifier(o)
7741 
7742 
7743  def do_show(self, out):
7744  pass
7745 
7746  @staticmethod
7747  def get_from(o):
7748  return _object_cast_to_PairModifier(o)
7749 
7750  __swig_destroy__ = _IMP_kernel.delete_PairModifier
7751  def __disown__(self):
7752  self.this.disown()
7753  _IMP_kernel.disown_PairModifier(self)
7754  return weakref.proxy(self)
7755 
7756  def do_get_inputs(self, m, pis):
7757  r"""do_get_inputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7758  return _IMP_kernel.PairModifier_do_get_inputs(self, m, pis)
7759 
7760  def do_get_outputs(self, m, pis):
7761  r"""do_get_outputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7762  return _IMP_kernel.PairModifier_do_get_outputs(self, m, pis)
7763 
7764  def do_destroy(self):
7765  r"""do_destroy(PairModifier self)"""
7766  return _IMP_kernel.PairModifier_do_destroy(self)
7767 
7768 # Register PairModifier in _IMP_kernel:
7769 _IMP_kernel.PairModifier_swigregister(PairModifier)
7770 class PairScore(_ParticleInputs, Object):
7771  r"""Proxy of C++ IMP::PairScore class."""
7772 
7773  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7774 
7775  def __init__(self, *args):
7776  r"""__init__(PairScore self, std::string name="PairScore %1%") -> PairScore"""
7777  if self.__class__ == PairScore:
7778  _self = None
7779  else:
7780  _self = self
7781  _IMP_kernel.PairScore_swiginit(self, _IMP_kernel.new_PairScore(_self, *args))
7782 
7783  if self.__class__ != PairScore:
7784  _director_objects.register(self)
7785 
7786 
7787 
7788 
7789  def evaluate_index(self, m, vt, da):
7790  r"""evaluate_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da) -> double"""
7791  return _IMP_kernel.PairScore_evaluate_index(self, m, vt, da)
7792 
7793  def check_indexes(self, m, pis):
7794  r"""check_indexes(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
7795  return _IMP_kernel.PairScore_check_indexes(self, m, pis)
7796 
7797  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
7798  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"""
7799  return _IMP_kernel.PairScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
7800 
7801  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7802  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"""
7803  return _IMP_kernel.PairScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
7804 
7805  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
7806  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"""
7807  return _IMP_kernel.PairScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
7808 
7809  def evaluate_if_good_index(self, m, vt, da, max):
7810  r"""evaluate_if_good_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da, double max) -> double"""
7811  return _IMP_kernel.PairScore_evaluate_if_good_index(self, m, vt, da, max)
7812 
7813  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7814  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"""
7815  return _IMP_kernel.PairScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
7816 
7817  def create_current_decomposition(self, m, vt):
7818  r"""create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7819  return _IMP_kernel.PairScore_create_current_decomposition(self, m, vt)
7820 
7821  def do_create_current_decomposition(self, m, vt):
7822  r"""do_create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7823  return _IMP_kernel.PairScore_do_create_current_decomposition(self, m, vt)
7824  __swig_destroy__ = _IMP_kernel.delete_PairScore
7825 
7826  def __str__(self):
7827  r"""__str__(PairScore self) -> std::string"""
7828  return _IMP_kernel.PairScore___str__(self)
7829 
7830  def __repr__(self):
7831  r"""__repr__(PairScore self) -> std::string"""
7832  return _IMP_kernel.PairScore___repr__(self)
7833 
7834  @staticmethod
7835  def get_from(o):
7836  return _object_cast_to_PairScore(o)
7837 
7838 
7839  def do_show(self, out):
7840  pass
7841 
7842  @staticmethod
7843  def get_from(o):
7844  return _object_cast_to_PairScore(o)
7845 
7846 
7847  def _wrap_jax(self, m, score_func, keys=None):
7848  """Create the return value for _get_jax.
7849  Use this method in _get_jax() to wrap the JAX scoring function
7850  with other score-specific information.
7851 
7852  @param m The IMP.Model that the score will act on.
7853  @param score_func A function implemented using JAX that takes
7854  one argument (the current JAX Model) and returns the total
7855  score.
7856  @param keys Model attributes used by the PairScore.
7857  See IMP::Restraint::_wrap_jax.
7858  """
7859  from IMP._jax_util import JAXScoreInfo
7860  return JAXScoreInfo(m, score_func=score_func, keys=keys)
7861 
7862  def _get_jax(self, m, indexes, space):
7863  """Return a JAX implementation of this PairScore.
7864  Implement this method in a PairScore subclass to provide
7865  an equivalent function using [JAX](https://docs.jax.dev/)
7866  that scores the current JAX Model with a given set of
7867  ParticlePairIndexes. See also _wrap_jax.
7868 
7869  @param m The IMP.Model that the score will act on.
7870  @param indexes The ParticlePairIndexes that the score will act on.
7871  @param space The space in which the score is evaluated
7872  (e.g. a periodic box). See IMP._jax_util.Space.
7873  """
7874  raise NotImplementedError(
7875  f"No JAX implementation for {self} ({type(self)})")
7876 
7877  def __disown__(self):
7878  self.this.disown()
7879  _IMP_kernel.disown_PairScore(self)
7880  return weakref.proxy(self)
7881 
7882  def do_get_inputs(self, m, pis):
7883  r"""do_get_inputs(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7884  return _IMP_kernel.PairScore_do_get_inputs(self, m, pis)
7885 
7886  def do_destroy(self):
7887  r"""do_destroy(PairScore self)"""
7888  return _IMP_kernel.PairScore_do_destroy(self)
7889 
7890 # Register PairScore in _IMP_kernel:
7891 _IMP_kernel.PairScore_swigregister(PairScore)
7892 class PairPredicate(_ParticleInputs, Object):
7893  r"""Proxy of C++ IMP::PairPredicate class."""
7894 
7895  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7896 
7897  def __init__(self, *args):
7898  r"""__init__(PairPredicate self, std::string name="PairPredicate %1%") -> PairPredicate"""
7899  if self.__class__ == PairPredicate:
7900  _self = None
7901  else:
7902  _self = self
7903  _IMP_kernel.PairPredicate_swiginit(self, _IMP_kernel.new_PairPredicate(_self, *args))
7904 
7905  if self.__class__ != PairPredicate:
7906  _director_objects.register(self)
7907 
7908 
7909 
7910 
7911  def setup_for_get_value_index_in_batch(self, arg0):
7912  r"""setup_for_get_value_index_in_batch(PairPredicate self, Model arg0)"""
7913  return _IMP_kernel.PairPredicate_setup_for_get_value_index_in_batch(self, arg0)
7914 
7915  def get_value_index_in_batch(self, m, vt):
7916  r"""get_value_index_in_batch(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
7917  return _IMP_kernel.PairPredicate_get_value_index_in_batch(self, m, vt)
7918 
7919  def __call__(self, m, vt):
7920  r"""__call__(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
7921  return _IMP_kernel.PairPredicate___call__(self, m, vt)
7922 
7923  def get_value_index(self, *args):
7924  r"""
7925  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int
7926  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
7927  """
7928  return _IMP_kernel.PairPredicate_get_value_index(self, *args)
7929  __swig_destroy__ = _IMP_kernel.delete_PairPredicate
7930 
7931  def __str__(self):
7932  r"""__str__(PairPredicate self) -> std::string"""
7933  return _IMP_kernel.PairPredicate___str__(self)
7934 
7935  def __repr__(self):
7936  r"""__repr__(PairPredicate self) -> std::string"""
7937  return _IMP_kernel.PairPredicate___repr__(self)
7938 
7939  @staticmethod
7940  def get_from(o):
7941  return _object_cast_to_PairPredicate(o)
7942 
7943 
7944  def do_show(self, out):
7945  pass
7946 
7947  @staticmethod
7948  def get_from(o):
7949  return _object_cast_to_PairPredicate(o)
7950 
7951  def __disown__(self):
7952  self.this.disown()
7953  _IMP_kernel.disown_PairPredicate(self)
7954  return weakref.proxy(self)
7955 
7956  def do_get_inputs(self, m, pis):
7957  r"""do_get_inputs(PairPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7958  return _IMP_kernel.PairPredicate_do_get_inputs(self, m, pis)
7959 
7960  def do_destroy(self):
7961  r"""do_destroy(PairPredicate self)"""
7962  return _IMP_kernel.PairPredicate_do_destroy(self)
7963 
7964 # Register PairPredicate in _IMP_kernel:
7965 _IMP_kernel.PairPredicate_swigregister(PairPredicate)
7966 class PairContainer(Container):
7967  r"""Proxy of C++ IMP::PairContainer class."""
7968 
7969  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7970 
7971  def apply_generic(self, m):
7972  r"""apply_generic(PairContainer self, PairModifier m)"""
7973  return _IMP_kernel.PairContainer_apply_generic(self, m)
7974 
7975  def apply_generic_moved(self, m, moved_pis, reset_pis):
7976  r"""apply_generic_moved(PairContainer self, PairModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7977  return _IMP_kernel.PairContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
7978 
7979  def apply(self, sm):
7980  r"""apply(PairContainer self, PairModifier sm)"""
7981  return _IMP_kernel.PairContainer_apply(self, sm)
7982 
7983  def apply_moved(self, sm, moved_pis, reset_pis):
7984  r"""apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7985  return _IMP_kernel.PairContainer_apply_moved(self, sm, moved_pis, reset_pis)
7986 
7987  def get_range_indexes(self):
7988  r"""get_range_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
7989  return _IMP_kernel.PairContainer_get_range_indexes(self)
7990 
7991  def get_contents(self):
7992  r"""get_contents(PairContainer self) -> IMP::ParticleIndexPairs const &"""
7993  return _IMP_kernel.PairContainer_get_contents(self)
7994 
7995  def get_indexes(self):
7996  r"""get_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
7997  return _IMP_kernel.PairContainer_get_indexes(self)
7998 
7999  def get(self, *args):
8000  r"""
8001  get(PairContainer self) -> IMP::ParticlePairsTemp
8002  get(PairContainer self, unsigned int i) -> IMP::ParticlePair
8003  """
8004  return _IMP_kernel.PairContainer_get(self, *args)
8005 
8006  def get_number(self):
8007  r"""get_number(PairContainer self) -> unsigned int"""
8008  return _IMP_kernel.PairContainer_get_number(self)
8009 
8010  def __init__(self, *args):
8011  r"""
8012  __init__(PairContainer self, Model m, std::string name="PairContainer %1%") -> PairContainer
8013  __init__(PairContainer self) -> PairContainer
8014  """
8015  if self.__class__ == PairContainer:
8016  _self = None
8017  else:
8018  _self = self
8019  _IMP_kernel.PairContainer_swiginit(self, _IMP_kernel.new_PairContainer(_self, *args))
8020 
8021  if self.__class__ != PairContainer:
8022  _director_objects.register(self)
8023 
8024 
8025 
8026 
8027  def do_apply(self, sm):
8028  r"""do_apply(PairContainer self, PairModifier sm)"""
8029  return _IMP_kernel.PairContainer_do_apply(self, sm)
8030 
8031  def do_apply_moved(self, sm, moved_pis, reset_pis):
8032  r"""do_apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8033  return _IMP_kernel.PairContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8034 
8035  def do_get_provides_access(self):
8036  r"""do_get_provides_access(PairContainer self) -> bool"""
8037  return _IMP_kernel.PairContainer_do_get_provides_access(self)
8038  __swig_destroy__ = _IMP_kernel.delete_PairContainer
8039 
8040  def __str__(self):
8041  r"""__str__(PairContainer self) -> std::string"""
8042  return _IMP_kernel.PairContainer___str__(self)
8043 
8044  def __repr__(self):
8045  r"""__repr__(PairContainer self) -> std::string"""
8046  return _IMP_kernel.PairContainer___repr__(self)
8047 
8048  @staticmethod
8049  def get_from(o):
8050  return _object_cast_to_PairContainer(o)
8051 
8052 
8053  def do_show(self, out):
8054  pass
8055 
8056  @staticmethod
8057  def get_from(o):
8058  return _object_cast_to_PairContainer(o)
8059 
8060  def __disown__(self):
8061  self.this.disown()
8062  _IMP_kernel.disown_PairContainer(self)
8063  return weakref.proxy(self)
8064 
8065  def do_destroy(self):
8066  r"""do_destroy(PairContainer self)"""
8067  return _IMP_kernel.PairContainer_do_destroy(self)
8068 
8069  def handle_set_has_required_score_states(self, arg0):
8070  r"""handle_set_has_required_score_states(PairContainer self, bool arg0)"""
8071  return _IMP_kernel.PairContainer_handle_set_has_required_score_states(self, arg0)
8072 
8073  def do_get_inputs(self):
8074  r"""do_get_inputs(PairContainer self) -> IMP::ModelObjectsTemp"""
8075  return _IMP_kernel.PairContainer_do_get_inputs(self)
8076 
8077  def do_get_interactions(self):
8078  r"""do_get_interactions(PairContainer self) -> IMP::ModelObjectsTemps"""
8079  return _IMP_kernel.PairContainer_do_get_interactions(self)
8080 
8081  def do_get_contents_hash(self):
8082  r"""do_get_contents_hash(PairContainer self) -> std::size_t"""
8083  return _IMP_kernel.PairContainer_do_get_contents_hash(self)
8084 
8085 # Register PairContainer in _IMP_kernel:
8086 _IMP_kernel.PairContainer_swigregister(PairContainer)
8087 class _PairContainerAdaptor(_InputAdaptor):
8088  r"""Proxy of C++ IMP::PairContainerAdaptor class."""
8089 
8090  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8091  __repr__ = _swig_repr
8092 
8093  def __init__(self, *args):
8094  r"""
8095  __init__(_PairContainerAdaptor self) -> _PairContainerAdaptor
8096  __init__(_PairContainerAdaptor self, PairContainer c) -> _PairContainerAdaptor
8097  __init__(_PairContainerAdaptor self, IMP::ParticlePairsTemp const & t) -> _PairContainerAdaptor
8098  """
8099  _IMP_kernel._PairContainerAdaptor_swiginit(self, _IMP_kernel.new__PairContainerAdaptor(*args))
8100 
8101  def set_name_if_default(self, name):
8102  r"""set_name_if_default(_PairContainerAdaptor self, std::string name)"""
8103  return _IMP_kernel._PairContainerAdaptor_set_name_if_default(self, name)
8104  __swig_destroy__ = _IMP_kernel.delete__PairContainerAdaptor
8105 
8106 # Register _PairContainerAdaptor in _IMP_kernel:
8107 _IMP_kernel._PairContainerAdaptor_swigregister(_PairContainerAdaptor)
8108 class QuadModifier(_ParticleInputs, _ParticleOutputs, Object):
8109  r"""Proxy of C++ IMP::QuadModifier class."""
8110 
8111  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8112 
8113  def __init__(self, *args):
8114  r"""__init__(QuadModifier self, std::string name="QuadModifier %1%") -> QuadModifier"""
8115  if self.__class__ == QuadModifier:
8116  _self = None
8117  else:
8118  _self = self
8119  _IMP_kernel.QuadModifier_swiginit(self, _IMP_kernel.new_QuadModifier(_self, *args))
8120 
8121  if self.__class__ != QuadModifier:
8122  _director_objects.register(self)
8123 
8124 
8125 
8126 
8127  def apply_index(self, m, v):
8128  r"""apply_index(QuadModifier self, Model m, IMP::ParticleIndexQuad const & v)"""
8129  return _IMP_kernel.QuadModifier_apply_index(self, m, v)
8130 
8131  def apply_indexes(self, m, o, lower_bound, upper_bound):
8132  r"""apply_indexes(QuadModifier self, Model m, IMP::ParticleIndexQuads const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8133  return _IMP_kernel.QuadModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8134 
8135  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8136  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)"""
8137  return _IMP_kernel.QuadModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8138 
8139  def __str__(self):
8140  r"""__str__(QuadModifier self) -> std::string"""
8141  return _IMP_kernel.QuadModifier___str__(self)
8142 
8143  def __repr__(self):
8144  r"""__repr__(QuadModifier self) -> std::string"""
8145  return _IMP_kernel.QuadModifier___repr__(self)
8146 
8147  @staticmethod
8148  def get_from(o):
8149  return _object_cast_to_QuadModifier(o)
8150 
8151 
8152  def do_show(self, out):
8153  pass
8154 
8155  @staticmethod
8156  def get_from(o):
8157  return _object_cast_to_QuadModifier(o)
8158 
8159  __swig_destroy__ = _IMP_kernel.delete_QuadModifier
8160  def __disown__(self):
8161  self.this.disown()
8162  _IMP_kernel.disown_QuadModifier(self)
8163  return weakref.proxy(self)
8164 
8165  def do_get_inputs(self, m, pis):
8166  r"""do_get_inputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8167  return _IMP_kernel.QuadModifier_do_get_inputs(self, m, pis)
8168 
8169  def do_get_outputs(self, m, pis):
8170  r"""do_get_outputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8171  return _IMP_kernel.QuadModifier_do_get_outputs(self, m, pis)
8172 
8173  def do_destroy(self):
8174  r"""do_destroy(QuadModifier self)"""
8175  return _IMP_kernel.QuadModifier_do_destroy(self)
8176 
8177 # Register QuadModifier in _IMP_kernel:
8178 _IMP_kernel.QuadModifier_swigregister(QuadModifier)
8179 class QuadScore(_ParticleInputs, Object):
8180  r"""Proxy of C++ IMP::QuadScore class."""
8181 
8182  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8183 
8184  def __init__(self, *args):
8185  r"""__init__(QuadScore self, std::string name="QuadScore %1%") -> QuadScore"""
8186  if self.__class__ == QuadScore:
8187  _self = None
8188  else:
8189  _self = self
8190  _IMP_kernel.QuadScore_swiginit(self, _IMP_kernel.new_QuadScore(_self, *args))
8191 
8192  if self.__class__ != QuadScore:
8193  _director_objects.register(self)
8194 
8195 
8196 
8197 
8198  def evaluate_index(self, m, vt, da):
8199  r"""evaluate_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da) -> double"""
8200  return _IMP_kernel.QuadScore_evaluate_index(self, m, vt, da)
8201 
8202  def check_indexes(self, m, pis):
8203  r"""check_indexes(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8204  return _IMP_kernel.QuadScore_check_indexes(self, m, pis)
8205 
8206  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8207  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"""
8208  return _IMP_kernel.QuadScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8209 
8210  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8211  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"""
8212  return _IMP_kernel.QuadScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8213 
8214  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8215  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"""
8216  return _IMP_kernel.QuadScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8217 
8218  def evaluate_if_good_index(self, m, vt, da, max):
8219  r"""evaluate_if_good_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da, double max) -> double"""
8220  return _IMP_kernel.QuadScore_evaluate_if_good_index(self, m, vt, da, max)
8221 
8222  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8223  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"""
8224  return _IMP_kernel.QuadScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8225 
8226  def create_current_decomposition(self, m, vt):
8227  r"""create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8228  return _IMP_kernel.QuadScore_create_current_decomposition(self, m, vt)
8229 
8230  def do_create_current_decomposition(self, m, vt):
8231  r"""do_create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8232  return _IMP_kernel.QuadScore_do_create_current_decomposition(self, m, vt)
8233  __swig_destroy__ = _IMP_kernel.delete_QuadScore
8234 
8235  def __str__(self):
8236  r"""__str__(QuadScore self) -> std::string"""
8237  return _IMP_kernel.QuadScore___str__(self)
8238 
8239  def __repr__(self):
8240  r"""__repr__(QuadScore self) -> std::string"""
8241  return _IMP_kernel.QuadScore___repr__(self)
8242 
8243  @staticmethod
8244  def get_from(o):
8245  return _object_cast_to_QuadScore(o)
8246 
8247 
8248  def do_show(self, out):
8249  pass
8250 
8251  @staticmethod
8252  def get_from(o):
8253  return _object_cast_to_QuadScore(o)
8254 
8255  def __disown__(self):
8256  self.this.disown()
8257  _IMP_kernel.disown_QuadScore(self)
8258  return weakref.proxy(self)
8259 
8260  def do_get_inputs(self, m, pis):
8261  r"""do_get_inputs(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8262  return _IMP_kernel.QuadScore_do_get_inputs(self, m, pis)
8263 
8264  def do_destroy(self):
8265  r"""do_destroy(QuadScore self)"""
8266  return _IMP_kernel.QuadScore_do_destroy(self)
8267 
8268 # Register QuadScore in _IMP_kernel:
8269 _IMP_kernel.QuadScore_swigregister(QuadScore)
8270 class QuadPredicate(_ParticleInputs, Object):
8271  r"""Proxy of C++ IMP::QuadPredicate class."""
8272 
8273  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8274 
8275  def __init__(self, *args):
8276  r"""__init__(QuadPredicate self, std::string name="QuadPredicate %1%") -> QuadPredicate"""
8277  if self.__class__ == QuadPredicate:
8278  _self = None
8279  else:
8280  _self = self
8281  _IMP_kernel.QuadPredicate_swiginit(self, _IMP_kernel.new_QuadPredicate(_self, *args))
8282 
8283  if self.__class__ != QuadPredicate:
8284  _director_objects.register(self)
8285 
8286 
8287 
8288 
8289  def setup_for_get_value_index_in_batch(self, arg0):
8290  r"""setup_for_get_value_index_in_batch(QuadPredicate self, Model arg0)"""
8291  return _IMP_kernel.QuadPredicate_setup_for_get_value_index_in_batch(self, arg0)
8292 
8293  def get_value_index_in_batch(self, m, vt):
8294  r"""get_value_index_in_batch(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8295  return _IMP_kernel.QuadPredicate_get_value_index_in_batch(self, m, vt)
8296 
8297  def __call__(self, m, vt):
8298  r"""__call__(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8299  return _IMP_kernel.QuadPredicate___call__(self, m, vt)
8300 
8301  def get_value_index(self, *args):
8302  r"""
8303  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int
8304  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuads const & o) -> IMP::Ints
8305  """
8306  return _IMP_kernel.QuadPredicate_get_value_index(self, *args)
8307  __swig_destroy__ = _IMP_kernel.delete_QuadPredicate
8308 
8309  def __str__(self):
8310  r"""__str__(QuadPredicate self) -> std::string"""
8311  return _IMP_kernel.QuadPredicate___str__(self)
8312 
8313  def __repr__(self):
8314  r"""__repr__(QuadPredicate self) -> std::string"""
8315  return _IMP_kernel.QuadPredicate___repr__(self)
8316 
8317  @staticmethod
8318  def get_from(o):
8319  return _object_cast_to_QuadPredicate(o)
8320 
8321 
8322  def do_show(self, out):
8323  pass
8324 
8325  @staticmethod
8326  def get_from(o):
8327  return _object_cast_to_QuadPredicate(o)
8328 
8329  def __disown__(self):
8330  self.this.disown()
8331  _IMP_kernel.disown_QuadPredicate(self)
8332  return weakref.proxy(self)
8333 
8334  def do_get_inputs(self, m, pis):
8335  r"""do_get_inputs(QuadPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8336  return _IMP_kernel.QuadPredicate_do_get_inputs(self, m, pis)
8337 
8338  def do_destroy(self):
8339  r"""do_destroy(QuadPredicate self)"""
8340  return _IMP_kernel.QuadPredicate_do_destroy(self)
8341 
8342 # Register QuadPredicate in _IMP_kernel:
8343 _IMP_kernel.QuadPredicate_swigregister(QuadPredicate)
8344 class QuadContainer(Container):
8345  r"""Proxy of C++ IMP::QuadContainer class."""
8346 
8347  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8348 
8349  def apply_generic(self, m):
8350  r"""apply_generic(QuadContainer self, QuadModifier m)"""
8351  return _IMP_kernel.QuadContainer_apply_generic(self, m)
8352 
8353  def apply_generic_moved(self, m, moved_pis, reset_pis):
8354  r"""apply_generic_moved(QuadContainer self, QuadModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8355  return _IMP_kernel.QuadContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8356 
8357  def apply(self, sm):
8358  r"""apply(QuadContainer self, QuadModifier sm)"""
8359  return _IMP_kernel.QuadContainer_apply(self, sm)
8360 
8361  def apply_moved(self, sm, moved_pis, reset_pis):
8362  r"""apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8363  return _IMP_kernel.QuadContainer_apply_moved(self, sm, moved_pis, reset_pis)
8364 
8365  def get_range_indexes(self):
8366  r"""get_range_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8367  return _IMP_kernel.QuadContainer_get_range_indexes(self)
8368 
8369  def get_contents(self):
8370  r"""get_contents(QuadContainer self) -> IMP::ParticleIndexQuads const &"""
8371  return _IMP_kernel.QuadContainer_get_contents(self)
8372 
8373  def get_indexes(self):
8374  r"""get_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8375  return _IMP_kernel.QuadContainer_get_indexes(self)
8376 
8377  def get(self, *args):
8378  r"""
8379  get(QuadContainer self) -> IMP::ParticleQuadsTemp
8380  get(QuadContainer self, unsigned int i) -> IMP::ParticleQuad
8381  """
8382  return _IMP_kernel.QuadContainer_get(self, *args)
8383 
8384  def get_number(self):
8385  r"""get_number(QuadContainer self) -> unsigned int"""
8386  return _IMP_kernel.QuadContainer_get_number(self)
8387 
8388  def __init__(self, *args):
8389  r"""
8390  __init__(QuadContainer self, Model m, std::string name="QuadContainer %1%") -> QuadContainer
8391  __init__(QuadContainer self) -> QuadContainer
8392  """
8393  if self.__class__ == QuadContainer:
8394  _self = None
8395  else:
8396  _self = self
8397  _IMP_kernel.QuadContainer_swiginit(self, _IMP_kernel.new_QuadContainer(_self, *args))
8398 
8399  if self.__class__ != QuadContainer:
8400  _director_objects.register(self)
8401 
8402 
8403 
8404 
8405  def do_apply(self, sm):
8406  r"""do_apply(QuadContainer self, QuadModifier sm)"""
8407  return _IMP_kernel.QuadContainer_do_apply(self, sm)
8408 
8409  def do_apply_moved(self, sm, moved_pis, reset_pis):
8410  r"""do_apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8411  return _IMP_kernel.QuadContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8412 
8413  def do_get_provides_access(self):
8414  r"""do_get_provides_access(QuadContainer self) -> bool"""
8415  return _IMP_kernel.QuadContainer_do_get_provides_access(self)
8416  __swig_destroy__ = _IMP_kernel.delete_QuadContainer
8417 
8418  def __str__(self):
8419  r"""__str__(QuadContainer self) -> std::string"""
8420  return _IMP_kernel.QuadContainer___str__(self)
8421 
8422  def __repr__(self):
8423  r"""__repr__(QuadContainer self) -> std::string"""
8424  return _IMP_kernel.QuadContainer___repr__(self)
8425 
8426  @staticmethod
8427  def get_from(o):
8428  return _object_cast_to_QuadContainer(o)
8429 
8430 
8431  def do_show(self, out):
8432  pass
8433 
8434  @staticmethod
8435  def get_from(o):
8436  return _object_cast_to_QuadContainer(o)
8437 
8438  def __disown__(self):
8439  self.this.disown()
8440  _IMP_kernel.disown_QuadContainer(self)
8441  return weakref.proxy(self)
8442 
8443  def do_destroy(self):
8444  r"""do_destroy(QuadContainer self)"""
8445  return _IMP_kernel.QuadContainer_do_destroy(self)
8446 
8447  def handle_set_has_required_score_states(self, arg0):
8448  r"""handle_set_has_required_score_states(QuadContainer self, bool arg0)"""
8449  return _IMP_kernel.QuadContainer_handle_set_has_required_score_states(self, arg0)
8450 
8451  def do_get_inputs(self):
8452  r"""do_get_inputs(QuadContainer self) -> IMP::ModelObjectsTemp"""
8453  return _IMP_kernel.QuadContainer_do_get_inputs(self)
8454 
8455  def do_get_interactions(self):
8456  r"""do_get_interactions(QuadContainer self) -> IMP::ModelObjectsTemps"""
8457  return _IMP_kernel.QuadContainer_do_get_interactions(self)
8458 
8459  def do_get_contents_hash(self):
8460  r"""do_get_contents_hash(QuadContainer self) -> std::size_t"""
8461  return _IMP_kernel.QuadContainer_do_get_contents_hash(self)
8462 
8463 # Register QuadContainer in _IMP_kernel:
8464 _IMP_kernel.QuadContainer_swigregister(QuadContainer)
8465 class _QuadContainerAdaptor(_InputAdaptor):
8466  r"""Proxy of C++ IMP::QuadContainerAdaptor class."""
8467 
8468  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8469  __repr__ = _swig_repr
8470 
8471  def __init__(self, *args):
8472  r"""
8473  __init__(_QuadContainerAdaptor self) -> _QuadContainerAdaptor
8474  __init__(_QuadContainerAdaptor self, QuadContainer c) -> _QuadContainerAdaptor
8475  __init__(_QuadContainerAdaptor self, IMP::ParticleQuadsTemp const & t) -> _QuadContainerAdaptor
8476  """
8477  _IMP_kernel._QuadContainerAdaptor_swiginit(self, _IMP_kernel.new__QuadContainerAdaptor(*args))
8478 
8479  def set_name_if_default(self, name):
8480  r"""set_name_if_default(_QuadContainerAdaptor self, std::string name)"""
8481  return _IMP_kernel._QuadContainerAdaptor_set_name_if_default(self, name)
8482  __swig_destroy__ = _IMP_kernel.delete__QuadContainerAdaptor
8483 
8484 # Register _QuadContainerAdaptor in _IMP_kernel:
8485 _IMP_kernel._QuadContainerAdaptor_swigregister(_QuadContainerAdaptor)
8486 class SingletonModifier(_ParticleInputs, _ParticleOutputs, Object):
8487  r"""Proxy of C++ IMP::SingletonModifier class."""
8488 
8489  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8490 
8491  def __init__(self, *args):
8492  r"""__init__(SingletonModifier self, std::string name="SingletonModifier %1%") -> SingletonModifier"""
8493  if self.__class__ == SingletonModifier:
8494  _self = None
8495  else:
8496  _self = self
8497  _IMP_kernel.SingletonModifier_swiginit(self, _IMP_kernel.new_SingletonModifier(_self, *args))
8498 
8499  if self.__class__ != SingletonModifier:
8500  _director_objects.register(self)
8501 
8502 
8503 
8504 
8505  def apply_index(self, m, v):
8506  r"""apply_index(SingletonModifier self, Model m, ParticleIndex v)"""
8507  return _IMP_kernel.SingletonModifier_apply_index(self, m, v)
8508 
8509  def apply_indexes(self, m, o, lower_bound, upper_bound):
8510  r"""apply_indexes(SingletonModifier self, Model m, IMP::ParticleIndexes const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8511  return _IMP_kernel.SingletonModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8512 
8513  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8514  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)"""
8515  return _IMP_kernel.SingletonModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8516 
8517  def __str__(self):
8518  r"""__str__(SingletonModifier self) -> std::string"""
8519  return _IMP_kernel.SingletonModifier___str__(self)
8520 
8521  def __repr__(self):
8522  r"""__repr__(SingletonModifier self) -> std::string"""
8523  return _IMP_kernel.SingletonModifier___repr__(self)
8524 
8525  @staticmethod
8526  def get_from(o):
8527  return _object_cast_to_SingletonModifier(o)
8528 
8529 
8530  def do_show(self, out):
8531  pass
8532 
8533  @staticmethod
8534  def get_from(o):
8535  return _object_cast_to_SingletonModifier(o)
8536 
8537 
8538  def _wrap_jax(self, apply_func, keys=None):
8539  """Create the return value for _get_jax.
8540  Use this method in _get_jax() to wrap the JAX function
8541  with other modifier-specific information.
8542 
8543  @param apply_func A function implemented using JAX that takes
8544  one argument (the current JAX Model) and returns a new
8545  modified JAX Model.
8546  @param keys Model attributes used by the SingletonModifier.
8547  See IMP::Restraint::_wrap_jax.
8548  """
8549  from IMP._jax_util import JAXModifierInfo
8550  return JAXModifierInfo(apply_func=apply_func, keys=keys)
8551 
8552  def _get_jax(self, m, indexes):
8553  """Return a JAX implementation of this SingletonModifier.
8554  Implement this method in a SingletonModifier subclass to provide
8555  an equivalent function using [JAX](https://docs.jax.dev/)
8556  that modifies the current JAX Model. See also _wrap_jax.
8557 
8558  @param m The IMP.Model that the modifier will act on.
8559  @param indexes The ParticleIndexes that the modifier will act on.
8560  """
8561  raise NotImplementedError(
8562  f"No JAX implementation for {self} ({type(self)})")
8563 
8564  __swig_destroy__ = _IMP_kernel.delete_SingletonModifier
8565  def __disown__(self):
8566  self.this.disown()
8567  _IMP_kernel.disown_SingletonModifier(self)
8568  return weakref.proxy(self)
8569 
8570  def do_get_inputs(self, m, pis):
8571  r"""do_get_inputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8572  return _IMP_kernel.SingletonModifier_do_get_inputs(self, m, pis)
8573 
8574  def do_get_outputs(self, m, pis):
8575  r"""do_get_outputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8576  return _IMP_kernel.SingletonModifier_do_get_outputs(self, m, pis)
8577 
8578  def do_destroy(self):
8579  r"""do_destroy(SingletonModifier self)"""
8580  return _IMP_kernel.SingletonModifier_do_destroy(self)
8581 
8582 # Register SingletonModifier in _IMP_kernel:
8583 _IMP_kernel.SingletonModifier_swigregister(SingletonModifier)
8584 class SingletonScore(_ParticleInputs, Object):
8585  r"""Proxy of C++ IMP::SingletonScore class."""
8586 
8587  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8588 
8589  def __init__(self, *args):
8590  r"""__init__(SingletonScore self, std::string name="SingletonScore %1%") -> SingletonScore"""
8591  if self.__class__ == SingletonScore:
8592  _self = None
8593  else:
8594  _self = self
8595  _IMP_kernel.SingletonScore_swiginit(self, _IMP_kernel.new_SingletonScore(_self, *args))
8596 
8597  if self.__class__ != SingletonScore:
8598  _director_objects.register(self)
8599 
8600 
8601 
8602 
8603  def evaluate_index(self, m, vt, da):
8604  r"""evaluate_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da) -> double"""
8605  return _IMP_kernel.SingletonScore_evaluate_index(self, m, vt, da)
8606 
8607  def check_indexes(self, m, pis):
8608  r"""check_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8609  return _IMP_kernel.SingletonScore_check_indexes(self, m, pis)
8610 
8611  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8612  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"""
8613  return _IMP_kernel.SingletonScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8614 
8615  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8616  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"""
8617  return _IMP_kernel.SingletonScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8618 
8619  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8620  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"""
8621  return _IMP_kernel.SingletonScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8622 
8623  def evaluate_if_good_index(self, m, vt, da, max):
8624  r"""evaluate_if_good_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da, double max) -> double"""
8625  return _IMP_kernel.SingletonScore_evaluate_if_good_index(self, m, vt, da, max)
8626 
8627  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8628  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"""
8629  return _IMP_kernel.SingletonScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8630 
8631  def create_current_decomposition(self, m, vt):
8632  r"""create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8633  return _IMP_kernel.SingletonScore_create_current_decomposition(self, m, vt)
8634 
8635  def do_create_current_decomposition(self, m, vt):
8636  r"""do_create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8637  return _IMP_kernel.SingletonScore_do_create_current_decomposition(self, m, vt)
8638  __swig_destroy__ = _IMP_kernel.delete_SingletonScore
8639 
8640  def __str__(self):
8641  r"""__str__(SingletonScore self) -> std::string"""
8642  return _IMP_kernel.SingletonScore___str__(self)
8643 
8644  def __repr__(self):
8645  r"""__repr__(SingletonScore self) -> std::string"""
8646  return _IMP_kernel.SingletonScore___repr__(self)
8647 
8648  @staticmethod
8649  def get_from(o):
8650  return _object_cast_to_SingletonScore(o)
8651 
8652 
8653  def do_show(self, out):
8654  pass
8655 
8656  @staticmethod
8657  def get_from(o):
8658  return _object_cast_to_SingletonScore(o)
8659 
8660 
8661  def _wrap_jax(self, m, score_func, keys=None):
8662  """See IMP::PairScore::_wrap_jax"""
8663  from IMP._jax_util import JAXScoreInfo
8664  return JAXScoreInfo(m, score_func=score_func, keys=keys)
8665 
8666  def _get_jax(self, m, indexes, space):
8667  """See IMP::PairScore::_get_jax"""
8668  raise NotImplementedError(
8669  f"No JAX implementation for {self} ({type(self)})")
8670 
8671  def __disown__(self):
8672  self.this.disown()
8673  _IMP_kernel.disown_SingletonScore(self)
8674  return weakref.proxy(self)
8675 
8676  def do_get_inputs(self, m, pis):
8677  r"""do_get_inputs(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8678  return _IMP_kernel.SingletonScore_do_get_inputs(self, m, pis)
8679 
8680  def do_destroy(self):
8681  r"""do_destroy(SingletonScore self)"""
8682  return _IMP_kernel.SingletonScore_do_destroy(self)
8683 
8684 # Register SingletonScore in _IMP_kernel:
8685 _IMP_kernel.SingletonScore_swigregister(SingletonScore)
8686 class SingletonPredicate(_ParticleInputs, Object):
8687  r"""Proxy of C++ IMP::SingletonPredicate class."""
8688 
8689  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8690 
8691  def __init__(self, *args):
8692  r"""__init__(SingletonPredicate self, std::string name="SingletonPredicate %1%") -> SingletonPredicate"""
8693  if self.__class__ == SingletonPredicate:
8694  _self = None
8695  else:
8696  _self = self
8697  _IMP_kernel.SingletonPredicate_swiginit(self, _IMP_kernel.new_SingletonPredicate(_self, *args))
8698 
8699  if self.__class__ != SingletonPredicate:
8700  _director_objects.register(self)
8701 
8702 
8703 
8704 
8705  def setup_for_get_value_index_in_batch(self, arg0):
8706  r"""setup_for_get_value_index_in_batch(SingletonPredicate self, Model arg0)"""
8707  return _IMP_kernel.SingletonPredicate_setup_for_get_value_index_in_batch(self, arg0)
8708 
8709  def get_value_index_in_batch(self, m, vt):
8710  r"""get_value_index_in_batch(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8711  return _IMP_kernel.SingletonPredicate_get_value_index_in_batch(self, m, vt)
8712 
8713  def __call__(self, m, vt):
8714  r"""__call__(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8715  return _IMP_kernel.SingletonPredicate___call__(self, m, vt)
8716 
8717  def get_value_index(self, *args):
8718  r"""
8719  get_value_index(SingletonPredicate self, Model m, ParticleIndex vt) -> int
8720  get_value_index(SingletonPredicate self, Model m, IMP::ParticleIndexes const & o) -> IMP::Ints
8721  """
8722  return _IMP_kernel.SingletonPredicate_get_value_index(self, *args)
8723  __swig_destroy__ = _IMP_kernel.delete_SingletonPredicate
8724 
8725  def __str__(self):
8726  r"""__str__(SingletonPredicate self) -> std::string"""
8727  return _IMP_kernel.SingletonPredicate___str__(self)
8728 
8729  def __repr__(self):
8730  r"""__repr__(SingletonPredicate self) -> std::string"""
8731  return _IMP_kernel.SingletonPredicate___repr__(self)
8732 
8733  @staticmethod
8734  def get_from(o):
8735  return _object_cast_to_SingletonPredicate(o)
8736 
8737 
8738  def do_show(self, out):
8739  pass
8740 
8741  @staticmethod
8742  def get_from(o):
8743  return _object_cast_to_SingletonPredicate(o)
8744 
8745  def __disown__(self):
8746  self.this.disown()
8747  _IMP_kernel.disown_SingletonPredicate(self)
8748  return weakref.proxy(self)
8749 
8750  def do_get_inputs(self, m, pis):
8751  r"""do_get_inputs(SingletonPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8752  return _IMP_kernel.SingletonPredicate_do_get_inputs(self, m, pis)
8753 
8754  def do_destroy(self):
8755  r"""do_destroy(SingletonPredicate self)"""
8756  return _IMP_kernel.SingletonPredicate_do_destroy(self)
8757 
8758 # Register SingletonPredicate in _IMP_kernel:
8759 _IMP_kernel.SingletonPredicate_swigregister(SingletonPredicate)
8761  r"""Proxy of C++ IMP::SingletonContainer class."""
8762 
8763  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8764 
8765  def apply_generic(self, m):
8766  r"""apply_generic(SingletonContainer self, SingletonModifier m)"""
8767  return _IMP_kernel.SingletonContainer_apply_generic(self, m)
8768 
8769  def apply_generic_moved(self, m, moved_pis, reset_pis):
8770  r"""apply_generic_moved(SingletonContainer self, SingletonModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8771  return _IMP_kernel.SingletonContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8772 
8773  def apply(self, sm):
8774  r"""apply(SingletonContainer self, SingletonModifier sm)"""
8775  return _IMP_kernel.SingletonContainer_apply(self, sm)
8776 
8777  def apply_moved(self, sm, moved_pis, reset_pis):
8778  r"""apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8779  return _IMP_kernel.SingletonContainer_apply_moved(self, sm, moved_pis, reset_pis)
8780 
8781  def get_range_indexes(self):
8782  r"""get_range_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8783  return _IMP_kernel.SingletonContainer_get_range_indexes(self)
8784 
8785  def get_contents(self):
8786  r"""get_contents(SingletonContainer self) -> IMP::ParticleIndexes const &"""
8787  return _IMP_kernel.SingletonContainer_get_contents(self)
8788 
8789  def get_indexes(self):
8790  r"""get_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8791  return _IMP_kernel.SingletonContainer_get_indexes(self)
8792 
8793  def get(self, *args):
8794  r"""
8795  get(SingletonContainer self) -> IMP::ParticlesTemp
8796  get(SingletonContainer self, unsigned int i) -> Particle
8797  """
8798  return _IMP_kernel.SingletonContainer_get(self, *args)
8799 
8800  def get_number(self):
8801  r"""get_number(SingletonContainer self) -> unsigned int"""
8802  return _IMP_kernel.SingletonContainer_get_number(self)
8803 
8804  def __init__(self, *args):
8805  r"""
8806  __init__(SingletonContainer self, Model m, std::string name="SingletonContainer %1%") -> SingletonContainer
8807  __init__(SingletonContainer self) -> SingletonContainer
8808  """
8809  if self.__class__ == SingletonContainer:
8810  _self = None
8811  else:
8812  _self = self
8813  _IMP_kernel.SingletonContainer_swiginit(self, _IMP_kernel.new_SingletonContainer(_self, *args))
8814 
8815  if self.__class__ != SingletonContainer:
8816  _director_objects.register(self)
8817 
8818 
8819 
8820 
8821  def do_apply(self, sm):
8822  r"""do_apply(SingletonContainer self, SingletonModifier sm)"""
8823  return _IMP_kernel.SingletonContainer_do_apply(self, sm)
8824 
8825  def do_apply_moved(self, sm, moved_pis, reset_pis):
8826  r"""do_apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8827  return _IMP_kernel.SingletonContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8828 
8829  def do_get_provides_access(self):
8830  r"""do_get_provides_access(SingletonContainer self) -> bool"""
8831  return _IMP_kernel.SingletonContainer_do_get_provides_access(self)
8832  __swig_destroy__ = _IMP_kernel.delete_SingletonContainer
8833 
8834  def __str__(self):
8835  r"""__str__(SingletonContainer self) -> std::string"""
8836  return _IMP_kernel.SingletonContainer___str__(self)
8837 
8838  def __repr__(self):
8839  r"""__repr__(SingletonContainer self) -> std::string"""
8840  return _IMP_kernel.SingletonContainer___repr__(self)
8841 
8842  @staticmethod
8843  def get_from(o):
8844  return _object_cast_to_SingletonContainer(o)
8845 
8846 
8847  def do_show(self, out):
8848  pass
8849 
8850  @staticmethod
8851  def get_from(o):
8852  return _object_cast_to_SingletonContainer(o)
8853 
8854  def __disown__(self):
8855  self.this.disown()
8856  _IMP_kernel.disown_SingletonContainer(self)
8857  return weakref.proxy(self)
8858 
8859  def do_destroy(self):
8860  r"""do_destroy(SingletonContainer self)"""
8861  return _IMP_kernel.SingletonContainer_do_destroy(self)
8862 
8863  def handle_set_has_required_score_states(self, arg0):
8864  r"""handle_set_has_required_score_states(SingletonContainer self, bool arg0)"""
8865  return _IMP_kernel.SingletonContainer_handle_set_has_required_score_states(self, arg0)
8866 
8867  def do_get_inputs(self):
8868  r"""do_get_inputs(SingletonContainer self) -> IMP::ModelObjectsTemp"""
8869  return _IMP_kernel.SingletonContainer_do_get_inputs(self)
8870 
8871  def do_get_interactions(self):
8872  r"""do_get_interactions(SingletonContainer self) -> IMP::ModelObjectsTemps"""
8873  return _IMP_kernel.SingletonContainer_do_get_interactions(self)
8874 
8875  def do_get_contents_hash(self):
8876  r"""do_get_contents_hash(SingletonContainer self) -> std::size_t"""
8877  return _IMP_kernel.SingletonContainer_do_get_contents_hash(self)
8878 
8879 # Register SingletonContainer in _IMP_kernel:
8880 _IMP_kernel.SingletonContainer_swigregister(SingletonContainer)
8881 class _SingletonContainerAdaptor(_InputAdaptor):
8882  r"""Proxy of C++ IMP::SingletonContainerAdaptor class."""
8883 
8884  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8885  __repr__ = _swig_repr
8886 
8887  def __init__(self, *args):
8888  r"""
8889  __init__(_SingletonContainerAdaptor self) -> _SingletonContainerAdaptor
8890  __init__(_SingletonContainerAdaptor self, SingletonContainer c) -> _SingletonContainerAdaptor
8891  __init__(_SingletonContainerAdaptor self, IMP::ParticlesTemp const & t) -> _SingletonContainerAdaptor
8892  """
8893  _IMP_kernel._SingletonContainerAdaptor_swiginit(self, _IMP_kernel.new__SingletonContainerAdaptor(*args))
8894 
8895  def set_name_if_default(self, name):
8896  r"""set_name_if_default(_SingletonContainerAdaptor self, std::string name)"""
8897  return _IMP_kernel._SingletonContainerAdaptor_set_name_if_default(self, name)
8898  __swig_destroy__ = _IMP_kernel.delete__SingletonContainerAdaptor
8899 
8900 # Register _SingletonContainerAdaptor in _IMP_kernel:
8901 _IMP_kernel._SingletonContainerAdaptor_swigregister(_SingletonContainerAdaptor)
8902 class TripletModifier(_ParticleInputs, _ParticleOutputs, Object):
8903  r"""Proxy of C++ IMP::TripletModifier class."""
8904 
8905  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8906 
8907  def __init__(self, *args):
8908  r"""__init__(TripletModifier self, std::string name="TripletModifier %1%") -> TripletModifier"""
8909  if self.__class__ == TripletModifier:
8910  _self = None
8911  else:
8912  _self = self
8913  _IMP_kernel.TripletModifier_swiginit(self, _IMP_kernel.new_TripletModifier(_self, *args))
8914 
8915  if self.__class__ != TripletModifier:
8916  _director_objects.register(self)
8917 
8918 
8919 
8920 
8921  def apply_index(self, m, v):
8922  r"""apply_index(TripletModifier self, Model m, IMP::ParticleIndexTriplet const & v)"""
8923  return _IMP_kernel.TripletModifier_apply_index(self, m, v)
8924 
8925  def apply_indexes(self, m, o, lower_bound, upper_bound):
8926  r"""apply_indexes(TripletModifier self, Model m, IMP::ParticleIndexTriplets const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8927  return _IMP_kernel.TripletModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8928 
8929  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8930  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)"""
8931  return _IMP_kernel.TripletModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8932 
8933  def __str__(self):
8934  r"""__str__(TripletModifier self) -> std::string"""
8935  return _IMP_kernel.TripletModifier___str__(self)
8936 
8937  def __repr__(self):
8938  r"""__repr__(TripletModifier self) -> std::string"""
8939  return _IMP_kernel.TripletModifier___repr__(self)
8940 
8941  @staticmethod
8942  def get_from(o):
8943  return _object_cast_to_TripletModifier(o)
8944 
8945 
8946  def do_show(self, out):
8947  pass
8948 
8949  @staticmethod
8950  def get_from(o):
8951  return _object_cast_to_TripletModifier(o)
8952 
8953  __swig_destroy__ = _IMP_kernel.delete_TripletModifier
8954  def __disown__(self):
8955  self.this.disown()
8956  _IMP_kernel.disown_TripletModifier(self)
8957  return weakref.proxy(self)
8958 
8959  def do_get_inputs(self, m, pis):
8960  r"""do_get_inputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8961  return _IMP_kernel.TripletModifier_do_get_inputs(self, m, pis)
8962 
8963  def do_get_outputs(self, m, pis):
8964  r"""do_get_outputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8965  return _IMP_kernel.TripletModifier_do_get_outputs(self, m, pis)
8966 
8967  def do_destroy(self):
8968  r"""do_destroy(TripletModifier self)"""
8969  return _IMP_kernel.TripletModifier_do_destroy(self)
8970 
8971 # Register TripletModifier in _IMP_kernel:
8972 _IMP_kernel.TripletModifier_swigregister(TripletModifier)
8973 class TripletScore(_ParticleInputs, Object):
8974  r"""Proxy of C++ IMP::TripletScore class."""
8975 
8976  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8977 
8978  def __init__(self, *args):
8979  r"""__init__(TripletScore self, std::string name="TripletScore %1%") -> TripletScore"""
8980  if self.__class__ == TripletScore:
8981  _self = None
8982  else:
8983  _self = self
8984  _IMP_kernel.TripletScore_swiginit(self, _IMP_kernel.new_TripletScore(_self, *args))
8985 
8986  if self.__class__ != TripletScore:
8987  _director_objects.register(self)
8988 
8989 
8990 
8991 
8992  def evaluate_index(self, m, vt, da):
8993  r"""evaluate_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da) -> double"""
8994  return _IMP_kernel.TripletScore_evaluate_index(self, m, vt, da)
8995 
8996  def check_indexes(self, m, pis):
8997  r"""check_indexes(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8998  return _IMP_kernel.TripletScore_check_indexes(self, m, pis)
8999 
9000  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
9001  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"""
9002  return _IMP_kernel.TripletScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
9003 
9004  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9005  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"""
9006  return _IMP_kernel.TripletScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
9007 
9008  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
9009  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"""
9010  return _IMP_kernel.TripletScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
9011 
9012  def evaluate_if_good_index(self, m, vt, da, max):
9013  r"""evaluate_if_good_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da, double max) -> double"""
9014  return _IMP_kernel.TripletScore_evaluate_if_good_index(self, m, vt, da, max)
9015 
9016  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9017  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"""
9018  return _IMP_kernel.TripletScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
9019 
9020  def create_current_decomposition(self, m, vt):
9021  r"""create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
9022  return _IMP_kernel.TripletScore_create_current_decomposition(self, m, vt)
9023 
9024  def do_create_current_decomposition(self, m, vt):
9025  r"""do_create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
9026  return _IMP_kernel.TripletScore_do_create_current_decomposition(self, m, vt)
9027  __swig_destroy__ = _IMP_kernel.delete_TripletScore
9028 
9029  def __str__(self):
9030  r"""__str__(TripletScore self) -> std::string"""
9031  return _IMP_kernel.TripletScore___str__(self)
9032 
9033  def __repr__(self):
9034  r"""__repr__(TripletScore self) -> std::string"""
9035  return _IMP_kernel.TripletScore___repr__(self)
9036 
9037  @staticmethod
9038  def get_from(o):
9039  return _object_cast_to_TripletScore(o)
9040 
9041 
9042  def do_show(self, out):
9043  pass
9044 
9045  @staticmethod
9046  def get_from(o):
9047  return _object_cast_to_TripletScore(o)
9048 
9049  def __disown__(self):
9050  self.this.disown()
9051  _IMP_kernel.disown_TripletScore(self)
9052  return weakref.proxy(self)
9053 
9054  def do_get_inputs(self, m, pis):
9055  r"""do_get_inputs(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9056  return _IMP_kernel.TripletScore_do_get_inputs(self, m, pis)
9057 
9058  def do_destroy(self):
9059  r"""do_destroy(TripletScore self)"""
9060  return _IMP_kernel.TripletScore_do_destroy(self)
9061 
9062 # Register TripletScore in _IMP_kernel:
9063 _IMP_kernel.TripletScore_swigregister(TripletScore)
9064 class TripletPredicate(_ParticleInputs, Object):
9065  r"""Proxy of C++ IMP::TripletPredicate class."""
9066 
9067  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9068 
9069  def __init__(self, *args):
9070  r"""__init__(TripletPredicate self, std::string name="TripletPredicate %1%") -> TripletPredicate"""
9071  if self.__class__ == TripletPredicate:
9072  _self = None
9073  else:
9074  _self = self
9075  _IMP_kernel.TripletPredicate_swiginit(self, _IMP_kernel.new_TripletPredicate(_self, *args))
9076 
9077  if self.__class__ != TripletPredicate:
9078  _director_objects.register(self)
9079 
9080 
9081 
9082 
9083  def setup_for_get_value_index_in_batch(self, arg0):
9084  r"""setup_for_get_value_index_in_batch(TripletPredicate self, Model arg0)"""
9085  return _IMP_kernel.TripletPredicate_setup_for_get_value_index_in_batch(self, arg0)
9086 
9087  def get_value_index_in_batch(self, m, vt):
9088  r"""get_value_index_in_batch(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9089  return _IMP_kernel.TripletPredicate_get_value_index_in_batch(self, m, vt)
9090 
9091  def __call__(self, m, vt):
9092  r"""__call__(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9093  return _IMP_kernel.TripletPredicate___call__(self, m, vt)
9094 
9095  def get_value_index(self, *args):
9096  r"""
9097  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int
9098  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplets const & o) -> IMP::Ints
9099  """
9100  return _IMP_kernel.TripletPredicate_get_value_index(self, *args)
9101  __swig_destroy__ = _IMP_kernel.delete_TripletPredicate
9102 
9103  def __str__(self):
9104  r"""__str__(TripletPredicate self) -> std::string"""
9105  return _IMP_kernel.TripletPredicate___str__(self)
9106 
9107  def __repr__(self):
9108  r"""__repr__(TripletPredicate self) -> std::string"""
9109  return _IMP_kernel.TripletPredicate___repr__(self)
9110 
9111  @staticmethod
9112  def get_from(o):
9113  return _object_cast_to_TripletPredicate(o)
9114 
9115 
9116  def do_show(self, out):
9117  pass
9118 
9119  @staticmethod
9120  def get_from(o):
9121  return _object_cast_to_TripletPredicate(o)
9122 
9123  def __disown__(self):
9124  self.this.disown()
9125  _IMP_kernel.disown_TripletPredicate(self)
9126  return weakref.proxy(self)
9127 
9128  def do_get_inputs(self, m, pis):
9129  r"""do_get_inputs(TripletPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9130  return _IMP_kernel.TripletPredicate_do_get_inputs(self, m, pis)
9131 
9132  def do_destroy(self):
9133  r"""do_destroy(TripletPredicate self)"""
9134  return _IMP_kernel.TripletPredicate_do_destroy(self)
9135 
9136 # Register TripletPredicate in _IMP_kernel:
9137 _IMP_kernel.TripletPredicate_swigregister(TripletPredicate)
9139  r"""Proxy of C++ IMP::TripletContainer class."""
9140 
9141  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9142 
9143  def apply_generic(self, m):
9144  r"""apply_generic(TripletContainer self, TripletModifier m)"""
9145  return _IMP_kernel.TripletContainer_apply_generic(self, m)
9146 
9147  def apply_generic_moved(self, m, moved_pis, reset_pis):
9148  r"""apply_generic_moved(TripletContainer self, TripletModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9149  return _IMP_kernel.TripletContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
9150 
9151  def apply(self, sm):
9152  r"""apply(TripletContainer self, TripletModifier sm)"""
9153  return _IMP_kernel.TripletContainer_apply(self, sm)
9154 
9155  def apply_moved(self, sm, moved_pis, reset_pis):
9156  r"""apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9157  return _IMP_kernel.TripletContainer_apply_moved(self, sm, moved_pis, reset_pis)
9158 
9159  def get_range_indexes(self):
9160  r"""get_range_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9161  return _IMP_kernel.TripletContainer_get_range_indexes(self)
9162 
9163  def get_contents(self):
9164  r"""get_contents(TripletContainer self) -> IMP::ParticleIndexTriplets const &"""
9165  return _IMP_kernel.TripletContainer_get_contents(self)
9166 
9167  def get_indexes(self):
9168  r"""get_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9169  return _IMP_kernel.TripletContainer_get_indexes(self)
9170 
9171  def get(self, *args):
9172  r"""
9173  get(TripletContainer self) -> IMP::ParticleTripletsTemp
9174  get(TripletContainer self, unsigned int i) -> IMP::ParticleTriplet
9175  """
9176  return _IMP_kernel.TripletContainer_get(self, *args)
9177 
9178  def get_number(self):
9179  r"""get_number(TripletContainer self) -> unsigned int"""
9180  return _IMP_kernel.TripletContainer_get_number(self)
9181 
9182  def __init__(self, *args):
9183  r"""
9184  __init__(TripletContainer self, Model m, std::string name="TripletContainer %1%") -> TripletContainer
9185  __init__(TripletContainer self) -> TripletContainer
9186  """
9187  if self.__class__ == TripletContainer:
9188  _self = None
9189  else:
9190  _self = self
9191  _IMP_kernel.TripletContainer_swiginit(self, _IMP_kernel.new_TripletContainer(_self, *args))
9192 
9193  if self.__class__ != TripletContainer:
9194  _director_objects.register(self)
9195 
9196 
9197 
9198 
9199  def do_apply(self, sm):
9200  r"""do_apply(TripletContainer self, TripletModifier sm)"""
9201  return _IMP_kernel.TripletContainer_do_apply(self, sm)
9202 
9203  def do_apply_moved(self, sm, moved_pis, reset_pis):
9204  r"""do_apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9205  return _IMP_kernel.TripletContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
9206 
9207  def do_get_provides_access(self):
9208  r"""do_get_provides_access(TripletContainer self) -> bool"""
9209  return _IMP_kernel.TripletContainer_do_get_provides_access(self)
9210  __swig_destroy__ = _IMP_kernel.delete_TripletContainer
9211 
9212  def __str__(self):
9213  r"""__str__(TripletContainer self) -> std::string"""
9214  return _IMP_kernel.TripletContainer___str__(self)
9215 
9216  def __repr__(self):
9217  r"""__repr__(TripletContainer self) -> std::string"""
9218  return _IMP_kernel.TripletContainer___repr__(self)
9219 
9220  @staticmethod
9221  def get_from(o):
9222  return _object_cast_to_TripletContainer(o)
9223 
9224 
9225  def do_show(self, out):
9226  pass
9227 
9228  @staticmethod
9229  def get_from(o):
9230  return _object_cast_to_TripletContainer(o)
9231 
9232  def __disown__(self):
9233  self.this.disown()
9234  _IMP_kernel.disown_TripletContainer(self)
9235  return weakref.proxy(self)
9236 
9237  def do_destroy(self):
9238  r"""do_destroy(TripletContainer self)"""
9239  return _IMP_kernel.TripletContainer_do_destroy(self)
9240 
9241  def handle_set_has_required_score_states(self, arg0):
9242  r"""handle_set_has_required_score_states(TripletContainer self, bool arg0)"""
9243  return _IMP_kernel.TripletContainer_handle_set_has_required_score_states(self, arg0)
9244 
9245  def do_get_inputs(self):
9246  r"""do_get_inputs(TripletContainer self) -> IMP::ModelObjectsTemp"""
9247  return _IMP_kernel.TripletContainer_do_get_inputs(self)
9248 
9249  def do_get_interactions(self):
9250  r"""do_get_interactions(TripletContainer self) -> IMP::ModelObjectsTemps"""
9251  return _IMP_kernel.TripletContainer_do_get_interactions(self)
9252 
9253  def do_get_contents_hash(self):
9254  r"""do_get_contents_hash(TripletContainer self) -> std::size_t"""
9255  return _IMP_kernel.TripletContainer_do_get_contents_hash(self)
9256 
9257 # Register TripletContainer in _IMP_kernel:
9258 _IMP_kernel.TripletContainer_swigregister(TripletContainer)
9259 class _TripletContainerAdaptor(_InputAdaptor):
9260  r"""Proxy of C++ IMP::TripletContainerAdaptor class."""
9261 
9262  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9263  __repr__ = _swig_repr
9264 
9265  def __init__(self, *args):
9266  r"""
9267  __init__(_TripletContainerAdaptor self) -> _TripletContainerAdaptor
9268  __init__(_TripletContainerAdaptor self, TripletContainer c) -> _TripletContainerAdaptor
9269  __init__(_TripletContainerAdaptor self, IMP::ParticleTripletsTemp const & t) -> _TripletContainerAdaptor
9270  """
9271  _IMP_kernel._TripletContainerAdaptor_swiginit(self, _IMP_kernel.new__TripletContainerAdaptor(*args))
9272 
9273  def set_name_if_default(self, name):
9274  r"""set_name_if_default(_TripletContainerAdaptor self, std::string name)"""
9275  return _IMP_kernel._TripletContainerAdaptor_set_name_if_default(self, name)
9276  __swig_destroy__ = _IMP_kernel.delete__TripletContainerAdaptor
9277 
9278 # Register _TripletContainerAdaptor in _IMP_kernel:
9279 _IMP_kernel._TripletContainerAdaptor_swigregister(_TripletContainerAdaptor)
9280 
9281 def write_particles_to_buffer(particles, keys):
9282  r"""write_particles_to_buffer(IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys) -> IMP::Vector< char,std::allocator< char > >"""
9283  return _IMP_kernel.write_particles_to_buffer(particles, keys)
9284 
9285 def read_particles_from_buffer(buffer, particles, keys):
9286  r"""read_particles_from_buffer(IMP::Vector< char,std::allocator< char > > const & buffer, IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys)"""
9287  return _IMP_kernel.read_particles_from_buffer(buffer, particles, keys)
9288 
9289 def get_particles(m, ps):
9290  r"""get_particles(Model m, IMP::ParticleIndexes const & ps) -> IMP::ParticlesTemp"""
9291  return _IMP_kernel.get_particles(m, ps)
9292 
9293 def get_indexes(*args):
9294  r"""
9295  get_indexes(IMP::ParticlesTemp const & ps) -> IMP::ParticleIndexes
9296  get_indexes(IMP::ParticlePairsTemp const & ps) -> IMP::ParticleIndexPairs
9297  """
9298  return _IMP_kernel.get_indexes(*args)
9299 class _ParticleIndexAdaptor(object):
9300  r"""Proxy of C++ IMP::ParticleIndexAdaptor class."""
9301 
9302  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9303  __repr__ = _swig_repr
9304 
9305  def __init__(self, *args):
9306  r"""
9307  __init__(_ParticleIndexAdaptor self, Particle p) -> _ParticleIndexAdaptor
9308  __init__(_ParticleIndexAdaptor self, ParticleIndex pi) -> _ParticleIndexAdaptor
9309  __init__(_ParticleIndexAdaptor self, Decorator d) -> _ParticleIndexAdaptor
9310  """
9311  _IMP_kernel._ParticleIndexAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexAdaptor(*args))
9312  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexAdaptor
9313 
9314 # Register _ParticleIndexAdaptor in _IMP_kernel:
9315 _IMP_kernel._ParticleIndexAdaptor_swigregister(_ParticleIndexAdaptor)
9316 class _ParticleIndexesAdaptor(_InputAdaptor):
9317  r"""Proxy of C++ IMP::ParticleIndexesAdaptor class."""
9318 
9319  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9320  __repr__ = _swig_repr
9321 
9322  def __init__(self, *args):
9323  r"""
9324  __init__(_ParticleIndexesAdaptor self, IMP::ParticlesTemp const & ps) -> _ParticleIndexesAdaptor
9325  __init__(_ParticleIndexesAdaptor self, IMP::ParticleIndexes const & pi) -> _ParticleIndexesAdaptor
9326  __init__(_ParticleIndexesAdaptor self) -> _ParticleIndexesAdaptor
9327  """
9328  _IMP_kernel._ParticleIndexesAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexesAdaptor(*args))
9329  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexesAdaptor
9330 
9331 # Register _ParticleIndexesAdaptor in _IMP_kernel:
9332 _IMP_kernel._ParticleIndexesAdaptor_swigregister(_ParticleIndexesAdaptor)
9333 class _ParticleIndexPairsAdaptor(object):
9334  r"""Proxy of C++ IMP::ParticleIndexPairsAdaptor class."""
9335 
9336  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9337  __repr__ = _swig_repr
9338 
9339  def __init__(self, *args):
9340  r"""
9341  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticlePairsTemp const & ps) -> _ParticleIndexPairsAdaptor
9342  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticleIndexPairs const & pi) -> _ParticleIndexPairsAdaptor
9343  __init__(_ParticleIndexPairsAdaptor self) -> _ParticleIndexPairsAdaptor
9344  """
9345  _IMP_kernel._ParticleIndexPairsAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexPairsAdaptor(*args))
9346  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexPairsAdaptor
9347 
9348 # Register _ParticleIndexPairsAdaptor in _IMP_kernel:
9349 _IMP_kernel._ParticleIndexPairsAdaptor_swigregister(_ParticleIndexPairsAdaptor)
9350 class _ConstRestraint(Restraint):
9351  r"""Proxy of C++ IMP::internal::_ConstRestraint class."""
9352 
9353  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9354 
9355  def __init__(self, *args):
9356  r"""
9357  __init__(_ConstRestraint self, Model m, IMP::ParticleIndexes const & pis, double v) -> _ConstRestraint
9358  __init__(_ConstRestraint self) -> _ConstRestraint
9359  """
9360  _IMP_kernel._ConstRestraint_swiginit(self, _IMP_kernel.new__ConstRestraint(*args))
9361 
9362  def get_value(self):
9363  r"""get_value(_ConstRestraint self) -> double"""
9364  return _IMP_kernel._ConstRestraint_get_value(self)
9365 
9366  def do_create_decomposition(self):
9367  r"""do_create_decomposition(_ConstRestraint self) -> IMP::Restraints"""
9368  return _IMP_kernel._ConstRestraint_do_create_decomposition(self)
9369 
9370  def do_get_inputs(self):
9371  r"""do_get_inputs(_ConstRestraint self) -> IMP::ModelObjectsTemp"""
9372  return _IMP_kernel._ConstRestraint_do_get_inputs(self)
9373 
9374  def get_version_info(self):
9375  r"""get_version_info(_ConstRestraint self) -> VersionInfo"""
9376  return _IMP_kernel._ConstRestraint_get_version_info(self)
9377  __swig_destroy__ = _IMP_kernel.delete__ConstRestraint
9378 
9379  def __str__(self):
9380  r"""__str__(_ConstRestraint self) -> std::string"""
9381  return _IMP_kernel._ConstRestraint___str__(self)
9382 
9383  def __repr__(self):
9384  r"""__repr__(_ConstRestraint self) -> std::string"""
9385  return _IMP_kernel._ConstRestraint___repr__(self)
9386 
9387  @staticmethod
9388  def get_from(o):
9389  return _object_cast_to__ConstRestraint(o)
9390 
9391 
9392  def _get_as_binary(self):
9393  r"""_get_as_binary(_ConstRestraint self) -> PyObject *"""
9394  return _IMP_kernel._ConstRestraint__get_as_binary(self)
9395 
9396  def _set_from_binary(self, p):
9397  r"""_set_from_binary(_ConstRestraint self, PyObject * p)"""
9398  return _IMP_kernel._ConstRestraint__set_from_binary(self, p)
9399 
9400  def __getstate__(self):
9401  p = self._get_as_binary()
9402  if len(self.__dict__) > 1:
9403  d = self.__dict__.copy()
9404  del d['this']
9405  p = (d, p)
9406  return p
9407 
9408  def __setstate__(self, p):
9409  if not hasattr(self, 'this'):
9410  self.__init__()
9411  if isinstance(p, tuple):
9412  d, p = p
9413  self.__dict__.update(d)
9414  return self._set_from_binary(p)
9415 
9416 
9417  def _get_jax(self, space):
9418  value = self.get_value()
9419  # We always return `value` regardless of the JAX Model
9420  return self._wrap_jax(lambda jm: value)
9421 
9422 
9423 # Register _ConstRestraint in _IMP_kernel:
9424 _IMP_kernel._ConstRestraint_swigregister(_ConstRestraint)
9425 class _ConstSingletonScore(SingletonScore):
9426  r"""Proxy of C++ IMP::internal::_ConstSingletonScore class."""
9427 
9428  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9429 
9430  def __init__(self, *args):
9431  r"""
9432  __init__(_ConstSingletonScore self, double v) -> _ConstSingletonScore
9433  __init__(_ConstSingletonScore self) -> _ConstSingletonScore
9434  """
9435  _IMP_kernel._ConstSingletonScore_swiginit(self, _IMP_kernel.new__ConstSingletonScore(*args))
9436 
9437  def get_value(self):
9438  r"""get_value(_ConstSingletonScore self) -> double"""
9439  return _IMP_kernel._ConstSingletonScore_get_value(self)
9440 
9441  def do_get_inputs(self, arg2, arg3):
9442  r"""do_get_inputs(_ConstSingletonScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9443  return _IMP_kernel._ConstSingletonScore_do_get_inputs(self, arg2, arg3)
9444 
9445  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9446  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"""
9447  return _IMP_kernel._ConstSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9448 
9449  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9450  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"""
9451  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9452 
9453  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9454  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"""
9455  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9456 
9457  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9458  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"""
9459  return _IMP_kernel._ConstSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9460 
9461  def get_version_info(self):
9462  r"""get_version_info(_ConstSingletonScore self) -> VersionInfo"""
9463  return _IMP_kernel._ConstSingletonScore_get_version_info(self)
9464  __swig_destroy__ = _IMP_kernel.delete__ConstSingletonScore
9465 
9466  def __str__(self):
9467  r"""__str__(_ConstSingletonScore self) -> std::string"""
9468  return _IMP_kernel._ConstSingletonScore___str__(self)
9469 
9470  def __repr__(self):
9471  r"""__repr__(_ConstSingletonScore self) -> std::string"""
9472  return _IMP_kernel._ConstSingletonScore___repr__(self)
9473 
9474  @staticmethod
9475  def get_from(o):
9476  return _object_cast_to__ConstSingletonScore(o)
9477 
9478 
9479  def _get_as_binary(self):
9480  r"""_get_as_binary(_ConstSingletonScore self) -> PyObject *"""
9481  return _IMP_kernel._ConstSingletonScore__get_as_binary(self)
9482 
9483  def _set_from_binary(self, p):
9484  r"""_set_from_binary(_ConstSingletonScore self, PyObject * p)"""
9485  return _IMP_kernel._ConstSingletonScore__set_from_binary(self, p)
9486 
9487  def __getstate__(self):
9488  p = self._get_as_binary()
9489  if len(self.__dict__) > 1:
9490  d = self.__dict__.copy()
9491  del d['this']
9492  p = (d, p)
9493  return p
9494 
9495  def __setstate__(self, p):
9496  if not hasattr(self, 'this'):
9497  self.__init__()
9498  if isinstance(p, tuple):
9499  d, p = p
9500  self.__dict__.update(d)
9501  return self._set_from_binary(p)
9502 
9503 
9504  def _get_jax(self, m, indexes, space):
9505  value = self.get_value()
9506  # We always return `value` regardless of the JAX Model or indexes
9507  return self._wrap_jax(m, lambda jm: value)
9508 
9509 
9510 # Register _ConstSingletonScore in _IMP_kernel:
9511 _IMP_kernel._ConstSingletonScore_swigregister(_ConstSingletonScore)
9512 class _ConstPairScore(PairScore):
9513  r"""Proxy of C++ IMP::internal::_ConstPairScore class."""
9514 
9515  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9516 
9517  def __init__(self, *args):
9518  r"""
9519  __init__(_ConstPairScore self, double v) -> _ConstPairScore
9520  __init__(_ConstPairScore self) -> _ConstPairScore
9521  """
9522  _IMP_kernel._ConstPairScore_swiginit(self, _IMP_kernel.new__ConstPairScore(*args))
9523 
9524  def get_value(self):
9525  r"""get_value(_ConstPairScore self) -> double"""
9526  return _IMP_kernel._ConstPairScore_get_value(self)
9527 
9528  def do_get_inputs(self, arg2, arg3):
9529  r"""do_get_inputs(_ConstPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9530  return _IMP_kernel._ConstPairScore_do_get_inputs(self, arg2, arg3)
9531 
9532  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9533  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"""
9534  return _IMP_kernel._ConstPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9535 
9536  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9537  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"""
9538  return _IMP_kernel._ConstPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9539 
9540  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9541  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"""
9542  return _IMP_kernel._ConstPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9543 
9544  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9545  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"""
9546  return _IMP_kernel._ConstPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9547 
9548  def get_version_info(self):
9549  r"""get_version_info(_ConstPairScore self) -> VersionInfo"""
9550  return _IMP_kernel._ConstPairScore_get_version_info(self)
9551  __swig_destroy__ = _IMP_kernel.delete__ConstPairScore
9552 
9553  def __str__(self):
9554  r"""__str__(_ConstPairScore self) -> std::string"""
9555  return _IMP_kernel._ConstPairScore___str__(self)
9556 
9557  def __repr__(self):
9558  r"""__repr__(_ConstPairScore self) -> std::string"""
9559  return _IMP_kernel._ConstPairScore___repr__(self)
9560 
9561  @staticmethod
9562  def get_from(o):
9563  return _object_cast_to__ConstPairScore(o)
9564 
9565 
9566  def _get_as_binary(self):
9567  r"""_get_as_binary(_ConstPairScore self) -> PyObject *"""
9568  return _IMP_kernel._ConstPairScore__get_as_binary(self)
9569 
9570  def _set_from_binary(self, p):
9571  r"""_set_from_binary(_ConstPairScore self, PyObject * p)"""
9572  return _IMP_kernel._ConstPairScore__set_from_binary(self, p)
9573 
9574  def __getstate__(self):
9575  p = self._get_as_binary()
9576  if len(self.__dict__) > 1:
9577  d = self.__dict__.copy()
9578  del d['this']
9579  p = (d, p)
9580  return p
9581 
9582  def __setstate__(self, p):
9583  if not hasattr(self, 'this'):
9584  self.__init__()
9585  if isinstance(p, tuple):
9586  d, p = p
9587  self.__dict__.update(d)
9588  return self._set_from_binary(p)
9589 
9590 
9591  def _get_jax(self, m, indexes, space):
9592  value = self.get_value()
9593  # We always return `value` regardless of the JAX Model or indexes
9594  return self._wrap_jax(m, lambda jm: value)
9595 
9596 
9597 # Register _ConstPairScore in _IMP_kernel:
9598 _IMP_kernel._ConstPairScore_swigregister(_ConstPairScore)
9599 class _TrivialDecorator(Decorator):
9600  r"""Proxy of C++ IMP::internal::_TrivialDecorator class."""
9601 
9602  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9603 
9604  def __init__(self, *args):
9605  r"""
9606  __init__(_TrivialDecorator self) -> _TrivialDecorator
9607  __init__(_TrivialDecorator self, Model m, ParticleIndex id) -> _TrivialDecorator
9608  __init__(_TrivialDecorator self, _ParticleAdaptor d) -> _TrivialDecorator
9609  """
9610  _IMP_kernel._TrivialDecorator_swiginit(self, _IMP_kernel.new__TrivialDecorator(*args))
9611 
9612  def show(self, *args):
9613  r"""show(_TrivialDecorator self, _ostream out=std::cout)"""
9614  return _IMP_kernel._TrivialDecorator_show(self, *args)
9615 
9616  @staticmethod
9617  def setup_particle(*args):
9618  r"""
9619  setup_particle(Model m, ParticleIndex pi) -> _TrivialDecorator
9620  setup_particle(_ParticleAdaptor pa) -> _TrivialDecorator
9621  """
9622  return _IMP_kernel._TrivialDecorator_setup_particle(*args)
9623 
9624  @staticmethod
9625  def get_is_setup(*args):
9626  r"""
9627  get_is_setup(_ParticleAdaptor p) -> bool
9628  get_is_setup(Model m, ParticleIndex pi) -> bool
9629  """
9630  return _IMP_kernel._TrivialDecorator_get_is_setup(*args)
9631 
9632  def add_attribute(self, *args):
9633  r"""
9634  add_attribute(_TrivialDecorator self, FloatKey k, IMP::Float v, bool opt)
9635  add_attribute(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9636  add_attribute(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9637  add_attribute(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9638  add_attribute(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9639  add_attribute(_TrivialDecorator self, StringKey a0, IMP::String a1)
9640  add_attribute(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9641  add_attribute(_TrivialDecorator self, ObjectKey a0, Object a1)
9642  add_attribute(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9643  add_attribute(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9644  add_attribute(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9645  add_attribute(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9646  """
9647  return _IMP_kernel._TrivialDecorator_add_attribute(self, *args)
9648 
9649  def get_value(self, *args):
9650  r"""
9651  get_value(_TrivialDecorator self, FloatKey a0) -> IMP::Float
9652  get_value(_TrivialDecorator self, IntKey a0) -> IMP::Int
9653  get_value(_TrivialDecorator self, FloatsKey a0) -> IMP::Floats
9654  get_value(_TrivialDecorator self, IntsKey a0) -> IMP::Ints
9655  get_value(_TrivialDecorator self, StringKey a0) -> IMP::String
9656  get_value(_TrivialDecorator self, ParticleIndexKey a0) -> Particle
9657  get_value(_TrivialDecorator self, ObjectKey a0) -> Object
9658  get_value(_TrivialDecorator self, SparseFloatKey a0) -> IMP::Float
9659  get_value(_TrivialDecorator self, SparseIntKey a0) -> IMP::Int
9660  get_value(_TrivialDecorator self, SparseStringKey a0) -> IMP::String
9661  get_value(_TrivialDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9662  """
9663  return _IMP_kernel._TrivialDecorator_get_value(self, *args)
9664 
9665  def set_value(self, *args):
9666  r"""
9667  set_value(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9668  set_value(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9669  set_value(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9670  set_value(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9671  set_value(_TrivialDecorator self, StringKey a0, IMP::String a1)
9672  set_value(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9673  set_value(_TrivialDecorator self, ObjectKey a0, Object a1)
9674  set_value(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9675  set_value(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9676  set_value(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9677  set_value(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9678  """
9679  return _IMP_kernel._TrivialDecorator_set_value(self, *args)
9680 
9681  def remove_attribute(self, *args):
9682  r"""
9683  remove_attribute(_TrivialDecorator self, FloatKey a0)
9684  remove_attribute(_TrivialDecorator self, IntKey a0)
9685  remove_attribute(_TrivialDecorator self, FloatsKey a0)
9686  remove_attribute(_TrivialDecorator self, IntsKey a0)
9687  remove_attribute(_TrivialDecorator self, StringKey a0)
9688  remove_attribute(_TrivialDecorator self, ParticleIndexKey a0)
9689  remove_attribute(_TrivialDecorator self, ObjectKey a0)
9690  remove_attribute(_TrivialDecorator self, SparseFloatKey a0)
9691  remove_attribute(_TrivialDecorator self, SparseIntKey a0)
9692  remove_attribute(_TrivialDecorator self, SparseStringKey a0)
9693  remove_attribute(_TrivialDecorator self, SparseParticleIndexKey a0)
9694  """
9695  return _IMP_kernel._TrivialDecorator_remove_attribute(self, *args)
9696 
9697  def has_attribute(self, *args):
9698  r"""
9699  has_attribute(_TrivialDecorator self, FloatKey a0) -> bool
9700  has_attribute(_TrivialDecorator self, IntKey a0) -> bool
9701  has_attribute(_TrivialDecorator self, FloatsKey a0) -> bool
9702  has_attribute(_TrivialDecorator self, IntsKey a0) -> bool
9703  has_attribute(_TrivialDecorator self, StringKey a0) -> bool
9704  has_attribute(_TrivialDecorator self, ParticleIndexKey a0) -> bool
9705  has_attribute(_TrivialDecorator self, ObjectKey a0) -> bool
9706  has_attribute(_TrivialDecorator self, SparseFloatKey a0) -> bool
9707  has_attribute(_TrivialDecorator self, SparseIntKey a0) -> bool
9708  has_attribute(_TrivialDecorator self, SparseStringKey a0) -> bool
9709  has_attribute(_TrivialDecorator self, SparseParticleIndexKey a0) -> bool
9710  """
9711  return _IMP_kernel._TrivialDecorator_has_attribute(self, *args)
9712 
9713  def get_derivative(self, a0):
9714  r"""get_derivative(_TrivialDecorator self, FloatKey a0) -> double"""
9715  return _IMP_kernel._TrivialDecorator_get_derivative(self, a0)
9716 
9717  def get_name(self):
9718  r"""get_name(_TrivialDecorator self) -> std::string"""
9719  return _IMP_kernel._TrivialDecorator_get_name(self)
9720 
9721  def clear_caches(self):
9722  r"""clear_caches(_TrivialDecorator self)"""
9723  return _IMP_kernel._TrivialDecorator_clear_caches(self)
9724 
9725  def set_name(self, a0):
9726  r"""set_name(_TrivialDecorator self, std::string a0)"""
9727  return _IMP_kernel._TrivialDecorator_set_name(self, a0)
9728 
9729  def set_check_level(self, a0):
9730  r"""set_check_level(_TrivialDecorator self, IMP::CheckLevel a0)"""
9731  return _IMP_kernel._TrivialDecorator_set_check_level(self, a0)
9732 
9733  def add_to_derivative(self, a0, a1, a2):
9734  r"""add_to_derivative(_TrivialDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9735  return _IMP_kernel._TrivialDecorator_add_to_derivative(self, a0, a1, a2)
9736 
9737  def set_is_optimized(self, a0, a1):
9738  r"""set_is_optimized(_TrivialDecorator self, FloatKey a0, bool a1)"""
9739  return _IMP_kernel._TrivialDecorator_set_is_optimized(self, a0, a1)
9740 
9741  def get_is_optimized(self, a0):
9742  r"""get_is_optimized(_TrivialDecorator self, FloatKey a0) -> bool"""
9743  return _IMP_kernel._TrivialDecorator_get_is_optimized(self, a0)
9744 
9745  def get_check_level(self):
9746  r"""get_check_level(_TrivialDecorator self) -> IMP::CheckLevel"""
9747  return _IMP_kernel._TrivialDecorator_get_check_level(self)
9748 
9749  def __eq__(self, *args):
9750  r"""
9751  __eq__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9752  __eq__(_TrivialDecorator self, Particle d) -> bool
9753  """
9754  return _IMP_kernel._TrivialDecorator___eq__(self, *args)
9755 
9756  def __ne__(self, *args):
9757  r"""
9758  __ne__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9759  __ne__(_TrivialDecorator self, Particle d) -> bool
9760  """
9761  return _IMP_kernel._TrivialDecorator___ne__(self, *args)
9762 
9763  def __le__(self, *args):
9764  r"""
9765  __le__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9766  __le__(_TrivialDecorator self, Particle d) -> bool
9767  """
9768  return _IMP_kernel._TrivialDecorator___le__(self, *args)
9769 
9770  def __lt__(self, *args):
9771  r"""
9772  __lt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9773  __lt__(_TrivialDecorator self, Particle d) -> bool
9774  """
9775  return _IMP_kernel._TrivialDecorator___lt__(self, *args)
9776 
9777  def __ge__(self, *args):
9778  r"""
9779  __ge__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9780  __ge__(_TrivialDecorator self, Particle d) -> bool
9781  """
9782  return _IMP_kernel._TrivialDecorator___ge__(self, *args)
9783 
9784  def __gt__(self, *args):
9785  r"""
9786  __gt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9787  __gt__(_TrivialDecorator self, Particle d) -> bool
9788  """
9789  return _IMP_kernel._TrivialDecorator___gt__(self, *args)
9790 
9791  def __hash__(self):
9792  r"""__hash__(_TrivialDecorator self) -> std::size_t"""
9793  return _IMP_kernel._TrivialDecorator___hash__(self)
9794 
9795  def __str__(self):
9796  r"""__str__(_TrivialDecorator self) -> std::string"""
9797  return _IMP_kernel._TrivialDecorator___str__(self)
9798 
9799  def __repr__(self):
9800  r"""__repr__(_TrivialDecorator self) -> std::string"""
9801  return _IMP_kernel._TrivialDecorator___repr__(self)
9802 
9803  def _get_as_binary(self):
9804  r"""_get_as_binary(_TrivialDecorator self) -> PyObject *"""
9805  return _IMP_kernel._TrivialDecorator__get_as_binary(self)
9806 
9807  def _set_from_binary(self, p):
9808  r"""_set_from_binary(_TrivialDecorator self, PyObject * p)"""
9809  return _IMP_kernel._TrivialDecorator__set_from_binary(self, p)
9810 
9811  def __getstate__(self):
9812  p = self._get_as_binary()
9813  if len(self.__dict__) > 1:
9814  d = self.__dict__.copy()
9815  del d['this']
9816  p = (d, p)
9817  return p
9818 
9819  def __setstate__(self, p):
9820  if not hasattr(self, 'this'):
9821  self.__init__()
9822  if isinstance(p, tuple):
9823  d, p = p
9824  self.__dict__.update(d)
9825  return self._set_from_binary(p)
9826 
9827  __swig_destroy__ = _IMP_kernel.delete__TrivialDecorator
9828 
9829 # Register _TrivialDecorator in _IMP_kernel:
9830 _IMP_kernel._TrivialDecorator_swigregister(_TrivialDecorator)
9831 class _TrivialDerivedDecorator(_TrivialDecorator):
9832  r"""Proxy of C++ IMP::internal::_TrivialDerivedDecorator class."""
9833 
9834  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9835 
9836  def __init__(self, *args):
9837  r"""
9838  __init__(_TrivialDerivedDecorator self) -> _TrivialDerivedDecorator
9839  __init__(_TrivialDerivedDecorator self, Model m, ParticleIndex id) -> _TrivialDerivedDecorator
9840  __init__(_TrivialDerivedDecorator self, _ParticleAdaptor d) -> _TrivialDerivedDecorator
9841  """
9842  _IMP_kernel._TrivialDerivedDecorator_swiginit(self, _IMP_kernel.new__TrivialDerivedDecorator(*args))
9843 
9844  def show(self, *args):
9845  r"""show(_TrivialDerivedDecorator self, _ostream out=std::cout)"""
9846  return _IMP_kernel._TrivialDerivedDecorator_show(self, *args)
9847 
9848  @staticmethod
9849  def setup_particle(*args):
9850  r"""
9851  setup_particle(Model m, ParticleIndex pi) -> _TrivialDerivedDecorator
9852  setup_particle(_ParticleAdaptor pa) -> _TrivialDerivedDecorator
9853  """
9854  return _IMP_kernel._TrivialDerivedDecorator_setup_particle(*args)
9855 
9856  @staticmethod
9857  def get_is_setup(*args):
9858  r"""
9859  get_is_setup(_ParticleAdaptor p) -> bool
9860  get_is_setup(Model m, ParticleIndex pi) -> bool
9861  """
9862  return _IMP_kernel._TrivialDerivedDecorator_get_is_setup(*args)
9863 
9864  def add_attribute(self, *args):
9865  r"""
9866  add_attribute(_TrivialDerivedDecorator self, FloatKey k, IMP::Float v, bool opt)
9867  add_attribute(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
9868  add_attribute(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
9869  add_attribute(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
9870  add_attribute(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
9871  add_attribute(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
9872  add_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
9873  add_attribute(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
9874  add_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
9875  add_attribute(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
9876  add_attribute(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
9877  add_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9878  """
9879  return _IMP_kernel._TrivialDerivedDecorator_add_attribute(self, *args)
9880 
9881  def get_value(self, *args):
9882  r"""
9883  get_value(_TrivialDerivedDecorator self, FloatKey a0) -> IMP::Float
9884  get_value(_TrivialDerivedDecorator self, IntKey a0) -> IMP::Int
9885  get_value(_TrivialDerivedDecorator self, FloatsKey a0) -> IMP::Floats
9886  get_value(_TrivialDerivedDecorator self, IntsKey a0) -> IMP::Ints
9887  get_value(_TrivialDerivedDecorator self, StringKey a0) -> IMP::String
9888  get_value(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> Particle
9889  get_value(_TrivialDerivedDecorator self, ObjectKey a0) -> Object
9890  get_value(_TrivialDerivedDecorator self, SparseFloatKey a0) -> IMP::Float
9891  get_value(_TrivialDerivedDecorator self, SparseIntKey a0) -> IMP::Int
9892  get_value(_TrivialDerivedDecorator self, SparseStringKey a0) -> IMP::String
9893  get_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9894  """
9895  return _IMP_kernel._TrivialDerivedDecorator_get_value(self, *args)
9896 
9897  def set_value(self, *args):
9898  r"""
9899  set_value(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
9900  set_value(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
9901  set_value(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
9902  set_value(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
9903  set_value(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
9904  set_value(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
9905  set_value(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
9906  set_value(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
9907  set_value(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
9908  set_value(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
9909  set_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9910  """
9911  return _IMP_kernel._TrivialDerivedDecorator_set_value(self, *args)
9912 
9913  def remove_attribute(self, *args):
9914  r"""
9915  remove_attribute(_TrivialDerivedDecorator self, FloatKey a0)
9916  remove_attribute(_TrivialDerivedDecorator self, IntKey a0)
9917  remove_attribute(_TrivialDerivedDecorator self, FloatsKey a0)
9918  remove_attribute(_TrivialDerivedDecorator self, IntsKey a0)
9919  remove_attribute(_TrivialDerivedDecorator self, StringKey a0)
9920  remove_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0)
9921  remove_attribute(_TrivialDerivedDecorator self, ObjectKey a0)
9922  remove_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0)
9923  remove_attribute(_TrivialDerivedDecorator self, SparseIntKey a0)
9924  remove_attribute(_TrivialDerivedDecorator self, SparseStringKey a0)
9925  remove_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0)
9926  """
9927  return _IMP_kernel._TrivialDerivedDecorator_remove_attribute(self, *args)
9928 
9929  def has_attribute(self, *args):
9930  r"""
9931  has_attribute(_TrivialDerivedDecorator self, FloatKey a0) -> bool
9932  has_attribute(_TrivialDerivedDecorator self, IntKey a0) -> bool
9933  has_attribute(_TrivialDerivedDecorator self, FloatsKey a0) -> bool
9934  has_attribute(_TrivialDerivedDecorator self, IntsKey a0) -> bool
9935  has_attribute(_TrivialDerivedDecorator self, StringKey a0) -> bool
9936  has_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> bool
9937  has_attribute(_TrivialDerivedDecorator self, ObjectKey a0) -> bool
9938  has_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0) -> bool
9939  has_attribute(_TrivialDerivedDecorator self, SparseIntKey a0) -> bool
9940  has_attribute(_TrivialDerivedDecorator self, SparseStringKey a0) -> bool
9941  has_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> bool
9942  """
9943  return _IMP_kernel._TrivialDerivedDecorator_has_attribute(self, *args)
9944 
9945  def get_derivative(self, a0):
9946  r"""get_derivative(_TrivialDerivedDecorator self, FloatKey a0) -> double"""
9947  return _IMP_kernel._TrivialDerivedDecorator_get_derivative(self, a0)
9948 
9949  def get_name(self):
9950  r"""get_name(_TrivialDerivedDecorator self) -> std::string"""
9951  return _IMP_kernel._TrivialDerivedDecorator_get_name(self)
9952 
9953  def clear_caches(self):
9954  r"""clear_caches(_TrivialDerivedDecorator self)"""
9955  return _IMP_kernel._TrivialDerivedDecorator_clear_caches(self)
9956 
9957  def set_name(self, a0):
9958  r"""set_name(_TrivialDerivedDecorator self, std::string a0)"""
9959  return _IMP_kernel._TrivialDerivedDecorator_set_name(self, a0)
9960 
9961  def set_check_level(self, a0):
9962  r"""set_check_level(_TrivialDerivedDecorator self, IMP::CheckLevel a0)"""
9963  return _IMP_kernel._TrivialDerivedDecorator_set_check_level(self, a0)
9964 
9965  def add_to_derivative(self, a0, a1, a2):
9966  r"""add_to_derivative(_TrivialDerivedDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9967  return _IMP_kernel._TrivialDerivedDecorator_add_to_derivative(self, a0, a1, a2)
9968 
9969  def set_is_optimized(self, a0, a1):
9970  r"""set_is_optimized(_TrivialDerivedDecorator self, FloatKey a0, bool a1)"""
9971  return _IMP_kernel._TrivialDerivedDecorator_set_is_optimized(self, a0, a1)
9972 
9973  def get_is_optimized(self, a0):
9974  r"""get_is_optimized(_TrivialDerivedDecorator self, FloatKey a0) -> bool"""
9975  return _IMP_kernel._TrivialDerivedDecorator_get_is_optimized(self, a0)
9976 
9977  def get_check_level(self):
9978  r"""get_check_level(_TrivialDerivedDecorator self) -> IMP::CheckLevel"""
9979  return _IMP_kernel._TrivialDerivedDecorator_get_check_level(self)
9980 
9981  def __eq__(self, *args):
9982  r"""
9983  __eq__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9984  __eq__(_TrivialDerivedDecorator self, Particle d) -> bool
9985  """
9986  return _IMP_kernel._TrivialDerivedDecorator___eq__(self, *args)
9987 
9988  def __ne__(self, *args):
9989  r"""
9990  __ne__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9991  __ne__(_TrivialDerivedDecorator self, Particle d) -> bool
9992  """
9993  return _IMP_kernel._TrivialDerivedDecorator___ne__(self, *args)
9994 
9995  def __le__(self, *args):
9996  r"""
9997  __le__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9998  __le__(_TrivialDerivedDecorator self, Particle d) -> bool
9999  """
10000  return _IMP_kernel._TrivialDerivedDecorator___le__(self, *args)
10001 
10002  def __lt__(self, *args):
10003  r"""
10004  __lt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10005  __lt__(_TrivialDerivedDecorator self, Particle d) -> bool
10006  """
10007  return _IMP_kernel._TrivialDerivedDecorator___lt__(self, *args)
10008 
10009  def __ge__(self, *args):
10010  r"""
10011  __ge__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10012  __ge__(_TrivialDerivedDecorator self, Particle d) -> bool
10013  """
10014  return _IMP_kernel._TrivialDerivedDecorator___ge__(self, *args)
10015 
10016  def __gt__(self, *args):
10017  r"""
10018  __gt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10019  __gt__(_TrivialDerivedDecorator self, Particle d) -> bool
10020  """
10021  return _IMP_kernel._TrivialDerivedDecorator___gt__(self, *args)
10022 
10023  def __hash__(self):
10024  r"""__hash__(_TrivialDerivedDecorator self) -> std::size_t"""
10025  return _IMP_kernel._TrivialDerivedDecorator___hash__(self)
10026 
10027  def __str__(self):
10028  r"""__str__(_TrivialDerivedDecorator self) -> std::string"""
10029  return _IMP_kernel._TrivialDerivedDecorator___str__(self)
10030 
10031  def __repr__(self):
10032  r"""__repr__(_TrivialDerivedDecorator self) -> std::string"""
10033  return _IMP_kernel._TrivialDerivedDecorator___repr__(self)
10034 
10035  def _get_as_binary(self):
10036  r"""_get_as_binary(_TrivialDerivedDecorator self) -> PyObject *"""
10037  return _IMP_kernel._TrivialDerivedDecorator__get_as_binary(self)
10038 
10039  def _set_from_binary(self, p):
10040  r"""_set_from_binary(_TrivialDerivedDecorator self, PyObject * p)"""
10041  return _IMP_kernel._TrivialDerivedDecorator__set_from_binary(self, p)
10042 
10043  def __getstate__(self):
10044  p = self._get_as_binary()
10045  if len(self.__dict__) > 1:
10046  d = self.__dict__.copy()
10047  del d['this']
10048  p = (d, p)
10049  return p
10050 
10051  def __setstate__(self, p):
10052  if not hasattr(self, 'this'):
10053  self.__init__()
10054  if isinstance(p, tuple):
10055  d, p = p
10056  self.__dict__.update(d)
10057  return self._set_from_binary(p)
10058 
10059  __swig_destroy__ = _IMP_kernel.delete__TrivialDerivedDecorator
10060 
10061 # Register _TrivialDerivedDecorator in _IMP_kernel:
10062 _IMP_kernel._TrivialDerivedDecorator_swigregister(_TrivialDerivedDecorator)
10063 class _TrivialTraitsDecorator(Decorator):
10064  r"""Proxy of C++ IMP::internal::_TrivialTraitsDecorator class."""
10065 
10066  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10067 
10068  def get_decorator_traits(self):
10069  r"""get_decorator_traits(_TrivialTraitsDecorator self) -> StringKey"""
10070  return _IMP_kernel._TrivialTraitsDecorator_get_decorator_traits(self)
10071 
10072  @staticmethod
10073  def get_default_decorator_traits():
10074  r"""get_default_decorator_traits() -> StringKey"""
10075  return _IMP_kernel._TrivialTraitsDecorator_get_default_decorator_traits()
10076 
10077  def __init__(self, *args):
10078  r"""
10079  __init__(_TrivialTraitsDecorator self) -> _TrivialTraitsDecorator
10080  __init__(_TrivialTraitsDecorator self, Model m, ParticleIndex id, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10081  __init__(_TrivialTraitsDecorator self, _ParticleAdaptor d, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10082  """
10083  _IMP_kernel._TrivialTraitsDecorator_swiginit(self, _IMP_kernel.new__TrivialTraitsDecorator(*args))
10084 
10085  def show(self, *args):
10086  r"""show(_TrivialTraitsDecorator self, _ostream out=std::cout)"""
10087  return _IMP_kernel._TrivialTraitsDecorator_show(self, *args)
10088 
10089  @staticmethod
10090  def setup_particle(*args):
10091  r"""
10092  setup_particle(Model m, ParticleIndex pi, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10093  setup_particle(_ParticleAdaptor d, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10094  """
10095  return _IMP_kernel._TrivialTraitsDecorator_setup_particle(*args)
10096 
10097  @staticmethod
10098  def get_is_setup(*args):
10099  r"""
10100  get_is_setup(_ParticleAdaptor p, StringKey tr=get_default_key()) -> bool
10101  get_is_setup(Model m, ParticleIndex pi, StringKey k=get_default_key()) -> bool
10102  """
10103  return _IMP_kernel._TrivialTraitsDecorator_get_is_setup(*args)
10104 
10105  @staticmethod
10106  def get_default_key():
10107  r"""get_default_key() -> StringKey"""
10108  return _IMP_kernel._TrivialTraitsDecorator_get_default_key()
10109 
10110  def add_attribute(self, *args):
10111  r"""
10112  add_attribute(_TrivialTraitsDecorator self, FloatKey k, IMP::Float v, bool opt)
10113  add_attribute(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10114  add_attribute(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10115  add_attribute(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10116  add_attribute(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10117  add_attribute(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10118  add_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10119  add_attribute(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10120  add_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10121  add_attribute(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10122  add_attribute(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10123  add_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10124  """
10125  return _IMP_kernel._TrivialTraitsDecorator_add_attribute(self, *args)
10126 
10127  def get_value(self, *args):
10128  r"""
10129  get_value(_TrivialTraitsDecorator self, FloatKey a0) -> IMP::Float
10130  get_value(_TrivialTraitsDecorator self, IntKey a0) -> IMP::Int
10131  get_value(_TrivialTraitsDecorator self, FloatsKey a0) -> IMP::Floats
10132  get_value(_TrivialTraitsDecorator self, IntsKey a0) -> IMP::Ints
10133  get_value(_TrivialTraitsDecorator self, StringKey a0) -> IMP::String
10134  get_value(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> Particle
10135  get_value(_TrivialTraitsDecorator self, ObjectKey a0) -> Object
10136  get_value(_TrivialTraitsDecorator self, SparseFloatKey a0) -> IMP::Float
10137  get_value(_TrivialTraitsDecorator self, SparseIntKey a0) -> IMP::Int
10138  get_value(_TrivialTraitsDecorator self, SparseStringKey a0) -> IMP::String
10139  get_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
10140  """
10141  return _IMP_kernel._TrivialTraitsDecorator_get_value(self, *args)
10142 
10143  def set_value(self, *args):
10144  r"""
10145  set_value(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10146  set_value(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10147  set_value(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10148  set_value(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10149  set_value(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10150  set_value(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10151  set_value(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10152  set_value(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10153  set_value(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10154  set_value(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10155  set_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10156  """
10157  return _IMP_kernel._TrivialTraitsDecorator_set_value(self, *args)
10158 
10159  def remove_attribute(self, *args):
10160  r"""
10161  remove_attribute(_TrivialTraitsDecorator self, FloatKey a0)
10162  remove_attribute(_TrivialTraitsDecorator self, IntKey a0)
10163  remove_attribute(_TrivialTraitsDecorator self, FloatsKey a0)
10164  remove_attribute(_TrivialTraitsDecorator self, IntsKey a0)
10165  remove_attribute(_TrivialTraitsDecorator self, StringKey a0)
10166  remove_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0)
10167  remove_attribute(_TrivialTraitsDecorator self, ObjectKey a0)
10168  remove_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0)
10169  remove_attribute(_TrivialTraitsDecorator self, SparseIntKey a0)
10170  remove_attribute(_TrivialTraitsDecorator self, SparseStringKey a0)
10171  remove_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0)
10172  """
10173  return _IMP_kernel._TrivialTraitsDecorator_remove_attribute(self, *args)
10174 
10175  def has_attribute(self, *args):
10176  r"""
10177  has_attribute(_TrivialTraitsDecorator self, FloatKey a0) -> bool
10178  has_attribute(_TrivialTraitsDecorator self, IntKey a0) -> bool
10179  has_attribute(_TrivialTraitsDecorator self, FloatsKey a0) -> bool
10180  has_attribute(_TrivialTraitsDecorator self, IntsKey a0) -> bool
10181  has_attribute(_TrivialTraitsDecorator self, StringKey a0) -> bool
10182  has_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> bool
10183  has_attribute(_TrivialTraitsDecorator self, ObjectKey a0) -> bool
10184  has_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0) -> bool
10185  has_attribute(_TrivialTraitsDecorator self, SparseIntKey a0) -> bool
10186  has_attribute(_TrivialTraitsDecorator self, SparseStringKey a0) -> bool
10187  has_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> bool
10188  """
10189  return _IMP_kernel._TrivialTraitsDecorator_has_attribute(self, *args)
10190 
10191  def get_derivative(self, a0):
10192  r"""get_derivative(_TrivialTraitsDecorator self, FloatKey a0) -> double"""
10193  return _IMP_kernel._TrivialTraitsDecorator_get_derivative(self, a0)
10194 
10195  def get_name(self):
10196  r"""get_name(_TrivialTraitsDecorator self) -> std::string"""
10197  return _IMP_kernel._TrivialTraitsDecorator_get_name(self)
10198 
10199  def clear_caches(self):
10200  r"""clear_caches(_TrivialTraitsDecorator self)"""
10201  return _IMP_kernel._TrivialTraitsDecorator_clear_caches(self)
10202 
10203  def set_name(self, a0):
10204  r"""set_name(_TrivialTraitsDecorator self, std::string a0)"""
10205  return _IMP_kernel._TrivialTraitsDecorator_set_name(self, a0)
10206 
10207  def set_check_level(self, a0):
10208  r"""set_check_level(_TrivialTraitsDecorator self, IMP::CheckLevel a0)"""
10209  return _IMP_kernel._TrivialTraitsDecorator_set_check_level(self, a0)
10210 
10211  def add_to_derivative(self, a0, a1, a2):
10212  r"""add_to_derivative(_TrivialTraitsDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10213  return _IMP_kernel._TrivialTraitsDecorator_add_to_derivative(self, a0, a1, a2)
10214 
10215  def set_is_optimized(self, a0, a1):
10216  r"""set_is_optimized(_TrivialTraitsDecorator self, FloatKey a0, bool a1)"""
10217  return _IMP_kernel._TrivialTraitsDecorator_set_is_optimized(self, a0, a1)
10218 
10219  def get_is_optimized(self, a0):
10220  r"""get_is_optimized(_TrivialTraitsDecorator self, FloatKey a0) -> bool"""
10221  return _IMP_kernel._TrivialTraitsDecorator_get_is_optimized(self, a0)
10222 
10223  def get_check_level(self):
10224  r"""get_check_level(_TrivialTraitsDecorator self) -> IMP::CheckLevel"""
10225  return _IMP_kernel._TrivialTraitsDecorator_get_check_level(self)
10226 
10227  def __eq__(self, *args):
10228  r"""
10229  __eq__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10230  __eq__(_TrivialTraitsDecorator self, Particle d) -> bool
10231  """
10232  return _IMP_kernel._TrivialTraitsDecorator___eq__(self, *args)
10233 
10234  def __ne__(self, *args):
10235  r"""
10236  __ne__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10237  __ne__(_TrivialTraitsDecorator self, Particle d) -> bool
10238  """
10239  return _IMP_kernel._TrivialTraitsDecorator___ne__(self, *args)
10240 
10241  def __le__(self, *args):
10242  r"""
10243  __le__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10244  __le__(_TrivialTraitsDecorator self, Particle d) -> bool
10245  """
10246  return _IMP_kernel._TrivialTraitsDecorator___le__(self, *args)
10247 
10248  def __lt__(self, *args):
10249  r"""
10250  __lt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10251  __lt__(_TrivialTraitsDecorator self, Particle d) -> bool
10252  """
10253  return _IMP_kernel._TrivialTraitsDecorator___lt__(self, *args)
10254 
10255  def __ge__(self, *args):
10256  r"""
10257  __ge__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10258  __ge__(_TrivialTraitsDecorator self, Particle d) -> bool
10259  """
10260  return _IMP_kernel._TrivialTraitsDecorator___ge__(self, *args)
10261 
10262  def __gt__(self, *args):
10263  r"""
10264  __gt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10265  __gt__(_TrivialTraitsDecorator self, Particle d) -> bool
10266  """
10267  return _IMP_kernel._TrivialTraitsDecorator___gt__(self, *args)
10268 
10269  def __hash__(self):
10270  r"""__hash__(_TrivialTraitsDecorator self) -> std::size_t"""
10271  return _IMP_kernel._TrivialTraitsDecorator___hash__(self)
10272 
10273  def __str__(self):
10274  r"""__str__(_TrivialTraitsDecorator self) -> std::string"""
10275  return _IMP_kernel._TrivialTraitsDecorator___str__(self)
10276 
10277  def __repr__(self):
10278  r"""__repr__(_TrivialTraitsDecorator self) -> std::string"""
10279  return _IMP_kernel._TrivialTraitsDecorator___repr__(self)
10280  __swig_destroy__ = _IMP_kernel.delete__TrivialTraitsDecorator
10281 
10282 # Register _TrivialTraitsDecorator in _IMP_kernel:
10283 _IMP_kernel._TrivialTraitsDecorator_swigregister(_TrivialTraitsDecorator)
10284 
10285 def __lshift__(*args):
10286  r"""
10287  __lshift__(_ostream out, _TrivialDecorator n) -> _ostream
10288  __lshift__(_ostream out, _TrivialDerivedDecorator n) -> _ostream
10289  __lshift__(_ostream out, _TrivialTraitsDecorator n) -> _ostream
10290  """
10291  return _IMP_kernel.__lshift__(*args)
10292 class _ConstOptimizer(Optimizer):
10293  r"""Proxy of C++ IMP::internal::_ConstOptimizer class."""
10294 
10295  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10296 
10297  def __init__(self, *args):
10298  r"""
10299  __init__(_ConstOptimizer self, Model m) -> _ConstOptimizer
10300  __init__(_ConstOptimizer self) -> _ConstOptimizer
10301  """
10302  _IMP_kernel._ConstOptimizer_swiginit(self, _IMP_kernel.new__ConstOptimizer(*args))
10303 
10304  def do_optimize(self, max_steps):
10305  r"""do_optimize(_ConstOptimizer self, unsigned int max_steps) -> IMP::Float"""
10306  return _IMP_kernel._ConstOptimizer_do_optimize(self, max_steps)
10307 
10308  def get_version_info(self):
10309  r"""get_version_info(_ConstOptimizer self) -> VersionInfo"""
10310  return _IMP_kernel._ConstOptimizer_get_version_info(self)
10311  __swig_destroy__ = _IMP_kernel.delete__ConstOptimizer
10312 
10313  def __str__(self):
10314  r"""__str__(_ConstOptimizer self) -> std::string"""
10315  return _IMP_kernel._ConstOptimizer___str__(self)
10316 
10317  def __repr__(self):
10318  r"""__repr__(_ConstOptimizer self) -> std::string"""
10319  return _IMP_kernel._ConstOptimizer___repr__(self)
10320 
10321  @staticmethod
10322  def get_from(o):
10323  return _object_cast_to__ConstOptimizer(o)
10324 
10325 
10326  def _get_as_binary(self):
10327  r"""_get_as_binary(_ConstOptimizer self) -> PyObject *"""
10328  return _IMP_kernel._ConstOptimizer__get_as_binary(self)
10329 
10330  def _set_from_binary(self, p):
10331  r"""_set_from_binary(_ConstOptimizer self, PyObject * p)"""
10332  return _IMP_kernel._ConstOptimizer__set_from_binary(self, p)
10333 
10334  def __getstate__(self):
10335  p = self._get_as_binary()
10336  if len(self.__dict__) > 1:
10337  d = self.__dict__.copy()
10338  del d['this']
10339  p = (d, p)
10340  return p
10341 
10342  def __setstate__(self, p):
10343  if not hasattr(self, 'this'):
10344  self.__init__()
10345  if isinstance(p, tuple):
10346  d, p = p
10347  self.__dict__.update(d)
10348  return self._set_from_binary(p)
10349 
10350 
10351 # Register _ConstOptimizer in _IMP_kernel:
10352 _IMP_kernel._ConstOptimizer_swigregister(_ConstOptimizer)
10353 
10354 def get_particle(p):
10355  r"""get_particle(Particle p) -> Particle"""
10356  return _IMP_kernel.get_particle(p)
10357 
10358 def _decorator_test(p):
10359  r"""_decorator_test(Particle p)"""
10360  return _IMP_kernel._decorator_test(p)
10361 
10362 def _overloaded_decorator(*args):
10363  r"""
10364  _overloaded_decorator(_TrivialDecorator a) -> int
10365  _overloaded_decorator(_TrivialDerivedDecorator a) -> int
10366  """
10367  return _IMP_kernel._overloaded_decorator(*args)
10368 
10369 def _take_particles(*args):
10370  r"""
10371  _take_particles(IMP::Particles const & ps) -> unsigned int
10372  _take_particles(Model m, IMP::Particles const & ps) -> unsigned int
10373  _take_particles(Model m, IMP::Particles const & ps, TextOutput out) -> unsigned int
10374  """
10375  return _IMP_kernel._take_particles(*args)
10376 
10377 def _give_particles(m):
10378  r"""_give_particles(Model m) -> IMP::Particles const &"""
10379  return _IMP_kernel._give_particles(m)
10380 
10381 def _pass_particles(ps):
10382  r"""_pass_particles(IMP::Particles const & ps) -> IMP::Particles const &"""
10383  return _IMP_kernel._pass_particles(ps)
10384 
10385 def _pass_particle(ps):
10386  r"""_pass_particle(Particle ps) -> Particle"""
10387  return _IMP_kernel._pass_particle(ps)
10388 
10389 def _pass_particle_pair(pp):
10390  r"""_pass_particle_pair(IMP::ParticlePair const & pp) -> IMP::ParticlePair const &"""
10391  return _IMP_kernel._pass_particle_pair(pp)
10392 
10393 def _give_particles_copy(m):
10394  r"""_give_particles_copy(Model m) -> IMP::Particles"""
10395  return _IMP_kernel._give_particles_copy(m)
10396 
10397 def _pass_float_keys(input):
10398  r"""_pass_float_keys(IMP::FloatKeys const & input) -> IMP::FloatKeys"""
10399  return _IMP_kernel._pass_float_keys(input)
10400 
10401 def _pass(*args):
10402  r"""
10403  _pass(IMP::Particles const & p) -> IMP::Particles const
10404  _pass(IMP::Restraints const & p) -> IMP::Restraints const &
10405  """
10406  return _IMP_kernel._pass(*args)
10407 
10408 def _pass_decorators(p):
10409  r"""_pass_decorators(IMP::internal::_TrivialDecorators const & p) -> IMP::internal::_TrivialDecorators const &"""
10410  return _IMP_kernel._pass_decorators(p)
10411 
10412 def _pass_decorator_traits(p):
10413  r"""_pass_decorator_traits(IMP::internal::_TrivialTraitsDecorators const & p) -> IMP::internal::_TrivialTraitsDecorators const &"""
10414  return _IMP_kernel._pass_decorator_traits(p)
10415 
10416 def _pass_particle_pairs(p):
10417  r"""_pass_particle_pairs(IMP::ParticlePairsTemp const & p) -> IMP::ParticlePairsTemp"""
10418  return _IMP_kernel._pass_particle_pairs(p)
10419 
10420 def _pass_particle_index_pairs(p):
10421  r"""_pass_particle_index_pairs(IMP::ParticleIndexPairs const & p) -> IMP::ParticleIndexPairs"""
10422  return _IMP_kernel._pass_particle_index_pairs(p)
10423 
10424 def _pass_model_objects(p):
10425  r"""_pass_model_objects(IMP::ModelObjectsTemp const & p) -> IMP::ModelObjectsTemp"""
10426  return _IMP_kernel._pass_model_objects(p)
10427 
10428 def _pass_particles_temps(ps):
10429  r"""_pass_particles_temps(IMP::ParticlesTemps const & ps) -> IMP::ParticlesTemps"""
10430  return _IMP_kernel._pass_particles_temps(ps)
10431 
10432 def _test_overload(*args):
10433  r"""
10434  _test_overload(IMP::Particles const & ps) -> int
10435  _test_overload(IMP::Restraints const & ps) -> int
10436  """
10437  return _IMP_kernel._test_overload(*args)
10438 
10439 def _get_range(m, k):
10440  r"""_get_range(Model m, FloatKey k) -> IMP::FloatRange"""
10441  return _IMP_kernel._get_range(m, k)
10442 
10443 def _create_particles_from_pdb(name, m):
10444  r"""_create_particles_from_pdb(std::string name, Model m) -> IMP::ParticleIndexes"""
10445  return _IMP_kernel._create_particles_from_pdb(name, m)
10446 class _LogPairScore(PairScore):
10447  r"""Proxy of C++ IMP::internal::_LogPairScore class."""
10448 
10449  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10450  __repr__ = _swig_repr
10451 
10452  def __init__(self):
10453  r"""__init__(_LogPairScore self) -> _LogPairScore"""
10454  _IMP_kernel._LogPairScore_swiginit(self, _IMP_kernel.new__LogPairScore())
10455 
10456  def do_get_inputs(self, arg2, arg3):
10457  r"""do_get_inputs(_LogPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
10458  return _IMP_kernel._LogPairScore_do_get_inputs(self, arg2, arg3)
10459 
10460  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
10461  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"""
10462  return _IMP_kernel._LogPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
10463 
10464  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
10465  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"""
10466  return _IMP_kernel._LogPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
10467 
10468  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
10469  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"""
10470  return _IMP_kernel._LogPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
10471 
10472  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
10473  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"""
10474  return _IMP_kernel._LogPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
10475 
10476  def get_version_info(self):
10477  r"""get_version_info(_LogPairScore self) -> VersionInfo"""
10478  return _IMP_kernel._LogPairScore_get_version_info(self)
10479  __swig_destroy__ = _IMP_kernel.delete__LogPairScore
10480 
10481  def get_particle_pairs(self):
10482  r"""get_particle_pairs(_LogPairScore self) -> IMP::ParticlePairsTemp"""
10483  return _IMP_kernel._LogPairScore_get_particle_pairs(self)
10484 
10485  def clear(self):
10486  r"""clear(_LogPairScore self)"""
10487  return _IMP_kernel._LogPairScore_clear(self)
10488 
10489  def get_contains(self, pp):
10490  r"""get_contains(_LogPairScore self, IMP::ParticlePair const & pp) -> bool"""
10491  return _IMP_kernel._LogPairScore_get_contains(self, pp)
10492 
10493 # Register _LogPairScore in _IMP_kernel:
10494 _IMP_kernel._LogPairScore_swigregister(_LogPairScore)
10495 
10496 def _overloaded_particles(*args):
10497  r"""
10498  _overloaded_particles(Particle arg1)
10499  _overloaded_particles(IMP::Particles const & arg1)
10500  _overloaded_particles(IMP::ParticlesTemp const & arg1)
10501  _overloaded_particles(Model arg1, IMP::ParticleIndexes const & arg2)
10502  _overloaded_particles(IMP::internal::_TrivialDecorators const & arg1)
10503  _overloaded_particles(_TrivialDecorator arg1)
10504  """
10505  return _IMP_kernel._overloaded_particles(*args)
10506 class _ImplicitParticles(object):
10507  r"""Proxy of C++ IMP::internal::_ImplicitParticles class."""
10508 
10509  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10510  __repr__ = _swig_repr
10511 
10512  def __init__(self, *args):
10513  r"""
10514  __init__(_ImplicitParticles self, Particle arg2) -> _ImplicitParticles
10515  __init__(_ImplicitParticles self, IMP::Particles const & arg2) -> _ImplicitParticles
10516  __init__(_ImplicitParticles self, IMP::ParticlesTemp const & arg2) -> _ImplicitParticles
10517  __init__(_ImplicitParticles self, Model arg2, IMP::ParticleIndexes const & arg3) -> _ImplicitParticles
10518  __init__(_ImplicitParticles self, IMP::internal::_TrivialDecorators const & arg2) -> _ImplicitParticles
10519  __init__(_ImplicitParticles self, _TrivialDecorator arg2) -> _ImplicitParticles
10520  """
10521  _IMP_kernel._ImplicitParticles_swiginit(self, _IMP_kernel.new__ImplicitParticles(*args))
10522  __swig_destroy__ = _IMP_kernel.delete__ImplicitParticles
10523 
10524 # Register _ImplicitParticles in _IMP_kernel:
10525 _IMP_kernel._ImplicitParticles_swigregister(_ImplicitParticles)
10526 
10527 def _implicit_particles(arg1):
10528  r"""_implicit_particles(_ImplicitParticles arg1)"""
10529  return _IMP_kernel._implicit_particles(arg1)
10530 
10531 def _take_particle_adaptor(pa):
10532  r"""_take_particle_adaptor(_ParticleAdaptor pa) -> ParticleIndex"""
10533  return _IMP_kernel._take_particle_adaptor(pa)
10534 
10535 def _take_particle_indexes_adaptor(pa):
10536  r"""_take_particle_indexes_adaptor(_ParticleIndexesAdaptor pa) -> IMP::ParticleIndexes"""
10537  return _IMP_kernel._take_particle_indexes_adaptor(pa)
10538 class Vector1D(_VectorBase1D):
10539  r"""Proxy of C++ IMP::VectorD< 1 > class."""
10540 
10541  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10542 
10543  def get_unit_vector(self):
10544  r"""get_unit_vector(Vector1D self) -> Vector1D"""
10545  return _IMP_kernel.Vector1D_get_unit_vector(self)
10546 
10547  def __truediv__(self, *args):
10548  return _IMP_kernel.Vector1D___truediv__(self, *args)
10549 
10550 
10551 
10552  def __neg__(self):
10553  r"""__neg__(Vector1D self) -> Vector1D"""
10554  return _IMP_kernel.Vector1D___neg__(self)
10555 
10556  def __sub__(self, o):
10557  r"""__sub__(Vector1D self, Vector1D o) -> Vector1D"""
10558  return _IMP_kernel.Vector1D___sub__(self, o)
10559 
10560  def __add__(self, ret):
10561  r"""__add__(Vector1D self, Vector1D ret) -> Vector1D"""
10562  return _IMP_kernel.Vector1D___add__(self, ret)
10563 
10564  def __mul__(self, *args):
10565  r"""
10566  __mul__(Vector1D self, double s) -> Vector1D
10567  __mul__(Vector1D self, Vector1D o) -> double
10568  """
10569  return _IMP_kernel.Vector1D___mul__(self, *args)
10570 
10571  def __init__(self, *args):
10572  r"""
10573  __init__(Vector1D self, IMP::Floats const & f) -> Vector1D
10574  __init__(Vector1D self) -> Vector1D
10575  __init__(Vector1D self, double x) -> Vector1D
10576  """
10577  _IMP_kernel.Vector1D_swiginit(self, _IMP_kernel.new_Vector1D(*args))
10578 
10579  def __iadd__(self, *args):
10580  _IMP_kernel.Vector1D___iadd__(self, *args)
10581  return self
10582 
10583 
10584 
10585  def __imul__(self, *args):
10586  _IMP_kernel.Vector1D___imul__(self, *args)
10587  return self
10588 
10589 
10590 
10591  def __itruediv__(self, *args):
10592  _IMP_kernel.Vector1D___itruediv__(self, *args)
10593  return self
10594 
10595 
10596 
10597  def __isub__(self, *args):
10598  _IMP_kernel.Vector1D___isub__(self, *args)
10599  return self
10600 
10601 
10602 
10603  def __len__(self):
10604  r"""__len__(Vector1D self) -> unsigned int"""
10605  return _IMP_kernel.Vector1D___len__(self)
10606 
10607  def __rmul__(self, f):
10608  r"""__rmul__(Vector1D self, double f) -> Vector1D"""
10609  return _IMP_kernel.Vector1D___rmul__(self, f)
10610 
10611  def __str__(self):
10612  r"""__str__(Vector1D self) -> std::string"""
10613  return _IMP_kernel.Vector1D___str__(self)
10614 
10615  def __repr__(self):
10616  r"""__repr__(Vector1D self) -> std::string"""
10617  return _IMP_kernel.Vector1D___repr__(self)
10618 
10619  def __cmp__(self, arg2):
10620  r"""__cmp__(Vector1D self, Vector1D arg2) -> int"""
10621  return _IMP_kernel.Vector1D___cmp__(self, arg2)
10622 
10623  def __eq__(self, arg2):
10624  r"""__eq__(Vector1D self, Vector1D arg2) -> bool"""
10625  return _IMP_kernel.Vector1D___eq__(self, arg2)
10626 
10627  def _get_as_binary(self):
10628  r"""_get_as_binary(Vector1D self) -> PyObject *"""
10629  return _IMP_kernel.Vector1D__get_as_binary(self)
10630 
10631  def _set_from_binary(self, p):
10632  r"""_set_from_binary(Vector1D self, PyObject * p)"""
10633  return _IMP_kernel.Vector1D__set_from_binary(self, p)
10634 
10635  def __getstate__(self):
10636  p = self._get_as_binary()
10637  if len(self.__dict__) > 1:
10638  d = self.__dict__.copy()
10639  del d['this']
10640  p = (d, p)
10641  return p
10642 
10643  def __setstate__(self, p):
10644  if not hasattr(self, 'this'):
10645  self.__init__()
10646  if isinstance(p, tuple):
10647  d, p = p
10648  self.__dict__.update(d)
10649  return self._set_from_binary(p)
10650 
10651 
10652  def __getitem__(self, index):
10653  if isinstance(index, slice):
10654  return [self[i] for i in range(*index.indices(len(self)))]
10655  else:
10656  return _IMP_kernel.Vector1D___getitem__(self, index)
10657 
10658 
10659 
10660  def __setitem__(self, index, val):
10661  if isinstance(index, slice):
10662  if not hasattr(val, '__iter__'):
10663  raise TypeError("must assign iterable to extended slice")
10664  inds = range(*index.indices(len(self)))
10665  if len(inds) != len(val):
10666  raise ValueError(
10667  "attempt to assign sequence of size %d "
10668  "to extended slice of size %d" % (len(val), len(inds)))
10669  for ind, v in zip(inds, val):
10670  self[ind] = v
10671  else:
10672  return _IMP_kernel.Vector1D___setitem__(self, index, val)
10673 
10674 
10675  __swig_destroy__ = _IMP_kernel.delete_Vector1D
10676 
10677 # Register Vector1D in _IMP_kernel:
10678 _IMP_kernel.Vector1D_swigregister(Vector1D)
10679 class Vector2D(_VectorBase2D):
10680  r"""Proxy of C++ IMP::VectorD< 2 > class."""
10681 
10682  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10683 
10684  def get_unit_vector(self):
10685  r"""get_unit_vector(Vector2D self) -> Vector2D"""
10686  return _IMP_kernel.Vector2D_get_unit_vector(self)
10687 
10688  def __truediv__(self, *args):
10689  return _IMP_kernel.Vector2D___truediv__(self, *args)
10690 
10691 
10692 
10693  def __neg__(self):
10694  r"""__neg__(Vector2D self) -> Vector2D"""
10695  return _IMP_kernel.Vector2D___neg__(self)
10696 
10697  def __sub__(self, o):
10698  r"""__sub__(Vector2D self, Vector2D o) -> Vector2D"""
10699  return _IMP_kernel.Vector2D___sub__(self, o)
10700 
10701  def __add__(self, ret):
10702  r"""__add__(Vector2D self, Vector2D ret) -> Vector2D"""
10703  return _IMP_kernel.Vector2D___add__(self, ret)
10704 
10705  def __mul__(self, *args):
10706  r"""
10707  __mul__(Vector2D self, double s) -> Vector2D
10708  __mul__(Vector2D self, Vector2D o) -> double
10709  """
10710  return _IMP_kernel.Vector2D___mul__(self, *args)
10711 
10712  def __init__(self, *args):
10713  r"""
10714  __init__(Vector2D self, IMP::Floats const & f) -> Vector2D
10715  __init__(Vector2D self) -> Vector2D
10716  __init__(Vector2D self, double x, double y) -> Vector2D
10717  """
10718  _IMP_kernel.Vector2D_swiginit(self, _IMP_kernel.new_Vector2D(*args))
10719 
10720  def __iadd__(self, *args):
10721  _IMP_kernel.Vector2D___iadd__(self, *args)
10722  return self
10723 
10724 
10725 
10726  def __imul__(self, *args):
10727  _IMP_kernel.Vector2D___imul__(self, *args)
10728  return self
10729 
10730 
10731 
10732  def __itruediv__(self, *args):
10733  _IMP_kernel.Vector2D___itruediv__(self, *args)
10734  return self
10735 
10736 
10737 
10738  def __isub__(self, *args):
10739  _IMP_kernel.Vector2D___isub__(self, *args)
10740  return self
10741 
10742 
10743 
10744  def __len__(self):
10745  r"""__len__(Vector2D self) -> unsigned int"""
10746  return _IMP_kernel.Vector2D___len__(self)
10747 
10748  def __rmul__(self, f):
10749  r"""__rmul__(Vector2D self, double f) -> Vector2D"""
10750  return _IMP_kernel.Vector2D___rmul__(self, f)
10751 
10752  def __str__(self):
10753  r"""__str__(Vector2D self) -> std::string"""
10754  return _IMP_kernel.Vector2D___str__(self)
10755 
10756  def __repr__(self):
10757  r"""__repr__(Vector2D self) -> std::string"""
10758  return _IMP_kernel.Vector2D___repr__(self)
10759 
10760  def __cmp__(self, arg2):
10761  r"""__cmp__(Vector2D self, Vector2D arg2) -> int"""
10762  return _IMP_kernel.Vector2D___cmp__(self, arg2)
10763 
10764  def __eq__(self, arg2):
10765  r"""__eq__(Vector2D self, Vector2D arg2) -> bool"""
10766  return _IMP_kernel.Vector2D___eq__(self, arg2)
10767 
10768  def _get_as_binary(self):
10769  r"""_get_as_binary(Vector2D self) -> PyObject *"""
10770  return _IMP_kernel.Vector2D__get_as_binary(self)
10771 
10772  def _set_from_binary(self, p):
10773  r"""_set_from_binary(Vector2D self, PyObject * p)"""
10774  return _IMP_kernel.Vector2D__set_from_binary(self, p)
10775 
10776  def __getstate__(self):
10777  p = self._get_as_binary()
10778  if len(self.__dict__) > 1:
10779  d = self.__dict__.copy()
10780  del d['this']
10781  p = (d, p)
10782  return p
10783 
10784  def __setstate__(self, p):
10785  if not hasattr(self, 'this'):
10786  self.__init__()
10787  if isinstance(p, tuple):
10788  d, p = p
10789  self.__dict__.update(d)
10790  return self._set_from_binary(p)
10791 
10792 
10793  def __getitem__(self, index):
10794  if isinstance(index, slice):
10795  return [self[i] for i in range(*index.indices(len(self)))]
10796  else:
10797  return _IMP_kernel.Vector2D___getitem__(self, index)
10798 
10799 
10800 
10801  def __setitem__(self, index, val):
10802  if isinstance(index, slice):
10803  if not hasattr(val, '__iter__'):
10804  raise TypeError("must assign iterable to extended slice")
10805  inds = range(*index.indices(len(self)))
10806  if len(inds) != len(val):
10807  raise ValueError(
10808  "attempt to assign sequence of size %d "
10809  "to extended slice of size %d" % (len(val), len(inds)))
10810  for ind, v in zip(inds, val):
10811  self[ind] = v
10812  else:
10813  return _IMP_kernel.Vector2D___setitem__(self, index, val)
10814 
10815 
10816  __swig_destroy__ = _IMP_kernel.delete_Vector2D
10817 
10818 # Register Vector2D in _IMP_kernel:
10819 _IMP_kernel.Vector2D_swigregister(Vector2D)
10820 class Vector3D(_VectorBase3D):
10821  r"""Proxy of C++ IMP::VectorD< 3 > class."""
10822 
10823  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10824 
10825  def get_unit_vector(self):
10826  r"""get_unit_vector(Vector3D self) -> Vector3D"""
10827  return _IMP_kernel.Vector3D_get_unit_vector(self)
10828 
10829  def __truediv__(self, *args):
10830  return _IMP_kernel.Vector3D___truediv__(self, *args)
10831 
10832 
10833 
10834  def __neg__(self):
10835  r"""__neg__(Vector3D self) -> Vector3D"""
10836  return _IMP_kernel.Vector3D___neg__(self)
10837 
10838  def __sub__(self, o):
10839  r"""__sub__(Vector3D self, Vector3D o) -> Vector3D"""
10840  return _IMP_kernel.Vector3D___sub__(self, o)
10841 
10842  def __add__(self, ret):
10843  r"""__add__(Vector3D self, Vector3D ret) -> Vector3D"""
10844  return _IMP_kernel.Vector3D___add__(self, ret)
10845 
10846  def __mul__(self, *args):
10847  r"""
10848  __mul__(Vector3D self, double s) -> Vector3D
10849  __mul__(Vector3D self, Vector3D o) -> double
10850  """
10851  return _IMP_kernel.Vector3D___mul__(self, *args)
10852 
10853  def __init__(self, *args):
10854  r"""
10855  __init__(Vector3D self, IMP::Floats const & f) -> Vector3D
10856  __init__(Vector3D self) -> Vector3D
10857  __init__(Vector3D self, double x, double y, double z) -> Vector3D
10858  """
10859  _IMP_kernel.Vector3D_swiginit(self, _IMP_kernel.new_Vector3D(*args))
10860 
10861  def __iadd__(self, *args):
10862  _IMP_kernel.Vector3D___iadd__(self, *args)
10863  return self
10864 
10865 
10866 
10867  def __imul__(self, *args):
10868  _IMP_kernel.Vector3D___imul__(self, *args)
10869  return self
10870 
10871 
10872 
10873  def __itruediv__(self, *args):
10874  _IMP_kernel.Vector3D___itruediv__(self, *args)
10875  return self
10876 
10877 
10878 
10879  def __isub__(self, *args):
10880  _IMP_kernel.Vector3D___isub__(self, *args)
10881  return self
10882 
10883 
10884 
10885  def __len__(self):
10886  r"""__len__(Vector3D self) -> unsigned int"""
10887  return _IMP_kernel.Vector3D___len__(self)
10888 
10889  def __rmul__(self, f):
10890  r"""__rmul__(Vector3D self, double f) -> Vector3D"""
10891  return _IMP_kernel.Vector3D___rmul__(self, f)
10892 
10893  def __str__(self):
10894  r"""__str__(Vector3D self) -> std::string"""
10895  return _IMP_kernel.Vector3D___str__(self)
10896 
10897  def __repr__(self):
10898  r"""__repr__(Vector3D self) -> std::string"""
10899  return _IMP_kernel.Vector3D___repr__(self)
10900 
10901  def __cmp__(self, arg2):
10902  r"""__cmp__(Vector3D self, Vector3D arg2) -> int"""
10903  return _IMP_kernel.Vector3D___cmp__(self, arg2)
10904 
10905  def __eq__(self, arg2):
10906  r"""__eq__(Vector3D self, Vector3D arg2) -> bool"""
10907  return _IMP_kernel.Vector3D___eq__(self, arg2)
10908 
10909  def _get_as_binary(self):
10910  r"""_get_as_binary(Vector3D self) -> PyObject *"""
10911  return _IMP_kernel.Vector3D__get_as_binary(self)
10912 
10913  def _set_from_binary(self, p):
10914  r"""_set_from_binary(Vector3D self, PyObject * p)"""
10915  return _IMP_kernel.Vector3D__set_from_binary(self, p)
10916 
10917  def __getstate__(self):
10918  p = self._get_as_binary()
10919  if len(self.__dict__) > 1:
10920  d = self.__dict__.copy()
10921  del d['this']
10922  p = (d, p)
10923  return p
10924 
10925  def __setstate__(self, p):
10926  if not hasattr(self, 'this'):
10927  self.__init__()
10928  if isinstance(p, tuple):
10929  d, p = p
10930  self.__dict__.update(d)
10931  return self._set_from_binary(p)
10932 
10933 
10934  def __getitem__(self, index):
10935  if isinstance(index, slice):
10936  return [self[i] for i in range(*index.indices(len(self)))]
10937  else:
10938  return _IMP_kernel.Vector3D___getitem__(self, index)
10939 
10940 
10941 
10942  def __setitem__(self, index, val):
10943  if isinstance(index, slice):
10944  if not hasattr(val, '__iter__'):
10945  raise TypeError("must assign iterable to extended slice")
10946  inds = range(*index.indices(len(self)))
10947  if len(inds) != len(val):
10948  raise ValueError(
10949  "attempt to assign sequence of size %d "
10950  "to extended slice of size %d" % (len(val), len(inds)))
10951  for ind, v in zip(inds, val):
10952  self[ind] = v
10953  else:
10954  return _IMP_kernel.Vector3D___setitem__(self, index, val)
10955 
10956 
10957  __swig_destroy__ = _IMP_kernel.delete_Vector3D
10958 
10959 # Register Vector3D in _IMP_kernel:
10960 _IMP_kernel.Vector3D_swigregister(Vector3D)
10961 class Vector4D(_VectorBase4D):
10962  r"""Proxy of C++ IMP::VectorD< 4 > class."""
10963 
10964  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10965 
10966  def get_unit_vector(self):
10967  r"""get_unit_vector(Vector4D self) -> Vector4D"""
10968  return _IMP_kernel.Vector4D_get_unit_vector(self)
10969 
10970  def __truediv__(self, *args):
10971  return _IMP_kernel.Vector4D___truediv__(self, *args)
10972 
10973 
10974 
10975  def __neg__(self):
10976  r"""__neg__(Vector4D self) -> Vector4D"""
10977  return _IMP_kernel.Vector4D___neg__(self)
10978 
10979  def __sub__(self, o):
10980  r"""__sub__(Vector4D self, Vector4D o) -> Vector4D"""
10981  return _IMP_kernel.Vector4D___sub__(self, o)
10982 
10983  def __add__(self, ret):
10984  r"""__add__(Vector4D self, Vector4D ret) -> Vector4D"""
10985  return _IMP_kernel.Vector4D___add__(self, ret)
10986 
10987  def __mul__(self, *args):
10988  r"""
10989  __mul__(Vector4D self, double s) -> Vector4D
10990  __mul__(Vector4D self, Vector4D o) -> double
10991  """
10992  return _IMP_kernel.Vector4D___mul__(self, *args)
10993 
10994  def __init__(self, *args):
10995  r"""
10996  __init__(Vector4D self, IMP::Floats const & f) -> Vector4D
10997  __init__(Vector4D self) -> Vector4D
10998  __init__(Vector4D self, double x0, double x1, double x2, double x3) -> Vector4D
10999  """
11000  _IMP_kernel.Vector4D_swiginit(self, _IMP_kernel.new_Vector4D(*args))
11001 
11002  def __iadd__(self, *args):
11003  _IMP_kernel.Vector4D___iadd__(self, *args)
11004  return self
11005 
11006 
11007 
11008  def __imul__(self, *args):
11009  _IMP_kernel.Vector4D___imul__(self, *args)
11010  return self
11011 
11012 
11013 
11014  def __itruediv__(self, *args):
11015  _IMP_kernel.Vector4D___itruediv__(self, *args)
11016  return self
11017 
11018 
11019 
11020  def __isub__(self, *args):
11021  _IMP_kernel.Vector4D___isub__(self, *args)
11022  return self
11023 
11024 
11025 
11026  def __len__(self):
11027  r"""__len__(Vector4D self) -> unsigned int"""
11028  return _IMP_kernel.Vector4D___len__(self)
11029 
11030  def __rmul__(self, f):
11031  r"""__rmul__(Vector4D self, double f) -> Vector4D"""
11032  return _IMP_kernel.Vector4D___rmul__(self, f)
11033 
11034  def __str__(self):
11035  r"""__str__(Vector4D self) -> std::string"""
11036  return _IMP_kernel.Vector4D___str__(self)
11037 
11038  def __repr__(self):
11039  r"""__repr__(Vector4D self) -> std::string"""
11040  return _IMP_kernel.Vector4D___repr__(self)
11041 
11042  def __cmp__(self, arg2):
11043  r"""__cmp__(Vector4D self, Vector4D arg2) -> int"""
11044  return _IMP_kernel.Vector4D___cmp__(self, arg2)
11045 
11046  def __eq__(self, arg2):
11047  r"""__eq__(Vector4D self, Vector4D arg2) -> bool"""
11048  return _IMP_kernel.Vector4D___eq__(self, arg2)
11049 
11050  def _get_as_binary(self):
11051  r"""_get_as_binary(Vector4D self) -> PyObject *"""
11052  return _IMP_kernel.Vector4D__get_as_binary(self)
11053 
11054  def _set_from_binary(self, p):
11055  r"""_set_from_binary(Vector4D self, PyObject * p)"""
11056  return _IMP_kernel.Vector4D__set_from_binary(self, p)
11057 
11058  def __getstate__(self):
11059  p = self._get_as_binary()
11060  if len(self.__dict__) > 1:
11061  d = self.__dict__.copy()
11062  del d['this']
11063  p = (d, p)
11064  return p
11065 
11066  def __setstate__(self, p):
11067  if not hasattr(self, 'this'):
11068  self.__init__()
11069  if isinstance(p, tuple):
11070  d, p = p
11071  self.__dict__.update(d)
11072  return self._set_from_binary(p)
11073 
11074 
11075  def __getitem__(self, index):
11076  if isinstance(index, slice):
11077  return [self[i] for i in range(*index.indices(len(self)))]
11078  else:
11079  return _IMP_kernel.Vector4D___getitem__(self, index)
11080 
11081 
11082 
11083  def __setitem__(self, index, val):
11084  if isinstance(index, slice):
11085  if not hasattr(val, '__iter__'):
11086  raise TypeError("must assign iterable to extended slice")
11087  inds = range(*index.indices(len(self)))
11088  if len(inds) != len(val):
11089  raise ValueError(
11090  "attempt to assign sequence of size %d "
11091  "to extended slice of size %d" % (len(val), len(inds)))
11092  for ind, v in zip(inds, val):
11093  self[ind] = v
11094  else:
11095  return _IMP_kernel.Vector4D___setitem__(self, index, val)
11096 
11097 
11098  __swig_destroy__ = _IMP_kernel.delete_Vector4D
11099 
11100 # Register Vector4D in _IMP_kernel:
11101 _IMP_kernel.Vector4D_swigregister(Vector4D)
11102 class Vector5D(_VectorBase5D):
11103  r"""Proxy of C++ IMP::VectorD< 5 > class."""
11104 
11105  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11106 
11107  def get_unit_vector(self):
11108  r"""get_unit_vector(Vector5D self) -> Vector5D"""
11109  return _IMP_kernel.Vector5D_get_unit_vector(self)
11110 
11111  def __truediv__(self, *args):
11112  return _IMP_kernel.Vector5D___truediv__(self, *args)
11113 
11114 
11115 
11116  def __neg__(self):
11117  r"""__neg__(Vector5D self) -> Vector5D"""
11118  return _IMP_kernel.Vector5D___neg__(self)
11119 
11120  def __sub__(self, o):
11121  r"""__sub__(Vector5D self, Vector5D o) -> Vector5D"""
11122  return _IMP_kernel.Vector5D___sub__(self, o)
11123 
11124  def __add__(self, ret):
11125  r"""__add__(Vector5D self, Vector5D ret) -> Vector5D"""
11126  return _IMP_kernel.Vector5D___add__(self, ret)
11127 
11128  def __mul__(self, *args):
11129  r"""
11130  __mul__(Vector5D self, double s) -> Vector5D
11131  __mul__(Vector5D self, Vector5D o) -> double
11132  """
11133  return _IMP_kernel.Vector5D___mul__(self, *args)
11134 
11135  def __init__(self, *args):
11136  r"""
11137  __init__(Vector5D self, IMP::Floats const & f) -> Vector5D
11138  __init__(Vector5D self) -> Vector5D
11139  __init__(Vector5D self, double x0, double x1, double x2, double x3, double x4) -> Vector5D
11140  """
11141  _IMP_kernel.Vector5D_swiginit(self, _IMP_kernel.new_Vector5D(*args))
11142 
11143  def __iadd__(self, *args):
11144  _IMP_kernel.Vector5D___iadd__(self, *args)
11145  return self
11146 
11147 
11148 
11149  def __imul__(self, *args):
11150  _IMP_kernel.Vector5D___imul__(self, *args)
11151  return self
11152 
11153 
11154 
11155  def __itruediv__(self, *args):
11156  _IMP_kernel.Vector5D___itruediv__(self, *args)
11157  return self
11158 
11159 
11160 
11161  def __isub__(self, *args):
11162  _IMP_kernel.Vector5D___isub__(self, *args)
11163  return self
11164 
11165 
11166 
11167  def __len__(self):
11168  r"""__len__(Vector5D self) -> unsigned int"""
11169  return _IMP_kernel.Vector5D___len__(self)
11170 
11171  def __rmul__(self, f):
11172  r"""__rmul__(Vector5D self, double f) -> Vector5D"""
11173  return _IMP_kernel.Vector5D___rmul__(self, f)
11174 
11175  def __str__(self):
11176  r"""__str__(Vector5D self) -> std::string"""
11177  return _IMP_kernel.Vector5D___str__(self)
11178 
11179  def __repr__(self):
11180  r"""__repr__(Vector5D self) -> std::string"""
11181  return _IMP_kernel.Vector5D___repr__(self)
11182 
11183  def __cmp__(self, arg2):
11184  r"""__cmp__(Vector5D self, Vector5D arg2) -> int"""
11185  return _IMP_kernel.Vector5D___cmp__(self, arg2)
11186 
11187  def __eq__(self, arg2):
11188  r"""__eq__(Vector5D self, Vector5D arg2) -> bool"""
11189  return _IMP_kernel.Vector5D___eq__(self, arg2)
11190 
11191  def _get_as_binary(self):
11192  r"""_get_as_binary(Vector5D self) -> PyObject *"""
11193  return _IMP_kernel.Vector5D__get_as_binary(self)
11194 
11195  def _set_from_binary(self, p):
11196  r"""_set_from_binary(Vector5D self, PyObject * p)"""
11197  return _IMP_kernel.Vector5D__set_from_binary(self, p)
11198 
11199  def __getstate__(self):
11200  p = self._get_as_binary()
11201  if len(self.__dict__) > 1:
11202  d = self.__dict__.copy()
11203  del d['this']
11204  p = (d, p)
11205  return p
11206 
11207  def __setstate__(self, p):
11208  if not hasattr(self, 'this'):
11209  self.__init__()
11210  if isinstance(p, tuple):
11211  d, p = p
11212  self.__dict__.update(d)
11213  return self._set_from_binary(p)
11214 
11215 
11216  def __getitem__(self, index):
11217  if isinstance(index, slice):
11218  return [self[i] for i in range(*index.indices(len(self)))]
11219  else:
11220  return _IMP_kernel.Vector5D___getitem__(self, index)
11221 
11222 
11223 
11224  def __setitem__(self, index, val):
11225  if isinstance(index, slice):
11226  if not hasattr(val, '__iter__'):
11227  raise TypeError("must assign iterable to extended slice")
11228  inds = range(*index.indices(len(self)))
11229  if len(inds) != len(val):
11230  raise ValueError(
11231  "attempt to assign sequence of size %d "
11232  "to extended slice of size %d" % (len(val), len(inds)))
11233  for ind, v in zip(inds, val):
11234  self[ind] = v
11235  else:
11236  return _IMP_kernel.Vector5D___setitem__(self, index, val)
11237 
11238 
11239  __swig_destroy__ = _IMP_kernel.delete_Vector5D
11240 
11241 # Register Vector5D in _IMP_kernel:
11242 _IMP_kernel.Vector5D_swigregister(Vector5D)
11243 class Vector6D(_VectorBase6D):
11244  r"""Proxy of C++ IMP::VectorD< 6 > class."""
11245 
11246  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11247 
11248  def get_unit_vector(self):
11249  r"""get_unit_vector(Vector6D self) -> Vector6D"""
11250  return _IMP_kernel.Vector6D_get_unit_vector(self)
11251 
11252  def __truediv__(self, *args):
11253  return _IMP_kernel.Vector6D___truediv__(self, *args)
11254 
11255 
11256 
11257  def __neg__(self):
11258  r"""__neg__(Vector6D self) -> Vector6D"""
11259  return _IMP_kernel.Vector6D___neg__(self)
11260 
11261  def __sub__(self, o):
11262  r"""__sub__(Vector6D self, Vector6D o) -> Vector6D"""
11263  return _IMP_kernel.Vector6D___sub__(self, o)
11264 
11265  def __add__(self, ret):
11266  r"""__add__(Vector6D self, Vector6D ret) -> Vector6D"""
11267  return _IMP_kernel.Vector6D___add__(self, ret)
11268 
11269  def __mul__(self, *args):
11270  r"""
11271  __mul__(Vector6D self, double s) -> Vector6D
11272  __mul__(Vector6D self, Vector6D o) -> double
11273  """
11274  return _IMP_kernel.Vector6D___mul__(self, *args)
11275 
11276  def __init__(self, *args):
11277  r"""
11278  __init__(Vector6D self, IMP::Floats const & f) -> Vector6D
11279  __init__(Vector6D self) -> Vector6D
11280  __init__(Vector6D self, double x0, double x1, double x2, double x3, double x4, double x5) -> Vector6D
11281  """
11282  _IMP_kernel.Vector6D_swiginit(self, _IMP_kernel.new_Vector6D(*args))
11283 
11284  def __iadd__(self, *args):
11285  _IMP_kernel.Vector6D___iadd__(self, *args)
11286  return self
11287 
11288 
11289 
11290  def __imul__(self, *args):
11291  _IMP_kernel.Vector6D___imul__(self, *args)
11292  return self
11293 
11294 
11295 
11296  def __itruediv__(self, *args):
11297  _IMP_kernel.Vector6D___itruediv__(self, *args)
11298  return self
11299 
11300 
11301 
11302  def __isub__(self, *args):
11303  _IMP_kernel.Vector6D___isub__(self, *args)
11304  return self
11305 
11306 
11307 
11308  def __len__(self):
11309  r"""__len__(Vector6D self) -> unsigned int"""
11310  return _IMP_kernel.Vector6D___len__(self)
11311 
11312  def __rmul__(self, f):
11313  r"""__rmul__(Vector6D self, double f) -> Vector6D"""
11314  return _IMP_kernel.Vector6D___rmul__(self, f)
11315 
11316  def __str__(self):
11317  r"""__str__(Vector6D self) -> std::string"""
11318  return _IMP_kernel.Vector6D___str__(self)
11319 
11320  def __repr__(self):
11321  r"""__repr__(Vector6D self) -> std::string"""
11322  return _IMP_kernel.Vector6D___repr__(self)
11323 
11324  def __cmp__(self, arg2):
11325  r"""__cmp__(Vector6D self, Vector6D arg2) -> int"""
11326  return _IMP_kernel.Vector6D___cmp__(self, arg2)
11327 
11328  def __eq__(self, arg2):
11329  r"""__eq__(Vector6D self, Vector6D arg2) -> bool"""
11330  return _IMP_kernel.Vector6D___eq__(self, arg2)
11331 
11332  def _get_as_binary(self):
11333  r"""_get_as_binary(Vector6D self) -> PyObject *"""
11334  return _IMP_kernel.Vector6D__get_as_binary(self)
11335 
11336  def _set_from_binary(self, p):
11337  r"""_set_from_binary(Vector6D self, PyObject * p)"""
11338  return _IMP_kernel.Vector6D__set_from_binary(self, p)
11339 
11340  def __getstate__(self):
11341  p = self._get_as_binary()
11342  if len(self.__dict__) > 1:
11343  d = self.__dict__.copy()
11344  del d['this']
11345  p = (d, p)
11346  return p
11347 
11348  def __setstate__(self, p):
11349  if not hasattr(self, 'this'):
11350  self.__init__()
11351  if isinstance(p, tuple):
11352  d, p = p
11353  self.__dict__.update(d)
11354  return self._set_from_binary(p)
11355 
11356 
11357  def __getitem__(self, index):
11358  if isinstance(index, slice):
11359  return [self[i] for i in range(*index.indices(len(self)))]
11360  else:
11361  return _IMP_kernel.Vector6D___getitem__(self, index)
11362 
11363 
11364 
11365  def __setitem__(self, index, val):
11366  if isinstance(index, slice):
11367  if not hasattr(val, '__iter__'):
11368  raise TypeError("must assign iterable to extended slice")
11369  inds = range(*index.indices(len(self)))
11370  if len(inds) != len(val):
11371  raise ValueError(
11372  "attempt to assign sequence of size %d "
11373  "to extended slice of size %d" % (len(val), len(inds)))
11374  for ind, v in zip(inds, val):
11375  self[ind] = v
11376  else:
11377  return _IMP_kernel.Vector6D___setitem__(self, index, val)
11378 
11379 
11380  __swig_destroy__ = _IMP_kernel.delete_Vector6D
11381 
11382 # Register Vector6D in _IMP_kernel:
11383 _IMP_kernel.Vector6D_swigregister(Vector6D)
11384 class VectorKD(_VectorBaseKD):
11385  r"""Proxy of C++ IMP::VectorD< -1 > class."""
11386 
11387  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11388 
11389  def get_unit_vector(self):
11390  r"""get_unit_vector(VectorKD self) -> VectorKD"""
11391  return _IMP_kernel.VectorKD_get_unit_vector(self)
11392 
11393  def __truediv__(self, *args):
11394  return _IMP_kernel.VectorKD___truediv__(self, *args)
11395 
11396 
11397 
11398  def __neg__(self):
11399  r"""__neg__(VectorKD self) -> VectorKD"""
11400  return _IMP_kernel.VectorKD___neg__(self)
11401 
11402  def __sub__(self, o):
11403  r"""__sub__(VectorKD self, VectorKD o) -> VectorKD"""
11404  return _IMP_kernel.VectorKD___sub__(self, o)
11405 
11406  def __add__(self, ret):
11407  r"""__add__(VectorKD self, VectorKD ret) -> VectorKD"""
11408  return _IMP_kernel.VectorKD___add__(self, ret)
11409 
11410  def __mul__(self, *args):
11411  r"""
11412  __mul__(VectorKD self, double s) -> VectorKD
11413  __mul__(VectorKD self, VectorKD o) -> double
11414  """
11415  return _IMP_kernel.VectorKD___mul__(self, *args)
11416 
11417  def __init__(self, *args):
11418  r"""
11419  __init__(VectorKD self, IMP::Floats const & f) -> VectorKD
11420  __init__(VectorKD self) -> VectorKD
11421  __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
11422  """
11423  _IMP_kernel.VectorKD_swiginit(self, _IMP_kernel.new_VectorKD(*args))
11424 
11425  def __iadd__(self, *args):
11426  _IMP_kernel.VectorKD___iadd__(self, *args)
11427  return self
11428 
11429 
11430 
11431  def __imul__(self, *args):
11432  _IMP_kernel.VectorKD___imul__(self, *args)
11433  return self
11434 
11435 
11436 
11437  def __itruediv__(self, *args):
11438  _IMP_kernel.VectorKD___itruediv__(self, *args)
11439  return self
11440 
11441 
11442 
11443  def __isub__(self, *args):
11444  _IMP_kernel.VectorKD___isub__(self, *args)
11445  return self
11446 
11447 
11448 
11449  def __len__(self):
11450  r"""__len__(VectorKD self) -> unsigned int"""
11451  return _IMP_kernel.VectorKD___len__(self)
11452 
11453  def __rmul__(self, f):
11454  r"""__rmul__(VectorKD self, double f) -> VectorKD"""
11455  return _IMP_kernel.VectorKD___rmul__(self, f)
11456 
11457  def __str__(self):
11458  r"""__str__(VectorKD self) -> std::string"""
11459  return _IMP_kernel.VectorKD___str__(self)
11460 
11461  def __repr__(self):
11462  r"""__repr__(VectorKD self) -> std::string"""
11463  return _IMP_kernel.VectorKD___repr__(self)
11464 
11465  def __cmp__(self, arg2):
11466  r"""__cmp__(VectorKD self, VectorKD arg2) -> int"""
11467  return _IMP_kernel.VectorKD___cmp__(self, arg2)
11468 
11469  def __eq__(self, arg2):
11470  r"""__eq__(VectorKD self, VectorKD arg2) -> bool"""
11471  return _IMP_kernel.VectorKD___eq__(self, arg2)
11472 
11473  def _get_as_binary(self):
11474  r"""_get_as_binary(VectorKD self) -> PyObject *"""
11475  return _IMP_kernel.VectorKD__get_as_binary(self)
11476 
11477  def _set_from_binary(self, p):
11478  r"""_set_from_binary(VectorKD self, PyObject * p)"""
11479  return _IMP_kernel.VectorKD__set_from_binary(self, p)
11480 
11481  def __getstate__(self):
11482  p = self._get_as_binary()
11483  if len(self.__dict__) > 1:
11484  d = self.__dict__.copy()
11485  del d['this']
11486  p = (d, p)
11487  return p
11488 
11489  def __setstate__(self, p):
11490  if not hasattr(self, 'this'):
11491  self.__init__()
11492  if isinstance(p, tuple):
11493  d, p = p
11494  self.__dict__.update(d)
11495  return self._set_from_binary(p)
11496 
11497 
11498  def __getitem__(self, index):
11499  if isinstance(index, slice):
11500  return [self[i] for i in range(*index.indices(len(self)))]
11501  else:
11502  return _IMP_kernel.VectorKD___getitem__(self, index)
11503 
11504 
11505 
11506  def __setitem__(self, index, val):
11507  if isinstance(index, slice):
11508  if not hasattr(val, '__iter__'):
11509  raise TypeError("must assign iterable to extended slice")
11510  inds = range(*index.indices(len(self)))
11511  if len(inds) != len(val):
11512  raise ValueError(
11513  "attempt to assign sequence of size %d "
11514  "to extended slice of size %d" % (len(val), len(inds)))
11515  for ind, v in zip(inds, val):
11516  self[ind] = v
11517  else:
11518  return _IMP_kernel.VectorKD___setitem__(self, index, val)
11519 
11520 
11521  __swig_destroy__ = _IMP_kernel.delete_VectorKD
11522 
11523 # Register VectorKD in _IMP_kernel:
11524 _IMP_kernel.VectorKD_swigregister(VectorKD)
11525 
11526 def get_basis_vector_1d(coordinate):
11527  r"""get_basis_vector_1d(unsigned int coordinate) -> Vector1D"""
11528  return _IMP_kernel.get_basis_vector_1d(coordinate)
11529 
11530 def get_basis_vector_2d(coordinate):
11531  r"""get_basis_vector_2d(unsigned int coordinate) -> Vector2D"""
11532  return _IMP_kernel.get_basis_vector_2d(coordinate)
11533 
11534 def get_basis_vector_3d(coordinate):
11535  r"""get_basis_vector_3d(unsigned int coordinate) -> Vector3D"""
11536  return _IMP_kernel.get_basis_vector_3d(coordinate)
11537 
11538 def get_basis_vector_4d(coordinate):
11539  r"""get_basis_vector_4d(unsigned int coordinate) -> Vector4D"""
11540  return _IMP_kernel.get_basis_vector_4d(coordinate)
11541 
11542 def get_basis_vector_5d(coordinate):
11543  r"""get_basis_vector_5d(unsigned int coordinate) -> Vector5D"""
11544  return _IMP_kernel.get_basis_vector_5d(coordinate)
11545 
11546 def get_basis_vector_6d(coordinate):
11547  r"""get_basis_vector_6d(unsigned int coordinate) -> Vector6D"""
11548  return _IMP_kernel.get_basis_vector_6d(coordinate)
11549 
11550 def get_zero_vector_1d():
11551  r"""get_zero_vector_1d() -> Vector1D"""
11552  return _IMP_kernel.get_zero_vector_1d()
11553 
11554 def get_zero_vector_2d():
11555  r"""get_zero_vector_2d() -> Vector2D"""
11556  return _IMP_kernel.get_zero_vector_2d()
11557 
11558 def get_zero_vector_3d():
11559  r"""get_zero_vector_3d() -> Vector3D"""
11560  return _IMP_kernel.get_zero_vector_3d()
11561 
11562 def get_zero_vector_4d():
11563  r"""get_zero_vector_4d() -> Vector4D"""
11564  return _IMP_kernel.get_zero_vector_4d()
11565 
11566 def get_zero_vector_5d():
11567  r"""get_zero_vector_5d() -> Vector5D"""
11568  return _IMP_kernel.get_zero_vector_5d()
11569 
11570 def get_zero_vector_6d():
11571  r"""get_zero_vector_6d() -> Vector6D"""
11572  return _IMP_kernel.get_zero_vector_6d()
11573 
11574 def get_ones_vector_1d(v=1):
11575  r"""get_ones_vector_1d(double v=1) -> Vector1D"""
11576  return _IMP_kernel.get_ones_vector_1d(v)
11577 
11578 def get_ones_vector_2d(v=1):
11579  r"""get_ones_vector_2d(double v=1) -> Vector2D"""
11580  return _IMP_kernel.get_ones_vector_2d(v)
11581 
11582 def get_ones_vector_3d(v=1):
11583  r"""get_ones_vector_3d(double v=1) -> Vector3D"""
11584  return _IMP_kernel.get_ones_vector_3d(v)
11585 
11586 def get_ones_vector_4d(v=1):
11587  r"""get_ones_vector_4d(double v=1) -> Vector4D"""
11588  return _IMP_kernel.get_ones_vector_4d(v)
11589 
11590 def get_ones_vector_5d(v=1):
11591  r"""get_ones_vector_5d(double v=1) -> Vector5D"""
11592  return _IMP_kernel.get_ones_vector_5d(v)
11593 
11594 def get_ones_vector_6d(v=1):
11595  r"""get_ones_vector_6d(double v=1) -> Vector6D"""
11596  return _IMP_kernel.get_ones_vector_6d(v)
11597 class _RestraintsScoringFunction(ScoringFunction):
11598  r"""Proxy of C++ IMP::internal::GenericRestraintsScoringFunction< ::IMP::Restraints > class."""
11599 
11600  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11601  __repr__ = _swig_repr
11602 
11603  def __init__(self, *args):
11604  r"""
11605  __init__(_RestraintsScoringFunction self, IMP::RestraintsTemp const & rs, double weight=1.0, double max=NO_MAX, std::string name="RestraintsScoringFunction%1%") -> _RestraintsScoringFunction
11606  __init__(_RestraintsScoringFunction self) -> _RestraintsScoringFunction
11607  """
11608  _IMP_kernel._RestraintsScoringFunction_swiginit(self, _IMP_kernel.new__RestraintsScoringFunction(*args))
11609 
11610  def do_add_score_and_derivatives(self, sa, ss):
11611  r"""do_add_score_and_derivatives(_RestraintsScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
11612  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives(self, sa, ss)
11613 
11614  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
11615  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)"""
11616  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
11617 
11618  def do_get_inputs(self):
11619  r"""do_get_inputs(_RestraintsScoringFunction self) -> IMP::ModelObjectsTemp"""
11620  return _IMP_kernel._RestraintsScoringFunction_do_get_inputs(self)
11621 
11622  def get_restraints(self):
11623  r"""get_restraints(_RestraintsScoringFunction self) -> IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const &"""
11624  return _IMP_kernel._RestraintsScoringFunction_get_restraints(self)
11625 
11626  def set_restraints(self, s):
11627  r"""set_restraints(_RestraintsScoringFunction self, IMP::RestraintsTemp const & s)"""
11628  return _IMP_kernel._RestraintsScoringFunction_set_restraints(self, s)
11629 
11630  def get_number_of_restraints(self):
11631  r"""get_number_of_restraints(_RestraintsScoringFunction self) -> unsigned int"""
11632  return _IMP_kernel._RestraintsScoringFunction_get_number_of_restraints(self)
11633 
11634  def clear_restraints(self):
11635  r"""clear_restraints(_RestraintsScoringFunction self)"""
11636  return _IMP_kernel._RestraintsScoringFunction_clear_restraints(self)
11637 
11638  def get_restraint(self, i):
11639  r"""get_restraint(_RestraintsScoringFunction self, unsigned int i) -> Restraint"""
11640  return _IMP_kernel._RestraintsScoringFunction_get_restraint(self, i)
11641 
11642  def erase_restraint(self, i):
11643  r"""erase_restraint(_RestraintsScoringFunction self, unsigned int i)"""
11644  return _IMP_kernel._RestraintsScoringFunction_erase_restraint(self, i)
11645 
11646  def add_restraint(self, r):
11647  r"""add_restraint(_RestraintsScoringFunction self, Restraint r) -> unsigned int"""
11648  return _IMP_kernel._RestraintsScoringFunction_add_restraint(self, r)
11649 
11650  def add_restraints(self, r):
11651  r"""add_restraints(_RestraintsScoringFunction self, IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const & r)"""
11652  return _IMP_kernel._RestraintsScoringFunction_add_restraints(self, r)
11653 
11654  def _python_index_restraint(self, r, start, stop):
11655  r"""_python_index_restraint(_RestraintsScoringFunction self, Restraint r, unsigned int start, unsigned int stop) -> unsigned int"""
11656  return _IMP_kernel._RestraintsScoringFunction__python_index_restraint(self, r, start, stop)
11657 
11658  def get_version_info(self):
11659  r"""get_version_info(_RestraintsScoringFunction self) -> VersionInfo"""
11660  return _IMP_kernel._RestraintsScoringFunction_get_version_info(self)
11661  __swig_destroy__ = _IMP_kernel.delete__RestraintsScoringFunction
11662 
11663  @staticmethod
11664  def get_from(o):
11665  return _object_cast_to__RestraintsScoringFunction(o)
11666 
11667 
11668  def __get_restraints(self):
11669  return _list_util.VarList(
11670  getdimfunc=self.get_number_of_restraints,
11671  getfunc=self.get_restraint, erasefunc=self.erase_restraint,
11672  appendfunc=self.add_restraint, extendfunc=self.add_restraints,
11673  clearfunc=self.clear_restraints,
11674  indexfunc=self._python_index_restraint)
11675 
11676  def __set_restraints(self, obj):
11677  _list_util.set_varlist(self.restraints, obj)
11678 
11679  def __del_restraints(self):
11680  _list_util.del_varlist(self.restraints)
11681 
11682  restraints = property(__get_restraints, __set_restraints,
11683  __del_restraints, doc="List of Restraints")
11684 
11685 
11686  def _get_jax(self, space=None):
11687  import IMP.jax
11688  space = space or IMP.jax.FreeSpace
11689  jis = [r.get_derived_object()._get_jax(space) for r in self.restraints]
11690  funcs = [j.score_func for j in jis]
11691  keys = frozenset(x for j in jis for x in j._keys)
11692  def jax_sf(jm):
11693  return sum(f(jm) for f in funcs)
11694  return IMP._jax_util.JAXRestraintInfo(
11695  m=self.get_model(), score_func=jax_sf, weight=1.0, keys=keys)
11696 
11697 
11698 # Register _RestraintsScoringFunction in _IMP_kernel:
11699 _IMP_kernel._RestraintsScoringFunction_swigregister(_RestraintsScoringFunction)
11700 class ScopedSetFloatAttribute(_RAII):
11701  r"""Proxy of C++ IMP::ScopedSetAttribute< IMP::FloatKey,IMP::Float > class."""
11702 
11703  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11704 
11705  def __init__(self, *args):
11706  r"""
11707  __init__(ScopedSetFloatAttribute self) -> ScopedSetFloatAttribute
11708  __init__(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value) -> ScopedSetFloatAttribute
11709  """
11710  _IMP_kernel.ScopedSetFloatAttribute_swiginit(self, _IMP_kernel.new_ScopedSetFloatAttribute(*args))
11711 
11712  def set(self, p, key, value):
11713  r"""set(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value)"""
11714  return _IMP_kernel.ScopedSetFloatAttribute_set(self, p, key, value)
11715 
11716  def reset(self):
11717  r"""reset(ScopedSetFloatAttribute self)"""
11718  return _IMP_kernel.ScopedSetFloatAttribute_reset(self)
11719  __swig_destroy__ = _IMP_kernel.delete_ScopedSetFloatAttribute
11720 
11721  def show(self, *args):
11722  r"""show(ScopedSetFloatAttribute self, _ostream out=std::cout)"""
11723  return _IMP_kernel.ScopedSetFloatAttribute_show(self, *args)
11724 
11725  def __str__(self):
11726  r"""__str__(ScopedSetFloatAttribute self) -> std::string"""
11727  return _IMP_kernel.ScopedSetFloatAttribute___str__(self)
11728 
11729  def __repr__(self):
11730  r"""__repr__(ScopedSetFloatAttribute self) -> std::string"""
11731  return _IMP_kernel.ScopedSetFloatAttribute___repr__(self)
11732 
11733 # Register ScopedSetFloatAttribute in _IMP_kernel:
11734 _IMP_kernel.ScopedSetFloatAttribute_swigregister(ScopedSetFloatAttribute)
11735 
11736 def _get_module_data_path(module, file_name):
11737  r"""_get_module_data_path(std::string module, std::string file_name) -> std::string"""
11738  return _IMP_kernel._get_module_data_path(module, file_name)
11739 
11740 def _get_module_example_path(module, file_name):
11741  r"""_get_module_example_path(std::string module, std::string file_name) -> std::string"""
11742  return _IMP_kernel._get_module_example_path(module, file_name)
11743 
11744 #used_modules=[]
11745 #def show_used_modules():
11746 # for m in used_modules:
11747 # print "%-20s %s" % (m.get_module(), m.get_version())
11748 
11749 # Ensure that Windows gets the PATH set to include anything in the library
11750 # search path
11751 if sys.platform == 'win32' and 'IMP_LD_PATH' in os.environ:
11752  dirs = os.environ['IMP_LD_PATH'].split(":")
11753  pathcomps = os.environ['PATH'].split(";")
11754  for d in dirs:
11755  if d not in pathcomps:
11756  os.environ['PATH'] = d + ';' + os.environ['PATH']
11757 
11758 
11759 
11760 import sys
11761 import os
11762 
11764  """Allow command line tools to easily implement multiple commands.
11765  Typically, an IMP command line tool will use an instance of this class
11766  to provide a consistent interface to multiple distinct commands
11767  from a single binary, rather than providing a potentially large
11768  number of binaries. This is similar to the way a number of common
11769  command line tools outside of IMP function (e.g. Git provides a single
11770  `git` tool which implements multiple commands - `git add`, `git commit`,
11771  `git push` and so on).
11772 
11773  Each command is implemented with a Python module of the same name
11774  that can be imported from the module (for example, if `module_name`
11775  is `IMP.foo`, the `bar` command is provided by the `IMP.foo.bar` Python
11776  module, which would usually be found as `modules/foo/pyext/src/bar.py`).
11777  Each such module should have a docstring and a `%main()` method
11778  that takes no arguments (the module should also call its `%main()` method
11779  if it is run directly, i.e. with something like
11780  `if __name__=="__main__": %main()`). The encompassing module
11781  (`IMP.foo` in the example) should define `_all_commands` as a Python
11782  list of all valid commands.
11783 
11784  See the `multifit` and `cnmultifit` command line tools for example
11785  usage.
11786  """
11787 
11788  def __init__(self, short_help, long_help, module_name):
11789  """Constructor.
11790  @param short_help A few words that describe the command line tool.
11791  @param long_help Longer text, used in the `help` command.
11792  @param module_name Name of the module (e.g. `IMP.foo`) that
11793  implements the commands.
11794  """
11795  self.short_help = short_help
11796  self.long_help = long_help
11797  self.module_name = module_name
11798  self._all_commands = self.import_module()._all_commands
11799  self._progname = os.path.basename(sys.argv[0])
11800 
11801  def main(self):
11802  """Call this method to act upon the user-provided command line"""
11803  if len(sys.argv) <= 1:
11804  print(self.short_help + " Use '%s help' for help." % self._progname)
11805  else:
11806  command = sys.argv[1]
11807  if command in ('help', '--help', '-h'):
11808  if len(sys.argv) == 3:
11809  self.show_command_help(sys.argv[2])
11810  else:
11811  self.show_help()
11812  elif command == '--version':
11813  self.show_version()
11814  elif command in self._all_commands:
11815  self.do_command(command)
11816  else:
11817  self.unknown_command(command)
11818 
11819  def import_module(self, mod=None):
11820  modname = self.module_name
11821  if mod is not None:
11822  modname += "." + mod
11823  return __import__(modname, {}, {}, [''])
11824 
11825  def unknown_command(self, command):
11826  print("Unknown command: '%s'" % command)
11827  print("Use '%s help' for help." % self._progname)
11828  sys.exit(1)
11829 
11830  def _get_version(self):
11831  return self.import_module().get_module_version()
11832 
11833  def show_version(self):
11834  print(self._progname + ' ' + self._get_version())
11835 
11836  def show_help(self):
11837  ver = self._get_version()
11838  print("%s, version %s." % (self._progname, ver))
11839  print(self.long_help + """
11840 
11841 This program is part of IMP, the Integrative Modeling Platform,
11842 which is %s.
11843 For additional information about IMP, see <https://integrativemodeling.org>.
11844 
11845 Usage: %s <command> [options] [args]
11846 
11847 Commands:""" % (get_copyright(), self._progname))
11848  commands = self._all_commands[:] + ['help']
11849  commands.sort()
11850  cmdlen = max([len(c) for c in commands])
11851  for c in commands:
11852  if c == 'help':
11853  doc = 'Get help on using %s.' % self._progname
11854  else:
11855  doc = self.import_module(c).__doc__ or "<no help>"
11856  c += ' ' * (cmdlen - len(c))
11857  print(' ' + c + ' ' + doc)
11858  print("""
11859 Use "%s help <command>" for detailed help on any command
11860  or "%s --version" to see the version number.""" % (self._progname,
11861  self._progname))
11862 
11863  def do_command(self, command):
11864  mod = self.import_module(command)
11865  sys.argv[0] = self._progname + ' ' + command
11866  del sys.argv[1]
11867  mod.main()
11868 
11869  def show_command_help(self, command):
11870  if command == 'help':
11871  self.show_help()
11872  elif command in self._all_commands or command == 'help':
11873  mod = self.import_module(command)
11874  sys.argv = [self._progname + ' ' + command, '--help']
11875  mod.main()
11876  else:
11877  self.unknown_command(command)
11878 
11879 
11880 
11881 
11882 def get_networkx_graph(ig):
11883  import networkx
11884  g = networkx.DiGraph()
11885  if len(ig.get_vertices()) == 0:
11886  return g
11887 
11888  class NodeWrapper:
11889 
11890  def __init__(self, p):
11891  self.p = p
11892 
11893  def __str__(self):
11894  return self.p.get_name()
11895 
11896  def __call__(self, name):
11897  return self.p.__call__(name)
11898 
11899  for vi in ig.get_vertices():
11900  n = ig.get_vertex_name(vi)
11901  g.add_node(NodeWrapper(n))
11902  for vi in ig.get_vertices():
11903  n = ig.get_vertex_name(vi)
11904  for ni in ig.get_out_neighbors(vi):
11905  nn = ig.get_vertex_name(ni)
11906  g.add_edge(NodeWrapper(n), NodeWrapper(nn))
11907  return g
11908 
11909 
11910 def show_altgraph(g):
11911  def clean(name):
11912  try:
11913  n0 = name.get_name()
11914  except:
11915  n0 = str(name)
11916  n1 = str(n0).replace('"', '')
11917  n2 = n1.replace("\n", '')
11918  return n2
11919  import altgraph
11920  from altgraph import Graph, Dot
11921  graph = Graph.Graph()
11922  for i, v in enumerate(g.get_vertices()):
11923  graph.add_node(i) # , node_data=g.get_vertex_name(v)
11924  for i, v in enumerate(g.get_vertices()):
11925  for n in g.get_out_neighbors(v):
11926  graph.add_edge(v, n)
11927  dot = Dot.Dot(graph) # , graph_type="digraph"
11928  for i, v in enumerate(g.get_vertices()):
11929  dot.node_style(i, label=clean(g.get_vertex_name(v)))
11930  dot.display()
11931 
11932 
11933 def show_graphviz(g):
11934  import subprocess
11935  tfn = create_temporary_file_name("graph", ".dot")
11936  tfon = create_temporary_file_name("graph", ".pdf")
11937  st = g.get_graphviz_string()
11938  with open(tfn, "w") as fh:
11939  fh.write(st)
11940  try:
11941  print("running dot")
11942  sp = subprocess.Popen(["dot", "-Tpdf", tfn, "-o" + tfon])
11943  sp.wait()
11944  except:
11945  import sys
11946  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")
11947  return
11948  import platform
11949  if platform.system() == "Darwin":
11950  cmd = ["open"]
11951  else:
11952  cmd = ["gv", "acroread", "xpdf"]
11953  success = False
11954  for c in cmd:
11955  print("launching viewer " + c)
11956  try:
11957  subprocess.check_call([c, tfon])
11958  success = True
11959  break
11960  except:
11961  pass
11962  if not success:
11963  print("Could not display file. It is saved at " + tfon)
11964  return tfon
11965 
11966 
11967 
11968 
11969 import functools
11970 import contextlib
11971 
11972 def deprecated_module(version, module, help_message):
11973  """Mark a Python module as deprecated.
11974  @note The `module` argument would normally be `__name__`.
11975  @see [deprecation support](@ref deprecation)."""
11977  "Module %s is deprecated. %s\n" % (module, help_message))
11978 
11979 def deprecated_object(version, help_message):
11980  """Python decorator to mark a class as deprecated.
11981  @see [deprecation support](@ref deprecation)."""
11982  def wrapper(obj):
11983  orig_init = obj.__init__
11984 # Don't try to copy __module__ since __init__ may not have it
11985 # (e.g. if we subclassed object but didn't override __init__)
11986  @functools.wraps(orig_init, ('__name__', '__doc__'))
11987  def __init__(obj, *args, **keys):
11988  handle_use_deprecated("Object %s is deprecated. %s\n"
11989  % (type(obj), help_message))
11990  orig_init(obj, *args, **keys)
11991  obj.__init__ = __init__
11992  return obj
11993  return wrapper
11994 
11995 def deprecated_method(version, help_message):
11996  """Python decorator to mark a method as deprecated.
11997  @see [deprecation support](@ref deprecation)."""
11998  def out_wrapper(obj):
11999  @functools.wraps(obj)
12000  def wrapper(cls, *args, **keys):
12001  handle_use_deprecated("Method %s in %s is deprecated. %s\n"
12002  % (obj.__name__, type(cls), help_message))
12003  return obj(cls, *args, **keys)
12004  return wrapper
12005  return out_wrapper
12006 
12007 def deprecated_function(version, help_message):
12008  """Python decorator to mark a function as deprecated.
12009  @see [deprecation support](@ref deprecation)."""
12010  def out_wrapper(obj):
12011  @functools.wraps(obj)
12012  def wrapper(*args, **keys):
12013  handle_use_deprecated("Function %s is deprecated. %s\n"
12014  % (obj.__name__, help_message))
12015  return obj(*args, **keys)
12016  return wrapper
12017  return out_wrapper
12018 
12019 @contextlib.contextmanager
12020 def allow_deprecated(allow=True):
12021  """Context manager to temporarily allow (or disallow) deprecated code.
12022  @see [deprecation support](@ref deprecation)."""
12024  set_deprecation_exceptions(not allow)
12025  yield
12027 
12028 
12029 def _get_all_flags(ntokens):
12030  r"""_get_all_flags(unsigned int ntokens) -> IMP::Strings"""
12031  return _IMP_kernel._get_all_flags(ntokens)
12032 
12033 def _print_internal_help(out, description):
12034  r"""_print_internal_help(_ostream out, std::string description)"""
12035  return _IMP_kernel._print_internal_help(out, description)
12036 
12037 
12038 import argparse
12039 import sys
12040 
12041 class _PassThroughAction(argparse.Action):
12042  """Pass an argument through to the IMP Boost parser"""
12043  def __call__(self, parser, namespace, values, option_string=None):
12044  parser._boost_command_line.append(option_string)
12045  if values != []:
12046  parser._boost_command_line.append(values)
12047 # Terminate processing immediately if necessary (otherwise argparse
12048 # may fail if we're missing positional arguments)
12049  if option_string in ('-h', '--help', '--help_advanced', '--version'):
12050  parser._handle_boost()
12051 
12052 
12053 class ArgumentParser(argparse.ArgumentParser):
12054  """IMP-specific subclass of argparse.ArgumentParser.
12055  This adds options common to all IMP applications
12056  (see IMP::setup_from_argv()).
12057  """
12058 
12059  def __init__(self, *args, **kwargs):
12060 # Don't add --help option (since the Boost option parser handles it)
12061  kwargs['add_help'] = False
12062  super().__init__(*args, **kwargs)
12063  for ntoken in (0, 1):
12064  flags = _get_all_flags(ntoken)
12065  for f in flags:
12066  arg = ['-h', '--help'] if f == 'help' else ['--' + f]
12067  self.add_argument(*arg, help=argparse.SUPPRESS,
12068  nargs=None if ntoken else 0,
12069  action=_PassThroughAction,
12070  default=argparse.SUPPRESS)
12071 
12072  def parse_args(self, args=None, namespace=None):
12073  """Parse the command line and return optional and positional arguments.
12074  This functions in the same way as the method in the base class
12075  argparse.ArgumentParser, except that it also processes optional
12076  arguments common to all IMP applications (these are not returned
12077  in `args`, but can be obtained in the usual way, e.g. by calling
12078  IMP::get_string_flag()).
12079  @returns args
12080  """
12081  self._boost_command_line = [sys.argv[0]]
12082  ret = super().parse_args(args, namespace)
12083  if len(self._boost_command_line) > 1:
12084  self._handle_boost()
12085  return ret
12086 
12087  def _get_description(self):
12088  return self.format_help() + "\nOptions common to all IMP applications:"
12089 
12090  def print_help(self, file=None):
12091  _print_internal_help(file if file else sys.stdout,
12092  self._get_description())
12093 
12094  def _handle_boost(self):
12095  setup_from_argv(self._boost_command_line,
12096  self._get_description(),
12097  '==SUPPRESS==', 0)
12098 
12099 class RandomNumberGenerator(object):
12100  r"""Proxy of C++ IMP::RandomNumberGenerator class."""
12101 
12102  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12103  __repr__ = _swig_repr
12104 
12105  def seed(self, x):
12106  r"""seed(RandomNumberGenerator self, int x)"""
12107  return _IMP_kernel.RandomNumberGenerator_seed(self, x)
12108 
12109  def __call__(self):
12110  r"""__call__(RandomNumberGenerator self) -> int"""
12111  return _IMP_kernel.RandomNumberGenerator___call__(self)
12112 
12113  def get_state(self):
12114  r"""get_state(RandomNumberGenerator self) -> PyObject *"""
12115  return _IMP_kernel.RandomNumberGenerator_get_state(self)
12116 
12117  def set_state(self, p):
12118  r"""set_state(RandomNumberGenerator self, PyObject * p)"""
12119  return _IMP_kernel.RandomNumberGenerator_set_state(self, p)
12120 
12121  def __init__(self):
12122  r"""__init__(RandomNumberGenerator self) -> RandomNumberGenerator"""
12123  _IMP_kernel.RandomNumberGenerator_swiginit(self, _IMP_kernel.new_RandomNumberGenerator())
12124  __swig_destroy__ = _IMP_kernel.delete_RandomNumberGenerator
12125 
12126 # Register RandomNumberGenerator in _IMP_kernel:
12127 _IMP_kernel.RandomNumberGenerator_swigregister(RandomNumberGenerator)
12128 
12129 def get_random_float_uniform(*args):
12130  r"""
12131  get_random_float_uniform() -> float
12132  get_random_float_uniform(float min, float max) -> float
12133  """
12134  return _IMP_kernel.get_random_float_uniform(*args)
12135 
12136 def get_random_double_uniform(*args):
12137  r"""
12138  get_random_double_uniform() -> double
12139  get_random_double_uniform(double min, double max) -> double
12140  """
12141  return _IMP_kernel.get_random_double_uniform(*args)
12142 
12143 def get_random_floats_normal(n, mean=0.0, stddev=1.0):
12144  r"""get_random_floats_normal(unsigned int n, float mean=0.0, float stddev=1.0) -> IMP::Vector< float,std::allocator< float > >"""
12145  return _IMP_kernel.get_random_floats_normal(n, mean, stddev)
12146 
12147 def get_random_doubles_normal(n, mean=0.0, stddev=1.0):
12148  r"""get_random_doubles_normal(unsigned int n, double mean=0.0, double stddev=1.0) -> IMP::Vector< double,std::allocator< double > >"""
12149  return _IMP_kernel.get_random_doubles_normal(n, mean, stddev)
12150 
12151 def get_random_floats_uniform(n):
12152  r"""get_random_floats_uniform(unsigned int n) -> IMP::Vector< float,std::allocator< float > >"""
12153  return _IMP_kernel.get_random_floats_uniform(n)
12154 
12155 def get_random_doubles_uniform(n):
12156  r"""get_random_doubles_uniform(unsigned int n) -> IMP::Vector< double,std::allocator< double > >"""
12157  return _IMP_kernel.get_random_doubles_uniform(n)
12158 
12159 def get_random_seed():
12160  r"""get_random_seed() -> boost::uint64_t"""
12161  return _IMP_kernel.get_random_seed()
12162 
12163 def _get_derivatives_numpy(m, k, m_pyobj, read_only):
12164  r"""_get_derivatives_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12165  return _IMP_kernel._get_derivatives_numpy(m, k, m_pyobj, read_only)
12166 
12167 def _get_floats_numpy(m, k, m_pyobj, read_only):
12168  r"""_get_floats_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12169  return _IMP_kernel._get_floats_numpy(m, k, m_pyobj, read_only)
12170 
12171 def _get_ints_numpy(m, k, m_pyobj, read_only):
12172  r"""_get_ints_numpy(Model m, IntKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12173  return _IMP_kernel._get_ints_numpy(m, k, m_pyobj, read_only)
12174 
12175 def _get_particle_indexes_numpy(m, k, m_pyobj, read_only):
12176  r"""_get_particle_indexes_numpy(Model m, ParticleIndexKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12177  return _IMP_kernel._get_particle_indexes_numpy(m, k, m_pyobj, read_only)
12178 
12179 def _get_vector3ds_numpy(m, k, m_pyobj, read_only):
12180  r"""_get_vector3ds_numpy(Model m, Vector3DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12181  return _IMP_kernel._get_vector3ds_numpy(m, k, m_pyobj, read_only)
12182 
12183 def _get_vector3dderiv_numpy(m, k, m_pyobj, read_only):
12184  r"""_get_vector3dderiv_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12185  return _IMP_kernel._get_vector3dderiv_numpy(m, k, m_pyobj, read_only)
12186 
12187 def _get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12188  r"""_get_vector3dderiv_derivatives_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12189  return _IMP_kernel._get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12190 
12191 def _get_vector4ds_numpy(m, k, m_pyobj, read_only):
12192  r"""_get_vector4ds_numpy(Model m, Vector4DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12193  return _IMP_kernel._get_vector4ds_numpy(m, k, m_pyobj, read_only)
12194 
12195 def _get_vector4dderiv_numpy(m, k, m_pyobj, read_only):
12196  r"""_get_vector4dderiv_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12197  return _IMP_kernel._get_vector4dderiv_numpy(m, k, m_pyobj, read_only)
12198 
12199 def _get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12200  r"""_get_vector4dderiv_derivatives_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12201  return _IMP_kernel._get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12202 
12203 def _get_spheres_numpy(m, m_pyobj, read_only):
12204  r"""_get_spheres_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12205  return _IMP_kernel._get_spheres_numpy(m, m_pyobj, read_only)
12206 
12207 def _get_sphere_derivatives_numpy(m, m_pyobj, read_only):
12208  r"""_get_sphere_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12209  return _IMP_kernel._get_sphere_derivatives_numpy(m, m_pyobj, read_only)
12210 
12211 def _get_internal_coordinates_numpy(m, m_pyobj, read_only):
12212  r"""_get_internal_coordinates_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12213  return _IMP_kernel._get_internal_coordinates_numpy(m, m_pyobj, read_only)
12214 
12215 def _get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only):
12216  r"""_get_internal_coordinate_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12217  return _IMP_kernel._get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only)
12218 
12219 try:
12220  import numpy
12221  ParticleIndex = numpy.intc
12222 except ImportError:
12223  pass
12224 
12225 
12226 class JAXWarning(UserWarning):
12227  """Warning for incomplete JAX support or different behavior of JAX code"""
12228  pass
12229 
12230 
12231 def get_module_name():
12232  r"""get_module_name() -> std::string const"""
12233  return _IMP_kernel.get_module_name()
12234 
12235 def get_module_version():
12236  r"""get_module_version() -> std::string const"""
12237  return _IMP_kernel.get_module_version()
12238 
12239 def get_example_path(fname):
12240  r"""get_example_path(std::string fname) -> std::string"""
12241  return _IMP_kernel.get_example_path(fname)
12242 
12243 def get_data_path(fname):
12244  r"""get_data_path(std::string fname) -> std::string"""
12245  return _IMP_kernel.get_data_path(fname)
12246 
12247 from . import _version_check
12248 _version_check.check_version(get_module_version())
12249 __version__ = get_module_version()
12250 
12251 
12252 random_number_generator = cvar.random_number_generator
12253 
Particle * get_particle(ParticleIndex p) const
Get the particle from an index.
Definition: Model.h:538
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:6743
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:11763
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:12020
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:6769
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:11801
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:11972
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:12007
virtual ::IMP::VersionInfo get_version_info() const override
Get information about the module and version of the object.
Definition: Model.h:700
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:6796
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:6757
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:11995
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:12072
def get_internal_coordinates_numpy
Get the model's internal coordinate array as a NumPy array.
Definition: __init__.py:6802
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:6808
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:6790
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:12053
def get_derivatives_numpy
Get the model's attribute derivatives array for key k as a NumPy array.
Definition: __init__.py:6774
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:11979
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:12226
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:11788
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:6783
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.