IMP logo
IMP Reference Guide  develop.d36d3deffb,2026/11/09
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 __eq__(self, o):
989  r"""__eq__(VersionInfo self, VersionInfo o) -> bool"""
990  return _IMP_kernel.VersionInfo___eq__(self, o)
991 
992  def __ne__(self, o):
993  r"""__ne__(VersionInfo self, VersionInfo o) -> bool"""
994  return _IMP_kernel.VersionInfo___ne__(self, o)
995 
996  def __lt__(self, o):
997  r"""__lt__(VersionInfo self, VersionInfo o) -> bool"""
998  return _IMP_kernel.VersionInfo___lt__(self, o)
999 
1000  def __gt__(self, o):
1001  r"""__gt__(VersionInfo self, VersionInfo o) -> bool"""
1002  return _IMP_kernel.VersionInfo___gt__(self, o)
1003 
1004  def __ge__(self, o):
1005  r"""__ge__(VersionInfo self, VersionInfo o) -> bool"""
1006  return _IMP_kernel.VersionInfo___ge__(self, o)
1007 
1008  def __le__(self, o):
1009  r"""__le__(VersionInfo self, VersionInfo o) -> bool"""
1010  return _IMP_kernel.VersionInfo___le__(self, o)
1011 
1012  def __str__(self):
1013  r"""__str__(VersionInfo self) -> std::string"""
1014  return _IMP_kernel.VersionInfo___str__(self)
1015 
1016  def __repr__(self):
1017  r"""__repr__(VersionInfo self) -> std::string"""
1018  return _IMP_kernel.VersionInfo___repr__(self)
1019 
1020  def _get_as_binary(self):
1021  r"""_get_as_binary(VersionInfo self) -> PyObject *"""
1022  return _IMP_kernel.VersionInfo__get_as_binary(self)
1023 
1024  def _set_from_binary(self, p):
1025  r"""_set_from_binary(VersionInfo self, PyObject * p)"""
1026  return _IMP_kernel.VersionInfo__set_from_binary(self, p)
1027 
1028  def __getstate__(self):
1029  p = self._get_as_binary()
1030  if len(self.__dict__) > 1:
1031  d = self.__dict__.copy()
1032  del d['this']
1033  p = (d, p)
1034  return p
1035 
1036  def __setstate__(self, p):
1037  if not hasattr(self, 'this'):
1038  self.__init__()
1039  if isinstance(p, tuple):
1040  d, p = p
1041  self.__dict__.update(d)
1042  return self._set_from_binary(p)
1043 
1044  __swig_destroy__ = _IMP_kernel.delete_VersionInfo
1045 
1046 # Register VersionInfo in _IMP_kernel:
1047 _IMP_kernel.VersionInfo_swigregister(VersionInfo)
1048 class TextOutput(_InputAdaptor):
1049  r"""Proxy of C++ IMP::TextOutput class."""
1050 
1051  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1052  __repr__ = _swig_repr
1053 
1054  def __init__(self, *args):
1055  r"""
1056  __init__(TextOutput self, int arg2) -> TextOutput
1057  __init__(TextOutput self, double arg2) -> TextOutput
1058  __init__(TextOutput self, char const * c, bool append=False) -> TextOutput
1059  __init__(TextOutput self, IMP::TextProxy< std::ostream > p) -> TextOutput
1060  __init__(TextOutput self) -> TextOutput
1061  __init__(TextOutput self, std::string file_name, bool append=False) -> TextOutput
1062  """
1063  _IMP_kernel.TextOutput_swiginit(self, _IMP_kernel.new_TextOutput(*args))
1064 
1065  def show(self, *args):
1066  r"""show(TextOutput self, _ostream out=std::cout)"""
1067  return _IMP_kernel.TextOutput_show(self, *args)
1068 
1069  def get_name(self):
1070  r"""get_name(TextOutput self) -> std::string"""
1071  return _IMP_kernel.TextOutput_get_name(self)
1072  __swig_destroy__ = _IMP_kernel.delete_TextOutput
1073 
1074 # Register TextOutput in _IMP_kernel:
1075 _IMP_kernel.TextOutput_swigregister(TextOutput)
1076 class TextInput(_InputAdaptor):
1077  r"""Proxy of C++ IMP::TextInput class."""
1078 
1079  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1080  __repr__ = _swig_repr
1081 
1082  def __init__(self, *args):
1083  r"""
1084  __init__(TextInput self, int arg2) -> TextInput
1085  __init__(TextInput self, double arg2) -> TextInput
1086  __init__(TextInput self, char const * c) -> TextInput
1087  __init__(TextInput self, IMP::TextProxy< std::istream > p) -> TextInput
1088  __init__(TextInput self) -> TextInput
1089  __init__(TextInput self, std::string file_name) -> TextInput
1090  """
1091  _IMP_kernel.TextInput_swiginit(self, _IMP_kernel.new_TextInput(*args))
1092 
1093  def show(self, *args):
1094  r"""show(TextInput self, _ostream out=std::cout)"""
1095  return _IMP_kernel.TextInput_show(self, *args)
1096 
1097  def get_name(self):
1098  r"""get_name(TextInput self) -> std::string"""
1099  return _IMP_kernel.TextInput_get_name(self)
1100 
1101  def set_binary_open_mode(self, binary):
1102  r"""set_binary_open_mode(TextInput self, bool binary)"""
1103  return _IMP_kernel.TextInput_set_binary_open_mode(self, binary)
1104  __swig_destroy__ = _IMP_kernel.delete_TextInput
1105 
1106 # Register TextInput in _IMP_kernel:
1107 _IMP_kernel.TextInput_swigregister(TextInput)
1108 class SetLogTarget(_RAII):
1109  r"""Proxy of C++ IMP::SetLogTarget class."""
1110 
1111  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1112 
1113  def __init__(self, *args):
1114  r"""
1115  __init__(SetLogTarget self) -> SetLogTarget
1116  __init__(SetLogTarget self, TextOutput to) -> SetLogTarget
1117  """
1118  _IMP_kernel.SetLogTarget_swiginit(self, _IMP_kernel.new_SetLogTarget(*args))
1119 
1120  def set(self, to):
1121  r"""set(SetLogTarget self, TextOutput to)"""
1122  return _IMP_kernel.SetLogTarget_set(self, to)
1123 
1124  def reset(self):
1125  r"""reset(SetLogTarget self)"""
1126  return _IMP_kernel.SetLogTarget_reset(self)
1127  __swig_destroy__ = _IMP_kernel.delete_SetLogTarget
1128 
1129  def show(self, *args):
1130  r"""show(SetLogTarget self, _ostream out=std::cout)"""
1131  return _IMP_kernel.SetLogTarget_show(self, *args)
1132 
1133  def __enter__(self):
1134  return self
1135  def __exit__(self, exc_type, exc_val, exc_tb):
1136  self.reset()
1137  return False
1138 
1139 
1140  def __str__(self):
1141  r"""__str__(SetLogTarget self) -> std::string"""
1142  return _IMP_kernel.SetLogTarget___str__(self)
1143 
1144  def __repr__(self):
1145  r"""__repr__(SetLogTarget self) -> std::string"""
1146  return _IMP_kernel.SetLogTarget___repr__(self)
1147 
1148 # Register SetLogTarget in _IMP_kernel:
1149 _IMP_kernel.SetLogTarget_swigregister(SetLogTarget)
1150 
1151 def create_temporary_file(*args):
1152  r"""create_temporary_file(std::string prefix="imp_temp", std::string suffix="") -> TextOutput"""
1153  return _IMP_kernel.create_temporary_file(*args)
1154 
1155 def create_temporary_file_name(*args):
1156  r"""create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="") -> std::string"""
1157  return _IMP_kernel.create_temporary_file_name(*args)
1158 
1159 def get_relative_path(base, relative):
1160  r"""get_relative_path(std::string base, std::string relative) -> std::string"""
1161  return _IMP_kernel.get_relative_path(base, relative)
1162 
1163 def get_absolute_path(file):
1164  r"""get_absolute_path(std::string file) -> std::string"""
1165  return _IMP_kernel.get_absolute_path(file)
1166 
1167 def push_log_context(functionname, object):
1168  r"""push_log_context(char const * functionname, void const * object)"""
1169  return _IMP_kernel.push_log_context(functionname, object)
1170 
1171 def pop_log_context():
1172  r"""pop_log_context()"""
1173  return _IMP_kernel.pop_log_context()
1174 
1175 def add_to_log(*args):
1176  r"""
1177  add_to_log(std::string to_write)
1178  add_to_log(IMP::LogLevel level, std::string to_write)
1179  """
1180  return _IMP_kernel.add_to_log(*args)
1181 
1182 def set_log_level(l):
1183  r"""set_log_level(IMP::LogLevel l)"""
1184  return _IMP_kernel.set_log_level(l)
1185 
1186 def set_log_timer(tb):
1187  r"""set_log_timer(bool tb)"""
1188  return _IMP_kernel.set_log_timer(tb)
1189 
1190 def reset_log_timer():
1191  r"""reset_log_timer()"""
1192  return _IMP_kernel.reset_log_timer()
1193 
1194 def get_log_level():
1195  r"""get_log_level() -> IMP::LogLevel"""
1196  return _IMP_kernel.get_log_level()
1197 
1198 def set_progress_display(description, steps):
1199  r"""set_progress_display(std::string description, unsigned int steps)"""
1200  return _IMP_kernel.set_progress_display(description, steps)
1201 
1202 def add_to_progress_display(step=1):
1203  r"""add_to_progress_display(unsigned int step=1)"""
1204  return _IMP_kernel.add_to_progress_display(step)
1205 class Object(_NonCopyable):
1206  r"""Proxy of C++ IMP::Object class."""
1207 
1208  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1209 
1210  def __init__(self, name):
1211  r"""__init__(Object self, std::string name) -> Object"""
1212  if self.__class__ == Object:
1213  _self = None
1214  else:
1215  _self = self
1216  _IMP_kernel.Object_swiginit(self, _IMP_kernel.new_Object(_self, name))
1217 
1218  if self.__class__ != Object:
1219  _director_objects.register(self)
1220 
1221 
1222 
1223  __swig_destroy__ = _IMP_kernel.delete_Object
1224 
1225  def __hash__(self):
1226  r"""__hash__(Object self) -> std::size_t"""
1227  return _IMP_kernel.Object___hash__(self)
1228 
1229  def set_log_level(self, l):
1230  r"""set_log_level(Object self, IMP::LogLevel l)"""
1231  return _IMP_kernel.Object_set_log_level(self, l)
1232 
1233  def set_check_level(self, l):
1234  r"""set_check_level(Object self, IMP::CheckLevel l)"""
1235  return _IMP_kernel.Object_set_check_level(self, l)
1236 
1237  def get_log_level(self):
1238  r"""get_log_level(Object self) -> IMP::LogLevel"""
1239  return _IMP_kernel.Object_get_log_level(self)
1240 
1241  def get_check_level(self):
1242  r"""get_check_level(Object self) -> IMP::CheckLevel"""
1243  return _IMP_kernel.Object_get_check_level(self)
1244 
1245  def get_version_info(self):
1246  r"""get_version_info(Object self) -> VersionInfo"""
1247  val = _IMP_kernel.Object_get_version_info(self)
1248  if val.get_module() == 'none':
1249  val = VersionInfo(
1250  self.__module__,
1251  __import__(self.__module__).get_module_version())
1252  return val
1253 
1254  def get_name(self):
1255  r"""get_name(Object self) -> std::string const &"""
1256  return _IMP_kernel.Object_get_name(self)
1257 
1258  def set_name(self, name):
1259  r"""set_name(Object self, std::string name)"""
1260  return _IMP_kernel.Object_set_name(self, name)
1261 
1262  def get_type_name(self):
1263  r"""get_type_name(Object self) -> std::string"""
1264  val = _IMP_kernel.Object_get_type_name(self)
1265  if val == 'unknown object type':
1266  val = self.__class__.__name__
1267  return val
1268 
1269  def set_was_used(self, tf):
1270  r"""set_was_used(Object self, bool tf)"""
1271  return _IMP_kernel.Object_set_was_used(self, tf)
1272 
1273  def show(self, *args):
1274  r"""show(Object self, _ostream out=std::cout)"""
1275  return _IMP_kernel.Object_show(self, *args)
1276 
1277  def get_string(self):
1278  r"""get_string(Object self) -> std::string"""
1279  return _IMP_kernel.Object_get_string(self)
1280 
1281  def _on_destruction(self):
1282  r"""_on_destruction(Object self)"""
1283  return _IMP_kernel.Object__on_destruction(self)
1284 
1285  def get_is_valid(self):
1286  r"""get_is_valid(Object self) -> bool"""
1287  return _IMP_kernel.Object_get_is_valid(self)
1288 
1289  def get_ref_count(self):
1290  r"""get_ref_count(Object self) -> unsigned int"""
1291  return _IMP_kernel.Object_get_ref_count(self)
1292 
1293  @staticmethod
1294  def get_number_of_live_objects():
1295  r"""get_number_of_live_objects() -> unsigned int"""
1296  return _IMP_kernel.Object_get_number_of_live_objects()
1297 
1298  def get_is_shared(self):
1299  r"""get_is_shared(Object self) -> bool"""
1300  return _IMP_kernel.Object_get_is_shared(self)
1301 
1302  def clear_caches(self):
1303  r"""clear_caches(Object self)"""
1304  return _IMP_kernel.Object_clear_caches(self)
1305 
1306  def do_destroy(self):
1307  r"""do_destroy(Object self)"""
1308  return _IMP_kernel.Object_do_destroy(self)
1309 
1310  def __getstate__(self):
1311  raise NotImplementedError(str(self.__class__)
1312  + " does not support serialization")
1313 
1314 
1315  def __eq__(self, o):
1316  r"""__eq__(Object self, Object o) -> bool"""
1317  return _IMP_kernel.Object___eq__(self, o)
1318 
1319  def __ne__(self, o):
1320  r"""__ne__(Object self, Object o) -> bool"""
1321  return _IMP_kernel.Object___ne__(self, o)
1322 
1323  def __le__(self, o):
1324  r"""__le__(Object self, Object o) -> bool"""
1325  return _IMP_kernel.Object___le__(self, o)
1326 
1327  def __lt__(self, o):
1328  r"""__lt__(Object self, Object o) -> bool"""
1329  return _IMP_kernel.Object___lt__(self, o)
1330 
1331  def __ge__(self, o):
1332  r"""__ge__(Object self, Object o) -> bool"""
1333  return _IMP_kernel.Object___ge__(self, o)
1334 
1335  def __gt__(self, o):
1336  r"""__gt__(Object self, Object o) -> bool"""
1337  return _IMP_kernel.Object___gt__(self, o)
1338 
1339  def _get_director_object(self):
1340  r"""_get_director_object(Object self) -> PyObject *"""
1341  return _IMP_kernel.Object__get_director_object(self)
1342 
1344  """Return this object cast to the most derived subclass."""
1345  # If this is a SWIG director, return the original Python object
1346  pyobj = self._get_director_object()
1347  if pyobj is not None:
1348  return pyobj
1349  # Otherwise, use the object's module and type name to look up
1350  # the corresponding most-derived Python type
1351  modname = self.get_version_info().get_module().replace('::', '.')
1352  type_name = self.get_type_name()
1353  if (modname == 'IMP.core'
1354  and type_name == 'GenericBoundingBox3DSingletonScore'):
1355  type_name = 'BoundingBox3DSingletonScore'
1356  elif (modname == 'IMP.core'
1357  and type_name == 'GenericAttributeSingletonScore'):
1358  type_name = 'AttributeSingletonScore'
1359  elif (modname == 'IMP.core'
1360  and type_name == 'GenericBoundingSphere3DSingletonScore'):
1361  type_name = 'BoundingSphere3DSingletonScore'
1362  elif modname == 'IMP' and type_name == 'RestraintScoringFunction':
1363  # The implicit RestraintScoringFunction isn't exposed to Python,
1364  # so just return the base class
1365  return self
1366  elif modname == 'IMP' and type_name == 'GenericRestraintsScoringFunction':
1367  # Just use the base class for the common single-restraint case
1368  if self.get_single_restraint():
1369  return self
1370  else:
1371  type_name = '_RestraintsScoringFunction'
1372  modobj = sys.modules[modname]
1373  clsobj = getattr(modobj, type_name)
1374  return clsobj.get_from(self)
1375 
1376 
1377  def __str__(self):
1378  r"""__str__(Object self) -> std::string"""
1379  return _IMP_kernel.Object___str__(self)
1380 
1381  def __repr__(self):
1382  r"""__repr__(Object self) -> std::string"""
1383  return _IMP_kernel.Object___repr__(self)
1384 
1385  @staticmethod
1386  def get_from(o):
1387  return _object_cast_to_Object(o)
1388 
1389  def __disown__(self):
1390  self.this.disown()
1391  _IMP_kernel.disown_Object(self)
1392  return weakref.proxy(self)
1393 
1394 # Register Object in _IMP_kernel:
1395 _IMP_kernel.Object_swigregister(Object)
1396 class SetLogState(_RAII):
1397  r"""Proxy of C++ IMP::SetLogState class."""
1398 
1399  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1400 
1401  def reset(self):
1402  r"""reset(SetLogState self)"""
1403  return _IMP_kernel.SetLogState_reset(self)
1404  __swig_destroy__ = _IMP_kernel.delete_SetLogState
1405 
1406  def show(self, *args):
1407  r"""show(SetLogState self, _ostream out=std::cout)"""
1408  return _IMP_kernel.SetLogState_show(self, *args)
1409 
1410  def __init__(self, *args):
1411  r"""
1412  __init__(SetLogState self) -> SetLogState
1413  __init__(SetLogState self, Object o, IMP::LogLevel l) -> SetLogState
1414  __init__(SetLogState self, IMP::LogLevel l) -> SetLogState
1415  """
1416  _IMP_kernel.SetLogState_swiginit(self, _IMP_kernel.new_SetLogState(*args))
1417 
1418  def set(self, *args):
1419  r"""
1420  set(SetLogState self, Object o, IMP::LogLevel l)
1421  set(SetLogState self, IMP::LogLevel l)
1422  """
1423  return _IMP_kernel.SetLogState_set(self, *args)
1424 
1425  def __enter__(self):
1426  return self
1427  def __exit__(self, exc_type, exc_val, exc_tb):
1428  self.reset()
1429  return False
1430 
1431 
1432  def __str__(self):
1433  r"""__str__(SetLogState self) -> std::string"""
1434  return _IMP_kernel.SetLogState___str__(self)
1435 
1436  def __repr__(self):
1437  r"""__repr__(SetLogState self) -> std::string"""
1438  return _IMP_kernel.SetLogState___repr__(self)
1439 
1440 # Register SetLogState in _IMP_kernel:
1441 _IMP_kernel.SetLogState_swigregister(SetLogState)
1442 class WarningContext(object):
1443  r"""Proxy of C++ IMP::WarningContext class."""
1444 
1445  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1446  data_ = property(_IMP_kernel.WarningContext_data__get, _IMP_kernel.WarningContext_data__set, doc=r"""data_ : boost::unordered_set<(std::string)>""")
1447 
1448  def add_warning(self, key, warning):
1449  r"""add_warning(WarningContext self, std::string key, std::string warning)"""
1450  return _IMP_kernel.WarningContext_add_warning(self, key, warning)
1451 
1452  def clear_warnings(self):
1453  r"""clear_warnings(WarningContext self)"""
1454  return _IMP_kernel.WarningContext_clear_warnings(self)
1455 
1456  def dump_warnings(self):
1457  r"""dump_warnings(WarningContext self)"""
1458  return _IMP_kernel.WarningContext_dump_warnings(self)
1459  __swig_destroy__ = _IMP_kernel.delete_WarningContext
1460 
1461  def show(self, *args):
1462  r"""show(WarningContext self, _ostream out=std::cout)"""
1463  return _IMP_kernel.WarningContext_show(self, *args)
1464 
1465  def __enter__(self):
1466  return self
1467  def __exit__(self, exc_type, exc_val, exc_tb):
1468  self.reset()
1469  return False
1470 
1471 
1472  def __str__(self):
1473  r"""__str__(WarningContext self) -> std::string"""
1474  return _IMP_kernel.WarningContext___str__(self)
1475 
1476  def __repr__(self):
1477  r"""__repr__(WarningContext self) -> std::string"""
1478  return _IMP_kernel.WarningContext___repr__(self)
1479 
1480  def __init__(self):
1481  r"""__init__(WarningContext self) -> WarningContext"""
1482  _IMP_kernel.WarningContext_swiginit(self, _IMP_kernel.new_WarningContext())
1483 
1484 # Register WarningContext in _IMP_kernel:
1485 _IMP_kernel.WarningContext_swigregister(WarningContext)
1486 class CreateLogContext(_RAII):
1487  r"""Proxy of C++ IMP::CreateLogContext class."""
1488 
1489  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1490 
1491  def __init__(self, *args):
1492  r"""
1493  __init__(CreateLogContext self, std::string fname, Object object=None) -> CreateLogContext
1494  __init__(CreateLogContext self) -> CreateLogContext
1495  __init__(CreateLogContext self, char const * fname, Object object=None) -> CreateLogContext
1496  """
1497  _IMP_kernel.CreateLogContext_swiginit(self, _IMP_kernel.new_CreateLogContext(*args))
1498 
1499  def set(self, fname, object=None):
1500  r"""set(CreateLogContext self, char const * fname, Object object=None)"""
1501  return _IMP_kernel.CreateLogContext_set(self, fname, object)
1502 
1503  def reset(self):
1504  r"""reset(CreateLogContext self)"""
1505  return _IMP_kernel.CreateLogContext_reset(self)
1506  __swig_destroy__ = _IMP_kernel.delete_CreateLogContext
1507 
1508  def show(self, *args):
1509  r"""show(CreateLogContext self, _ostream out=std::cout)"""
1510  return _IMP_kernel.CreateLogContext_show(self, *args)
1511 
1512  def __enter__(self):
1513  return self
1514  def __exit__(self, exc_type, exc_val, exc_tb):
1515  self.reset()
1516  return False
1517 
1518 
1519  def __str__(self):
1520  r"""__str__(CreateLogContext self) -> std::string"""
1521  return _IMP_kernel.CreateLogContext___str__(self)
1522 
1523  def __repr__(self):
1524  r"""__repr__(CreateLogContext self) -> std::string"""
1525  return _IMP_kernel.CreateLogContext___repr__(self)
1526 
1527 # Register CreateLogContext in _IMP_kernel:
1528 _IMP_kernel.CreateLogContext_swigregister(CreateLogContext)
1529 class SetCheckState(_RAII):
1530  r"""Proxy of C++ IMP::SetCheckState class."""
1531 
1532  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1533 
1534  def reset(self):
1535  r"""reset(SetCheckState self)"""
1536  return _IMP_kernel.SetCheckState_reset(self)
1537  __swig_destroy__ = _IMP_kernel.delete_SetCheckState
1538 
1539  def show(self, *args):
1540  r"""show(SetCheckState self, _ostream out=std::cout)"""
1541  return _IMP_kernel.SetCheckState_show(self, *args)
1542 
1543  def __init__(self, *args):
1544  r"""
1545  __init__(SetCheckState self) -> SetCheckState
1546  __init__(SetCheckState self, Object o, IMP::CheckLevel l) -> SetCheckState
1547  __init__(SetCheckState self, IMP::CheckLevel l) -> SetCheckState
1548  """
1549  _IMP_kernel.SetCheckState_swiginit(self, _IMP_kernel.new_SetCheckState(*args))
1550 
1551  def set(self, *args):
1552  r"""
1553  set(SetCheckState self, Object o, IMP::CheckLevel l)
1554  set(SetCheckState self, IMP::CheckLevel l)
1555  """
1556  return _IMP_kernel.SetCheckState_set(self, *args)
1557 
1558  def __enter__(self):
1559  return self
1560  def __exit__(self, exc_type, exc_val, exc_tb):
1561  self.reset()
1562  return False
1563 
1564 
1565  def __str__(self):
1566  r"""__str__(SetCheckState self) -> std::string"""
1567  return _IMP_kernel.SetCheckState___str__(self)
1568 
1569  def __repr__(self):
1570  r"""__repr__(SetCheckState self) -> std::string"""
1571  return _IMP_kernel.SetCheckState___repr__(self)
1572 
1573 # Register SetCheckState in _IMP_kernel:
1574 _IMP_kernel.SetCheckState_swigregister(SetCheckState)
1575 
1576 def get_unique_name(templ):
1577  r"""get_unique_name(std::string templ) -> std::string"""
1578  return _IMP_kernel.get_unique_name(templ)
1579 
1580 def get_copyright():
1581  r"""get_copyright() -> std::string"""
1582  return _IMP_kernel.get_copyright()
1583 class _Protection(object):
1584  r"""Proxy of C++ IMP::internal::_Protection class."""
1585 
1586  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1587 
1588  def __init__(self, *args, **kwargs):
1589  raise AttributeError("No constructor defined")
1590 
1591  def show(self, *args):
1592  r"""show(_Protection self, _ostream out=std::cout)"""
1593  return _IMP_kernel._Protection_show(self, *args)
1594 
1595  def __str__(self):
1596  r"""__str__(_Protection self) -> std::string"""
1597  return _IMP_kernel._Protection___str__(self)
1598 
1599  def __repr__(self):
1600  r"""__repr__(_Protection self) -> std::string"""
1601  return _IMP_kernel._Protection___repr__(self)
1602  __swig_destroy__ = _IMP_kernel.delete__Protection
1603 
1604 # Register _Protection in _IMP_kernel:
1605 _IMP_kernel._Protection_swigregister(_Protection)
1606 
1607 def _test_log():
1608  r"""_test_log()"""
1609  return _IMP_kernel._test_log()
1610 
1611 def _test_intranges(ips):
1612  r"""_test_intranges(IMP::IntRanges const & ips) -> int"""
1613  return _IMP_kernel._test_intranges(ips)
1614 
1615 def _test_intrange(*args):
1616  r"""
1617  _test_intrange(IMP::IntRange const & ips) -> IMP::IntRange
1618  _test_intrange() -> IMP::IntRange
1619  """
1620  return _IMP_kernel._test_intrange(*args)
1621 
1622 def _test_ifile(a):
1623  r"""_test_ifile(TextInput a) -> std::string"""
1624  return _IMP_kernel._test_ifile(a)
1625 
1626 def _test_ofile(a):
1627  r"""_test_ofile(TextOutput a) -> std::string"""
1628  return _IMP_kernel._test_ofile(a)
1629 
1630 def _test_ifile_overloaded(*args):
1631  r"""
1632  _test_ifile_overloaded(TextInput a, int i) -> std::string
1633  _test_ifile_overloaded(TextInput a, std::string st) -> std::string
1634  """
1635  return _IMP_kernel._test_ifile_overloaded(*args)
1636 
1637 def _test_ofile_overloaded(*args):
1638  r"""
1639  _test_ofile_overloaded(TextOutput a, int i) -> std::string
1640  _test_ofile_overloaded(TextOutput a, std::string st) -> std::string
1641  """
1642  return _IMP_kernel._test_ofile_overloaded(*args)
1643 class _TestValue(object):
1644  r"""Proxy of C++ IMP::internal::_TestValue class."""
1645 
1646  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1647 
1648  def __init__(self, i):
1649  r"""__init__(_TestValue self, int i) -> _TestValue"""
1650  _IMP_kernel._TestValue_swiginit(self, _IMP_kernel.new__TestValue(i))
1651 
1652  def show(self, *args):
1653  r"""show(_TestValue self, _ostream out=std::cout)"""
1654  return _IMP_kernel._TestValue_show(self, *args)
1655 
1656  def __eq__(self, o):
1657  r"""__eq__(_TestValue self, _TestValue o) -> bool"""
1658  return _IMP_kernel._TestValue___eq__(self, o)
1659 
1660  def __ne__(self, o):
1661  r"""__ne__(_TestValue self, _TestValue o) -> bool"""
1662  return _IMP_kernel._TestValue___ne__(self, o)
1663 
1664  def __lt__(self, o):
1665  r"""__lt__(_TestValue self, _TestValue o) -> bool"""
1666  return _IMP_kernel._TestValue___lt__(self, o)
1667 
1668  def __gt__(self, o):
1669  r"""__gt__(_TestValue self, _TestValue o) -> bool"""
1670  return _IMP_kernel._TestValue___gt__(self, o)
1671 
1672  def __ge__(self, o):
1673  r"""__ge__(_TestValue self, _TestValue o) -> bool"""
1674  return _IMP_kernel._TestValue___ge__(self, o)
1675 
1676  def __le__(self, o):
1677  r"""__le__(_TestValue self, _TestValue o) -> bool"""
1678  return _IMP_kernel._TestValue___le__(self, o)
1679 
1680  def get(self):
1681  r"""get(_TestValue self) -> int"""
1682  return _IMP_kernel._TestValue_get(self)
1683 
1684  def get_float(self):
1685  r"""get_float(_TestValue self) -> float const &"""
1686  return _IMP_kernel._TestValue_get_float(self)
1687 
1688  def get_double(self):
1689  r"""get_double(_TestValue self) -> double const &"""
1690  return _IMP_kernel._TestValue_get_double(self)
1691 
1692  def get_Float(self):
1693  r"""get_Float(_TestValue self) -> IMP::Float const &"""
1694  return _IMP_kernel._TestValue_get_Float(self)
1695 
1696  def get_int(self):
1697  r"""get_int(_TestValue self) -> int const &"""
1698  return _IMP_kernel._TestValue_get_int(self)
1699 
1700  def get_Int(self):
1701  r"""get_Int(_TestValue self) -> IMP::Int const &"""
1702  return _IMP_kernel._TestValue_get_Int(self)
1703 
1704  def get_string(self):
1705  r"""get_string(_TestValue self) -> std::string const &"""
1706  return _IMP_kernel._TestValue_get_string(self)
1707 
1708  def get_String(self):
1709  r"""get_String(_TestValue self) -> IMP::String const &"""
1710  return _IMP_kernel._TestValue_get_String(self)
1711 
1712  def __str__(self):
1713  r"""__str__(_TestValue self) -> std::string"""
1714  return _IMP_kernel._TestValue___str__(self)
1715 
1716  def __repr__(self):
1717  r"""__repr__(_TestValue self) -> std::string"""
1718  return _IMP_kernel._TestValue___repr__(self)
1719  __swig_destroy__ = _IMP_kernel.delete__TestValue
1720 
1721 # Register _TestValue in _IMP_kernel:
1722 _IMP_kernel._TestValue_swigregister(_TestValue)
1723 
1724 def _pass_plain_pair(p):
1725  r"""_pass_plain_pair(IMP::FloatPair p) -> IMP::FloatPair"""
1726  return _IMP_kernel._pass_plain_pair(p)
1727 
1728 def _pass_overloaded_strings(*args):
1729  r"""
1730  _pass_overloaded_strings(IMP::Strings const & a, int arg2) -> IMP::Strings
1731  _pass_overloaded_strings(IMP::Strings const & a) -> IMP::Strings
1732  """
1733  return _IMP_kernel._pass_overloaded_strings(*args)
1734 
1735 def _pass_pair(p):
1736  r"""_pass_pair(IMP::DerivativePair const & p) -> IMP::DerivativePair"""
1737  return _IMP_kernel._pass_pair(p)
1738 
1739 def _pass_floats(input):
1740  r"""_pass_floats(IMP::Floats const & input) -> IMP::Floats"""
1741  return _IMP_kernel._pass_floats(input)
1742 
1743 def _pass_ints(input):
1744  r"""_pass_ints(IMP::Ints input) -> IMP::Ints"""
1745  return _IMP_kernel._pass_ints(input)
1746 
1747 def _pass_ints_list(input):
1748  r"""_pass_ints_list(IMP::IntsList const & input) -> IMP::IntsList"""
1749  return _IMP_kernel._pass_ints_list(input)
1750 
1751 def _pass_ints_lists(input):
1752  r"""_pass_ints_lists(IMP::IntsLists const & input) -> IMP::IntsLists"""
1753  return _IMP_kernel._pass_ints_lists(input)
1754 
1755 def _pass_strings(input):
1756  r"""_pass_strings(IMP::Strings const & input) -> IMP::Strings const &"""
1757  return _IMP_kernel._pass_strings(input)
1758 class _TestObject(Object):
1759  r"""Proxy of C++ IMP::internal::_TestObject class."""
1760 
1761  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1762 
1763  def __init__(self):
1764  r"""__init__(_TestObject self) -> _TestObject"""
1765  _IMP_kernel._TestObject_swiginit(self, _IMP_kernel.new__TestObject())
1766 
1767  def get_version_info(self):
1768  r"""get_version_info(_TestObject self) -> VersionInfo"""
1769  return _IMP_kernel._TestObject_get_version_info(self)
1770  __swig_destroy__ = _IMP_kernel.delete__TestObject
1771 
1772  def __str__(self):
1773  r"""__str__(_TestObject self) -> std::string"""
1774  return _IMP_kernel._TestObject___str__(self)
1775 
1776  def __repr__(self):
1777  r"""__repr__(_TestObject self) -> std::string"""
1778  return _IMP_kernel._TestObject___repr__(self)
1779 
1780  @staticmethod
1781  def get_from(o):
1782  return _object_cast_to__TestObject(o)
1783 
1784 
1785 # Register _TestObject in _IMP_kernel:
1786 _IMP_kernel._TestObject_swigregister(_TestObject)
1787 
1788 def get_live_object_names():
1789  r"""get_live_object_names() -> IMP::Strings"""
1790  return _IMP_kernel.get_live_object_names()
1791 
1792 def get_live_objects():
1793  r"""get_live_objects() -> IMP::Objects"""
1794  return _IMP_kernel.get_live_objects()
1795 
1796 def set_show_leaked_objects(tf):
1797  r"""set_show_leaked_objects(bool tf)"""
1798  return _IMP_kernel.set_show_leaked_objects(tf)
1799 
1800 def set_deprecation_warnings(tf):
1801  r"""set_deprecation_warnings(bool tf)"""
1802  return _IMP_kernel.set_deprecation_warnings(tf)
1803 
1805  r"""set_deprecation_exceptions(bool tf)"""
1806  return _IMP_kernel.set_deprecation_exceptions(tf)
1807 
1809  r"""get_deprecation_exceptions() -> bool"""
1810  return _IMP_kernel.get_deprecation_exceptions()
1811 
1812 def handle_use_deprecated(message):
1813  r"""handle_use_deprecated(std::string message)"""
1814  return _IMP_kernel.handle_use_deprecated(message)
1815 
1816 def get_number_of_threads():
1817  r"""get_number_of_threads() -> unsigned int"""
1818  return _IMP_kernel.get_number_of_threads()
1819 
1820 def set_number_of_threads(n):
1821  r"""set_number_of_threads(unsigned int n)"""
1822  return _IMP_kernel.set_number_of_threads(n)
1823 class SetNumberOfThreads(_RAII):
1824  r"""Proxy of C++ IMP::SetNumberOfThreads class."""
1825 
1826  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1827 
1828  def __init__(self, *args):
1829  r"""
1830  __init__(SetNumberOfThreads self) -> SetNumberOfThreads
1831  __init__(SetNumberOfThreads self, unsigned int n) -> SetNumberOfThreads
1832  """
1833  _IMP_kernel.SetNumberOfThreads_swiginit(self, _IMP_kernel.new_SetNumberOfThreads(*args))
1834 
1835  def set(self, n):
1836  r"""set(SetNumberOfThreads self, unsigned int n)"""
1837  return _IMP_kernel.SetNumberOfThreads_set(self, n)
1838 
1839  def reset(self):
1840  r"""reset(SetNumberOfThreads self)"""
1841  return _IMP_kernel.SetNumberOfThreads_reset(self)
1842  __swig_destroy__ = _IMP_kernel.delete_SetNumberOfThreads
1843 
1844  def show(self, *args):
1845  r"""show(SetNumberOfThreads self, _ostream out=std::cout)"""
1846  return _IMP_kernel.SetNumberOfThreads_show(self, *args)
1847 
1848  def __enter__(self):
1849  return self
1850  def __exit__(self, exc_type, exc_val, exc_tb):
1851  self.reset()
1852  return False
1853 
1854 
1855  def __str__(self):
1856  r"""__str__(SetNumberOfThreads self) -> std::string"""
1857  return _IMP_kernel.SetNumberOfThreads___str__(self)
1858 
1859  def __repr__(self):
1860  r"""__repr__(SetNumberOfThreads self) -> std::string"""
1861  return _IMP_kernel.SetNumberOfThreads___repr__(self)
1862 
1863 # Register SetNumberOfThreads in _IMP_kernel:
1864 _IMP_kernel.SetNumberOfThreads_swigregister(SetNumberOfThreads)
1865 
1866 import os
1867 i_m_p="IMP_MODULE_PATH"
1868 if i_m_p in os.environ.keys():
1869  __path__.insert(0, os.environ[i_m_p])
1870 
1871 def _forward_add_attribute(self, name, value, opt=None):
1872  if opt is not None:
1873  self.get_particle().add_attribute(name, value, opt)
1874  else:
1875  self.get_particle().add_attribute(name, value)
1876 def _forward_get_value(self, name):
1877  self.get_particle().get_value(name)
1878 def _forward_set_value(self, name, value):
1879  self.get_particle().set_value(name, value)
1880 
1881 
1882 build="release"
1883 
1884 
1885 _object_types.append("Constraint")
1886 
1887 
1888 def _object_cast_to_Constraint(o):
1889  r"""_object_cast_to_Constraint(Object o) -> Constraint"""
1890  return _IMP_kernel._object_cast_to_Constraint(o)
1891 
1892 _object_types.append("Undecorator")
1893 
1894 
1895 def _object_cast_to_Undecorator(o):
1896  r"""_object_cast_to_Undecorator(Object o) -> Undecorator"""
1897  return _IMP_kernel._object_cast_to_Undecorator(o)
1898 
1899 _object_types.append("Container")
1900 
1901 
1902 def _object_cast_to_Container(o):
1903  r"""_object_cast_to_Container(Object o) -> Container"""
1904  return _IMP_kernel._object_cast_to_Container(o)
1905 
1906 _object_types.append("Optimizer")
1907 
1908 
1909 def _object_cast_to_Optimizer(o):
1910  r"""_object_cast_to_Optimizer(Object o) -> Optimizer"""
1911  return _IMP_kernel._object_cast_to_Optimizer(o)
1912 
1913 _object_types.append("AttributeOptimizer")
1914 
1915 
1916 def _object_cast_to_AttributeOptimizer(o):
1917  r"""_object_cast_to_AttributeOptimizer(Object o) -> AttributeOptimizer"""
1918  return _IMP_kernel._object_cast_to_AttributeOptimizer(o)
1919 
1920 _object_types.append("OptimizerState")
1921 
1922 
1923 def _object_cast_to_OptimizerState(o):
1924  r"""_object_cast_to_OptimizerState(Object o) -> OptimizerState"""
1925  return _IMP_kernel._object_cast_to_OptimizerState(o)
1926 
1927 _object_types.append("PairContainer")
1928 
1929 
1930 def _object_cast_to_PairContainer(o):
1931  r"""_object_cast_to_PairContainer(Object o) -> PairContainer"""
1932  return _IMP_kernel._object_cast_to_PairContainer(o)
1933 
1934 _object_types.append("PairModifier")
1935 
1936 
1937 def _object_cast_to_PairModifier(o):
1938  r"""_object_cast_to_PairModifier(Object o) -> PairModifier"""
1939  return _IMP_kernel._object_cast_to_PairModifier(o)
1940 
1941 _object_types.append("PairScore")
1942 
1943 
1944 def _object_cast_to_PairScore(o):
1945  r"""_object_cast_to_PairScore(Object o) -> PairScore"""
1946  return _IMP_kernel._object_cast_to_PairScore(o)
1947 
1948 _object_types.append("QuadContainer")
1949 
1950 
1951 def _object_cast_to_QuadContainer(o):
1952  r"""_object_cast_to_QuadContainer(Object o) -> QuadContainer"""
1953  return _IMP_kernel._object_cast_to_QuadContainer(o)
1954 
1955 _object_types.append("QuadModifier")
1956 
1957 
1958 def _object_cast_to_QuadModifier(o):
1959  r"""_object_cast_to_QuadModifier(Object o) -> QuadModifier"""
1960  return _IMP_kernel._object_cast_to_QuadModifier(o)
1961 
1962 _object_types.append("QuadScore")
1963 
1964 
1965 def _object_cast_to_QuadScore(o):
1966  r"""_object_cast_to_QuadScore(Object o) -> QuadScore"""
1967  return _IMP_kernel._object_cast_to_QuadScore(o)
1968 
1969 _object_types.append("Refiner")
1970 
1971 
1972 def _object_cast_to_Refiner(o):
1973  r"""_object_cast_to_Refiner(Object o) -> Refiner"""
1974  return _IMP_kernel._object_cast_to_Refiner(o)
1975 
1976 _object_types.append("Restraint")
1977 
1978 
1979 def _object_cast_to_Restraint(o):
1980  r"""_object_cast_to_Restraint(Object o) -> Restraint"""
1981  return _IMP_kernel._object_cast_to_Restraint(o)
1982 
1983 _object_types.append("Sampler")
1984 
1985 
1986 def _object_cast_to_Sampler(o):
1987  r"""_object_cast_to_Sampler(Object o) -> Sampler"""
1988  return _IMP_kernel._object_cast_to_Sampler(o)
1989 
1990 _object_types.append("ScoreState")
1991 
1992 
1993 def _object_cast_to_ScoreState(o):
1994  r"""_object_cast_to_ScoreState(Object o) -> ScoreState"""
1995  return _IMP_kernel._object_cast_to_ScoreState(o)
1996 
1997 _object_types.append("SingletonContainer")
1998 
1999 
2000 def _object_cast_to_SingletonContainer(o):
2001  r"""_object_cast_to_SingletonContainer(Object o) -> SingletonContainer"""
2002  return _IMP_kernel._object_cast_to_SingletonContainer(o)
2003 
2004 _object_types.append("SingletonModifier")
2005 
2006 
2007 def _object_cast_to_SingletonModifier(o):
2008  r"""_object_cast_to_SingletonModifier(Object o) -> SingletonModifier"""
2009  return _IMP_kernel._object_cast_to_SingletonModifier(o)
2010 
2011 _object_types.append("SingletonScore")
2012 
2013 
2014 def _object_cast_to_SingletonScore(o):
2015  r"""_object_cast_to_SingletonScore(Object o) -> SingletonScore"""
2016  return _IMP_kernel._object_cast_to_SingletonScore(o)
2017 
2018 _object_types.append("TripletContainer")
2019 
2020 
2021 def _object_cast_to_TripletContainer(o):
2022  r"""_object_cast_to_TripletContainer(Object o) -> TripletContainer"""
2023  return _IMP_kernel._object_cast_to_TripletContainer(o)
2024 
2025 _object_types.append("TripletModifier")
2026 
2027 
2028 def _object_cast_to_TripletModifier(o):
2029  r"""_object_cast_to_TripletModifier(Object o) -> TripletModifier"""
2030  return _IMP_kernel._object_cast_to_TripletModifier(o)
2031 
2032 _object_types.append("TripletScore")
2033 
2034 
2035 def _object_cast_to_TripletScore(o):
2036  r"""_object_cast_to_TripletScore(Object o) -> TripletScore"""
2037  return _IMP_kernel._object_cast_to_TripletScore(o)
2038 
2039 _object_types.append("UnaryFunction")
2040 
2041 
2042 def _object_cast_to_UnaryFunction(o):
2043  r"""_object_cast_to_UnaryFunction(Object o) -> UnaryFunction"""
2044  return _IMP_kernel._object_cast_to_UnaryFunction(o)
2045 
2046 _object_types.append("RestraintInfo")
2047 
2048 
2049 def _object_cast_to_RestraintInfo(o):
2050  r"""_object_cast_to_RestraintInfo(Object o) -> RestraintInfo"""
2051  return _IMP_kernel._object_cast_to_RestraintInfo(o)
2052 
2053 _object_types.append("ConfigurationSet")
2054 
2055 
2056 def _object_cast_to_ConfigurationSet(o):
2057  r"""_object_cast_to_ConfigurationSet(Object o) -> ConfigurationSet"""
2058  return _IMP_kernel._object_cast_to_ConfigurationSet(o)
2059 
2060 _object_types.append("Configuration")
2061 
2062 
2063 def _object_cast_to_Configuration(o):
2064  r"""_object_cast_to_Configuration(Object o) -> Configuration"""
2065  return _IMP_kernel._object_cast_to_Configuration(o)
2066 
2067 _object_types.append("Model")
2068 
2069 
2070 def _object_cast_to_Model(o):
2071  r"""_object_cast_to_Model(Object o) -> Model"""
2072  return _IMP_kernel._object_cast_to_Model(o)
2073 
2074 _object_types.append("Particle")
2075 
2076 
2077 def _object_cast_to_Particle(o):
2078  r"""_object_cast_to_Particle(Object o) -> Particle"""
2079  return _IMP_kernel._object_cast_to_Particle(o)
2080 
2081 _object_types.append("RestraintSet")
2082 
2083 
2084 def _object_cast_to_RestraintSet(o):
2085  r"""_object_cast_to_RestraintSet(Object o) -> RestraintSet"""
2086  return _IMP_kernel._object_cast_to_RestraintSet(o)
2087 
2088 ParticlePairsTemp=list
2089 _plural_types.append("ParticlePairsTemp")
2090 _value_types.append("ParticlePair")
2091 
2092 
2093 ParticleTripletsTemp=list
2094 _plural_types.append("ParticleTripletsTemp")
2095 _value_types.append("ParticleTriplet")
2096 
2097 
2098 ParticleQuadsTemp=list
2099 _plural_types.append("ParticleQuadsTemp")
2100 _value_types.append("ParticleQuad")
2101 
2102 
2103 ParticleIndexPairs=list
2104 _plural_types.append("ParticleIndexPairs")
2105 _value_types.append("ParticleIndexPair")
2106 
2107 
2108 ParticleIndexTriplets=list
2109 _plural_types.append("ParticleIndexTriplets")
2110 _value_types.append("ParticleIndexTriplet")
2111 
2112 
2113 ParticleIndexQuads=list
2114 _plural_types.append("ParticleIndexQuads")
2115 _value_types.append("ParticleIndexQuad")
2116 
2117 
2118 _object_types.append("SingletonPredicate")
2119 
2120 
2121 def _object_cast_to_SingletonPredicate(o):
2122  r"""_object_cast_to_SingletonPredicate(Object o) -> SingletonPredicate"""
2123  return _IMP_kernel._object_cast_to_SingletonPredicate(o)
2124 
2125 _object_types.append("PairPredicate")
2126 
2127 
2128 def _object_cast_to_PairPredicate(o):
2129  r"""_object_cast_to_PairPredicate(Object o) -> PairPredicate"""
2130  return _IMP_kernel._object_cast_to_PairPredicate(o)
2131 
2132 _object_types.append("TripletPredicate")
2133 
2134 
2135 def _object_cast_to_TripletPredicate(o):
2136  r"""_object_cast_to_TripletPredicate(Object o) -> TripletPredicate"""
2137  return _IMP_kernel._object_cast_to_TripletPredicate(o)
2138 
2139 _object_types.append("QuadPredicate")
2140 
2141 
2142 def _object_cast_to_QuadPredicate(o):
2143  r"""_object_cast_to_QuadPredicate(Object o) -> QuadPredicate"""
2144  return _IMP_kernel._object_cast_to_QuadPredicate(o)
2145 
2146 _object_types.append("SaveToConfigurationSetOptimizerState")
2147 
2148 
2149 def _object_cast_to_SaveToConfigurationSetOptimizerState(o):
2150  r"""_object_cast_to_SaveToConfigurationSetOptimizerState(Object o) -> SaveToConfigurationSetOptimizerState"""
2151  return _IMP_kernel._object_cast_to_SaveToConfigurationSetOptimizerState(o)
2152 
2153 EvaluationStates=list
2154 _plural_types.append("EvaluationStates")
2155 _value_types.append("EvaluationState")
2156 
2157 
2158 ScoreAccumulators=list
2159 _plural_types.append("ScoreAccumulators")
2160 _value_types.append("ScoreAccumulator")
2161 
2162 
2163 ParticleIndexes=list
2164 _plural_types.append("ParticleIndexes")
2165 _value_types.append("ParticleIndex")
2166 
2167 
2168 FloatIndexes=list
2169 _plural_types.append("FloatIndexes")
2170 _value_types.append("FloatIndex")
2171 
2172 
2173 FloatKeys=list
2174 _plural_types.append("FloatKeys")
2175 _value_types.append("FloatKey")
2176 
2177 
2178 FloatsKeys=list
2179 _plural_types.append("FloatsKeys")
2180 _value_types.append("FloatsKey")
2181 
2182 
2183 IntKeys=list
2184 _plural_types.append("IntKeys")
2185 _value_types.append("IntKey")
2186 
2187 
2188 IntsKeys=list
2189 _plural_types.append("IntsKeys")
2190 _value_types.append("IntsKey")
2191 
2192 
2193 StringKeys=list
2194 _plural_types.append("StringKeys")
2195 _value_types.append("StringKey")
2196 
2197 
2198 ParticleIndexKeys=list
2199 _plural_types.append("ParticleIndexKeys")
2200 _value_types.append("ParticleIndexKey")
2201 
2202 
2203 ParticleIndexesKeys=list
2204 _plural_types.append("ParticleIndexesKeys")
2205 _value_types.append("ParticleIndexesKey")
2206 
2207 
2208 ObjectKeys=list
2209 _plural_types.append("ObjectKeys")
2210 _value_types.append("ObjectKey")
2211 
2212 
2213 ModelKeys=list
2214 _plural_types.append("ModelKeys")
2215 _value_types.append("ModelKey")
2216 
2217 
2218 TriggerKeys=list
2219 _plural_types.append("TriggerKeys")
2220 _value_types.append("TriggerKey")
2221 
2222 
2223 SparseFloatKeys=list
2224 _plural_types.append("SparseFloatKeys")
2225 _value_types.append("SparseFloatKey")
2226 
2227 
2228 SparseIntKeys=list
2229 _plural_types.append("SparseIntKeys")
2230 _value_types.append("SparseIntKey")
2231 
2232 
2233 SparseStringKeys=list
2234 _plural_types.append("SparseStringKeys")
2235 _value_types.append("SparseStringKey")
2236 
2237 
2238 SparseParticleIndexKeys=list
2239 _plural_types.append("SparseParticleIndexKeys")
2240 _value_types.append("SparseParticleIndexKey")
2241 
2242 
2243 Vector3DKeys=list
2244 _plural_types.append("Vector3DKeys")
2245 _value_types.append("Vector3DKey")
2246 
2247 
2248 Vector4DKeys=list
2249 _plural_types.append("Vector4DKeys")
2250 _value_types.append("Vector4DKey")
2251 
2252 
2253 Vector3DDerivKeys=list
2254 _plural_types.append("Vector3DDerivKeys")
2255 _value_types.append("Vector3DDerivKey")
2256 
2257 
2258 Vector4DDerivKeys=list
2259 _plural_types.append("Vector4DDerivKeys")
2260 _value_types.append("Vector4DDerivKey")
2261 
2262 
2263 _raii_types.append("ScopedSetFloatAttribute")
2264 
2265 
2266 _object_types.append("ScoringFunction")
2267 
2268 
2269 def _object_cast_to_ScoringFunction(o):
2270  r"""_object_cast_to_ScoringFunction(Object o) -> ScoringFunction"""
2271  return _IMP_kernel._object_cast_to_ScoringFunction(o)
2272 
2273 _object_types.append("ModelObject")
2274 
2275 
2276 def _object_cast_to_ModelObject(o):
2277  r"""_object_cast_to_ModelObject(Object o) -> ModelObject"""
2278  return _IMP_kernel._object_cast_to_ModelObject(o)
2279 
2280 _object_types.append("_RestraintsScoringFunction")
2281 
2282 
2283 def _object_cast_to__RestraintsScoringFunction(o):
2284  r"""_object_cast_to__RestraintsScoringFunction(Object o) -> _RestraintsScoringFunction"""
2285  return _IMP_kernel._object_cast_to__RestraintsScoringFunction(o)
2286 
2287 def _TrivialDecorators(l=[]):
2288  return [_TrivialDecorator(x) for x in l]
2289 _plural_types.append("_TrivialDecorators")
2290 
2291 
2292 _value_types.append("_TrivialDecorator")
2293 
2294 
2295 def _TrivialDerivedDecorators(l=[]):
2296  return [_TrivialDerivedDecorator(x) for x in l]
2297 _plural_types.append("_TrivialDerivedDecorators")
2298 
2299 
2300 _value_types.append("_TrivialDerivedDecorator")
2301 
2302 
2303 def _TrivialTraitsDecorators(l=[]):
2304  return [_TrivialTraitsDecorator(x) for x in l]
2305 _plural_types.append("_TrivialTraitsDecorators")
2306 
2307 
2308 _value_types.append("_TrivialTraitsDecorator")
2309 
2310 
2311 _object_types.append("_ConstRestraint")
2312 
2313 
2314 def _object_cast_to__ConstRestraint(o):
2315  r"""_object_cast_to__ConstRestraint(Object o) -> _ConstRestraint"""
2316  return _IMP_kernel._object_cast_to__ConstRestraint(o)
2317 
2318 _object_types.append("_ConstOptimizer")
2319 
2320 
2321 def _object_cast_to__ConstOptimizer(o):
2322  r"""_object_cast_to__ConstOptimizer(Object o) -> _ConstOptimizer"""
2323  return _IMP_kernel._object_cast_to__ConstOptimizer(o)
2324 
2325 _object_types.append("_ConstSingletonScore")
2326 
2327 
2328 def _object_cast_to__ConstSingletonScore(o):
2329  r"""_object_cast_to__ConstSingletonScore(Object o) -> _ConstSingletonScore"""
2330  return _IMP_kernel._object_cast_to__ConstSingletonScore(o)
2331 
2332 _object_types.append("_ConstPairScore")
2333 
2334 
2335 def _object_cast_to__ConstPairScore(o):
2336  r"""_object_cast_to__ConstPairScore(Object o) -> _ConstPairScore"""
2337  return _IMP_kernel._object_cast_to__ConstPairScore(o)
2338 class DependencyGraph(Object):
2339  r"""Proxy of C++ IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex > class."""
2340 
2341  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2342  __repr__ = _swig_repr
2343 
2344  def __init__(self):
2345  r"""__init__(DependencyGraph self) -> DependencyGraph"""
2346  _IMP_kernel.DependencyGraph_swiginit(self, _IMP_kernel.new_DependencyGraph())
2347 
2348  def get_graph(self):
2349  r"""get_graph(DependencyGraph self) -> IMP::DependencyGraph const &"""
2350  return _IMP_kernel.DependencyGraph_get_graph(self)
2351 
2352  def get_vertices(self):
2353  r"""get_vertices(DependencyGraph self) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
2354  return _IMP_kernel.DependencyGraph_get_vertices(self)
2355 
2356  def get_vertex_name(self, i):
2357  r"""get_vertex_name(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor i) -> ModelObject"""
2358  return _IMP_kernel.DependencyGraph_get_vertex_name(self, i)
2359 
2360  def get_in_neighbors(self, v):
2361  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"""
2362  return _IMP_kernel.DependencyGraph_get_in_neighbors(self, v)
2363 
2364  def get_out_neighbors(self, v):
2365  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"""
2366  return _IMP_kernel.DependencyGraph_get_out_neighbors(self, v)
2367 
2368  def show_graphviz(self, *args):
2369  r"""show_graphviz(DependencyGraph self, _ostream out=std::cout)"""
2370  return _IMP_kernel.DependencyGraph_show_graphviz(self, *args)
2371 
2372  def get_graphviz_string(self):
2373  r"""get_graphviz_string(DependencyGraph self) -> std::string"""
2374  return _IMP_kernel.DependencyGraph_get_graphviz_string(self)
2375 
2376  def add_edge(self, v0, v1):
2377  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)"""
2378  return _IMP_kernel.DependencyGraph_add_edge(self, v0, v1)
2379 
2380  def add_vertex(self, l):
2381  r"""add_vertex(DependencyGraph self, ModelObject l) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor"""
2382  return _IMP_kernel.DependencyGraph_add_vertex(self, l)
2383 
2384  def remove_vertex(self, l):
2385  r"""remove_vertex(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor l)"""
2386  return _IMP_kernel.DependencyGraph_remove_vertex(self, l)
2387  __swig_destroy__ = _IMP_kernel.delete_DependencyGraph
2388 
2389 # Register DependencyGraph in _IMP_kernel:
2390 _IMP_kernel.DependencyGraph_swigregister(DependencyGraph)
2391 
2392 _value_types.append("DependencyGraph")
2393 
2394 class FloatKey(_Value):
2395  r"""Proxy of C++ IMP::Key< 0 > class."""
2396 
2397  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2398 
2399  def __init__(self, *args):
2400  r"""
2401  __init__(FloatKey self) -> FloatKey
2402  __init__(FloatKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatKey
2403  __init__(FloatKey self, unsigned int i) -> FloatKey
2404  """
2405  _IMP_kernel.FloatKey_swiginit(self, _IMP_kernel.new_FloatKey(*args))
2406 
2407  @staticmethod
2408  def add_key(sc):
2409  r"""add_key(std::string const & sc) -> unsigned int"""
2410  return _IMP_kernel.FloatKey_add_key(sc)
2411 
2412  @staticmethod
2413  def get_existing_key(sc):
2414  r"""get_existing_key(std::string const & sc) -> FloatKey"""
2415  return _IMP_kernel.FloatKey_get_existing_key(sc)
2416 
2417  @staticmethod
2418  def get_key_exists(sc):
2419  r"""get_key_exists(std::string const & sc) -> bool"""
2420  return _IMP_kernel.FloatKey_get_key_exists(sc)
2421 
2422  def get_string(self):
2423  r"""get_string(FloatKey self) -> std::string const"""
2424  return _IMP_kernel.FloatKey_get_string(self)
2425 
2426  def __eq__(self, o):
2427  r"""__eq__(FloatKey self, FloatKey o) -> bool"""
2428  return _IMP_kernel.FloatKey___eq__(self, o)
2429 
2430  def __ne__(self, o):
2431  r"""__ne__(FloatKey self, FloatKey o) -> bool"""
2432  return _IMP_kernel.FloatKey___ne__(self, o)
2433 
2434  def __lt__(self, o):
2435  r"""__lt__(FloatKey self, FloatKey o) -> bool"""
2436  return _IMP_kernel.FloatKey___lt__(self, o)
2437 
2438  def __gt__(self, o):
2439  r"""__gt__(FloatKey self, FloatKey o) -> bool"""
2440  return _IMP_kernel.FloatKey___gt__(self, o)
2441 
2442  def __ge__(self, o):
2443  r"""__ge__(FloatKey self, FloatKey o) -> bool"""
2444  return _IMP_kernel.FloatKey___ge__(self, o)
2445 
2446  def __le__(self, o):
2447  r"""__le__(FloatKey self, FloatKey o) -> bool"""
2448  return _IMP_kernel.FloatKey___le__(self, o)
2449 
2450  def __hash__(self):
2451  r"""__hash__(FloatKey self) -> std::size_t"""
2452  return _IMP_kernel.FloatKey___hash__(self)
2453 
2454  def show(self, *args):
2455  r"""show(FloatKey self, _ostream out=std::cout)"""
2456  return _IMP_kernel.FloatKey_show(self, *args)
2457 
2458  @staticmethod
2459  def add_alias(old_key, new_name):
2460  r"""add_alias(FloatKey old_key, std::string new_name) -> FloatKey"""
2461  return _IMP_kernel.FloatKey_add_alias(old_key, new_name)
2462 
2463  @staticmethod
2464  def get_number_of_keys():
2465  r"""get_number_of_keys() -> unsigned int"""
2466  return _IMP_kernel.FloatKey_get_number_of_keys()
2467 
2468  def get_index(self):
2469  r"""get_index(FloatKey self) -> unsigned int"""
2470  return _IMP_kernel.FloatKey_get_index(self)
2471 
2472  @staticmethod
2473  def show_all(out):
2474  r"""show_all(_ostream out)"""
2475  return _IMP_kernel.FloatKey_show_all(out)
2476 
2477  @staticmethod
2478  def get_all_strings():
2479  r"""get_all_strings() -> IMP::Vector< std::string >"""
2480  return _IMP_kernel.FloatKey_get_all_strings()
2481 
2482  @staticmethod
2483  def get_number_unique():
2484  r"""get_number_unique() -> unsigned int"""
2485  return _IMP_kernel.FloatKey_get_number_unique()
2486 
2487  def __str__(self):
2488  r"""__str__(FloatKey self) -> std::string"""
2489  return _IMP_kernel.FloatKey___str__(self)
2490 
2491  def __repr__(self):
2492  r"""__repr__(FloatKey self) -> std::string"""
2493  return _IMP_kernel.FloatKey___repr__(self)
2494  __swig_destroy__ = _IMP_kernel.delete_FloatKey
2495 
2496 # Register FloatKey in _IMP_kernel:
2497 _IMP_kernel.FloatKey_swigregister(FloatKey)
2498 class IntKey(_Value):
2499  r"""Proxy of C++ IMP::Key< 1 > class."""
2500 
2501  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2502 
2503  def __init__(self, *args):
2504  r"""
2505  __init__(IntKey self) -> IntKey
2506  __init__(IntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntKey
2507  __init__(IntKey self, unsigned int i) -> IntKey
2508  """
2509  _IMP_kernel.IntKey_swiginit(self, _IMP_kernel.new_IntKey(*args))
2510 
2511  @staticmethod
2512  def add_key(sc):
2513  r"""add_key(std::string const & sc) -> unsigned int"""
2514  return _IMP_kernel.IntKey_add_key(sc)
2515 
2516  @staticmethod
2517  def get_existing_key(sc):
2518  r"""get_existing_key(std::string const & sc) -> IntKey"""
2519  return _IMP_kernel.IntKey_get_existing_key(sc)
2520 
2521  @staticmethod
2522  def get_key_exists(sc):
2523  r"""get_key_exists(std::string const & sc) -> bool"""
2524  return _IMP_kernel.IntKey_get_key_exists(sc)
2525 
2526  def get_string(self):
2527  r"""get_string(IntKey self) -> std::string const"""
2528  return _IMP_kernel.IntKey_get_string(self)
2529 
2530  def __eq__(self, o):
2531  r"""__eq__(IntKey self, IntKey o) -> bool"""
2532  return _IMP_kernel.IntKey___eq__(self, o)
2533 
2534  def __ne__(self, o):
2535  r"""__ne__(IntKey self, IntKey o) -> bool"""
2536  return _IMP_kernel.IntKey___ne__(self, o)
2537 
2538  def __lt__(self, o):
2539  r"""__lt__(IntKey self, IntKey o) -> bool"""
2540  return _IMP_kernel.IntKey___lt__(self, o)
2541 
2542  def __gt__(self, o):
2543  r"""__gt__(IntKey self, IntKey o) -> bool"""
2544  return _IMP_kernel.IntKey___gt__(self, o)
2545 
2546  def __ge__(self, o):
2547  r"""__ge__(IntKey self, IntKey o) -> bool"""
2548  return _IMP_kernel.IntKey___ge__(self, o)
2549 
2550  def __le__(self, o):
2551  r"""__le__(IntKey self, IntKey o) -> bool"""
2552  return _IMP_kernel.IntKey___le__(self, o)
2553 
2554  def __hash__(self):
2555  r"""__hash__(IntKey self) -> std::size_t"""
2556  return _IMP_kernel.IntKey___hash__(self)
2557 
2558  def show(self, *args):
2559  r"""show(IntKey self, _ostream out=std::cout)"""
2560  return _IMP_kernel.IntKey_show(self, *args)
2561 
2562  @staticmethod
2563  def add_alias(old_key, new_name):
2564  r"""add_alias(IntKey old_key, std::string new_name) -> IntKey"""
2565  return _IMP_kernel.IntKey_add_alias(old_key, new_name)
2566 
2567  @staticmethod
2568  def get_number_of_keys():
2569  r"""get_number_of_keys() -> unsigned int"""
2570  return _IMP_kernel.IntKey_get_number_of_keys()
2571 
2572  def get_index(self):
2573  r"""get_index(IntKey self) -> unsigned int"""
2574  return _IMP_kernel.IntKey_get_index(self)
2575 
2576  @staticmethod
2577  def show_all(out):
2578  r"""show_all(_ostream out)"""
2579  return _IMP_kernel.IntKey_show_all(out)
2580 
2581  @staticmethod
2582  def get_all_strings():
2583  r"""get_all_strings() -> IMP::Vector< std::string >"""
2584  return _IMP_kernel.IntKey_get_all_strings()
2585 
2586  @staticmethod
2587  def get_number_unique():
2588  r"""get_number_unique() -> unsigned int"""
2589  return _IMP_kernel.IntKey_get_number_unique()
2590 
2591  def __str__(self):
2592  r"""__str__(IntKey self) -> std::string"""
2593  return _IMP_kernel.IntKey___str__(self)
2594 
2595  def __repr__(self):
2596  r"""__repr__(IntKey self) -> std::string"""
2597  return _IMP_kernel.IntKey___repr__(self)
2598  __swig_destroy__ = _IMP_kernel.delete_IntKey
2599 
2600 # Register IntKey in _IMP_kernel:
2601 _IMP_kernel.IntKey_swigregister(IntKey)
2602 class StringKey(_Value):
2603  r"""Proxy of C++ IMP::Key< 2 > class."""
2604 
2605  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2606 
2607  def __init__(self, *args):
2608  r"""
2609  __init__(StringKey self) -> StringKey
2610  __init__(StringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> StringKey
2611  __init__(StringKey self, unsigned int i) -> StringKey
2612  """
2613  _IMP_kernel.StringKey_swiginit(self, _IMP_kernel.new_StringKey(*args))
2614 
2615  @staticmethod
2616  def add_key(sc):
2617  r"""add_key(std::string const & sc) -> unsigned int"""
2618  return _IMP_kernel.StringKey_add_key(sc)
2619 
2620  @staticmethod
2621  def get_existing_key(sc):
2622  r"""get_existing_key(std::string const & sc) -> StringKey"""
2623  return _IMP_kernel.StringKey_get_existing_key(sc)
2624 
2625  @staticmethod
2626  def get_key_exists(sc):
2627  r"""get_key_exists(std::string const & sc) -> bool"""
2628  return _IMP_kernel.StringKey_get_key_exists(sc)
2629 
2630  def get_string(self):
2631  r"""get_string(StringKey self) -> std::string const"""
2632  return _IMP_kernel.StringKey_get_string(self)
2633 
2634  def __eq__(self, o):
2635  r"""__eq__(StringKey self, StringKey o) -> bool"""
2636  return _IMP_kernel.StringKey___eq__(self, o)
2637 
2638  def __ne__(self, o):
2639  r"""__ne__(StringKey self, StringKey o) -> bool"""
2640  return _IMP_kernel.StringKey___ne__(self, o)
2641 
2642  def __lt__(self, o):
2643  r"""__lt__(StringKey self, StringKey o) -> bool"""
2644  return _IMP_kernel.StringKey___lt__(self, o)
2645 
2646  def __gt__(self, o):
2647  r"""__gt__(StringKey self, StringKey o) -> bool"""
2648  return _IMP_kernel.StringKey___gt__(self, o)
2649 
2650  def __ge__(self, o):
2651  r"""__ge__(StringKey self, StringKey o) -> bool"""
2652  return _IMP_kernel.StringKey___ge__(self, o)
2653 
2654  def __le__(self, o):
2655  r"""__le__(StringKey self, StringKey o) -> bool"""
2656  return _IMP_kernel.StringKey___le__(self, o)
2657 
2658  def __hash__(self):
2659  r"""__hash__(StringKey self) -> std::size_t"""
2660  return _IMP_kernel.StringKey___hash__(self)
2661 
2662  def show(self, *args):
2663  r"""show(StringKey self, _ostream out=std::cout)"""
2664  return _IMP_kernel.StringKey_show(self, *args)
2665 
2666  @staticmethod
2667  def add_alias(old_key, new_name):
2668  r"""add_alias(StringKey old_key, std::string new_name) -> StringKey"""
2669  return _IMP_kernel.StringKey_add_alias(old_key, new_name)
2670 
2671  @staticmethod
2672  def get_number_of_keys():
2673  r"""get_number_of_keys() -> unsigned int"""
2674  return _IMP_kernel.StringKey_get_number_of_keys()
2675 
2676  def get_index(self):
2677  r"""get_index(StringKey self) -> unsigned int"""
2678  return _IMP_kernel.StringKey_get_index(self)
2679 
2680  @staticmethod
2681  def show_all(out):
2682  r"""show_all(_ostream out)"""
2683  return _IMP_kernel.StringKey_show_all(out)
2684 
2685  @staticmethod
2686  def get_all_strings():
2687  r"""get_all_strings() -> IMP::Vector< std::string >"""
2688  return _IMP_kernel.StringKey_get_all_strings()
2689 
2690  @staticmethod
2691  def get_number_unique():
2692  r"""get_number_unique() -> unsigned int"""
2693  return _IMP_kernel.StringKey_get_number_unique()
2694 
2695  def __str__(self):
2696  r"""__str__(StringKey self) -> std::string"""
2697  return _IMP_kernel.StringKey___str__(self)
2698 
2699  def __repr__(self):
2700  r"""__repr__(StringKey self) -> std::string"""
2701  return _IMP_kernel.StringKey___repr__(self)
2702  __swig_destroy__ = _IMP_kernel.delete_StringKey
2703 
2704 # Register StringKey in _IMP_kernel:
2705 _IMP_kernel.StringKey_swigregister(StringKey)
2706 class ParticleIndexKey(_Value):
2707  r"""Proxy of C++ IMP::Key< 3 > class."""
2708 
2709  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2710 
2711  def __init__(self, *args):
2712  r"""
2713  __init__(ParticleIndexKey self) -> ParticleIndexKey
2714  __init__(ParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexKey
2715  __init__(ParticleIndexKey self, unsigned int i) -> ParticleIndexKey
2716  """
2717  _IMP_kernel.ParticleIndexKey_swiginit(self, _IMP_kernel.new_ParticleIndexKey(*args))
2718 
2719  @staticmethod
2720  def add_key(sc):
2721  r"""add_key(std::string const & sc) -> unsigned int"""
2722  return _IMP_kernel.ParticleIndexKey_add_key(sc)
2723 
2724  @staticmethod
2725  def get_existing_key(sc):
2726  r"""get_existing_key(std::string const & sc) -> ParticleIndexKey"""
2727  return _IMP_kernel.ParticleIndexKey_get_existing_key(sc)
2728 
2729  @staticmethod
2730  def get_key_exists(sc):
2731  r"""get_key_exists(std::string const & 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 __eq__(self, o):
2739  r"""__eq__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2740  return _IMP_kernel.ParticleIndexKey___eq__(self, o)
2741 
2742  def __ne__(self, o):
2743  r"""__ne__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2744  return _IMP_kernel.ParticleIndexKey___ne__(self, o)
2745 
2746  def __lt__(self, o):
2747  r"""__lt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2748  return _IMP_kernel.ParticleIndexKey___lt__(self, o)
2749 
2750  def __gt__(self, o):
2751  r"""__gt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2752  return _IMP_kernel.ParticleIndexKey___gt__(self, o)
2753 
2754  def __ge__(self, o):
2755  r"""__ge__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2756  return _IMP_kernel.ParticleIndexKey___ge__(self, o)
2757 
2758  def __le__(self, o):
2759  r"""__le__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2760  return _IMP_kernel.ParticleIndexKey___le__(self, o)
2761 
2762  def __hash__(self):
2763  r"""__hash__(ParticleIndexKey self) -> std::size_t"""
2764  return _IMP_kernel.ParticleIndexKey___hash__(self)
2765 
2766  def show(self, *args):
2767  r"""show(ParticleIndexKey self, _ostream out=std::cout)"""
2768  return _IMP_kernel.ParticleIndexKey_show(self, *args)
2769 
2770  @staticmethod
2771  def add_alias(old_key, new_name):
2772  r"""add_alias(ParticleIndexKey old_key, std::string new_name) -> ParticleIndexKey"""
2773  return _IMP_kernel.ParticleIndexKey_add_alias(old_key, new_name)
2774 
2775  @staticmethod
2776  def get_number_of_keys():
2777  r"""get_number_of_keys() -> unsigned int"""
2778  return _IMP_kernel.ParticleIndexKey_get_number_of_keys()
2779 
2780  def get_index(self):
2781  r"""get_index(ParticleIndexKey self) -> unsigned int"""
2782  return _IMP_kernel.ParticleIndexKey_get_index(self)
2783 
2784  @staticmethod
2785  def show_all(out):
2786  r"""show_all(_ostream out)"""
2787  return _IMP_kernel.ParticleIndexKey_show_all(out)
2788 
2789  @staticmethod
2790  def get_all_strings():
2791  r"""get_all_strings() -> IMP::Vector< std::string >"""
2792  return _IMP_kernel.ParticleIndexKey_get_all_strings()
2793 
2794  @staticmethod
2795  def get_number_unique():
2796  r"""get_number_unique() -> unsigned int"""
2797  return _IMP_kernel.ParticleIndexKey_get_number_unique()
2798 
2799  def __str__(self):
2800  r"""__str__(ParticleIndexKey self) -> std::string"""
2801  return _IMP_kernel.ParticleIndexKey___str__(self)
2802 
2803  def __repr__(self):
2804  r"""__repr__(ParticleIndexKey self) -> std::string"""
2805  return _IMP_kernel.ParticleIndexKey___repr__(self)
2806  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexKey
2807 
2808 # Register ParticleIndexKey in _IMP_kernel:
2809 _IMP_kernel.ParticleIndexKey_swigregister(ParticleIndexKey)
2810 class ObjectKey(_Value):
2811  r"""Proxy of C++ IMP::Key< 4 > class."""
2812 
2813  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2814 
2815  def __init__(self, *args):
2816  r"""
2817  __init__(ObjectKey self) -> ObjectKey
2818  __init__(ObjectKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ObjectKey
2819  __init__(ObjectKey self, unsigned int i) -> ObjectKey
2820  """
2821  _IMP_kernel.ObjectKey_swiginit(self, _IMP_kernel.new_ObjectKey(*args))
2822 
2823  @staticmethod
2824  def add_key(sc):
2825  r"""add_key(std::string const & sc) -> unsigned int"""
2826  return _IMP_kernel.ObjectKey_add_key(sc)
2827 
2828  @staticmethod
2829  def get_existing_key(sc):
2830  r"""get_existing_key(std::string const & sc) -> ObjectKey"""
2831  return _IMP_kernel.ObjectKey_get_existing_key(sc)
2832 
2833  @staticmethod
2834  def get_key_exists(sc):
2835  r"""get_key_exists(std::string const & sc) -> bool"""
2836  return _IMP_kernel.ObjectKey_get_key_exists(sc)
2837 
2838  def get_string(self):
2839  r"""get_string(ObjectKey self) -> std::string const"""
2840  return _IMP_kernel.ObjectKey_get_string(self)
2841 
2842  def __eq__(self, o):
2843  r"""__eq__(ObjectKey self, ObjectKey o) -> bool"""
2844  return _IMP_kernel.ObjectKey___eq__(self, o)
2845 
2846  def __ne__(self, o):
2847  r"""__ne__(ObjectKey self, ObjectKey o) -> bool"""
2848  return _IMP_kernel.ObjectKey___ne__(self, o)
2849 
2850  def __lt__(self, o):
2851  r"""__lt__(ObjectKey self, ObjectKey o) -> bool"""
2852  return _IMP_kernel.ObjectKey___lt__(self, o)
2853 
2854  def __gt__(self, o):
2855  r"""__gt__(ObjectKey self, ObjectKey o) -> bool"""
2856  return _IMP_kernel.ObjectKey___gt__(self, o)
2857 
2858  def __ge__(self, o):
2859  r"""__ge__(ObjectKey self, ObjectKey o) -> bool"""
2860  return _IMP_kernel.ObjectKey___ge__(self, o)
2861 
2862  def __le__(self, o):
2863  r"""__le__(ObjectKey self, ObjectKey o) -> bool"""
2864  return _IMP_kernel.ObjectKey___le__(self, o)
2865 
2866  def __hash__(self):
2867  r"""__hash__(ObjectKey self) -> std::size_t"""
2868  return _IMP_kernel.ObjectKey___hash__(self)
2869 
2870  def show(self, *args):
2871  r"""show(ObjectKey self, _ostream out=std::cout)"""
2872  return _IMP_kernel.ObjectKey_show(self, *args)
2873 
2874  @staticmethod
2875  def add_alias(old_key, new_name):
2876  r"""add_alias(ObjectKey old_key, std::string new_name) -> ObjectKey"""
2877  return _IMP_kernel.ObjectKey_add_alias(old_key, new_name)
2878 
2879  @staticmethod
2880  def get_number_of_keys():
2881  r"""get_number_of_keys() -> unsigned int"""
2882  return _IMP_kernel.ObjectKey_get_number_of_keys()
2883 
2884  def get_index(self):
2885  r"""get_index(ObjectKey self) -> unsigned int"""
2886  return _IMP_kernel.ObjectKey_get_index(self)
2887 
2888  @staticmethod
2889  def show_all(out):
2890  r"""show_all(_ostream out)"""
2891  return _IMP_kernel.ObjectKey_show_all(out)
2892 
2893  @staticmethod
2894  def get_all_strings():
2895  r"""get_all_strings() -> IMP::Vector< std::string >"""
2896  return _IMP_kernel.ObjectKey_get_all_strings()
2897 
2898  @staticmethod
2899  def get_number_unique():
2900  r"""get_number_unique() -> unsigned int"""
2901  return _IMP_kernel.ObjectKey_get_number_unique()
2902 
2903  def __str__(self):
2904  r"""__str__(ObjectKey self) -> std::string"""
2905  return _IMP_kernel.ObjectKey___str__(self)
2906 
2907  def __repr__(self):
2908  r"""__repr__(ObjectKey self) -> std::string"""
2909  return _IMP_kernel.ObjectKey___repr__(self)
2910  __swig_destroy__ = _IMP_kernel.delete_ObjectKey
2911 
2912 # Register ObjectKey in _IMP_kernel:
2913 _IMP_kernel.ObjectKey_swigregister(ObjectKey)
2914 class IntsKey(_Value):
2915  r"""Proxy of C++ IMP::Key< 5 > class."""
2916 
2917  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2918 
2919  def __init__(self, *args):
2920  r"""
2921  __init__(IntsKey self) -> IntsKey
2922  __init__(IntsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntsKey
2923  __init__(IntsKey self, unsigned int i) -> IntsKey
2924  """
2925  _IMP_kernel.IntsKey_swiginit(self, _IMP_kernel.new_IntsKey(*args))
2926 
2927  @staticmethod
2928  def add_key(sc):
2929  r"""add_key(std::string const & sc) -> unsigned int"""
2930  return _IMP_kernel.IntsKey_add_key(sc)
2931 
2932  @staticmethod
2933  def get_existing_key(sc):
2934  r"""get_existing_key(std::string const & sc) -> IntsKey"""
2935  return _IMP_kernel.IntsKey_get_existing_key(sc)
2936 
2937  @staticmethod
2938  def get_key_exists(sc):
2939  r"""get_key_exists(std::string const & sc) -> bool"""
2940  return _IMP_kernel.IntsKey_get_key_exists(sc)
2941 
2942  def get_string(self):
2943  r"""get_string(IntsKey self) -> std::string const"""
2944  return _IMP_kernel.IntsKey_get_string(self)
2945 
2946  def __eq__(self, o):
2947  r"""__eq__(IntsKey self, IntsKey o) -> bool"""
2948  return _IMP_kernel.IntsKey___eq__(self, o)
2949 
2950  def __ne__(self, o):
2951  r"""__ne__(IntsKey self, IntsKey o) -> bool"""
2952  return _IMP_kernel.IntsKey___ne__(self, o)
2953 
2954  def __lt__(self, o):
2955  r"""__lt__(IntsKey self, IntsKey o) -> bool"""
2956  return _IMP_kernel.IntsKey___lt__(self, o)
2957 
2958  def __gt__(self, o):
2959  r"""__gt__(IntsKey self, IntsKey o) -> bool"""
2960  return _IMP_kernel.IntsKey___gt__(self, o)
2961 
2962  def __ge__(self, o):
2963  r"""__ge__(IntsKey self, IntsKey o) -> bool"""
2964  return _IMP_kernel.IntsKey___ge__(self, o)
2965 
2966  def __le__(self, o):
2967  r"""__le__(IntsKey self, IntsKey o) -> bool"""
2968  return _IMP_kernel.IntsKey___le__(self, o)
2969 
2970  def __hash__(self):
2971  r"""__hash__(IntsKey self) -> std::size_t"""
2972  return _IMP_kernel.IntsKey___hash__(self)
2973 
2974  def show(self, *args):
2975  r"""show(IntsKey self, _ostream out=std::cout)"""
2976  return _IMP_kernel.IntsKey_show(self, *args)
2977 
2978  @staticmethod
2979  def add_alias(old_key, new_name):
2980  r"""add_alias(IntsKey old_key, std::string new_name) -> IntsKey"""
2981  return _IMP_kernel.IntsKey_add_alias(old_key, new_name)
2982 
2983  @staticmethod
2984  def get_number_of_keys():
2985  r"""get_number_of_keys() -> unsigned int"""
2986  return _IMP_kernel.IntsKey_get_number_of_keys()
2987 
2988  def get_index(self):
2989  r"""get_index(IntsKey self) -> unsigned int"""
2990  return _IMP_kernel.IntsKey_get_index(self)
2991 
2992  @staticmethod
2993  def show_all(out):
2994  r"""show_all(_ostream out)"""
2995  return _IMP_kernel.IntsKey_show_all(out)
2996 
2997  @staticmethod
2998  def get_all_strings():
2999  r"""get_all_strings() -> IMP::Vector< std::string >"""
3000  return _IMP_kernel.IntsKey_get_all_strings()
3001 
3002  @staticmethod
3003  def get_number_unique():
3004  r"""get_number_unique() -> unsigned int"""
3005  return _IMP_kernel.IntsKey_get_number_unique()
3006 
3007  def __str__(self):
3008  r"""__str__(IntsKey self) -> std::string"""
3009  return _IMP_kernel.IntsKey___str__(self)
3010 
3011  def __repr__(self):
3012  r"""__repr__(IntsKey self) -> std::string"""
3013  return _IMP_kernel.IntsKey___repr__(self)
3014  __swig_destroy__ = _IMP_kernel.delete_IntsKey
3015 
3016 # Register IntsKey in _IMP_kernel:
3017 _IMP_kernel.IntsKey_swigregister(IntsKey)
3018 class ParticleIndexesKey(_Value):
3019  r"""Proxy of C++ IMP::Key< 6 > class."""
3020 
3021  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3022 
3023  def __init__(self, *args):
3024  r"""
3025  __init__(ParticleIndexesKey self) -> ParticleIndexesKey
3026  __init__(ParticleIndexesKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexesKey
3027  __init__(ParticleIndexesKey self, unsigned int i) -> ParticleIndexesKey
3028  """
3029  _IMP_kernel.ParticleIndexesKey_swiginit(self, _IMP_kernel.new_ParticleIndexesKey(*args))
3030 
3031  @staticmethod
3032  def add_key(sc):
3033  r"""add_key(std::string const & sc) -> unsigned int"""
3034  return _IMP_kernel.ParticleIndexesKey_add_key(sc)
3035 
3036  @staticmethod
3037  def get_existing_key(sc):
3038  r"""get_existing_key(std::string const & sc) -> ParticleIndexesKey"""
3039  return _IMP_kernel.ParticleIndexesKey_get_existing_key(sc)
3040 
3041  @staticmethod
3042  def get_key_exists(sc):
3043  r"""get_key_exists(std::string const & sc) -> bool"""
3044  return _IMP_kernel.ParticleIndexesKey_get_key_exists(sc)
3045 
3046  def get_string(self):
3047  r"""get_string(ParticleIndexesKey self) -> std::string const"""
3048  return _IMP_kernel.ParticleIndexesKey_get_string(self)
3049 
3050  def __eq__(self, o):
3051  r"""__eq__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3052  return _IMP_kernel.ParticleIndexesKey___eq__(self, o)
3053 
3054  def __ne__(self, o):
3055  r"""__ne__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3056  return _IMP_kernel.ParticleIndexesKey___ne__(self, o)
3057 
3058  def __lt__(self, o):
3059  r"""__lt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3060  return _IMP_kernel.ParticleIndexesKey___lt__(self, o)
3061 
3062  def __gt__(self, o):
3063  r"""__gt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3064  return _IMP_kernel.ParticleIndexesKey___gt__(self, o)
3065 
3066  def __ge__(self, o):
3067  r"""__ge__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3068  return _IMP_kernel.ParticleIndexesKey___ge__(self, o)
3069 
3070  def __le__(self, o):
3071  r"""__le__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3072  return _IMP_kernel.ParticleIndexesKey___le__(self, o)
3073 
3074  def __hash__(self):
3075  r"""__hash__(ParticleIndexesKey self) -> std::size_t"""
3076  return _IMP_kernel.ParticleIndexesKey___hash__(self)
3077 
3078  def show(self, *args):
3079  r"""show(ParticleIndexesKey self, _ostream out=std::cout)"""
3080  return _IMP_kernel.ParticleIndexesKey_show(self, *args)
3081 
3082  @staticmethod
3083  def add_alias(old_key, new_name):
3084  r"""add_alias(ParticleIndexesKey old_key, std::string new_name) -> ParticleIndexesKey"""
3085  return _IMP_kernel.ParticleIndexesKey_add_alias(old_key, new_name)
3086 
3087  @staticmethod
3088  def get_number_of_keys():
3089  r"""get_number_of_keys() -> unsigned int"""
3090  return _IMP_kernel.ParticleIndexesKey_get_number_of_keys()
3091 
3092  def get_index(self):
3093  r"""get_index(ParticleIndexesKey self) -> unsigned int"""
3094  return _IMP_kernel.ParticleIndexesKey_get_index(self)
3095 
3096  @staticmethod
3097  def show_all(out):
3098  r"""show_all(_ostream out)"""
3099  return _IMP_kernel.ParticleIndexesKey_show_all(out)
3100 
3101  @staticmethod
3102  def get_all_strings():
3103  r"""get_all_strings() -> IMP::Vector< std::string >"""
3104  return _IMP_kernel.ParticleIndexesKey_get_all_strings()
3105 
3106  @staticmethod
3107  def get_number_unique():
3108  r"""get_number_unique() -> unsigned int"""
3109  return _IMP_kernel.ParticleIndexesKey_get_number_unique()
3110 
3111  def __str__(self):
3112  r"""__str__(ParticleIndexesKey self) -> std::string"""
3113  return _IMP_kernel.ParticleIndexesKey___str__(self)
3114 
3115  def __repr__(self):
3116  r"""__repr__(ParticleIndexesKey self) -> std::string"""
3117  return _IMP_kernel.ParticleIndexesKey___repr__(self)
3118  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexesKey
3119 
3120 # Register ParticleIndexesKey in _IMP_kernel:
3121 _IMP_kernel.ParticleIndexesKey_swigregister(ParticleIndexesKey)
3122 class ModelKey(_Value):
3123  r"""Proxy of C++ IMP::Key< 8 > class."""
3124 
3125  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3126 
3127  def __init__(self, *args):
3128  r"""
3129  __init__(ModelKey self) -> ModelKey
3130  __init__(ModelKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ModelKey
3131  __init__(ModelKey self, unsigned int i) -> ModelKey
3132  """
3133  _IMP_kernel.ModelKey_swiginit(self, _IMP_kernel.new_ModelKey(*args))
3134 
3135  @staticmethod
3136  def add_key(sc):
3137  r"""add_key(std::string const & sc) -> unsigned int"""
3138  return _IMP_kernel.ModelKey_add_key(sc)
3139 
3140  @staticmethod
3141  def get_existing_key(sc):
3142  r"""get_existing_key(std::string const & sc) -> ModelKey"""
3143  return _IMP_kernel.ModelKey_get_existing_key(sc)
3144 
3145  @staticmethod
3146  def get_key_exists(sc):
3147  r"""get_key_exists(std::string const & sc) -> bool"""
3148  return _IMP_kernel.ModelKey_get_key_exists(sc)
3149 
3150  def get_string(self):
3151  r"""get_string(ModelKey self) -> std::string const"""
3152  return _IMP_kernel.ModelKey_get_string(self)
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 const & sc) -> unsigned int"""
3242  return _IMP_kernel.TriggerKey_add_key(sc)
3243 
3244  @staticmethod
3245  def get_existing_key(sc):
3246  r"""get_existing_key(std::string const & sc) -> TriggerKey"""
3247  return _IMP_kernel.TriggerKey_get_existing_key(sc)
3248 
3249  @staticmethod
3250  def get_key_exists(sc):
3251  r"""get_key_exists(std::string const & sc) -> bool"""
3252  return _IMP_kernel.TriggerKey_get_key_exists(sc)
3253 
3254  def get_string(self):
3255  r"""get_string(TriggerKey self) -> std::string const"""
3256  return _IMP_kernel.TriggerKey_get_string(self)
3257 
3258  def __eq__(self, o):
3259  r"""__eq__(TriggerKey self, TriggerKey o) -> bool"""
3260  return _IMP_kernel.TriggerKey___eq__(self, o)
3261 
3262  def __ne__(self, o):
3263  r"""__ne__(TriggerKey self, TriggerKey o) -> bool"""
3264  return _IMP_kernel.TriggerKey___ne__(self, o)
3265 
3266  def __lt__(self, o):
3267  r"""__lt__(TriggerKey self, TriggerKey o) -> bool"""
3268  return _IMP_kernel.TriggerKey___lt__(self, o)
3269 
3270  def __gt__(self, o):
3271  r"""__gt__(TriggerKey self, TriggerKey o) -> bool"""
3272  return _IMP_kernel.TriggerKey___gt__(self, o)
3273 
3274  def __ge__(self, o):
3275  r"""__ge__(TriggerKey self, TriggerKey o) -> bool"""
3276  return _IMP_kernel.TriggerKey___ge__(self, o)
3277 
3278  def __le__(self, o):
3279  r"""__le__(TriggerKey self, TriggerKey o) -> bool"""
3280  return _IMP_kernel.TriggerKey___le__(self, o)
3281 
3282  def __hash__(self):
3283  r"""__hash__(TriggerKey self) -> std::size_t"""
3284  return _IMP_kernel.TriggerKey___hash__(self)
3285 
3286  def show(self, *args):
3287  r"""show(TriggerKey self, _ostream out=std::cout)"""
3288  return _IMP_kernel.TriggerKey_show(self, *args)
3289 
3290  @staticmethod
3291  def add_alias(old_key, new_name):
3292  r"""add_alias(TriggerKey old_key, std::string new_name) -> TriggerKey"""
3293  return _IMP_kernel.TriggerKey_add_alias(old_key, new_name)
3294 
3295  @staticmethod
3296  def get_number_of_keys():
3297  r"""get_number_of_keys() -> unsigned int"""
3298  return _IMP_kernel.TriggerKey_get_number_of_keys()
3299 
3300  def get_index(self):
3301  r"""get_index(TriggerKey self) -> unsigned int"""
3302  return _IMP_kernel.TriggerKey_get_index(self)
3303 
3304  @staticmethod
3305  def show_all(out):
3306  r"""show_all(_ostream out)"""
3307  return _IMP_kernel.TriggerKey_show_all(out)
3308 
3309  @staticmethod
3310  def get_all_strings():
3311  r"""get_all_strings() -> IMP::Vector< std::string >"""
3312  return _IMP_kernel.TriggerKey_get_all_strings()
3313 
3314  @staticmethod
3315  def get_number_unique():
3316  r"""get_number_unique() -> unsigned int"""
3317  return _IMP_kernel.TriggerKey_get_number_unique()
3318 
3319  def __str__(self):
3320  r"""__str__(TriggerKey self) -> std::string"""
3321  return _IMP_kernel.TriggerKey___str__(self)
3322 
3323  def __repr__(self):
3324  r"""__repr__(TriggerKey self) -> std::string"""
3325  return _IMP_kernel.TriggerKey___repr__(self)
3326  __swig_destroy__ = _IMP_kernel.delete_TriggerKey
3327 
3328 # Register TriggerKey in _IMP_kernel:
3329 _IMP_kernel.TriggerKey_swigregister(TriggerKey)
3330 class ParticleIndex(object):
3331  r"""Proxy of C++ IMP::Index< IMP::ParticleIndexTag > class."""
3332 
3333  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3334 
3335  def __init__(self, *args):
3336  r"""
3337  __init__(ParticleIndex self, int i) -> ParticleIndex
3338  __init__(ParticleIndex self) -> ParticleIndex
3339  """
3340  _IMP_kernel.ParticleIndex_swiginit(self, _IMP_kernel.new_ParticleIndex(*args))
3341 
3342  def get_index(self):
3343  r"""get_index(ParticleIndex self) -> int"""
3344  return _IMP_kernel.ParticleIndex_get_index(self)
3345 
3346  def __eq__(self, o):
3347  r"""__eq__(ParticleIndex self, ParticleIndex o) -> bool"""
3348  return _IMP_kernel.ParticleIndex___eq__(self, o)
3349 
3350  def __ne__(self, o):
3351  r"""__ne__(ParticleIndex self, ParticleIndex o) -> bool"""
3352  return _IMP_kernel.ParticleIndex___ne__(self, o)
3353 
3354  def __lt__(self, o):
3355  r"""__lt__(ParticleIndex self, ParticleIndex o) -> bool"""
3356  return _IMP_kernel.ParticleIndex___lt__(self, o)
3357 
3358  def __gt__(self, o):
3359  r"""__gt__(ParticleIndex self, ParticleIndex o) -> bool"""
3360  return _IMP_kernel.ParticleIndex___gt__(self, o)
3361 
3362  def __ge__(self, o):
3363  r"""__ge__(ParticleIndex self, ParticleIndex o) -> bool"""
3364  return _IMP_kernel.ParticleIndex___ge__(self, o)
3365 
3366  def __le__(self, o):
3367  r"""__le__(ParticleIndex self, ParticleIndex o) -> bool"""
3368  return _IMP_kernel.ParticleIndex___le__(self, o)
3369 
3370  def show(self, *args):
3371  r"""show(ParticleIndex self, _ostream out=std::cout)"""
3372  return _IMP_kernel.ParticleIndex_show(self, *args)
3373 
3374  def __hash__(self):
3375  r"""__hash__(ParticleIndex self) -> std::size_t"""
3376  return _IMP_kernel.ParticleIndex___hash__(self)
3377 
3378  def __str__(self):
3379  r"""__str__(ParticleIndex self) -> std::string"""
3380  return _IMP_kernel.ParticleIndex___str__(self)
3381 
3382  def __repr__(self):
3383  r"""__repr__(ParticleIndex self) -> std::string"""
3384  return _IMP_kernel.ParticleIndex___repr__(self)
3385  __swig_destroy__ = _IMP_kernel.delete_ParticleIndex
3386 
3387 # Register ParticleIndex in _IMP_kernel:
3388 _IMP_kernel.ParticleIndex_swigregister(ParticleIndex)
3389 class FloatsKey(_Value):
3390  r"""Proxy of C++ IMP::Key< 10 > class."""
3391 
3392  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3393 
3394  def __init__(self, *args):
3395  r"""
3396  __init__(FloatsKey self) -> FloatsKey
3397  __init__(FloatsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatsKey
3398  __init__(FloatsKey self, unsigned int i) -> FloatsKey
3399  """
3400  _IMP_kernel.FloatsKey_swiginit(self, _IMP_kernel.new_FloatsKey(*args))
3401 
3402  @staticmethod
3403  def add_key(sc):
3404  r"""add_key(std::string const & sc) -> unsigned int"""
3405  return _IMP_kernel.FloatsKey_add_key(sc)
3406 
3407  @staticmethod
3408  def get_existing_key(sc):
3409  r"""get_existing_key(std::string const & sc) -> FloatsKey"""
3410  return _IMP_kernel.FloatsKey_get_existing_key(sc)
3411 
3412  @staticmethod
3413  def get_key_exists(sc):
3414  r"""get_key_exists(std::string const & sc) -> bool"""
3415  return _IMP_kernel.FloatsKey_get_key_exists(sc)
3416 
3417  def get_string(self):
3418  r"""get_string(FloatsKey self) -> std::string const"""
3419  return _IMP_kernel.FloatsKey_get_string(self)
3420 
3421  def __eq__(self, o):
3422  r"""__eq__(FloatsKey self, FloatsKey o) -> bool"""
3423  return _IMP_kernel.FloatsKey___eq__(self, o)
3424 
3425  def __ne__(self, o):
3426  r"""__ne__(FloatsKey self, FloatsKey o) -> bool"""
3427  return _IMP_kernel.FloatsKey___ne__(self, o)
3428 
3429  def __lt__(self, o):
3430  r"""__lt__(FloatsKey self, FloatsKey o) -> bool"""
3431  return _IMP_kernel.FloatsKey___lt__(self, o)
3432 
3433  def __gt__(self, o):
3434  r"""__gt__(FloatsKey self, FloatsKey o) -> bool"""
3435  return _IMP_kernel.FloatsKey___gt__(self, o)
3436 
3437  def __ge__(self, o):
3438  r"""__ge__(FloatsKey self, FloatsKey o) -> bool"""
3439  return _IMP_kernel.FloatsKey___ge__(self, o)
3440 
3441  def __le__(self, o):
3442  r"""__le__(FloatsKey self, FloatsKey o) -> bool"""
3443  return _IMP_kernel.FloatsKey___le__(self, o)
3444 
3445  def __hash__(self):
3446  r"""__hash__(FloatsKey self) -> std::size_t"""
3447  return _IMP_kernel.FloatsKey___hash__(self)
3448 
3449  def show(self, *args):
3450  r"""show(FloatsKey self, _ostream out=std::cout)"""
3451  return _IMP_kernel.FloatsKey_show(self, *args)
3452 
3453  @staticmethod
3454  def add_alias(old_key, new_name):
3455  r"""add_alias(FloatsKey old_key, std::string new_name) -> FloatsKey"""
3456  return _IMP_kernel.FloatsKey_add_alias(old_key, new_name)
3457 
3458  @staticmethod
3459  def get_number_of_keys():
3460  r"""get_number_of_keys() -> unsigned int"""
3461  return _IMP_kernel.FloatsKey_get_number_of_keys()
3462 
3463  def get_index(self):
3464  r"""get_index(FloatsKey self) -> unsigned int"""
3465  return _IMP_kernel.FloatsKey_get_index(self)
3466 
3467  @staticmethod
3468  def show_all(out):
3469  r"""show_all(_ostream out)"""
3470  return _IMP_kernel.FloatsKey_show_all(out)
3471 
3472  @staticmethod
3473  def get_all_strings():
3474  r"""get_all_strings() -> IMP::Vector< std::string >"""
3475  return _IMP_kernel.FloatsKey_get_all_strings()
3476 
3477  @staticmethod
3478  def get_number_unique():
3479  r"""get_number_unique() -> unsigned int"""
3480  return _IMP_kernel.FloatsKey_get_number_unique()
3481 
3482  def __str__(self):
3483  r"""__str__(FloatsKey self) -> std::string"""
3484  return _IMP_kernel.FloatsKey___str__(self)
3485 
3486  def __repr__(self):
3487  r"""__repr__(FloatsKey self) -> std::string"""
3488  return _IMP_kernel.FloatsKey___repr__(self)
3489  __swig_destroy__ = _IMP_kernel.delete_FloatsKey
3490 
3491 # Register FloatsKey in _IMP_kernel:
3492 _IMP_kernel.FloatsKey_swigregister(FloatsKey)
3493 class SparseStringKey(_Value):
3494  r"""Proxy of C++ IMP::Key< 12 > class."""
3495 
3496  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3497 
3498  def __init__(self, *args):
3499  r"""
3500  __init__(SparseStringKey self) -> SparseStringKey
3501  __init__(SparseStringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseStringKey
3502  __init__(SparseStringKey self, unsigned int i) -> SparseStringKey
3503  """
3504  _IMP_kernel.SparseStringKey_swiginit(self, _IMP_kernel.new_SparseStringKey(*args))
3505 
3506  @staticmethod
3507  def add_key(sc):
3508  r"""add_key(std::string const & sc) -> unsigned int"""
3509  return _IMP_kernel.SparseStringKey_add_key(sc)
3510 
3511  @staticmethod
3512  def get_existing_key(sc):
3513  r"""get_existing_key(std::string const & sc) -> SparseStringKey"""
3514  return _IMP_kernel.SparseStringKey_get_existing_key(sc)
3515 
3516  @staticmethod
3517  def get_key_exists(sc):
3518  r"""get_key_exists(std::string const & sc) -> bool"""
3519  return _IMP_kernel.SparseStringKey_get_key_exists(sc)
3520 
3521  def get_string(self):
3522  r"""get_string(SparseStringKey self) -> std::string const"""
3523  return _IMP_kernel.SparseStringKey_get_string(self)
3524 
3525  def __eq__(self, o):
3526  r"""__eq__(SparseStringKey self, SparseStringKey o) -> bool"""
3527  return _IMP_kernel.SparseStringKey___eq__(self, o)
3528 
3529  def __ne__(self, o):
3530  r"""__ne__(SparseStringKey self, SparseStringKey o) -> bool"""
3531  return _IMP_kernel.SparseStringKey___ne__(self, o)
3532 
3533  def __lt__(self, o):
3534  r"""__lt__(SparseStringKey self, SparseStringKey o) -> bool"""
3535  return _IMP_kernel.SparseStringKey___lt__(self, o)
3536 
3537  def __gt__(self, o):
3538  r"""__gt__(SparseStringKey self, SparseStringKey o) -> bool"""
3539  return _IMP_kernel.SparseStringKey___gt__(self, o)
3540 
3541  def __ge__(self, o):
3542  r"""__ge__(SparseStringKey self, SparseStringKey o) -> bool"""
3543  return _IMP_kernel.SparseStringKey___ge__(self, o)
3544 
3545  def __le__(self, o):
3546  r"""__le__(SparseStringKey self, SparseStringKey o) -> bool"""
3547  return _IMP_kernel.SparseStringKey___le__(self, o)
3548 
3549  def __hash__(self):
3550  r"""__hash__(SparseStringKey self) -> std::size_t"""
3551  return _IMP_kernel.SparseStringKey___hash__(self)
3552 
3553  def show(self, *args):
3554  r"""show(SparseStringKey self, _ostream out=std::cout)"""
3555  return _IMP_kernel.SparseStringKey_show(self, *args)
3556 
3557  @staticmethod
3558  def add_alias(old_key, new_name):
3559  r"""add_alias(SparseStringKey old_key, std::string new_name) -> SparseStringKey"""
3560  return _IMP_kernel.SparseStringKey_add_alias(old_key, new_name)
3561 
3562  @staticmethod
3563  def get_number_of_keys():
3564  r"""get_number_of_keys() -> unsigned int"""
3565  return _IMP_kernel.SparseStringKey_get_number_of_keys()
3566 
3567  def get_index(self):
3568  r"""get_index(SparseStringKey self) -> unsigned int"""
3569  return _IMP_kernel.SparseStringKey_get_index(self)
3570 
3571  @staticmethod
3572  def show_all(out):
3573  r"""show_all(_ostream out)"""
3574  return _IMP_kernel.SparseStringKey_show_all(out)
3575 
3576  @staticmethod
3577  def get_all_strings():
3578  r"""get_all_strings() -> IMP::Vector< std::string >"""
3579  return _IMP_kernel.SparseStringKey_get_all_strings()
3580 
3581  @staticmethod
3582  def get_number_unique():
3583  r"""get_number_unique() -> unsigned int"""
3584  return _IMP_kernel.SparseStringKey_get_number_unique()
3585 
3586  def __str__(self):
3587  r"""__str__(SparseStringKey self) -> std::string"""
3588  return _IMP_kernel.SparseStringKey___str__(self)
3589 
3590  def __repr__(self):
3591  r"""__repr__(SparseStringKey self) -> std::string"""
3592  return _IMP_kernel.SparseStringKey___repr__(self)
3593  __swig_destroy__ = _IMP_kernel.delete_SparseStringKey
3594 
3595 # Register SparseStringKey in _IMP_kernel:
3596 _IMP_kernel.SparseStringKey_swigregister(SparseStringKey)
3597 class SparseIntKey(_Value):
3598  r"""Proxy of C++ IMP::Key< 13 > class."""
3599 
3600  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3601 
3602  def __init__(self, *args):
3603  r"""
3604  __init__(SparseIntKey self) -> SparseIntKey
3605  __init__(SparseIntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseIntKey
3606  __init__(SparseIntKey self, unsigned int i) -> SparseIntKey
3607  """
3608  _IMP_kernel.SparseIntKey_swiginit(self, _IMP_kernel.new_SparseIntKey(*args))
3609 
3610  @staticmethod
3611  def add_key(sc):
3612  r"""add_key(std::string const & sc) -> unsigned int"""
3613  return _IMP_kernel.SparseIntKey_add_key(sc)
3614 
3615  @staticmethod
3616  def get_existing_key(sc):
3617  r"""get_existing_key(std::string const & sc) -> SparseIntKey"""
3618  return _IMP_kernel.SparseIntKey_get_existing_key(sc)
3619 
3620  @staticmethod
3621  def get_key_exists(sc):
3622  r"""get_key_exists(std::string const & sc) -> bool"""
3623  return _IMP_kernel.SparseIntKey_get_key_exists(sc)
3624 
3625  def get_string(self):
3626  r"""get_string(SparseIntKey self) -> std::string const"""
3627  return _IMP_kernel.SparseIntKey_get_string(self)
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 const & sc) -> unsigned int"""
3717  return _IMP_kernel.SparseFloatKey_add_key(sc)
3718 
3719  @staticmethod
3720  def get_existing_key(sc):
3721  r"""get_existing_key(std::string const & sc) -> SparseFloatKey"""
3722  return _IMP_kernel.SparseFloatKey_get_existing_key(sc)
3723 
3724  @staticmethod
3725  def get_key_exists(sc):
3726  r"""get_key_exists(std::string const & sc) -> bool"""
3727  return _IMP_kernel.SparseFloatKey_get_key_exists(sc)
3728 
3729  def get_string(self):
3730  r"""get_string(SparseFloatKey self) -> std::string const"""
3731  return _IMP_kernel.SparseFloatKey_get_string(self)
3732 
3733  def __eq__(self, o):
3734  r"""__eq__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3735  return _IMP_kernel.SparseFloatKey___eq__(self, o)
3736 
3737  def __ne__(self, o):
3738  r"""__ne__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3739  return _IMP_kernel.SparseFloatKey___ne__(self, o)
3740 
3741  def __lt__(self, o):
3742  r"""__lt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3743  return _IMP_kernel.SparseFloatKey___lt__(self, o)
3744 
3745  def __gt__(self, o):
3746  r"""__gt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3747  return _IMP_kernel.SparseFloatKey___gt__(self, o)
3748 
3749  def __ge__(self, o):
3750  r"""__ge__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3751  return _IMP_kernel.SparseFloatKey___ge__(self, o)
3752 
3753  def __le__(self, o):
3754  r"""__le__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3755  return _IMP_kernel.SparseFloatKey___le__(self, o)
3756 
3757  def __hash__(self):
3758  r"""__hash__(SparseFloatKey self) -> std::size_t"""
3759  return _IMP_kernel.SparseFloatKey___hash__(self)
3760 
3761  def show(self, *args):
3762  r"""show(SparseFloatKey self, _ostream out=std::cout)"""
3763  return _IMP_kernel.SparseFloatKey_show(self, *args)
3764 
3765  @staticmethod
3766  def add_alias(old_key, new_name):
3767  r"""add_alias(SparseFloatKey old_key, std::string new_name) -> SparseFloatKey"""
3768  return _IMP_kernel.SparseFloatKey_add_alias(old_key, new_name)
3769 
3770  @staticmethod
3771  def get_number_of_keys():
3772  r"""get_number_of_keys() -> unsigned int"""
3773  return _IMP_kernel.SparseFloatKey_get_number_of_keys()
3774 
3775  def get_index(self):
3776  r"""get_index(SparseFloatKey self) -> unsigned int"""
3777  return _IMP_kernel.SparseFloatKey_get_index(self)
3778 
3779  @staticmethod
3780  def show_all(out):
3781  r"""show_all(_ostream out)"""
3782  return _IMP_kernel.SparseFloatKey_show_all(out)
3783 
3784  @staticmethod
3785  def get_all_strings():
3786  r"""get_all_strings() -> IMP::Vector< std::string >"""
3787  return _IMP_kernel.SparseFloatKey_get_all_strings()
3788 
3789  @staticmethod
3790  def get_number_unique():
3791  r"""get_number_unique() -> unsigned int"""
3792  return _IMP_kernel.SparseFloatKey_get_number_unique()
3793 
3794  def __str__(self):
3795  r"""__str__(SparseFloatKey self) -> std::string"""
3796  return _IMP_kernel.SparseFloatKey___str__(self)
3797 
3798  def __repr__(self):
3799  r"""__repr__(SparseFloatKey self) -> std::string"""
3800  return _IMP_kernel.SparseFloatKey___repr__(self)
3801  __swig_destroy__ = _IMP_kernel.delete_SparseFloatKey
3802 
3803 # Register SparseFloatKey in _IMP_kernel:
3804 _IMP_kernel.SparseFloatKey_swigregister(SparseFloatKey)
3805 class SparseParticleIndexKey(_Value):
3806  r"""Proxy of C++ IMP::Key< 15 > class."""
3807 
3808  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3809 
3810  def __init__(self, *args):
3811  r"""
3812  __init__(SparseParticleIndexKey self) -> SparseParticleIndexKey
3813  __init__(SparseParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseParticleIndexKey
3814  __init__(SparseParticleIndexKey self, unsigned int i) -> SparseParticleIndexKey
3815  """
3816  _IMP_kernel.SparseParticleIndexKey_swiginit(self, _IMP_kernel.new_SparseParticleIndexKey(*args))
3817 
3818  @staticmethod
3819  def add_key(sc):
3820  r"""add_key(std::string const & sc) -> unsigned int"""
3821  return _IMP_kernel.SparseParticleIndexKey_add_key(sc)
3822 
3823  @staticmethod
3824  def get_existing_key(sc):
3825  r"""get_existing_key(std::string const & sc) -> SparseParticleIndexKey"""
3826  return _IMP_kernel.SparseParticleIndexKey_get_existing_key(sc)
3827 
3828  @staticmethod
3829  def get_key_exists(sc):
3830  r"""get_key_exists(std::string const & sc) -> bool"""
3831  return _IMP_kernel.SparseParticleIndexKey_get_key_exists(sc)
3832 
3833  def get_string(self):
3834  r"""get_string(SparseParticleIndexKey self) -> std::string const"""
3835  return _IMP_kernel.SparseParticleIndexKey_get_string(self)
3836 
3837  def __eq__(self, o):
3838  r"""__eq__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3839  return _IMP_kernel.SparseParticleIndexKey___eq__(self, o)
3840 
3841  def __ne__(self, o):
3842  r"""__ne__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3843  return _IMP_kernel.SparseParticleIndexKey___ne__(self, o)
3844 
3845  def __lt__(self, o):
3846  r"""__lt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3847  return _IMP_kernel.SparseParticleIndexKey___lt__(self, o)
3848 
3849  def __gt__(self, o):
3850  r"""__gt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3851  return _IMP_kernel.SparseParticleIndexKey___gt__(self, o)
3852 
3853  def __ge__(self, o):
3854  r"""__ge__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3855  return _IMP_kernel.SparseParticleIndexKey___ge__(self, o)
3856 
3857  def __le__(self, o):
3858  r"""__le__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3859  return _IMP_kernel.SparseParticleIndexKey___le__(self, o)
3860 
3861  def __hash__(self):
3862  r"""__hash__(SparseParticleIndexKey self) -> std::size_t"""
3863  return _IMP_kernel.SparseParticleIndexKey___hash__(self)
3864 
3865  def show(self, *args):
3866  r"""show(SparseParticleIndexKey self, _ostream out=std::cout)"""
3867  return _IMP_kernel.SparseParticleIndexKey_show(self, *args)
3868 
3869  @staticmethod
3870  def add_alias(old_key, new_name):
3871  r"""add_alias(SparseParticleIndexKey old_key, std::string new_name) -> SparseParticleIndexKey"""
3872  return _IMP_kernel.SparseParticleIndexKey_add_alias(old_key, new_name)
3873 
3874  @staticmethod
3875  def get_number_of_keys():
3876  r"""get_number_of_keys() -> unsigned int"""
3877  return _IMP_kernel.SparseParticleIndexKey_get_number_of_keys()
3878 
3879  def get_index(self):
3880  r"""get_index(SparseParticleIndexKey self) -> unsigned int"""
3881  return _IMP_kernel.SparseParticleIndexKey_get_index(self)
3882 
3883  @staticmethod
3884  def show_all(out):
3885  r"""show_all(_ostream out)"""
3886  return _IMP_kernel.SparseParticleIndexKey_show_all(out)
3887 
3888  @staticmethod
3889  def get_all_strings():
3890  r"""get_all_strings() -> IMP::Vector< std::string >"""
3891  return _IMP_kernel.SparseParticleIndexKey_get_all_strings()
3892 
3893  @staticmethod
3894  def get_number_unique():
3895  r"""get_number_unique() -> unsigned int"""
3896  return _IMP_kernel.SparseParticleIndexKey_get_number_unique()
3897 
3898  def __str__(self):
3899  r"""__str__(SparseParticleIndexKey self) -> std::string"""
3900  return _IMP_kernel.SparseParticleIndexKey___str__(self)
3901 
3902  def __repr__(self):
3903  r"""__repr__(SparseParticleIndexKey self) -> std::string"""
3904  return _IMP_kernel.SparseParticleIndexKey___repr__(self)
3905  __swig_destroy__ = _IMP_kernel.delete_SparseParticleIndexKey
3906 
3907 # Register SparseParticleIndexKey in _IMP_kernel:
3908 _IMP_kernel.SparseParticleIndexKey_swigregister(SparseParticleIndexKey)
3909 class Vector3DKey(_Value):
3910  r"""Proxy of C++ IMP::Key< 16 > class."""
3911 
3912  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3913 
3914  def __init__(self, *args):
3915  r"""
3916  __init__(Vector3DKey self) -> Vector3DKey
3917  __init__(Vector3DKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector3DKey
3918  __init__(Vector3DKey self, unsigned int i) -> Vector3DKey
3919  """
3920  _IMP_kernel.Vector3DKey_swiginit(self, _IMP_kernel.new_Vector3DKey(*args))
3921 
3922  @staticmethod
3923  def add_key(sc):
3924  r"""add_key(std::string const & sc) -> unsigned int"""
3925  return _IMP_kernel.Vector3DKey_add_key(sc)
3926 
3927  @staticmethod
3928  def get_existing_key(sc):
3929  r"""get_existing_key(std::string const & sc) -> Vector3DKey"""
3930  return _IMP_kernel.Vector3DKey_get_existing_key(sc)
3931 
3932  @staticmethod
3933  def get_key_exists(sc):
3934  r"""get_key_exists(std::string const & sc) -> bool"""
3935  return _IMP_kernel.Vector3DKey_get_key_exists(sc)
3936 
3937  def get_string(self):
3938  r"""get_string(Vector3DKey self) -> std::string const"""
3939  return _IMP_kernel.Vector3DKey_get_string(self)
3940 
3941  def __eq__(self, o):
3942  r"""__eq__(Vector3DKey self, Vector3DKey o) -> bool"""
3943  return _IMP_kernel.Vector3DKey___eq__(self, o)
3944 
3945  def __ne__(self, o):
3946  r"""__ne__(Vector3DKey self, Vector3DKey o) -> bool"""
3947  return _IMP_kernel.Vector3DKey___ne__(self, o)
3948 
3949  def __lt__(self, o):
3950  r"""__lt__(Vector3DKey self, Vector3DKey o) -> bool"""
3951  return _IMP_kernel.Vector3DKey___lt__(self, o)
3952 
3953  def __gt__(self, o):
3954  r"""__gt__(Vector3DKey self, Vector3DKey o) -> bool"""
3955  return _IMP_kernel.Vector3DKey___gt__(self, o)
3956 
3957  def __ge__(self, o):
3958  r"""__ge__(Vector3DKey self, Vector3DKey o) -> bool"""
3959  return _IMP_kernel.Vector3DKey___ge__(self, o)
3960 
3961  def __le__(self, o):
3962  r"""__le__(Vector3DKey self, Vector3DKey o) -> bool"""
3963  return _IMP_kernel.Vector3DKey___le__(self, o)
3964 
3965  def __hash__(self):
3966  r"""__hash__(Vector3DKey self) -> std::size_t"""
3967  return _IMP_kernel.Vector3DKey___hash__(self)
3968 
3969  def show(self, *args):
3970  r"""show(Vector3DKey self, _ostream out=std::cout)"""
3971  return _IMP_kernel.Vector3DKey_show(self, *args)
3972 
3973  @staticmethod
3974  def add_alias(old_key, new_name):
3975  r"""add_alias(Vector3DKey old_key, std::string new_name) -> Vector3DKey"""
3976  return _IMP_kernel.Vector3DKey_add_alias(old_key, new_name)
3977 
3978  @staticmethod
3979  def get_number_of_keys():
3980  r"""get_number_of_keys() -> unsigned int"""
3981  return _IMP_kernel.Vector3DKey_get_number_of_keys()
3982 
3983  def get_index(self):
3984  r"""get_index(Vector3DKey self) -> unsigned int"""
3985  return _IMP_kernel.Vector3DKey_get_index(self)
3986 
3987  @staticmethod
3988  def show_all(out):
3989  r"""show_all(_ostream out)"""
3990  return _IMP_kernel.Vector3DKey_show_all(out)
3991 
3992  @staticmethod
3993  def get_all_strings():
3994  r"""get_all_strings() -> IMP::Vector< std::string >"""
3995  return _IMP_kernel.Vector3DKey_get_all_strings()
3996 
3997  @staticmethod
3998  def get_number_unique():
3999  r"""get_number_unique() -> unsigned int"""
4000  return _IMP_kernel.Vector3DKey_get_number_unique()
4001 
4002  def __str__(self):
4003  r"""__str__(Vector3DKey self) -> std::string"""
4004  return _IMP_kernel.Vector3DKey___str__(self)
4005 
4006  def __repr__(self):
4007  r"""__repr__(Vector3DKey self) -> std::string"""
4008  return _IMP_kernel.Vector3DKey___repr__(self)
4009  __swig_destroy__ = _IMP_kernel.delete_Vector3DKey
4010 
4011 # Register Vector3DKey in _IMP_kernel:
4012 _IMP_kernel.Vector3DKey_swigregister(Vector3DKey)
4013 class Vector3DDerivKey(_Value):
4014  r"""Proxy of C++ IMP::Key< 17 > class."""
4015 
4016  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4017 
4018  def __init__(self, *args):
4019  r"""
4020  __init__(Vector3DDerivKey self) -> Vector3DDerivKey
4021  __init__(Vector3DDerivKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector3DDerivKey
4022  __init__(Vector3DDerivKey self, unsigned int i) -> Vector3DDerivKey
4023  """
4024  _IMP_kernel.Vector3DDerivKey_swiginit(self, _IMP_kernel.new_Vector3DDerivKey(*args))
4025 
4026  @staticmethod
4027  def add_key(sc):
4028  r"""add_key(std::string const & sc) -> unsigned int"""
4029  return _IMP_kernel.Vector3DDerivKey_add_key(sc)
4030 
4031  @staticmethod
4032  def get_existing_key(sc):
4033  r"""get_existing_key(std::string const & sc) -> Vector3DDerivKey"""
4034  return _IMP_kernel.Vector3DDerivKey_get_existing_key(sc)
4035 
4036  @staticmethod
4037  def get_key_exists(sc):
4038  r"""get_key_exists(std::string const & sc) -> bool"""
4039  return _IMP_kernel.Vector3DDerivKey_get_key_exists(sc)
4040 
4041  def get_string(self):
4042  r"""get_string(Vector3DDerivKey self) -> std::string const"""
4043  return _IMP_kernel.Vector3DDerivKey_get_string(self)
4044 
4045  def __eq__(self, o):
4046  r"""__eq__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4047  return _IMP_kernel.Vector3DDerivKey___eq__(self, o)
4048 
4049  def __ne__(self, o):
4050  r"""__ne__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4051  return _IMP_kernel.Vector3DDerivKey___ne__(self, o)
4052 
4053  def __lt__(self, o):
4054  r"""__lt__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4055  return _IMP_kernel.Vector3DDerivKey___lt__(self, o)
4056 
4057  def __gt__(self, o):
4058  r"""__gt__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4059  return _IMP_kernel.Vector3DDerivKey___gt__(self, o)
4060 
4061  def __ge__(self, o):
4062  r"""__ge__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4063  return _IMP_kernel.Vector3DDerivKey___ge__(self, o)
4064 
4065  def __le__(self, o):
4066  r"""__le__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4067  return _IMP_kernel.Vector3DDerivKey___le__(self, o)
4068 
4069  def __hash__(self):
4070  r"""__hash__(Vector3DDerivKey self) -> std::size_t"""
4071  return _IMP_kernel.Vector3DDerivKey___hash__(self)
4072 
4073  def show(self, *args):
4074  r"""show(Vector3DDerivKey self, _ostream out=std::cout)"""
4075  return _IMP_kernel.Vector3DDerivKey_show(self, *args)
4076 
4077  @staticmethod
4078  def add_alias(old_key, new_name):
4079  r"""add_alias(Vector3DDerivKey old_key, std::string new_name) -> Vector3DDerivKey"""
4080  return _IMP_kernel.Vector3DDerivKey_add_alias(old_key, new_name)
4081 
4082  @staticmethod
4083  def get_number_of_keys():
4084  r"""get_number_of_keys() -> unsigned int"""
4085  return _IMP_kernel.Vector3DDerivKey_get_number_of_keys()
4086 
4087  def get_index(self):
4088  r"""get_index(Vector3DDerivKey self) -> unsigned int"""
4089  return _IMP_kernel.Vector3DDerivKey_get_index(self)
4090 
4091  @staticmethod
4092  def show_all(out):
4093  r"""show_all(_ostream out)"""
4094  return _IMP_kernel.Vector3DDerivKey_show_all(out)
4095 
4096  @staticmethod
4097  def get_all_strings():
4098  r"""get_all_strings() -> IMP::Vector< std::string >"""
4099  return _IMP_kernel.Vector3DDerivKey_get_all_strings()
4100 
4101  @staticmethod
4102  def get_number_unique():
4103  r"""get_number_unique() -> unsigned int"""
4104  return _IMP_kernel.Vector3DDerivKey_get_number_unique()
4105 
4106  def __str__(self):
4107  r"""__str__(Vector3DDerivKey self) -> std::string"""
4108  return _IMP_kernel.Vector3DDerivKey___str__(self)
4109 
4110  def __repr__(self):
4111  r"""__repr__(Vector3DDerivKey self) -> std::string"""
4112  return _IMP_kernel.Vector3DDerivKey___repr__(self)
4113  __swig_destroy__ = _IMP_kernel.delete_Vector3DDerivKey
4114 
4115 # Register Vector3DDerivKey in _IMP_kernel:
4116 _IMP_kernel.Vector3DDerivKey_swigregister(Vector3DDerivKey)
4117 class Vector4DKey(_Value):
4118  r"""Proxy of C++ IMP::Key< 18 > class."""
4119 
4120  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4121 
4122  def __init__(self, *args):
4123  r"""
4124  __init__(Vector4DKey self) -> Vector4DKey
4125  __init__(Vector4DKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector4DKey
4126  __init__(Vector4DKey self, unsigned int i) -> Vector4DKey
4127  """
4128  _IMP_kernel.Vector4DKey_swiginit(self, _IMP_kernel.new_Vector4DKey(*args))
4129 
4130  @staticmethod
4131  def add_key(sc):
4132  r"""add_key(std::string const & sc) -> unsigned int"""
4133  return _IMP_kernel.Vector4DKey_add_key(sc)
4134 
4135  @staticmethod
4136  def get_existing_key(sc):
4137  r"""get_existing_key(std::string const & sc) -> Vector4DKey"""
4138  return _IMP_kernel.Vector4DKey_get_existing_key(sc)
4139 
4140  @staticmethod
4141  def get_key_exists(sc):
4142  r"""get_key_exists(std::string const & sc) -> bool"""
4143  return _IMP_kernel.Vector4DKey_get_key_exists(sc)
4144 
4145  def get_string(self):
4146  r"""get_string(Vector4DKey self) -> std::string const"""
4147  return _IMP_kernel.Vector4DKey_get_string(self)
4148 
4149  def __eq__(self, o):
4150  r"""__eq__(Vector4DKey self, Vector4DKey o) -> bool"""
4151  return _IMP_kernel.Vector4DKey___eq__(self, o)
4152 
4153  def __ne__(self, o):
4154  r"""__ne__(Vector4DKey self, Vector4DKey o) -> bool"""
4155  return _IMP_kernel.Vector4DKey___ne__(self, o)
4156 
4157  def __lt__(self, o):
4158  r"""__lt__(Vector4DKey self, Vector4DKey o) -> bool"""
4159  return _IMP_kernel.Vector4DKey___lt__(self, o)
4160 
4161  def __gt__(self, o):
4162  r"""__gt__(Vector4DKey self, Vector4DKey o) -> bool"""
4163  return _IMP_kernel.Vector4DKey___gt__(self, o)
4164 
4165  def __ge__(self, o):
4166  r"""__ge__(Vector4DKey self, Vector4DKey o) -> bool"""
4167  return _IMP_kernel.Vector4DKey___ge__(self, o)
4168 
4169  def __le__(self, o):
4170  r"""__le__(Vector4DKey self, Vector4DKey o) -> bool"""
4171  return _IMP_kernel.Vector4DKey___le__(self, o)
4172 
4173  def __hash__(self):
4174  r"""__hash__(Vector4DKey self) -> std::size_t"""
4175  return _IMP_kernel.Vector4DKey___hash__(self)
4176 
4177  def show(self, *args):
4178  r"""show(Vector4DKey self, _ostream out=std::cout)"""
4179  return _IMP_kernel.Vector4DKey_show(self, *args)
4180 
4181  @staticmethod
4182  def add_alias(old_key, new_name):
4183  r"""add_alias(Vector4DKey old_key, std::string new_name) -> Vector4DKey"""
4184  return _IMP_kernel.Vector4DKey_add_alias(old_key, new_name)
4185 
4186  @staticmethod
4187  def get_number_of_keys():
4188  r"""get_number_of_keys() -> unsigned int"""
4189  return _IMP_kernel.Vector4DKey_get_number_of_keys()
4190 
4191  def get_index(self):
4192  r"""get_index(Vector4DKey self) -> unsigned int"""
4193  return _IMP_kernel.Vector4DKey_get_index(self)
4194 
4195  @staticmethod
4196  def show_all(out):
4197  r"""show_all(_ostream out)"""
4198  return _IMP_kernel.Vector4DKey_show_all(out)
4199 
4200  @staticmethod
4201  def get_all_strings():
4202  r"""get_all_strings() -> IMP::Vector< std::string >"""
4203  return _IMP_kernel.Vector4DKey_get_all_strings()
4204 
4205  @staticmethod
4206  def get_number_unique():
4207  r"""get_number_unique() -> unsigned int"""
4208  return _IMP_kernel.Vector4DKey_get_number_unique()
4209 
4210  def __str__(self):
4211  r"""__str__(Vector4DKey self) -> std::string"""
4212  return _IMP_kernel.Vector4DKey___str__(self)
4213 
4214  def __repr__(self):
4215  r"""__repr__(Vector4DKey self) -> std::string"""
4216  return _IMP_kernel.Vector4DKey___repr__(self)
4217  __swig_destroy__ = _IMP_kernel.delete_Vector4DKey
4218 
4219 # Register Vector4DKey in _IMP_kernel:
4220 _IMP_kernel.Vector4DKey_swigregister(Vector4DKey)
4221 class Vector4DDerivKey(_Value):
4222  r"""Proxy of C++ IMP::Key< 19 > class."""
4223 
4224  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4225 
4226  def __init__(self, *args):
4227  r"""
4228  __init__(Vector4DDerivKey self) -> Vector4DDerivKey
4229  __init__(Vector4DDerivKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector4DDerivKey
4230  __init__(Vector4DDerivKey self, unsigned int i) -> Vector4DDerivKey
4231  """
4232  _IMP_kernel.Vector4DDerivKey_swiginit(self, _IMP_kernel.new_Vector4DDerivKey(*args))
4233 
4234  @staticmethod
4235  def add_key(sc):
4236  r"""add_key(std::string const & sc) -> unsigned int"""
4237  return _IMP_kernel.Vector4DDerivKey_add_key(sc)
4238 
4239  @staticmethod
4240  def get_existing_key(sc):
4241  r"""get_existing_key(std::string const & sc) -> Vector4DDerivKey"""
4242  return _IMP_kernel.Vector4DDerivKey_get_existing_key(sc)
4243 
4244  @staticmethod
4245  def get_key_exists(sc):
4246  r"""get_key_exists(std::string const & sc) -> bool"""
4247  return _IMP_kernel.Vector4DDerivKey_get_key_exists(sc)
4248 
4249  def get_string(self):
4250  r"""get_string(Vector4DDerivKey self) -> std::string const"""
4251  return _IMP_kernel.Vector4DDerivKey_get_string(self)
4252 
4253  def __eq__(self, o):
4254  r"""__eq__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4255  return _IMP_kernel.Vector4DDerivKey___eq__(self, o)
4256 
4257  def __ne__(self, o):
4258  r"""__ne__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4259  return _IMP_kernel.Vector4DDerivKey___ne__(self, o)
4260 
4261  def __lt__(self, o):
4262  r"""__lt__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4263  return _IMP_kernel.Vector4DDerivKey___lt__(self, o)
4264 
4265  def __gt__(self, o):
4266  r"""__gt__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4267  return _IMP_kernel.Vector4DDerivKey___gt__(self, o)
4268 
4269  def __ge__(self, o):
4270  r"""__ge__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4271  return _IMP_kernel.Vector4DDerivKey___ge__(self, o)
4272 
4273  def __le__(self, o):
4274  r"""__le__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4275  return _IMP_kernel.Vector4DDerivKey___le__(self, o)
4276 
4277  def __hash__(self):
4278  r"""__hash__(Vector4DDerivKey self) -> std::size_t"""
4279  return _IMP_kernel.Vector4DDerivKey___hash__(self)
4280 
4281  def show(self, *args):
4282  r"""show(Vector4DDerivKey self, _ostream out=std::cout)"""
4283  return _IMP_kernel.Vector4DDerivKey_show(self, *args)
4284 
4285  @staticmethod
4286  def add_alias(old_key, new_name):
4287  r"""add_alias(Vector4DDerivKey old_key, std::string new_name) -> Vector4DDerivKey"""
4288  return _IMP_kernel.Vector4DDerivKey_add_alias(old_key, new_name)
4289 
4290  @staticmethod
4291  def get_number_of_keys():
4292  r"""get_number_of_keys() -> unsigned int"""
4293  return _IMP_kernel.Vector4DDerivKey_get_number_of_keys()
4294 
4295  def get_index(self):
4296  r"""get_index(Vector4DDerivKey self) -> unsigned int"""
4297  return _IMP_kernel.Vector4DDerivKey_get_index(self)
4298 
4299  @staticmethod
4300  def show_all(out):
4301  r"""show_all(_ostream out)"""
4302  return _IMP_kernel.Vector4DDerivKey_show_all(out)
4303 
4304  @staticmethod
4305  def get_all_strings():
4306  r"""get_all_strings() -> IMP::Vector< std::string >"""
4307  return _IMP_kernel.Vector4DDerivKey_get_all_strings()
4308 
4309  @staticmethod
4310  def get_number_unique():
4311  r"""get_number_unique() -> unsigned int"""
4312  return _IMP_kernel.Vector4DDerivKey_get_number_unique()
4313 
4314  def __str__(self):
4315  r"""__str__(Vector4DDerivKey self) -> std::string"""
4316  return _IMP_kernel.Vector4DDerivKey___str__(self)
4317 
4318  def __repr__(self):
4319  r"""__repr__(Vector4DDerivKey self) -> std::string"""
4320  return _IMP_kernel.Vector4DDerivKey___repr__(self)
4321  __swig_destroy__ = _IMP_kernel.delete_Vector4DDerivKey
4322 
4323 # Register Vector4DDerivKey in _IMP_kernel:
4324 _IMP_kernel.Vector4DDerivKey_swigregister(Vector4DDerivKey)
4325 
4326 def ParticlePair(a, b):
4327  return (a,b)
4328 def ParticleTriplet(a, b, c):
4329  return (a,b,c)
4330 def ParticleQuad(a, b, c, d):
4331  return (a,b,c,d)
4332 
4333 class FloatIndex(_Value):
4334  r"""Proxy of C++ IMP::FloatIndex class."""
4335 
4336  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4337 
4338  def __init__(self, *args):
4339  r"""
4340  __init__(FloatIndex self, ParticleIndex pi, FloatKey k) -> FloatIndex
4341  __init__(FloatIndex self, ParticleIndex pi, Vector3DDerivKey k, int index) -> FloatIndex
4342  __init__(FloatIndex self, ParticleIndex pi, Vector4DDerivKey k, int index) -> FloatIndex
4343  """
4344  _IMP_kernel.FloatIndex_swiginit(self, _IMP_kernel.new_FloatIndex(*args))
4345 
4346  def get_float_key(self):
4347  r"""get_float_key(FloatIndex self) -> FloatKey"""
4348  return _IMP_kernel.FloatIndex_get_float_key(self)
4349 
4350  def set_value(self, m, v):
4351  r"""set_value(FloatIndex self, Model m, IMP::Float v)"""
4352  return _IMP_kernel.FloatIndex_set_value(self, m, v)
4353 
4354  def get_value(self, m):
4355  r"""get_value(FloatIndex self, Model m) -> IMP::Float"""
4356  return _IMP_kernel.FloatIndex_get_value(self, m)
4357 
4358  def get_derivative(self, m):
4359  r"""get_derivative(FloatIndex self, Model m) -> IMP::Float"""
4360  return _IMP_kernel.FloatIndex_get_derivative(self, m)
4361 
4362  def show(self, *args):
4363  r"""show(FloatIndex self, _ostream out=std::cout)"""
4364  return _IMP_kernel.FloatIndex_show(self, *args)
4365 
4366  def __str__(self):
4367  r"""__str__(FloatIndex self) -> std::string"""
4368  return _IMP_kernel.FloatIndex___str__(self)
4369 
4370  def __repr__(self):
4371  r"""__repr__(FloatIndex self) -> std::string"""
4372  return _IMP_kernel.FloatIndex___repr__(self)
4373  __swig_destroy__ = _IMP_kernel.delete_FloatIndex
4374 
4375 # Register FloatIndex in _IMP_kernel:
4376 _IMP_kernel.FloatIndex_swigregister(FloatIndex)
4377 class _ParticleIndexTag(object):
4378  r"""Proxy of C++ IMP::ParticleIndexTag class."""
4379 
4380  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4381  __repr__ = _swig_repr
4382 
4383  def __init__(self):
4384  r"""__init__(_ParticleIndexTag self) -> _ParticleIndexTag"""
4385  _IMP_kernel._ParticleIndexTag_swiginit(self, _IMP_kernel.new__ParticleIndexTag())
4386  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexTag
4387 
4388 # Register _ParticleIndexTag in _IMP_kernel:
4389 _IMP_kernel._ParticleIndexTag_swigregister(_ParticleIndexTag)
4390 class ModelObject(Object):
4391  r"""Proxy of C++ IMP::ModelObject class."""
4392 
4393  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4394 
4395  def __init__(self, *args):
4396  r"""
4397  __init__(ModelObject self, Model m, std::string name) -> ModelObject
4398  __init__(ModelObject self) -> ModelObject
4399  """
4400  if self.__class__ == ModelObject:
4401  _self = None
4402  else:
4403  _self = self
4404  _IMP_kernel.ModelObject_swiginit(self, _IMP_kernel.new_ModelObject(_self, *args))
4405 
4406  if self.__class__ != ModelObject:
4407  _director_objects.register(self)
4408 
4409 
4410 
4411  __swig_destroy__ = _IMP_kernel.delete_ModelObject
4412 
4413  def get_model(self):
4414  m = _IMP_kernel.ModelObject_get_model(self)
4415  if m in _models_set:
4416  m = _models_set_get(m)
4417  return m
4418 
4419 
4420 
4421  def get_inputs(self):
4422  r"""get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4423  return _IMP_kernel.ModelObject_get_inputs(self)
4424 
4425  def get_outputs(self):
4426  r"""get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4427  return _IMP_kernel.ModelObject_get_outputs(self)
4428 
4429  def get_interactions(self):
4430  r"""get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
4431  return _IMP_kernel.ModelObject_get_interactions(self)
4432 
4433  def get_has_dependencies(self):
4434  r"""get_has_dependencies(ModelObject self) -> bool"""
4435  return _IMP_kernel.ModelObject_get_has_dependencies(self)
4436 
4437  def set_has_dependencies(self, tf):
4438  r"""set_has_dependencies(ModelObject self, bool tf)"""
4439  return _IMP_kernel.ModelObject_set_has_dependencies(self, tf)
4440 
4441  def set_has_required_score_states(self, tf):
4442  r"""set_has_required_score_states(ModelObject self, bool tf)"""
4443  return _IMP_kernel.ModelObject_set_has_required_score_states(self, tf)
4444 
4445  def get_has_required_score_states(self):
4446  r"""get_has_required_score_states(ModelObject self) -> bool"""
4447  return _IMP_kernel.ModelObject_get_has_required_score_states(self)
4448 
4449  def get_required_score_states(self):
4450  r"""get_required_score_states(ModelObject self) -> IMP::ScoreStatesTemp const &"""
4451  return _IMP_kernel.ModelObject_get_required_score_states(self)
4452 
4453  def handle_set_has_required_score_states(self, arg0):
4454  r"""handle_set_has_required_score_states(ModelObject self, bool arg0)"""
4455  return _IMP_kernel.ModelObject_handle_set_has_required_score_states(self, arg0)
4456 
4457  def do_get_inputs(self):
4458  r"""do_get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4459  return _IMP_kernel.ModelObject_do_get_inputs(self)
4460 
4461  def do_get_outputs(self):
4462  r"""do_get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4463  return _IMP_kernel.ModelObject_do_get_outputs(self)
4464 
4465  def do_get_interactions(self):
4466  r"""do_get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
4467  return _IMP_kernel.ModelObject_do_get_interactions(self)
4468 
4469  def __str__(self):
4470  r"""__str__(ModelObject self) -> std::string"""
4471  return _IMP_kernel.ModelObject___str__(self)
4472 
4473  def __repr__(self):
4474  r"""__repr__(ModelObject self) -> std::string"""
4475  return _IMP_kernel.ModelObject___repr__(self)
4476 
4477  @staticmethod
4478  def get_from(o):
4479  return _object_cast_to_ModelObject(o)
4480 
4481 
4482  def do_show(self, out):
4483  pass
4484 
4485  @staticmethod
4486  def get_from(o):
4487  return _object_cast_to_ModelObject(o)
4488 
4489  def __disown__(self):
4490  self.this.disown()
4491  _IMP_kernel.disown_ModelObject(self)
4492  return weakref.proxy(self)
4493 
4494  def do_destroy(self):
4495  r"""do_destroy(ModelObject self)"""
4496  return _IMP_kernel.ModelObject_do_destroy(self)
4497 
4498 # Register ModelObject in _IMP_kernel:
4499 _IMP_kernel.ModelObject_swigregister(ModelObject)
4500 cvar = _IMP_kernel.cvar
4501 NO_MAX = cvar.NO_MAX
4502 BAD_SCORE = cvar.BAD_SCORE
4503 
4504 class _ParticleInputs(object):
4505  r"""Proxy of C++ IMP::ParticleInputs class."""
4506 
4507  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4508 
4509  def __init__(self, *args, **kwargs):
4510  raise AttributeError("No constructor defined - class is abstract")
4511  __repr__ = _swig_repr
4512 
4513  def get_inputs(self, m, pis):
4514  r"""get_inputs(_ParticleInputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4515  return _IMP_kernel._ParticleInputs_get_inputs(self, m, pis)
4516 
4517 # Register _ParticleInputs in _IMP_kernel:
4518 _IMP_kernel._ParticleInputs_swigregister(_ParticleInputs)
4519 class _ParticleOutputs(object):
4520  r"""Proxy of C++ IMP::ParticleOutputs class."""
4521 
4522  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4523 
4524  def __init__(self, *args, **kwargs):
4525  raise AttributeError("No constructor defined - class is abstract")
4526  __repr__ = _swig_repr
4527 
4528  def get_outputs(self, m, pis):
4529  r"""get_outputs(_ParticleOutputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4530  return _IMP_kernel._ParticleOutputs_get_outputs(self, m, pis)
4531 
4532 # Register _ParticleOutputs in _IMP_kernel:
4533 _IMP_kernel._ParticleOutputs_swigregister(_ParticleOutputs)
4534 
4535 def get_input_particles(mos):
4536  r"""get_input_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
4537  return _IMP_kernel.get_input_particles(mos)
4538 
4539 def get_input_containers(mos):
4540  r"""get_input_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
4541  return _IMP_kernel.get_input_containers(mos)
4542 
4543 def get_output_particles(mos):
4544  r"""get_output_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
4545  return _IMP_kernel.get_output_particles(mos)
4546 
4547 def get_output_containers(mos):
4548  r"""get_output_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
4549  return _IMP_kernel.get_output_containers(mos)
4550 
4551 Vector1Ds=list
4552 _plural_types.append("Vector1Ds")
4553 _value_types.append("Vector1D")
4554 
4555 
4556 Vector2Ds=list
4557 _plural_types.append("Vector2Ds")
4558 _value_types.append("Vector2D")
4559 
4560 
4561 Vector3Ds=list
4562 _plural_types.append("Vector3Ds")
4563 _value_types.append("Vector3D")
4564 
4565 
4566 Vector4Ds=list
4567 _plural_types.append("Vector4Ds")
4568 _value_types.append("Vector4D")
4569 
4570 
4571 Vector5Ds=list
4572 _plural_types.append("Vector5Ds")
4573 _value_types.append("Vector5D")
4574 
4575 
4576 Vector6Ds=list
4577 _plural_types.append("Vector6Ds")
4578 _value_types.append("Vector6D")
4579 
4580 
4581 Vector1Ds=list
4582 _plural_types.append("Vector1Ds")
4583 _value_types.append("VectorD<1>")
4584 
4585 
4586 Vector2Ds=list
4587 _plural_types.append("Vector2Ds")
4588 _value_types.append("VectorD<2>")
4589 
4590 
4591 Vector3Ds=list
4592 _plural_types.append("Vector3Ds")
4593 _value_types.append("VectorD<3>")
4594 
4595 
4596 Vector4Ds=list
4597 _plural_types.append("Vector4Ds")
4598 _value_types.append("VectorD<4>")
4599 
4600 
4601 Vector5Ds=list
4602 _plural_types.append("Vector5Ds")
4603 _value_types.append("VectorD<5>")
4604 
4605 
4606 Vector6Ds=list
4607 _plural_types.append("Vector6Ds")
4608 _value_types.append("VectorD<6>")
4609 
4610 
4611 VectorKDs=list
4612 _plural_types.append("VectorKDs")
4613 _value_types.append("VectorKD")
4614 
4615 
4616 VectorKDs=list
4617 _plural_types.append("VectorKDs")
4618 _value_types.append("VectorD<-1>")
4619 
4620 
4621 def get_basis_vector_kd(D, coordinate):
4622  r"""get_basis_vector_kd(int D, unsigned int coordinate) -> VectorKD"""
4623  return _IMP_kernel.get_basis_vector_kd(D, coordinate)
4624 
4625 def get_zero_vector_kd(D):
4626  r"""get_zero_vector_kd(int D) -> VectorKD"""
4627  return _IMP_kernel.get_zero_vector_kd(D)
4628 
4629 def get_ones_vector_kd(D, v=1):
4630  r"""get_ones_vector_kd(unsigned int D, double v=1) -> VectorKD"""
4631  return _IMP_kernel.get_ones_vector_kd(D, v)
4632 
4633 def get_vector_product(p1, p2):
4634  r"""get_vector_product(Vector3D p1, Vector3D p2) -> Vector3D"""
4635  return _IMP_kernel.get_vector_product(p1, p2)
4636 
4637 def get_orthogonal_vector(v):
4638  r"""get_orthogonal_vector(Vector3D v) -> Vector3D"""
4639  return _IMP_kernel.get_orthogonal_vector(v)
4640 
4641 def get_centroid(ps):
4642  r"""get_centroid(IMP::Vector3Ds const & ps) -> Vector3D"""
4643  return _IMP_kernel.get_centroid(ps)
4644 
4645 def get_radius_of_gyration(ps):
4646  r"""get_radius_of_gyration(IMP::Vector3Ds const & ps) -> double"""
4647  return _IMP_kernel.get_radius_of_gyration(ps)
4648 class DerivativeAccumulator(object):
4649  r"""Proxy of C++ IMP::DerivativeAccumulator class."""
4650 
4651  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4652  __repr__ = _swig_repr
4653 
4654  def __init__(self, *args):
4655  r"""
4656  __init__(DerivativeAccumulator self, DerivativeAccumulator arg2) -> DerivativeAccumulator
4657  __init__(DerivativeAccumulator self, double weight=1.0) -> DerivativeAccumulator
4658  __init__(DerivativeAccumulator self, DerivativeAccumulator copy, double weight) -> DerivativeAccumulator
4659  """
4660  _IMP_kernel.DerivativeAccumulator_swiginit(self, _IMP_kernel.new_DerivativeAccumulator(*args))
4661 
4662  def __call__(self, *args):
4663  r"""
4664  __call__(DerivativeAccumulator self, double const value) -> double
4665  __call__(DerivativeAccumulator self, Vector3D value) -> Vector3D
4666  __call__(DerivativeAccumulator self, Vector4D value) -> Vector4D
4667  """
4668  return _IMP_kernel.DerivativeAccumulator___call__(self, *args)
4669 
4670  def get_weight(self):
4671  r"""get_weight(DerivativeAccumulator self) -> double"""
4672  return _IMP_kernel.DerivativeAccumulator_get_weight(self)
4673 
4674  def show(self, *args):
4675  r"""show(DerivativeAccumulator self, _ostream out=std::cout)"""
4676  return _IMP_kernel.DerivativeAccumulator_show(self, *args)
4677  __swig_destroy__ = _IMP_kernel.delete_DerivativeAccumulator
4678 
4679 # Register DerivativeAccumulator in _IMP_kernel:
4680 _IMP_kernel.DerivativeAccumulator_swigregister(DerivativeAccumulator)
4681 class EvaluationState(object):
4682  r"""Proxy of C++ IMP::EvaluationState class."""
4683 
4684  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4685  score = property(_IMP_kernel.EvaluationState_score_get, _IMP_kernel.EvaluationState_score_set, doc=r"""score : double""")
4686  good = property(_IMP_kernel.EvaluationState_good_get, _IMP_kernel.EvaluationState_good_set, doc=r"""good : bool""")
4687 
4688  def __init__(self, *args):
4689  r"""
4690  __init__(EvaluationState self, double oscore, bool ogood) -> EvaluationState
4691  __init__(EvaluationState self) -> EvaluationState
4692  """
4693  _IMP_kernel.EvaluationState_swiginit(self, _IMP_kernel.new_EvaluationState(*args))
4694 
4695  def show(self, *args):
4696  r"""show(EvaluationState self, _ostream out=std::cout)"""
4697  return _IMP_kernel.EvaluationState_show(self, *args)
4698 
4699  def __str__(self):
4700  r"""__str__(EvaluationState self) -> std::string"""
4701  return _IMP_kernel.EvaluationState___str__(self)
4702 
4703  def __repr__(self):
4704  r"""__repr__(EvaluationState self) -> std::string"""
4705  return _IMP_kernel.EvaluationState___repr__(self)
4706  __swig_destroy__ = _IMP_kernel.delete_EvaluationState
4707 
4708 # Register EvaluationState in _IMP_kernel:
4709 _IMP_kernel.EvaluationState_swigregister(EvaluationState)
4710 class ScoreAccumulator(_Value):
4711  r"""Proxy of C++ IMP::ScoreAccumulator class."""
4712 
4713  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4714 
4715  def __init__(self, *args):
4716  r"""
4717  __init__(ScoreAccumulator self, ScoreAccumulator arg2) -> ScoreAccumulator
4718  __init__(ScoreAccumulator self) -> ScoreAccumulator
4719  __init__(ScoreAccumulator self, ScoreAccumulator o, Restraint r) -> ScoreAccumulator
4720  __init__(ScoreAccumulator self, ScoreAccumulator o, double weight, double local_max) -> ScoreAccumulator
4721  """
4722  _IMP_kernel.ScoreAccumulator_swiginit(self, _IMP_kernel.new_ScoreAccumulator(*args))
4723 
4724  def add_score(self, score):
4725  r"""add_score(ScoreAccumulator self, double score)"""
4726  return _IMP_kernel.ScoreAccumulator_add_score(self, score)
4727 
4728  def get_abort_evaluation(self):
4729  r"""get_abort_evaluation(ScoreAccumulator self) -> bool"""
4730  return _IMP_kernel.ScoreAccumulator_get_abort_evaluation(self)
4731 
4732  def get_is_evaluate_if_below(self):
4733  r"""get_is_evaluate_if_below(ScoreAccumulator self) -> bool"""
4734  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_below(self)
4735 
4736  def get_is_evaluate_if_good(self):
4737  r"""get_is_evaluate_if_good(ScoreAccumulator self) -> bool"""
4738  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_good(self)
4739 
4740  def get_maximum(self):
4741  r"""get_maximum(ScoreAccumulator self) -> double"""
4742  return _IMP_kernel.ScoreAccumulator_get_maximum(self)
4743 
4744  def get_derivative_accumulator(self):
4745  r"""get_derivative_accumulator(ScoreAccumulator self) -> DerivativeAccumulator"""
4746  return _IMP_kernel.ScoreAccumulator_get_derivative_accumulator(self)
4747 
4748  def show(self, *args):
4749  r"""show(ScoreAccumulator self, _ostream out=std::cout)"""
4750  return _IMP_kernel.ScoreAccumulator_show(self, *args)
4751 
4752  def __str__(self):
4753  r"""__str__(ScoreAccumulator self) -> std::string"""
4754  return _IMP_kernel.ScoreAccumulator___str__(self)
4755 
4756  def __repr__(self):
4757  r"""__repr__(ScoreAccumulator self) -> std::string"""
4758  return _IMP_kernel.ScoreAccumulator___repr__(self)
4759  __swig_destroy__ = _IMP_kernel.delete_ScoreAccumulator
4760 
4761 # Register ScoreAccumulator in _IMP_kernel:
4762 _IMP_kernel.ScoreAccumulator_swigregister(ScoreAccumulator)
4763 class ScoreState(ModelObject):
4764  r"""Proxy of C++ IMP::ScoreState class."""
4765 
4766  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4767  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""")
4768 
4769  def set_can_skip(self, can_skip):
4770  r"""set_can_skip(ScoreState self, bool can_skip)"""
4771  return _IMP_kernel.ScoreState_set_can_skip(self, can_skip)
4772 
4773  def __init__(self, *args):
4774  r"""
4775  __init__(ScoreState self, Model m, std::string name) -> ScoreState
4776  __init__(ScoreState self) -> ScoreState
4777  """
4778  if self.__class__ == ScoreState:
4779  _self = None
4780  else:
4781  _self = self
4782  _IMP_kernel.ScoreState_swiginit(self, _IMP_kernel.new_ScoreState(_self, *args))
4783 
4784  if self.__class__ != ScoreState:
4785  _director_objects.register(self)
4786 
4787 
4788 
4789 
4790  def before_evaluate(self):
4791  r"""before_evaluate(ScoreState self)"""
4792  return _IMP_kernel.ScoreState_before_evaluate(self)
4793 
4794  def after_evaluate(self, accpt):
4795  r"""after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
4796  return _IMP_kernel.ScoreState_after_evaluate(self, accpt)
4797 
4798  def get_can_skip(self):
4799  r"""get_can_skip(ScoreState self) -> bool"""
4800  return _IMP_kernel.ScoreState_get_can_skip(self)
4801 
4802  def get_has_update_order(self):
4803  r"""get_has_update_order(ScoreState self) -> bool"""
4804  return _IMP_kernel.ScoreState_get_has_update_order(self)
4805 
4806  def get_update_order(self):
4807  r"""get_update_order(ScoreState self) -> unsigned int"""
4808  return _IMP_kernel.ScoreState_get_update_order(self)
4809 
4810  def handle_set_has_required_score_states(self, tf):
4811  r"""handle_set_has_required_score_states(ScoreState self, bool tf)"""
4812  return _IMP_kernel.ScoreState_handle_set_has_required_score_states(self, tf)
4813 
4814  def get_is_ignored_by_jax(self):
4815  r"""get_is_ignored_by_jax(ScoreState self) -> bool"""
4816  return _IMP_kernel.ScoreState_get_is_ignored_by_jax(self)
4817 
4818  def do_before_evaluate(self):
4819  r"""do_before_evaluate(ScoreState self)"""
4820  return _IMP_kernel.ScoreState_do_before_evaluate(self)
4821 
4822  def do_after_evaluate(self, accpt):
4823  r"""do_after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
4824  return _IMP_kernel.ScoreState_do_after_evaluate(self, accpt)
4825  __swig_destroy__ = _IMP_kernel.delete_ScoreState
4826 
4827  def __str__(self):
4828  r"""__str__(ScoreState self) -> std::string"""
4829  return _IMP_kernel.ScoreState___str__(self)
4830 
4831  def __repr__(self):
4832  r"""__repr__(ScoreState self) -> std::string"""
4833  return _IMP_kernel.ScoreState___repr__(self)
4834 
4835  @staticmethod
4836  def get_from(o):
4837  return _object_cast_to_ScoreState(o)
4838 
4839 
4840  def do_show(self, out):
4841  pass
4842 
4843  @staticmethod
4844  def get_from(o):
4845  return _object_cast_to_ScoreState(o)
4846 
4847 
4848  def _wrap_jax(self, apply_func, keys=None):
4849  """Create the return value for _get_jax.
4850  Use this method in _get_jax() to wrap the JAX apply function
4851  with other model- and ScoreState-specific information.
4852 
4853  @param apply_func A function implemented using JAX that takes
4854  a single argument (the current JAX Model) and returns
4855  a new JAX Model with the ScoreState's transformation
4856  applied.
4857  @param keys If given, a set of IMP::Key objects describing Model
4858  attributes (other than xyz and radius) that the ScoreState
4859  uses.
4860  """
4861  from IMP._jax_util import JAXScoreStateInfo
4862  return JAXScoreStateInfo(m=self.get_model(), apply_func=apply_func,
4863  keys=keys)
4864 
4865  def _get_jax(self):
4866  """Return a JAX implementation of this ScoreState.
4867  Implement this method in a ScoreState subclass to provide
4868  an equivalent function using [JAX](https://docs.jax.dev/)
4869  that modifies the JAX Model. See also _wrap_jax.
4870  """
4871  if self.get_is_ignored_by_jax():
4872  return self._wrap_jax(lambda jm: jm)
4873  else:
4874  raise NotImplementedError(
4875  f"No JAX implementation for {self} ({type(self)})")
4876 
4877  def __disown__(self):
4878  self.this.disown()
4879  _IMP_kernel.disown_ScoreState(self)
4880  return weakref.proxy(self)
4881 
4882  def do_destroy(self):
4883  r"""do_destroy(ScoreState self)"""
4884  return _IMP_kernel.ScoreState_do_destroy(self)
4885 
4886  def do_get_inputs(self):
4887  r"""do_get_inputs(ScoreState self) -> IMP::ModelObjectsTemp"""
4888  return _IMP_kernel.ScoreState_do_get_inputs(self)
4889 
4890  def do_get_outputs(self):
4891  r"""do_get_outputs(ScoreState self) -> IMP::ModelObjectsTemp"""
4892  return _IMP_kernel.ScoreState_do_get_outputs(self)
4893 
4894  def do_get_interactions(self):
4895  r"""do_get_interactions(ScoreState self) -> IMP::ModelObjectsTemps"""
4896  return _IMP_kernel.ScoreState_do_get_interactions(self)
4897 
4898 # Register ScoreState in _IMP_kernel:
4899 _IMP_kernel.ScoreState_swigregister(ScoreState)
4900 
4901 def get_update_order(input):
4902  r"""get_update_order(IMP::ScoreStatesTemp input) -> IMP::ScoreStatesTemp"""
4903  return _IMP_kernel.get_update_order(input)
4904 class Constraint(ScoreState):
4905  r"""Proxy of C++ IMP::Constraint class."""
4906 
4907  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4908 
4909  def __init__(self, *args):
4910  r"""
4911  __init__(Constraint self, Model m, std::string name="Constraint %1%") -> Constraint
4912  __init__(Constraint self) -> Constraint
4913  """
4914  if self.__class__ == Constraint:
4915  _self = None
4916  else:
4917  _self = self
4918  _IMP_kernel.Constraint_swiginit(self, _IMP_kernel.new_Constraint(_self, *args))
4919 
4920  if self.__class__ != Constraint:
4921  _director_objects.register(self)
4922 
4923 
4924 
4925 
4926  def do_update_attributes(self):
4927  r"""do_update_attributes(Constraint self)"""
4928  return _IMP_kernel.Constraint_do_update_attributes(self)
4929 
4930  def do_update_derivatives(self, da):
4931  r"""do_update_derivatives(Constraint self, DerivativeAccumulator da)"""
4932  return _IMP_kernel.Constraint_do_update_derivatives(self, da)
4933 
4934  def do_before_evaluate(self):
4935  r"""do_before_evaluate(Constraint self)"""
4936  return _IMP_kernel.Constraint_do_before_evaluate(self)
4937 
4938  def do_after_evaluate(self, da):
4939  r"""do_after_evaluate(Constraint self, DerivativeAccumulator da)"""
4940  return _IMP_kernel.Constraint_do_after_evaluate(self, da)
4941  __swig_destroy__ = _IMP_kernel.delete_Constraint
4942 
4943  def __str__(self):
4944  r"""__str__(Constraint self) -> std::string"""
4945  return _IMP_kernel.Constraint___str__(self)
4946 
4947  def __repr__(self):
4948  r"""__repr__(Constraint self) -> std::string"""
4949  return _IMP_kernel.Constraint___repr__(self)
4950 
4951  @staticmethod
4952  def get_from(o):
4953  return _object_cast_to_Constraint(o)
4954 
4955 
4956  def do_show(self, out):
4957  pass
4958 
4959  @staticmethod
4960  def get_from(o):
4961  return _object_cast_to_Constraint(o)
4962 
4963  def __disown__(self):
4964  self.this.disown()
4965  _IMP_kernel.disown_Constraint(self)
4966  return weakref.proxy(self)
4967 
4968  def do_destroy(self):
4969  r"""do_destroy(Constraint self)"""
4970  return _IMP_kernel.Constraint_do_destroy(self)
4971 
4972  def do_get_inputs(self):
4973  r"""do_get_inputs(Constraint self) -> IMP::ModelObjectsTemp"""
4974  return _IMP_kernel.Constraint_do_get_inputs(self)
4975 
4976  def do_get_outputs(self):
4977  r"""do_get_outputs(Constraint self) -> IMP::ModelObjectsTemp"""
4978  return _IMP_kernel.Constraint_do_get_outputs(self)
4979 
4980  def do_get_interactions(self):
4981  r"""do_get_interactions(Constraint self) -> IMP::ModelObjectsTemps"""
4982  return _IMP_kernel.Constraint_do_get_interactions(self)
4983 
4984 # Register Constraint in _IMP_kernel:
4985 _IMP_kernel.Constraint_swigregister(Constraint)
4986 class Container(ModelObject):
4987  r"""Proxy of C++ IMP::Container class."""
4988 
4989  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4990 
4991  def __init__(self, *args):
4992  r"""
4993  __init__(Container self, Model m, std::string name="Container %1%") -> Container
4994  __init__(Container self) -> Container
4995  """
4996  if self.__class__ == Container:
4997  _self = None
4998  else:
4999  _self = self
5000  _IMP_kernel.Container_swiginit(self, _IMP_kernel.new_Container(_self, *args))
5001 
5002  if self.__class__ != Container:
5003  _director_objects.register(self)
5004 
5005 
5006 
5007 
5008  def do_get_contents_hash(self):
5009  r"""do_get_contents_hash(Container self) -> std::size_t"""
5010  return _IMP_kernel.Container_do_get_contents_hash(self)
5011 
5012  def get_all_possible_indexes(self):
5013  r"""get_all_possible_indexes(Container self) -> IMP::ParticleIndexes"""
5014  return _IMP_kernel.Container_get_all_possible_indexes(self)
5015 
5016  def get_contents_hash(self):
5017  r"""get_contents_hash(Container self) -> std::size_t"""
5018  return _IMP_kernel.Container_get_contents_hash(self)
5019 
5020  def do_get_outputs(self):
5021  r"""do_get_outputs(Container self) -> IMP::ModelObjectsTemp"""
5022  return _IMP_kernel.Container_do_get_outputs(self)
5023 
5024  def get_is_decomposable(self):
5025  r"""get_is_decomposable(Container self) -> bool"""
5026  return _IMP_kernel.Container_get_is_decomposable(self)
5027 
5028  def validate_readable(self):
5029  r"""validate_readable(Container self)"""
5030  return _IMP_kernel.Container_validate_readable(self)
5031 
5032  def validate_writable(self):
5033  r"""validate_writable(Container self)"""
5034  return _IMP_kernel.Container_validate_writable(self)
5035 
5036  def set_is_readable(self, tf):
5037  r"""set_is_readable(Container self, bool tf)"""
5038  return _IMP_kernel.Container_set_is_readable(self, tf)
5039 
5040  def set_is_writable(self, tf):
5041  r"""set_is_writable(Container self, bool tf)"""
5042  return _IMP_kernel.Container_set_is_writable(self, tf)
5043  __swig_destroy__ = _IMP_kernel.delete_Container
5044 
5045  def __str__(self):
5046  r"""__str__(Container self) -> std::string"""
5047  return _IMP_kernel.Container___str__(self)
5048 
5049  def __repr__(self):
5050  r"""__repr__(Container self) -> std::string"""
5051  return _IMP_kernel.Container___repr__(self)
5052 
5053  @staticmethod
5054  def get_from(o):
5055  return _object_cast_to_Container(o)
5056 
5057 
5058  def do_show(self, out):
5059  pass
5060 
5061  @staticmethod
5062  def get_from(o):
5063  return _object_cast_to_Container(o)
5064 
5065  def __disown__(self):
5066  self.this.disown()
5067  _IMP_kernel.disown_Container(self)
5068  return weakref.proxy(self)
5069 
5070  def do_destroy(self):
5071  r"""do_destroy(Container self)"""
5072  return _IMP_kernel.Container_do_destroy(self)
5073 
5074  def handle_set_has_required_score_states(self, arg0):
5075  r"""handle_set_has_required_score_states(Container self, bool arg0)"""
5076  return _IMP_kernel.Container_handle_set_has_required_score_states(self, arg0)
5077 
5078  def do_get_inputs(self):
5079  r"""do_get_inputs(Container self) -> IMP::ModelObjectsTemp"""
5080  return _IMP_kernel.Container_do_get_inputs(self)
5081 
5082  def do_get_interactions(self):
5083  r"""do_get_interactions(Container self) -> IMP::ModelObjectsTemps"""
5084  return _IMP_kernel.Container_do_get_interactions(self)
5085 
5086 # Register Container in _IMP_kernel:
5087 _IMP_kernel.Container_swigregister(Container)
5088 class RestraintInfo(Object):
5089  r"""Proxy of C++ IMP::RestraintInfo class."""
5090 
5091  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5092 
5093  def __init__(self, *args):
5094  r"""__init__(RestraintInfo self, std::string name="RestraintInfo %1%") -> RestraintInfo"""
5095  _IMP_kernel.RestraintInfo_swiginit(self, _IMP_kernel.new_RestraintInfo(*args))
5096 
5097  def clear(self):
5098  r"""clear(RestraintInfo self)"""
5099  return _IMP_kernel.RestraintInfo_clear(self)
5100 
5101  def add_int(self, key, value):
5102  r"""add_int(RestraintInfo self, std::string key, int value)"""
5103  return _IMP_kernel.RestraintInfo_add_int(self, key, value)
5104 
5105  def get_number_of_int(self):
5106  r"""get_number_of_int(RestraintInfo self) -> unsigned int"""
5107  return _IMP_kernel.RestraintInfo_get_number_of_int(self)
5108 
5109  def get_int_key(self, i):
5110  r"""get_int_key(RestraintInfo self, unsigned int i) -> std::string"""
5111  return _IMP_kernel.RestraintInfo_get_int_key(self, i)
5112 
5113  def get_int_value(self, i):
5114  r"""get_int_value(RestraintInfo self, unsigned int i) -> int"""
5115  return _IMP_kernel.RestraintInfo_get_int_value(self, i)
5116 
5117  def add_float(self, key, value):
5118  r"""add_float(RestraintInfo self, std::string key, double value)"""
5119  return _IMP_kernel.RestraintInfo_add_float(self, key, value)
5120 
5121  def get_number_of_float(self):
5122  r"""get_number_of_float(RestraintInfo self) -> unsigned int"""
5123  return _IMP_kernel.RestraintInfo_get_number_of_float(self)
5124 
5125  def get_float_key(self, i):
5126  r"""get_float_key(RestraintInfo self, unsigned int i) -> std::string"""
5127  return _IMP_kernel.RestraintInfo_get_float_key(self, i)
5128 
5129  def get_float_value(self, i):
5130  r"""get_float_value(RestraintInfo self, unsigned int i) -> double"""
5131  return _IMP_kernel.RestraintInfo_get_float_value(self, i)
5132 
5133  def add_string(self, key, value):
5134  r"""add_string(RestraintInfo self, std::string key, std::string value)"""
5135  return _IMP_kernel.RestraintInfo_add_string(self, key, value)
5136 
5137  def get_number_of_string(self):
5138  r"""get_number_of_string(RestraintInfo self) -> unsigned int"""
5139  return _IMP_kernel.RestraintInfo_get_number_of_string(self)
5140 
5141  def get_string_key(self, i):
5142  r"""get_string_key(RestraintInfo self, unsigned int i) -> std::string"""
5143  return _IMP_kernel.RestraintInfo_get_string_key(self, i)
5144 
5145  def get_string_value(self, i):
5146  r"""get_string_value(RestraintInfo self, unsigned int i) -> std::string"""
5147  return _IMP_kernel.RestraintInfo_get_string_value(self, i)
5148 
5149  def add_filename(self, key, value):
5150  r"""add_filename(RestraintInfo self, std::string key, std::string value)"""
5151  return _IMP_kernel.RestraintInfo_add_filename(self, key, value)
5152 
5153  def get_number_of_filename(self):
5154  r"""get_number_of_filename(RestraintInfo self) -> unsigned int"""
5155  return _IMP_kernel.RestraintInfo_get_number_of_filename(self)
5156 
5157  def get_filename_key(self, i):
5158  r"""get_filename_key(RestraintInfo self, unsigned int i) -> std::string"""
5159  return _IMP_kernel.RestraintInfo_get_filename_key(self, i)
5160 
5161  def get_filename_value(self, i):
5162  r"""get_filename_value(RestraintInfo self, unsigned int i) -> std::string"""
5163  return _IMP_kernel.RestraintInfo_get_filename_value(self, i)
5164 
5165  def add_floats(self, key, value):
5166  r"""add_floats(RestraintInfo self, std::string key, IMP::Floats value)"""
5167  return _IMP_kernel.RestraintInfo_add_floats(self, key, value)
5168 
5169  def get_number_of_floats(self):
5170  r"""get_number_of_floats(RestraintInfo self) -> unsigned int"""
5171  return _IMP_kernel.RestraintInfo_get_number_of_floats(self)
5172 
5173  def get_floats_key(self, i):
5174  r"""get_floats_key(RestraintInfo self, unsigned int i) -> std::string"""
5175  return _IMP_kernel.RestraintInfo_get_floats_key(self, i)
5176 
5177  def get_floats_value(self, i):
5178  r"""get_floats_value(RestraintInfo self, unsigned int i) -> IMP::Floats"""
5179  return _IMP_kernel.RestraintInfo_get_floats_value(self, i)
5180 
5181  def add_ints(self, key, value):
5182  r"""add_ints(RestraintInfo self, std::string key, IMP::Ints value)"""
5183  return _IMP_kernel.RestraintInfo_add_ints(self, key, value)
5184 
5185  def get_number_of_ints(self):
5186  r"""get_number_of_ints(RestraintInfo self) -> unsigned int"""
5187  return _IMP_kernel.RestraintInfo_get_number_of_ints(self)
5188 
5189  def get_ints_key(self, i):
5190  r"""get_ints_key(RestraintInfo self, unsigned int i) -> std::string"""
5191  return _IMP_kernel.RestraintInfo_get_ints_key(self, i)
5192 
5193  def get_ints_value(self, i):
5194  r"""get_ints_value(RestraintInfo self, unsigned int i) -> IMP::Ints"""
5195  return _IMP_kernel.RestraintInfo_get_ints_value(self, i)
5196 
5197  def add_strings(self, key, value):
5198  r"""add_strings(RestraintInfo self, std::string key, IMP::Strings value)"""
5199  return _IMP_kernel.RestraintInfo_add_strings(self, key, value)
5200 
5201  def get_number_of_strings(self):
5202  r"""get_number_of_strings(RestraintInfo self) -> unsigned int"""
5203  return _IMP_kernel.RestraintInfo_get_number_of_strings(self)
5204 
5205  def get_strings_key(self, i):
5206  r"""get_strings_key(RestraintInfo self, unsigned int i) -> std::string"""
5207  return _IMP_kernel.RestraintInfo_get_strings_key(self, i)
5208 
5209  def get_strings_value(self, i):
5210  r"""get_strings_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
5211  return _IMP_kernel.RestraintInfo_get_strings_value(self, i)
5212 
5213  def add_filenames(self, key, value):
5214  r"""add_filenames(RestraintInfo self, std::string key, IMP::Strings value)"""
5215  return _IMP_kernel.RestraintInfo_add_filenames(self, key, value)
5216 
5217  def get_number_of_filenames(self):
5218  r"""get_number_of_filenames(RestraintInfo self) -> unsigned int"""
5219  return _IMP_kernel.RestraintInfo_get_number_of_filenames(self)
5220 
5221  def get_filenames_key(self, i):
5222  r"""get_filenames_key(RestraintInfo self, unsigned int i) -> std::string"""
5223  return _IMP_kernel.RestraintInfo_get_filenames_key(self, i)
5224 
5225  def get_filenames_value(self, i):
5226  r"""get_filenames_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
5227  return _IMP_kernel.RestraintInfo_get_filenames_value(self, i)
5228 
5229  def add_particle_indexes(self, key, value):
5230  r"""add_particle_indexes(RestraintInfo self, std::string key, IMP::ParticleIndexes value)"""
5231  return _IMP_kernel.RestraintInfo_add_particle_indexes(self, key, value)
5232 
5233  def get_number_of_particle_indexes(self):
5234  r"""get_number_of_particle_indexes(RestraintInfo self) -> unsigned int"""
5235  return _IMP_kernel.RestraintInfo_get_number_of_particle_indexes(self)
5236 
5237  def get_particle_indexes_key(self, i):
5238  r"""get_particle_indexes_key(RestraintInfo self, unsigned int i) -> std::string"""
5239  return _IMP_kernel.RestraintInfo_get_particle_indexes_key(self, i)
5240 
5241  def get_particle_indexes_value(self, i):
5242  r"""get_particle_indexes_value(RestraintInfo self, unsigned int i) -> IMP::ParticleIndexes"""
5243  return _IMP_kernel.RestraintInfo_get_particle_indexes_value(self, i)
5244 
5245  def get_version_info(self):
5246  r"""get_version_info(RestraintInfo self) -> VersionInfo"""
5247  return _IMP_kernel.RestraintInfo_get_version_info(self)
5248  __swig_destroy__ = _IMP_kernel.delete_RestraintInfo
5249 
5250  def __str__(self):
5251  r"""__str__(RestraintInfo self) -> std::string"""
5252  return _IMP_kernel.RestraintInfo___str__(self)
5253 
5254  def __repr__(self):
5255  r"""__repr__(RestraintInfo self) -> std::string"""
5256  return _IMP_kernel.RestraintInfo___repr__(self)
5257 
5258  @staticmethod
5259  def get_from(o):
5260  return _object_cast_to_RestraintInfo(o)
5261 
5262 
5263 # Register RestraintInfo in _IMP_kernel:
5264 _IMP_kernel.RestraintInfo_swigregister(RestraintInfo)
5265 class Restraint(ModelObject):
5266  r"""Proxy of C++ IMP::Restraint class."""
5267 
5268  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5269 
5270  def __init__(self, *args):
5271  r"""
5272  __init__(Restraint self, Model m, std::string name) -> Restraint
5273  __init__(Restraint self) -> Restraint
5274  """
5275  if self.__class__ == Restraint:
5276  _self = None
5277  else:
5278  _self = self
5279  _IMP_kernel.Restraint_swiginit(self, _IMP_kernel.new_Restraint(_self, *args))
5280 
5281  if self.__class__ != Restraint:
5282  _director_objects.register(self)
5283 
5284 
5285 
5286 
5287  def get_score(self):
5288  r"""get_score(Restraint self) -> double"""
5289  return _IMP_kernel.Restraint_get_score(self)
5290 
5291  def evaluate(self, calc_derivs):
5292  r"""evaluate(Restraint self, bool calc_derivs) -> double"""
5293  return _IMP_kernel.Restraint_evaluate(self, calc_derivs)
5294 
5295  def evaluate_moved(self, calc_derivs, moved_pis, reset_pis):
5296  r"""evaluate_moved(Restraint self, bool calc_derivs, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5297  return _IMP_kernel.Restraint_evaluate_moved(self, calc_derivs, moved_pis, reset_pis)
5298 
5299  def evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max):
5300  r"""evaluate_moved_if_below(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5301  return _IMP_kernel.Restraint_evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max)
5302 
5303  def evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis):
5304  r"""evaluate_moved_if_good(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5305  return _IMP_kernel.Restraint_evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis)
5306 
5307  def evaluate_if_good(self, calc_derivatives):
5308  r"""evaluate_if_good(Restraint self, bool calc_derivatives) -> double"""
5309  return _IMP_kernel.Restraint_evaluate_if_good(self, calc_derivatives)
5310 
5311  def evaluate_if_below(self, calc_derivatives, max):
5312  r"""evaluate_if_below(Restraint self, bool calc_derivatives, double max) -> double"""
5313  return _IMP_kernel.Restraint_evaluate_if_below(self, calc_derivatives, max)
5314 
5315  def unprotected_evaluate(self, da):
5316  r"""unprotected_evaluate(Restraint self, DerivativeAccumulator da) -> double"""
5317  return _IMP_kernel.Restraint_unprotected_evaluate(self, da)
5318 
5319  def unprotected_evaluate_moved(self, da, moved_pis, reset_pis):
5320  r"""unprotected_evaluate_moved(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5321  return _IMP_kernel.Restraint_unprotected_evaluate_moved(self, da, moved_pis, reset_pis)
5322 
5323  def clear_moved_cache(self):
5324  r"""clear_moved_cache(Restraint self)"""
5325  return _IMP_kernel.Restraint_clear_moved_cache(self)
5326 
5327  def unprotected_evaluate_if_good(self, da, max):
5328  r"""unprotected_evaluate_if_good(Restraint self, DerivativeAccumulator da, double max) -> double"""
5329  return _IMP_kernel.Restraint_unprotected_evaluate_if_good(self, da, max)
5330 
5331  def unprotected_evaluate_if_below(self, da, max):
5332  r"""unprotected_evaluate_if_below(Restraint self, DerivativeAccumulator da, double max) -> double"""
5333  return _IMP_kernel.Restraint_unprotected_evaluate_if_below(self, da, max)
5334 
5335  def unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max):
5336  r"""unprotected_evaluate_moved_if_below(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5337  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max)
5338 
5339  def unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max):
5340  r"""unprotected_evaluate_moved_if_good(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5341  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max)
5342 
5343  def get_static_info(self):
5344  r"""get_static_info(Restraint self) -> RestraintInfo"""
5345  return _IMP_kernel.Restraint_get_static_info(self)
5346 
5347  def get_dynamic_info(self):
5348  r"""get_dynamic_info(Restraint self) -> RestraintInfo"""
5349  return _IMP_kernel.Restraint_get_dynamic_info(self)
5350 
5351  def add_score_and_derivatives(self, sa):
5352  r"""add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
5353  return _IMP_kernel.Restraint_add_score_and_derivatives(self, sa)
5354 
5355  def add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5356  r"""add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5357  return _IMP_kernel.Restraint_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5358 
5359  def create_decomposition(self):
5360  r"""create_decomposition(Restraint self) -> Restraint"""
5361  return _IMP_kernel.Restraint_create_decomposition(self)
5362 
5363  def create_current_decomposition(self):
5364  r"""create_current_decomposition(Restraint self) -> Restraint"""
5365  return _IMP_kernel.Restraint_create_current_decomposition(self)
5366 
5367  def set_weight(self, weight):
5368  r"""set_weight(Restraint self, IMP::Float weight)"""
5369  return _IMP_kernel.Restraint_set_weight(self, weight)
5370 
5371  def get_weight(self):
5372  r"""get_weight(Restraint self) -> IMP::Float"""
5373  return _IMP_kernel.Restraint_get_weight(self)
5374 
5375  def get_maximum_score(self):
5376  r"""get_maximum_score(Restraint self) -> double"""
5377  return _IMP_kernel.Restraint_get_maximum_score(self)
5378 
5379  def set_maximum_score(self, s):
5380  r"""set_maximum_score(Restraint self, double s)"""
5381  return _IMP_kernel.Restraint_set_maximum_score(self, s)
5382 
5383  def create_scoring_function(self, *args):
5384  r"""create_scoring_function(Restraint self, double weight=1.0, double max=NO_MAX) -> ScoringFunction"""
5385  return _IMP_kernel.Restraint_create_scoring_function(self, *args)
5386 
5387  def set_last_score(self, s):
5388  r"""set_last_score(Restraint self, double s)"""
5389  return _IMP_kernel.Restraint_set_last_score(self, s)
5390 
5391  def set_last_last_score(self, s):
5392  r"""set_last_last_score(Restraint self, double s)"""
5393  return _IMP_kernel.Restraint_set_last_last_score(self, s)
5394 
5395  def get_last_score(self):
5396  r"""get_last_score(Restraint self) -> double"""
5397  return _IMP_kernel.Restraint_get_last_score(self)
5398 
5399  def get_last_last_score(self):
5400  r"""get_last_last_score(Restraint self) -> double"""
5401  return _IMP_kernel.Restraint_get_last_last_score(self)
5402 
5403  def get_is_aggregate(self):
5404  r"""get_is_aggregate(Restraint self) -> bool"""
5405  return _IMP_kernel.Restraint_get_is_aggregate(self)
5406 
5407  def get_is_custom_reset(self):
5408  r"""get_is_custom_reset(Restraint self) -> bool"""
5409  return _IMP_kernel.Restraint_get_is_custom_reset(self)
5410 
5411  def get_was_good(self):
5412  r"""get_was_good(Restraint self) -> bool"""
5413  return _IMP_kernel.Restraint_get_was_good(self)
5414  __swig_destroy__ = _IMP_kernel.delete_Restraint
5415 
5416  def do_create_decomposition(self):
5417  r"""do_create_decomposition(Restraint self) -> IMP::Restraints"""
5418  return _IMP_kernel.Restraint_do_create_decomposition(self)
5419 
5420  def do_create_current_decomposition(self):
5421  r"""do_create_current_decomposition(Restraint self) -> IMP::Restraints"""
5422  return _IMP_kernel.Restraint_do_create_current_decomposition(self)
5423 
5424  def do_add_score_and_derivatives(self, sa):
5425  r"""do_add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
5426  return _IMP_kernel.Restraint_do_add_score_and_derivatives(self, sa)
5427 
5428  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5429  r"""do_add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5430  return _IMP_kernel.Restraint_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5431 
5432  def do_get_outputs(self):
5433  r"""do_get_outputs(Restraint self) -> IMP::ModelObjectsTemp"""
5434  return _IMP_kernel.Restraint_do_get_outputs(self)
5435  is_aggregate_ = property(_IMP_kernel.Restraint_is_aggregate__get, _IMP_kernel.Restraint_is_aggregate__set, doc=r"""is_aggregate_ : bool""")
5436  is_custom_reset_ = property(_IMP_kernel.Restraint_is_custom_reset__get, _IMP_kernel.Restraint_is_custom_reset__set, doc=r"""is_custom_reset_ : bool""")
5437 
5438  def __str__(self):
5439  r"""__str__(Restraint self) -> std::string"""
5440  return _IMP_kernel.Restraint___str__(self)
5441 
5442  def __repr__(self):
5443  r"""__repr__(Restraint self) -> std::string"""
5444  return _IMP_kernel.Restraint___repr__(self)
5445 
5446  @staticmethod
5447  def get_from(o):
5448  return _object_cast_to_Restraint(o)
5449 
5450 
5451  def do_show(self, out):
5452  pass
5453 
5454  @staticmethod
5455  def get_from(o):
5456  return _object_cast_to_Restraint(o)
5457 
5458 
5459  def _wrap_jax(self, score_func, keys=None):
5460  """Create the return value for _get_jax.
5461  Use this method in _get_jax() to wrap the JAX scoring function
5462  with other model- and restraint-specific information.
5463 
5464  @param score_func A function implemented using JAX that takes
5465  a single argument (the current JAX Model) and returns
5466  the score of the restraint.
5467  @param keys If given, a set of IMP::Key objects describing Model
5468  attributes (other than xyz and radius) that the restraint
5469  uses. For example, a restraint that uses electrostatic charge
5470  would pass IMP::atom::Charged::get_charge_key() here.
5471  """
5472  from IMP._jax_util import JAXRestraintInfo
5473  return JAXRestraintInfo(m=self.get_model(), score_func=score_func,
5474  weight=self.get_weight(), keys=keys)
5475 
5476  @classmethod
5477  def _wrap_jax_multiple(cls, restraint, score_func, keys=None):
5478  """Create the return value for _get_jax_multiple.
5479  This is similar to _wrap_jax but is used to handle the JAX scoring
5480  function for multiple restraints at once. It is designed to be
5481  called from the _get_jax_multiple class method (if implemented).
5482  _get_jax_multiple is called (typically by RestraintSet) once for
5483  each type of restraint, and is given a list of all restraints.
5484  It should return a list of JAX functions that score some of the
5485  restraints using _wrap_jax_multiple (or None), and a list of the
5486  remaining unhandled restraints.
5487 
5488  @param restraint Any one of the restraints that is being scored.
5489  @param score_func A function implemented using JAX that takes
5490  a single argument (the current JAX Model) and returns
5491  an array of scores (one per restraint). Note that this array
5492  should be weighted by the restraint weights; that is not
5493  done in this method.
5494  @param keys As for _wrap_jax().
5495  """
5496  from IMP._jax_util import JAXRestraintInfo
5497  return JAXRestraintInfo(m=restraint.get_model(), score_func=score_func,
5498  weight=1.0, keys=keys)
5499 
5500  def _get_jax(self, space):
5501  """Return a JAX implementation of this Restraint.
5502  Implement this method in a Restraint subclass to provide
5503  an equivalent function using [JAX](https://docs.jax.dev/)
5504  that scores the current JAX Model. See also _wrap_jax.
5505 
5506  @param space The space in which the restraint is evaluated
5507  (e.g. a periodic box). See IMP._jax_util.Space.
5508  """
5509  raise NotImplementedError(
5510  f"No JAX implementation for {self} ({type(self)})")
5511 
5512  def _evaluate_jax(self, space=None):
5513  """Similar to evaluate(False), but using JAX.
5514  This is intended to be useful for testing purposes. It will likely
5515  not be particularly fast as it will copy the IMP Model and
5516  jax.jit-compile the scoring function each time.
5517 
5518  @param space The space in which the restraint is evaluated
5519  (e.g. a periodic box). See IMP._jax_util.Space. If not
5520  specified, an unbounded (free) space is used.
5521  """
5522  import jax
5523  import IMP.jax
5524  ji = self._get_jax(space=space or IMP.jax.FreeSpace)
5525  jm = ji.get_jax_model()
5526  axes = jm.get_vmap_axes()
5527  if axes is None:
5528  j = jax.jit(ji.score_func)
5529  else:
5530  # Extend restraint to work on multiple attribute sets if necessary
5531  j = jax.jit(jax.vmap(ji.score_func, in_axes=(axes,)))
5532  return j(jm)
5533 
5534  def __disown__(self):
5535  self.this.disown()
5536  _IMP_kernel.disown_Restraint(self)
5537  return weakref.proxy(self)
5538 
5539  def do_destroy(self):
5540  r"""do_destroy(Restraint self)"""
5541  return _IMP_kernel.Restraint_do_destroy(self)
5542 
5543  def handle_set_has_required_score_states(self, arg0):
5544  r"""handle_set_has_required_score_states(Restraint self, bool arg0)"""
5545  return _IMP_kernel.Restraint_handle_set_has_required_score_states(self, arg0)
5546 
5547  def do_get_inputs(self):
5548  r"""do_get_inputs(Restraint self) -> IMP::ModelObjectsTemp"""
5549  return _IMP_kernel.Restraint_do_get_inputs(self)
5550 
5551  def do_get_interactions(self):
5552  r"""do_get_interactions(Restraint self) -> IMP::ModelObjectsTemps"""
5553  return _IMP_kernel.Restraint_do_get_interactions(self)
5554 
5555 # Register Restraint in _IMP_kernel:
5556 _IMP_kernel.Restraint_swigregister(Restraint)
5557 class _RestraintsAdaptor(_InputAdaptor):
5558  r"""Proxy of C++ IMP::RestraintsAdaptor class."""
5559 
5560  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5561  __repr__ = _swig_repr
5562 
5563  def __init__(self, *args):
5564  r"""
5565  __init__(_RestraintsAdaptor self) -> _RestraintsAdaptor
5566  __init__(_RestraintsAdaptor self, IMP::Restraints const & sf) -> _RestraintsAdaptor
5567  __init__(_RestraintsAdaptor self, IMP::RestraintsTemp const & sf) -> _RestraintsAdaptor
5568  __init__(_RestraintsAdaptor self, Restraint sf) -> _RestraintsAdaptor
5569  """
5570  _IMP_kernel._RestraintsAdaptor_swiginit(self, _IMP_kernel.new__RestraintsAdaptor(*args))
5571  __swig_destroy__ = _IMP_kernel.delete__RestraintsAdaptor
5572 
5573 # Register _RestraintsAdaptor in _IMP_kernel:
5574 _IMP_kernel._RestraintsAdaptor_swigregister(_RestraintsAdaptor)
5575 class RestraintSet(Restraint):
5576  r"""Proxy of C++ IMP::RestraintSet class."""
5577 
5578  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5579 
5580  def __init__(self, *args):
5581  r"""
5582  __init__(RestraintSet self, Model m, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5583  __init__(RestraintSet self, Model m, std::string const & name="RestraintSet %1%") -> RestraintSet
5584  __init__(RestraintSet self, IMP::RestraintsTemp const & rs, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5585  __init__(RestraintSet self) -> RestraintSet
5586  """
5587  if self.__class__ == RestraintSet:
5588  _self = None
5589  else:
5590  _self = self
5591  _IMP_kernel.RestraintSet_swiginit(self, _IMP_kernel.new_RestraintSet(_self, *args))
5592 
5593  if self.__class__ != RestraintSet:
5594  _director_objects.register(self)
5595 
5596 
5597 
5598 
5599  def unprotected_evaluate(self, da):
5600  r"""unprotected_evaluate(RestraintSet self, DerivativeAccumulator da) -> double"""
5601  return _IMP_kernel.RestraintSet_unprotected_evaluate(self, da)
5602 
5603  def get_type_name(self):
5604  r"""get_type_name(RestraintSet self) -> std::string"""
5605  return _IMP_kernel.RestraintSet_get_type_name(self)
5606 
5607  def get_version_info(self):
5608  r"""get_version_info(RestraintSet self) -> VersionInfo"""
5609  return _IMP_kernel.RestraintSet_get_version_info(self)
5610  __swig_destroy__ = _IMP_kernel.delete_RestraintSet
5611  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)
5612  def __set_restraints(self, obj): _list_util.set_varlist(self.restraints, obj)
5613  def __del_restraints(self): _list_util.del_varlist(self.restraints)
5614  restraints = property(__get_restraints, __set_restraints, __del_restraints, doc="List of ##ucnames")
5615 
5616  def remove_restraint(self, d):
5617  r"""remove_restraint(RestraintSet self, Restraint d)"""
5618  return _IMP_kernel.RestraintSet_remove_restraint(self, d)
5619 
5620  def _python_index_restraint(self, d, start, stop):
5621  r"""_python_index_restraint(RestraintSet self, Restraint d, unsigned int start, unsigned int stop) -> unsigned int"""
5622  return _IMP_kernel.RestraintSet__python_index_restraint(self, d, start, stop)
5623 
5624  def remove_restraints(self, d):
5625  r"""remove_restraints(RestraintSet self, IMP::Restraints const & d)"""
5626  return _IMP_kernel.RestraintSet_remove_restraints(self, d)
5627 
5628  def set_restraints(self, ps):
5629  r"""set_restraints(RestraintSet self, IMP::Restraints const & ps)"""
5630  return _IMP_kernel.RestraintSet_set_restraints(self, ps)
5631 
5632  def set_restraints_order(self, objs):
5633  r"""set_restraints_order(RestraintSet self, IMP::Restraints const & objs)"""
5634  return _IMP_kernel.RestraintSet_set_restraints_order(self, objs)
5635 
5636  def add_restraint(self, obj):
5637  r"""add_restraint(RestraintSet self, Restraint obj) -> unsigned int"""
5638  return _IMP_kernel.RestraintSet_add_restraint(self, obj)
5639 
5640  def add_restraints(self, objs):
5641  r"""add_restraints(RestraintSet self, IMP::Restraints const & objs)"""
5642  return _IMP_kernel.RestraintSet_add_restraints(self, objs)
5643 
5644  def clear_restraints(self):
5645  r"""clear_restraints(RestraintSet self)"""
5646  return _IMP_kernel.RestraintSet_clear_restraints(self)
5647 
5648  def get_number_of_restraints(self):
5649  r"""get_number_of_restraints(RestraintSet self) -> unsigned int"""
5650  return _IMP_kernel.RestraintSet_get_number_of_restraints(self)
5651 
5652  def get_has_restraints(self):
5653  r"""get_has_restraints(RestraintSet self) -> bool"""
5654  return _IMP_kernel.RestraintSet_get_has_restraints(self)
5655 
5656  def get_restraint(self, i):
5657  r"""get_restraint(RestraintSet self, unsigned int i) -> Restraint"""
5658  return _IMP_kernel.RestraintSet_get_restraint(self, i)
5659 
5660  def get_restraints(self):
5661  r"""get_restraints(RestraintSet self) -> IMP::Restraints"""
5662  return _IMP_kernel.RestraintSet_get_restraints(self)
5663 
5664  def erase_restraint(self, i):
5665  r"""erase_restraint(RestraintSet self, unsigned int i)"""
5666  return _IMP_kernel.RestraintSet_erase_restraint(self, i)
5667 
5668  def reserve_restraints(self, sz):
5669  r"""reserve_restraints(RestraintSet self, unsigned int sz)"""
5670  return _IMP_kernel.RestraintSet_reserve_restraints(self, sz)
5671 
5672  def get_non_sets_and_sets(self):
5673  r"""get_non_sets_and_sets(RestraintSet self) -> std::pair< IMP::RestraintsTemp,IMP::RestraintSetsTemp >"""
5674  return _IMP_kernel.RestraintSet_get_non_sets_and_sets(self)
5675 
5676  def do_get_inputs(self):
5677  r"""do_get_inputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5678  return _IMP_kernel.RestraintSet_do_get_inputs(self)
5679 
5680  def create_scoring_function(self, *args):
5681  r"""create_scoring_function(RestraintSet self, double weight=1.0, double max=std::numeric_limits< double >::max()) -> ScoringFunction"""
5682  return _IMP_kernel.RestraintSet_create_scoring_function(self, *args)
5683 
5684  def get_last_score(self):
5685  r"""get_last_score(RestraintSet self) -> double"""
5686  return _IMP_kernel.RestraintSet_get_last_score(self)
5687 
5688  def __str__(self):
5689  r"""__str__(RestraintSet self) -> std::string"""
5690  return _IMP_kernel.RestraintSet___str__(self)
5691 
5692  def __repr__(self):
5693  r"""__repr__(RestraintSet self) -> std::string"""
5694  return _IMP_kernel.RestraintSet___repr__(self)
5695 
5696  @staticmethod
5697  def get_from(o):
5698  return _object_cast_to_RestraintSet(o)
5699 
5700 
5701  def do_show(self, out):
5702  pass
5703 
5704  @staticmethod
5705  def get_from(o):
5706  return _object_cast_to_RestraintSet(o)
5707 
5708 
5709  def _get_as_binary(self):
5710  r"""_get_as_binary(RestraintSet self) -> PyObject *"""
5711  return _IMP_kernel.RestraintSet__get_as_binary(self)
5712 
5713  def _set_from_binary(self, p):
5714  r"""_set_from_binary(RestraintSet self, PyObject * p)"""
5715  return _IMP_kernel.RestraintSet__set_from_binary(self, p)
5716 
5717  def __getstate__(self):
5718  p = self._get_as_binary()
5719  if len(self.__dict__) > 1:
5720  d = self.__dict__.copy()
5721  del d['this']
5722  p = (d, p)
5723  return p
5724 
5725  def __setstate__(self, p):
5726  if not hasattr(self, 'this'):
5727  self.__init__()
5728  if isinstance(p, tuple):
5729  d, p = p
5730  self.__dict__.update(d)
5731  return self._set_from_binary(p)
5732 
5733 
5734  def _get_jax(self, space):
5735  import jax.numpy as jnp
5736  import IMP._jax_util
5737  restraints = [r.get_derived_object() for r in self.restraints]
5738  multi_funcs, funcs, keys = IMP._jax_util.get_restraints_jax_funcs_keys(
5739  restraints, space)
5740  def jax_sf(jm):
5741  if funcs or multi_funcs:
5742  rets = [f(jm) for f in multi_funcs]
5743  if funcs:
5744  rets.append(jnp.stack([f(jm) for f in funcs], axis=-1))
5745  scores = jnp.concatenate(rets, axis=-1)
5746  return jnp.sum(scores, axis=-1)
5747  else:
5748  # sum([]) returns int, but we must return float
5749  return 0.
5750  return self._wrap_jax(jax_sf, keys=keys)
5751 
5752  def __disown__(self):
5753  self.this.disown()
5754  _IMP_kernel.disown_RestraintSet(self)
5755  return weakref.proxy(self)
5756 
5757  def do_destroy(self):
5758  r"""do_destroy(RestraintSet self)"""
5759  return _IMP_kernel.RestraintSet_do_destroy(self)
5760 
5761  def handle_set_has_required_score_states(self, arg0):
5762  r"""handle_set_has_required_score_states(RestraintSet self, bool arg0)"""
5763  return _IMP_kernel.RestraintSet_handle_set_has_required_score_states(self, arg0)
5764 
5765  def do_get_outputs(self):
5766  r"""do_get_outputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5767  return _IMP_kernel.RestraintSet_do_get_outputs(self)
5768 
5769  def do_get_interactions(self):
5770  r"""do_get_interactions(RestraintSet self) -> IMP::ModelObjectsTemps"""
5771  return _IMP_kernel.RestraintSet_do_get_interactions(self)
5772 
5773  def do_create_decomposition(self):
5774  r"""do_create_decomposition(RestraintSet self) -> IMP::Restraints"""
5775  return _IMP_kernel.RestraintSet_do_create_decomposition(self)
5776 
5777  def do_create_current_decomposition(self):
5778  r"""do_create_current_decomposition(RestraintSet self) -> IMP::Restraints"""
5779  return _IMP_kernel.RestraintSet_do_create_current_decomposition(self)
5780 
5781  def do_add_score_and_derivatives(self, sa):
5782  r"""do_add_score_and_derivatives(RestraintSet self, ScoreAccumulator sa)"""
5783  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives(self, sa)
5784 
5785  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5786  r"""do_add_score_and_derivatives_moved(RestraintSet self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5787  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5788 
5789 # Register RestraintSet in _IMP_kernel:
5790 _IMP_kernel.RestraintSet_swigregister(RestraintSet)
5791 
5792 def get_restraints(rs):
5793  r"""get_restraints(IMP::RestraintsTemp const & rs) -> IMP::RestraintsTemp"""
5794  return _IMP_kernel.get_restraints(rs)
5795 
5796 def _check_particle(p, a):
5797  if (not p.get_is_active()):
5798  raise ValueError("Inactive Particle")
5799  if (type(a)() == a):
5800  raise IndexError("Cannot use default Index")
5801  if (not p.has_attribute(a)):
5802  raise IndexError("Particle does not have attribute")
5803 
5804 class Particle(ModelObject):
5805  r"""Proxy of C++ IMP::Particle class."""
5806 
5807  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5808 
5809  def get_version_info(self):
5810  r"""get_version_info(Particle self) -> VersionInfo"""
5811  return _IMP_kernel.Particle_get_version_info(self)
5812  __swig_destroy__ = _IMP_kernel.delete_Particle
5813 
5814  def __init__(self, *args):
5815  r"""
5816  __init__(Particle self, Model m, std::string name) -> Particle
5817  __init__(Particle self, Model m) -> Particle
5818  __init__(Particle self) -> Particle
5819  """
5820  _IMP_kernel.Particle_swiginit(self, _IMP_kernel.new_Particle(*args))
5821 
5822  def get_float_keys(self):
5823  r"""get_float_keys(Particle self) -> IMP::FloatKeys"""
5824  return _IMP_kernel.Particle_get_float_keys(self)
5825 
5826  def get_floats_keys(self):
5827  r"""get_floats_keys(Particle self) -> IMP::FloatsKeys"""
5828  return _IMP_kernel.Particle_get_floats_keys(self)
5829 
5830  def get_int_keys(self):
5831  r"""get_int_keys(Particle self) -> IMP::IntKeys"""
5832  return _IMP_kernel.Particle_get_int_keys(self)
5833 
5834  def get_ints_keys(self):
5835  r"""get_ints_keys(Particle self) -> IMP::IntsKeys"""
5836  return _IMP_kernel.Particle_get_ints_keys(self)
5837 
5838  def get_string_keys(self):
5839  r"""get_string_keys(Particle self) -> IMP::StringKeys"""
5840  return _IMP_kernel.Particle_get_string_keys(self)
5841 
5842  def get_object_keys(self):
5843  r"""get_object_keys(Particle self) -> IMP::ObjectKeys"""
5844  return _IMP_kernel.Particle_get_object_keys(self)
5845 
5846  def add_cache_attribute(self, *args):
5847  r"""
5848  add_cache_attribute(Particle self, FloatKey name, IMP::Float value)
5849  add_cache_attribute(Particle self, FloatsKey name, IMP::Floats value)
5850  add_cache_attribute(Particle self, IntKey name, IMP::Int value)
5851  add_cache_attribute(Particle self, IntsKey name, IMP::Ints value)
5852  add_cache_attribute(Particle self, StringKey name, IMP::String value)
5853  add_cache_attribute(Particle self, ObjectKey name, Object value)
5854  add_cache_attribute(Particle self, IMP::WeakObjectKey name, Object value)
5855  """
5856  return _IMP_kernel.Particle_add_cache_attribute(self, *args)
5857 
5858  def get_weak_object_keys(self):
5859  r"""get_weak_object_keys(Particle self) -> IMP::WeakObjectKeys"""
5860  return _IMP_kernel.Particle_get_weak_object_keys(self)
5861 
5862  def add_to_derivative(self, *args):
5863  r"""
5864  add_to_derivative(Particle self, FloatKey key, IMP::Float value, DerivativeAccumulator da)
5865  add_to_derivative(Particle self, Vector3DDerivKey key, Vector3D value, DerivativeAccumulator da)
5866  add_to_derivative(Particle self, Vector4DDerivKey key, Vector4D value, DerivativeAccumulator da)
5867  """
5868  return _IMP_kernel.Particle_add_to_derivative(self, *args)
5869 
5870  def set_is_optimized(self, *args):
5871  r"""
5872  set_is_optimized(Particle self, FloatKey k, bool tf)
5873  set_is_optimized(Particle self, Vector3DDerivKey k, bool tf)
5874  set_is_optimized(Particle self, Vector4DDerivKey k, bool tf)
5875  """
5876  return _IMP_kernel.Particle_set_is_optimized(self, *args)
5877 
5878  def get_is_optimized(self, *args):
5879  r"""
5880  get_is_optimized(Particle self, FloatKey k) -> bool
5881  get_is_optimized(Particle self, Vector3DDerivKey k) -> bool
5882  get_is_optimized(Particle self, Vector4DDerivKey k) -> bool
5883  """
5884  return _IMP_kernel.Particle_get_is_optimized(self, *args)
5885 
5886  def get_derivative(self, *args):
5887  r"""
5888  get_derivative(Particle self, FloatKey k) -> IMP::Float
5889  get_derivative(Particle self, Vector3DDerivKey k) -> Vector3D
5890  get_derivative(Particle self, Vector4DDerivKey k) -> Vector4D
5891  """
5892  return _IMP_kernel.Particle_get_derivative(self, *args)
5893 
5894  def add_attribute(self, *args):
5895  r"""
5896  add_attribute(Particle self, FloatKey name, IMP::Float initial_value)
5897  add_attribute(Particle self, FloatsKey name, IMP::Floats initial_value)
5898  add_attribute(Particle self, IntKey name, IMP::Int initial_value)
5899  add_attribute(Particle self, IntsKey name, IMP::Ints initial_value)
5900  add_attribute(Particle self, StringKey name, IMP::String initial_value)
5901  add_attribute(Particle self, ObjectKey name, Object initial_value)
5902  add_attribute(Particle self, IMP::WeakObjectKey name, Object initial_value)
5903  add_attribute(Particle self, SparseStringKey name, IMP::String initial_value)
5904  add_attribute(Particle self, SparseIntKey name, IMP::Int initial_value)
5905  add_attribute(Particle self, SparseFloatKey name, IMP::Float initial_value)
5906  add_attribute(Particle self, SparseParticleIndexKey name, ParticleIndex initial_value)
5907  add_attribute(Particle self, FloatKey name, IMP::Float const initial_value, bool optimized)
5908  add_attribute(Particle self, ParticleIndexKey k, Particle v)
5909  """
5910  return _IMP_kernel.Particle_add_attribute(self, *args)
5911 
5912  def has_attribute(self, *args):
5913  r"""
5914  has_attribute(Particle self, FloatKey name) -> bool
5915  has_attribute(Particle self, FloatsKey name) -> bool
5916  has_attribute(Particle self, IntKey name) -> bool
5917  has_attribute(Particle self, IntsKey name) -> bool
5918  has_attribute(Particle self, StringKey name) -> bool
5919  has_attribute(Particle self, ObjectKey name) -> bool
5920  has_attribute(Particle self, IMP::WeakObjectKey name) -> bool
5921  has_attribute(Particle self, SparseStringKey name) -> bool
5922  has_attribute(Particle self, SparseIntKey name) -> bool
5923  has_attribute(Particle self, SparseFloatKey name) -> bool
5924  has_attribute(Particle self, SparseParticleIndexKey name) -> bool
5925  has_attribute(Particle self, ParticleIndexKey k) -> bool
5926  """
5927  return _IMP_kernel.Particle_has_attribute(self, *args)
5928 
5929  def set_value(self, *args):
5930  r"""
5931  set_value(Particle self, FloatKey name, IMP::Float value)
5932  set_value(Particle self, FloatsKey name, IMP::Floats value)
5933  set_value(Particle self, IntKey name, IMP::Int value)
5934  set_value(Particle self, IntsKey name, IMP::Ints value)
5935  set_value(Particle self, StringKey name, IMP::String value)
5936  set_value(Particle self, ObjectKey name, Object value)
5937  set_value(Particle self, IMP::WeakObjectKey name, Object value)
5938  set_value(Particle self, SparseStringKey name, IMP::String value)
5939  set_value(Particle self, SparseIntKey name, IMP::Int value)
5940  set_value(Particle self, SparseFloatKey name, IMP::Float value)
5941  set_value(Particle self, SparseParticleIndexKey name, ParticleIndex value)
5942  set_value(Particle self, ParticleIndexKey k, Particle v)
5943  """
5944  return _IMP_kernel.Particle_set_value(self, *args)
5945 
5946  def get_value(self, *args):
5947  r"""
5948  get_value(Particle self, FloatKey name) -> IMP::Float
5949  get_value(Particle self, FloatsKey name) -> IMP::Floats
5950  get_value(Particle self, IntKey name) -> IMP::Int
5951  get_value(Particle self, IntsKey name) -> IMP::Ints
5952  get_value(Particle self, StringKey name) -> IMP::String
5953  get_value(Particle self, ObjectKey name) -> Object
5954  get_value(Particle self, IMP::WeakObjectKey name) -> Object
5955  get_value(Particle self, SparseStringKey name) -> IMP::String
5956  get_value(Particle self, SparseIntKey name) -> IMP::Int
5957  get_value(Particle self, SparseFloatKey name) -> IMP::Float
5958  get_value(Particle self, SparseParticleIndexKey name) -> ParticleIndex
5959  get_value(Particle self, ParticleIndexKey k) -> Particle
5960  """
5961  return _IMP_kernel.Particle_get_value(self, *args)
5962 
5963  def remove_attribute(self, *args):
5964  r"""
5965  remove_attribute(Particle self, FloatKey name)
5966  remove_attribute(Particle self, FloatsKey name)
5967  remove_attribute(Particle self, IntKey name)
5968  remove_attribute(Particle self, IntsKey name)
5969  remove_attribute(Particle self, StringKey name)
5970  remove_attribute(Particle self, ObjectKey name)
5971  remove_attribute(Particle self, IMP::WeakObjectKey name)
5972  remove_attribute(Particle self, SparseStringKey name)
5973  remove_attribute(Particle self, SparseIntKey name)
5974  remove_attribute(Particle self, SparseFloatKey name)
5975  remove_attribute(Particle self, SparseParticleIndexKey name)
5976  remove_attribute(Particle self, ParticleIndexKey k)
5977  """
5978  return _IMP_kernel.Particle_remove_attribute(self, *args)
5979 
5980  def get_particle_keys(self):
5981  r"""get_particle_keys(Particle self) -> IMP::ParticleIndexKeys"""
5982  return _IMP_kernel.Particle_get_particle_keys(self)
5983 
5984  def show(self, *args):
5985  r"""show(Particle self, _ostream out=std::cout)"""
5986  return _IMP_kernel.Particle_show(self, *args)
5987 
5988  def get_is_active(self):
5989  r"""get_is_active(Particle self) -> bool"""
5990  return _IMP_kernel.Particle_get_is_active(self)
5991 
5992  def get_index(self):
5993  r"""get_index(Particle self) -> ParticleIndex"""
5994  return _IMP_kernel.Particle_get_index(self)
5995 
5996  def __eq__(self, *args):
5997  r"""
5998  __eq__(Particle self, Particle o) -> bool
5999  __eq__(Particle self, Decorator d) -> bool
6000  """
6001  return _IMP_kernel.Particle___eq__(self, *args)
6002 
6003  def __ne__(self, *args):
6004  r"""
6005  __ne__(Particle self, Particle o) -> bool
6006  __ne__(Particle self, Decorator d) -> bool
6007  """
6008  return _IMP_kernel.Particle___ne__(self, *args)
6009 
6010  def __le__(self, *args):
6011  r"""
6012  __le__(Particle self, Particle o) -> bool
6013  __le__(Particle self, Decorator d) -> bool
6014  """
6015  return _IMP_kernel.Particle___le__(self, *args)
6016 
6017  def __lt__(self, *args):
6018  r"""
6019  __lt__(Particle self, Particle o) -> bool
6020  __lt__(Particle self, Decorator d) -> bool
6021  """
6022  return _IMP_kernel.Particle___lt__(self, *args)
6023 
6024  def __ge__(self, *args):
6025  r"""
6026  __ge__(Particle self, Particle o) -> bool
6027  __ge__(Particle self, Decorator d) -> bool
6028  """
6029  return _IMP_kernel.Particle___ge__(self, *args)
6030 
6031  def __gt__(self, *args):
6032  r"""
6033  __gt__(Particle self, Particle o) -> bool
6034  __gt__(Particle self, Decorator d) -> bool
6035  """
6036  return _IMP_kernel.Particle___gt__(self, *args)
6037 
6038  __hash__ = ModelObject.__hash__
6039 
6040 
6041  def __str__(self):
6042  r"""__str__(Particle self) -> std::string"""
6043  return _IMP_kernel.Particle___str__(self)
6044 
6045  def __repr__(self):
6046  r"""__repr__(Particle self) -> std::string"""
6047  return _IMP_kernel.Particle___repr__(self)
6048 
6049  @staticmethod
6050  def get_from(o):
6051  return _object_cast_to_Particle(o)
6052 
6053 
6054  def _get_as_binary(self):
6055  r"""_get_as_binary(Particle self) -> PyObject *"""
6056  return _IMP_kernel.Particle__get_as_binary(self)
6057 
6058  def _set_from_binary(self, p):
6059  r"""_set_from_binary(Particle self, PyObject * p)"""
6060  return _IMP_kernel.Particle__set_from_binary(self, p)
6061 
6062  def __getstate__(self):
6063  p = self._get_as_binary()
6064  if len(self.__dict__) > 1:
6065  d = self.__dict__.copy()
6066  del d['this']
6067  p = (d, p)
6068  return p
6069 
6070  def __setstate__(self, p):
6071  if not hasattr(self, 'this'):
6072  self.__init__()
6073  if isinstance(p, tuple):
6074  d, p = p
6075  self.__dict__.update(d)
6076  return self._set_from_binary(p)
6077 
6078 
6079 # Register Particle in _IMP_kernel:
6080 _IMP_kernel.Particle_swigregister(Particle)
6081 class _ParticleAdaptor(_InputAdaptor):
6082  r"""Proxy of C++ IMP::ParticleAdaptor class."""
6083 
6084  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6085  __repr__ = _swig_repr
6086 
6087  def __init__(self, *args):
6088  r"""
6089  __init__(_ParticleAdaptor self) -> _ParticleAdaptor
6090  __init__(_ParticleAdaptor self, Particle p) -> _ParticleAdaptor
6091  __init__(_ParticleAdaptor self, Decorator d) -> _ParticleAdaptor
6092  """
6093  _IMP_kernel._ParticleAdaptor_swiginit(self, _IMP_kernel.new__ParticleAdaptor(*args))
6094 
6095  def get_model(self):
6096  r"""get_model(_ParticleAdaptor self) -> Model"""
6097  return _IMP_kernel._ParticleAdaptor_get_model(self)
6098 
6099  def get_particle_index(self):
6100  r"""get_particle_index(_ParticleAdaptor self) -> ParticleIndex"""
6101  return _IMP_kernel._ParticleAdaptor_get_particle_index(self)
6102  __swig_destroy__ = _IMP_kernel.delete__ParticleAdaptor
6103 
6104 # Register _ParticleAdaptor in _IMP_kernel:
6105 _IMP_kernel._ParticleAdaptor_swigregister(_ParticleAdaptor)
6106 class _DependencyGraphVertexIndex(object):
6107  r"""Proxy of C++ IMP::DependencyGraphVertexIndex class."""
6108 
6109  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6110  __repr__ = _swig_repr
6111 
6112  def __init__(self):
6113  r"""__init__(_DependencyGraphVertexIndex self) -> _DependencyGraphVertexIndex"""
6114  _IMP_kernel._DependencyGraphVertexIndex_swiginit(self, _IMP_kernel.new__DependencyGraphVertexIndex())
6115  __swig_destroy__ = _IMP_kernel.delete__DependencyGraphVertexIndex
6116 
6117 # Register _DependencyGraphVertexIndex in _IMP_kernel:
6118 _IMP_kernel._DependencyGraphVertexIndex_swigregister(_DependencyGraphVertexIndex)
6119 
6120 def show_as_graphviz(name, out):
6121  r"""show_as_graphviz(IMP::DependencyGraph const & name, TextOutput out)"""
6122  return _IMP_kernel.show_as_graphviz(name, out)
6123 
6124 def get_vertex_index(g):
6125  r"""get_vertex_index(IMP::DependencyGraph const & g) -> _DependencyGraphVertexIndex"""
6126  return _IMP_kernel.get_vertex_index(g)
6127 
6128 def get_dependency_graph(m):
6129  r"""get_dependency_graph(Model m) -> IMP::DependencyGraph"""
6130  return _IMP_kernel.get_dependency_graph(m)
6131 
6133  r"""get_pruned_dependency_graph(Model m) -> IMP::DependencyGraph"""
6134  return _IMP_kernel.get_pruned_dependency_graph(m)
6135 
6136 def get_dependent_particles(p, all, dg, index):
6137  r"""get_dependent_particles(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ParticlesTemp"""
6138  return _IMP_kernel.get_dependent_particles(p, all, dg, index)
6139 
6140 def get_required_score_states(*args):
6141  r"""
6142  get_required_score_states(IMP::ModelObjectsTemp const & mos, IMP::ScoreStatesTemp exclude=IMP::ScoreStatesTemp()) -> IMP::ScoreStatesTemp
6143  get_required_score_states(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ScoreStatesTemp
6144  get_required_score_states(Model m, ParticleIndex pi) -> IMP::ScoreStatesTemp
6145  """
6146  return _IMP_kernel.get_required_score_states(*args)
6147 class ScoringFunction(ModelObject):
6148  r"""Proxy of C++ IMP::ScoringFunction class."""
6149 
6150  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6151 
6152  def do_add_score_and_derivatives(self, sa, ss):
6153  r"""do_add_score_and_derivatives(ScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
6154  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives(self, sa, ss)
6155 
6156  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
6157  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)"""
6158  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
6159 
6160  def get_score_accumulator_if_below(self, deriv, max):
6161  r"""get_score_accumulator_if_below(ScoringFunction self, bool deriv, double max) -> ScoreAccumulator"""
6162  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_below(self, deriv, max)
6163 
6164  def get_score_accumulator_if_good(self, deriv):
6165  r"""get_score_accumulator_if_good(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6166  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_good(self, deriv)
6167 
6168  def get_score_accumulator(self, deriv):
6169  r"""get_score_accumulator(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6170  return _IMP_kernel.ScoringFunction_get_score_accumulator(self, deriv)
6171 
6172  def __init__(self, *args):
6173  r"""
6174  __init__(ScoringFunction self, Model m, std::string name) -> ScoringFunction
6175  __init__(ScoringFunction self) -> ScoringFunction
6176  """
6177  if self.__class__ == ScoringFunction:
6178  _self = None
6179  else:
6180  _self = self
6181  _IMP_kernel.ScoringFunction_swiginit(self, _IMP_kernel.new_ScoringFunction(_self, *args))
6182 
6183  if self.__class__ != ScoringFunction:
6184  _director_objects.register(self)
6185 
6186 
6187 
6188 
6189  def do_get_outputs(self):
6190  r"""do_get_outputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6191  return _IMP_kernel.ScoringFunction_do_get_outputs(self)
6192 
6193  def evaluate(self, derivatives):
6194  r"""evaluate(ScoringFunction self, bool derivatives) -> double"""
6195  return _IMP_kernel.ScoringFunction_evaluate(self, derivatives)
6196 
6197  def evaluate_if_good(self, derivatives):
6198  r"""evaluate_if_good(ScoringFunction self, bool derivatives) -> double"""
6199  return _IMP_kernel.ScoringFunction_evaluate_if_good(self, derivatives)
6200 
6201  def evaluate_if_below(self, derivatives, max):
6202  r"""evaluate_if_below(ScoringFunction self, bool derivatives, double max) -> double"""
6203  return _IMP_kernel.ScoringFunction_evaluate_if_below(self, derivatives, max)
6204 
6205  def evaluate_moved(self, derivatives, moved_pis, reset_pis):
6206  r"""evaluate_moved(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6207  return _IMP_kernel.ScoringFunction_evaluate_moved(self, derivatives, moved_pis, reset_pis)
6208 
6209  def evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max):
6210  r"""evaluate_moved_if_below(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
6211  return _IMP_kernel.ScoringFunction_evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max)
6212 
6213  def evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis):
6214  r"""evaluate_moved_if_good(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6215  return _IMP_kernel.ScoringFunction_evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis)
6216 
6217  def clear_moved_cache(self):
6218  r"""clear_moved_cache(ScoringFunction self)"""
6219  return _IMP_kernel.ScoringFunction_clear_moved_cache(self)
6220 
6221  def get_had_good_score(self):
6222  r"""get_had_good_score(ScoringFunction self) -> bool"""
6223  return _IMP_kernel.ScoringFunction_get_had_good_score(self)
6224 
6225  def get_last_score(self):
6226  r"""get_last_score(ScoringFunction self) -> double"""
6227  return _IMP_kernel.ScoringFunction_get_last_score(self)
6228 
6229  def create_restraints(self):
6230  r"""create_restraints(ScoringFunction self) -> IMP::Restraints"""
6231  return _IMP_kernel.ScoringFunction_create_restraints(self)
6232 
6233  def get_single_restraint(self):
6234  r"""get_single_restraint(ScoringFunction self) -> Restraint"""
6235  return _IMP_kernel.ScoringFunction_get_single_restraint(self)
6236 
6237  def __str__(self):
6238  r"""__str__(ScoringFunction self) -> std::string"""
6239  return _IMP_kernel.ScoringFunction___str__(self)
6240 
6241  def __repr__(self):
6242  r"""__repr__(ScoringFunction self) -> std::string"""
6243  return _IMP_kernel.ScoringFunction___repr__(self)
6244 
6245  @staticmethod
6246  def get_from(o):
6247  return _object_cast_to_ScoringFunction(o)
6248 
6249 
6250  def do_show(self, out):
6251  pass
6252 
6253  @staticmethod
6254  def get_from(o):
6255  return _object_cast_to_ScoringFunction(o)
6256 
6257 
6258  def _get_jax(self, space=None):
6259  import IMP.jax
6260  space = space or IMP.jax.FreeSpace
6261  r = self.get_single_restraint()
6262  if r is None:
6263  raise NotImplementedError(
6264  f"No JAX implementation for {self} ({type(self)})")
6265  else:
6266  return r.get_derived_object()._get_jax(space)
6267 
6268  def _evaluate_jax(self, space=None):
6269  """Similar to evaluate(False), but using JAX.
6270  This is intended to be useful for testing purposes. It will likely
6271  not be particularly fast as it will copy the IMP Model and
6272  jax.jit-compile the scoring function each time.
6273 
6274  @param space The space in which the scoring function is evaluated
6275  (e.g. a periodic box). See IMP._jax_util.Space. If not
6276  specified, an unbounded (free) space is used.
6277  """
6278  import jax
6279  ji = self._get_jax(space)
6280  jm = ji.get_jax_model()
6281  axes = jm.get_vmap_axes()
6282  if axes is None:
6283  j = jax.jit(ji.score_func)
6284  else:
6285  # Extend scoring function to work on multiple attribute
6286  # sets if necessary
6287  j = jax.jit(jax.vmap(ji.score_func, in_axes=(axes,)))
6288  return j(jm)
6289 
6290  __swig_destroy__ = _IMP_kernel.delete_ScoringFunction
6291  def __disown__(self):
6292  self.this.disown()
6293  _IMP_kernel.disown_ScoringFunction(self)
6294  return weakref.proxy(self)
6295 
6296  def do_destroy(self):
6297  r"""do_destroy(ScoringFunction self)"""
6298  return _IMP_kernel.ScoringFunction_do_destroy(self)
6299 
6300  def handle_set_has_required_score_states(self, arg0):
6301  r"""handle_set_has_required_score_states(ScoringFunction self, bool arg0)"""
6302  return _IMP_kernel.ScoringFunction_handle_set_has_required_score_states(self, arg0)
6303 
6304  def do_get_inputs(self):
6305  r"""do_get_inputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6306  return _IMP_kernel.ScoringFunction_do_get_inputs(self)
6307 
6308  def do_get_interactions(self):
6309  r"""do_get_interactions(ScoringFunction self) -> IMP::ModelObjectsTemps"""
6310  return _IMP_kernel.ScoringFunction_do_get_interactions(self)
6311 
6312 # Register ScoringFunction in _IMP_kernel:
6313 _IMP_kernel.ScoringFunction_swigregister(ScoringFunction)
6314 
6315 def create_decomposition(*args):
6316  r"""
6317  create_decomposition(IMP::RestraintsTemp const & rs) -> IMP::Restraints
6318  create_decomposition(ScoringFunction sf) -> IMP::ScoringFunctions
6319  """
6320  return _IMP_kernel.create_decomposition(*args)
6321 class _ScoringFunctionAdaptor(_InputAdaptor):
6322  r"""Proxy of C++ IMP::ScoringFunctionAdaptor class."""
6323 
6324  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6325  __repr__ = _swig_repr
6326 
6327  def __init__(self, *args):
6328  r"""
6329  __init__(_ScoringFunctionAdaptor self) -> _ScoringFunctionAdaptor
6330  __init__(_ScoringFunctionAdaptor self, ScoringFunction sf) -> _ScoringFunctionAdaptor
6331  __init__(_ScoringFunctionAdaptor self, IMP::RestraintsTemp const & sf) -> _ScoringFunctionAdaptor
6332  __init__(_ScoringFunctionAdaptor self, IMP::Restraints const & sf) -> _ScoringFunctionAdaptor
6333  __init__(_ScoringFunctionAdaptor self, Restraint sf) -> _ScoringFunctionAdaptor
6334  """
6335  _IMP_kernel._ScoringFunctionAdaptor_swiginit(self, _IMP_kernel.new__ScoringFunctionAdaptor(*args))
6336  __swig_destroy__ = _IMP_kernel.delete__ScoringFunctionAdaptor
6337 
6338 # Register _ScoringFunctionAdaptor in _IMP_kernel:
6339 _IMP_kernel._ScoringFunctionAdaptor_swigregister(_ScoringFunctionAdaptor)
6340 
6341 def show_restraint_hierarchy(*args):
6342  r"""show_restraint_hierarchy(_ScoringFunctionAdaptor rs, _ostream out=std::cout)"""
6343  return _IMP_kernel.show_restraint_hierarchy(*args)
6344 class Undecorator(Object):
6345  r"""Proxy of C++ IMP::Undecorator class."""
6346 
6347  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6348 
6349  def __init__(self, m, name):
6350  r"""__init__(Undecorator self, Model m, std::string name) -> Undecorator"""
6351  if self.__class__ == Undecorator:
6352  _self = None
6353  else:
6354  _self = self
6355  _IMP_kernel.Undecorator_swiginit(self, _IMP_kernel.new_Undecorator(_self, m, name))
6356 
6357  if self.__class__ != Undecorator:
6358  _director_objects.register(self)
6359 
6360 
6361 
6362 
6363  def teardown(self, pi):
6364  r"""teardown(Undecorator self, ParticleIndex pi)"""
6365  return _IMP_kernel.Undecorator_teardown(self, pi)
6366 
6367  def __str__(self):
6368  r"""__str__(Undecorator self) -> std::string"""
6369  return _IMP_kernel.Undecorator___str__(self)
6370 
6371  def __repr__(self):
6372  r"""__repr__(Undecorator self) -> std::string"""
6373  return _IMP_kernel.Undecorator___repr__(self)
6374 
6375  @staticmethod
6376  def get_from(o):
6377  return _object_cast_to_Undecorator(o)
6378 
6379 
6380  def do_show(self, out):
6381  pass
6382 
6383  @staticmethod
6384  def get_from(o):
6385  return _object_cast_to_Undecorator(o)
6386 
6387  __swig_destroy__ = _IMP_kernel.delete_Undecorator
6388  def __disown__(self):
6389  self.this.disown()
6390  _IMP_kernel.disown_Undecorator(self)
6391  return weakref.proxy(self)
6392 
6393  def do_destroy(self):
6394  r"""do_destroy(Undecorator self)"""
6395  return _IMP_kernel.Undecorator_do_destroy(self)
6396 
6397 # Register Undecorator in _IMP_kernel:
6398 _IMP_kernel.Undecorator_swigregister(Undecorator)
6399 class Model(Object):
6400  r"""Proxy of C++ IMP::Model class."""
6401 
6402  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6403 
6404  def __init__(self, *args):
6405  r"""__init__(Model self, std::string name="Model %1%") -> Model"""
6406  _IMP_kernel.Model_swiginit(self, _IMP_kernel.new_Model(*args))
6407 
6408  if self not in _models_set:
6409  _models_set.add(self)
6410 
6411 
6412 
6413 
6414  def clear_particle_caches(self, pi):
6415  r"""clear_particle_caches(Model self, ParticleIndex pi)"""
6416  return _IMP_kernel.Model_clear_particle_caches(self, pi)
6417 
6418  def add_particle(self, name):
6419  r"""add_particle(Model self, std::string name) -> ParticleIndex"""
6420  return _IMP_kernel.Model_add_particle(self, name)
6421 
6422  def get_particle_name(self, pi):
6423  r"""get_particle_name(Model self, ParticleIndex pi) -> std::string"""
6424  return _IMP_kernel.Model_get_particle_name(self, pi)
6425 
6426  def add_undecorator(self, pi, d):
6427  r"""add_undecorator(Model self, ParticleIndex pi, Undecorator d)"""
6428  return _IMP_kernel.Model_add_undecorator(self, pi, d)
6429 
6430  def get_dependent_restraints_uncached(self, pi):
6431  r"""get_dependent_restraints_uncached(Model self, ParticleIndex pi) -> IMP::RestraintsTemp"""
6432  return _IMP_kernel.Model_get_dependent_restraints_uncached(self, pi)
6433 
6434  def get_dependent_particles_uncached(self, pi):
6435  r"""get_dependent_particles_uncached(Model self, ParticleIndex pi) -> IMP::ParticlesTemp"""
6436  return _IMP_kernel.Model_get_dependent_particles_uncached(self, pi)
6437 
6438  def get_dependent_score_states_uncached(self, pi):
6439  r"""get_dependent_score_states_uncached(Model self, ParticleIndex pi) -> IMP::ScoreStatesTemp"""
6440  return _IMP_kernel.Model_get_dependent_score_states_uncached(self, pi)
6441  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)
6442  def __set_score_states(self, obj): _list_util.set_varlist(self.score_states, obj)
6443  def __del_score_states(self): _list_util.del_varlist(self.score_states)
6444  score_states = property(__get_score_states, __set_score_states, __del_score_states, doc="List of ##ucnames")
6445 
6446  def remove_score_state(self, d):
6447  r"""remove_score_state(Model self, ScoreState d)"""
6448  return _IMP_kernel.Model_remove_score_state(self, d)
6449 
6450  def _python_index_score_state(self, d, start, stop):
6451  r"""_python_index_score_state(Model self, ScoreState d, unsigned int start, unsigned int stop) -> unsigned int"""
6452  return _IMP_kernel.Model__python_index_score_state(self, d, start, stop)
6453 
6454  def remove_score_states(self, d):
6455  r"""remove_score_states(Model self, IMP::ScoreStates const & d)"""
6456  return _IMP_kernel.Model_remove_score_states(self, d)
6457 
6458  def set_score_states(self, ps):
6459  r"""set_score_states(Model self, IMP::ScoreStates const & ps)"""
6460  return _IMP_kernel.Model_set_score_states(self, ps)
6461 
6462  def set_score_states_order(self, objs):
6463  r"""set_score_states_order(Model self, IMP::ScoreStates const & objs)"""
6464  return _IMP_kernel.Model_set_score_states_order(self, objs)
6465 
6466  def add_score_state(self, obj):
6467  r"""add_score_state(Model self, ScoreState obj) -> unsigned int"""
6468  return _IMP_kernel.Model_add_score_state(self, obj)
6469 
6470  def add_score_states(self, objs):
6471  r"""add_score_states(Model self, IMP::ScoreStates const & objs)"""
6472  return _IMP_kernel.Model_add_score_states(self, objs)
6473 
6474  def clear_score_states(self):
6475  r"""clear_score_states(Model self)"""
6476  return _IMP_kernel.Model_clear_score_states(self)
6477 
6478  def get_number_of_score_states(self):
6479  r"""get_number_of_score_states(Model self) -> unsigned int"""
6480  return _IMP_kernel.Model_get_number_of_score_states(self)
6481 
6482  def get_has_score_states(self):
6483  r"""get_has_score_states(Model self) -> bool"""
6484  return _IMP_kernel.Model_get_has_score_states(self)
6485 
6486  def get_score_state(self, i):
6487  r"""get_score_state(Model self, unsigned int i) -> ScoreState"""
6488  return _IMP_kernel.Model_get_score_state(self, i)
6489 
6490  def get_score_states(self):
6491  r"""get_score_states(Model self) -> IMP::ScoreStates"""
6492  return _IMP_kernel.Model_get_score_states(self)
6493 
6494  def erase_score_state(self, i):
6495  r"""erase_score_state(Model self, unsigned int i)"""
6496  return _IMP_kernel.Model_erase_score_state(self, i)
6497 
6498  def reserve_score_states(self, sz):
6499  r"""reserve_score_states(Model self, unsigned int sz)"""
6500  return _IMP_kernel.Model_reserve_score_states(self, sz)
6501 
6502  def update(self):
6503  r"""update(Model self)"""
6504  return _IMP_kernel.Model_update(self)
6505 
6506  def get_ordered_score_states(self):
6507  r"""get_ordered_score_states(Model self) -> IMP::ScoreStatesTemp"""
6508  return _IMP_kernel.Model_get_ordered_score_states(self)
6509 
6510  def add_cache_attribute(self, *args):
6511  r"""
6512  add_cache_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6513  add_cache_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6514  add_cache_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6515  add_cache_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6516  add_cache_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6517  add_cache_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6518  add_cache_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6519  add_cache_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6520  add_cache_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6521  add_cache_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6522  add_cache_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6523  add_cache_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6524  add_cache_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6525  """
6526  return _IMP_kernel.Model_add_cache_attribute(self, *args)
6527 
6528  def add_attribute(self, *args):
6529  r"""
6530  add_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6531  add_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6532  add_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6533  add_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6534  add_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6535  add_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6536  add_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6537  add_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6538  add_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6539  add_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6540  add_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6541  add_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6542  add_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6543  add_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6544  add_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6545  add_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6546  add_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6547  """
6548  return _IMP_kernel.Model_add_attribute(self, *args)
6549 
6550  def remove_attribute(self, *args):
6551  r"""
6552  remove_attribute(Model self, FloatKey attribute_key, ParticleIndex particle)
6553  remove_attribute(Model self, IntKey attribute_key, ParticleIndex particle)
6554  remove_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle)
6555  remove_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle)
6556  remove_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle)
6557  remove_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle)
6558  remove_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle)
6559  remove_attribute(Model self, IntsKey attribute_key, ParticleIndex particle)
6560  remove_attribute(Model self, StringKey attribute_key, ParticleIndex particle)
6561  remove_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle)
6562  remove_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle)
6563  remove_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle)
6564  remove_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle)
6565  remove_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle)
6566  remove_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle)
6567  remove_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle)
6568  remove_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle)
6569  """
6570  return _IMP_kernel.Model_remove_attribute(self, *args)
6571 
6572  def get_has_attribute(self, *args):
6573  r"""
6574  get_has_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> bool
6575  get_has_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> bool
6576  get_has_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> bool
6577  get_has_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> bool
6578  get_has_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> bool
6579  get_has_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> bool
6580  get_has_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> bool
6581  get_has_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> bool
6582  get_has_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> bool
6583  get_has_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> bool
6584  get_has_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6585  get_has_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> bool
6586  get_has_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> bool
6587  get_has_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> bool
6588  get_has_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> bool
6589  get_has_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> bool
6590  get_has_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6591  """
6592  return _IMP_kernel.Model_get_has_attribute(self, *args)
6593 
6594  def set_attribute(self, *args):
6595  r"""
6596  set_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6597  set_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6598  set_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6599  set_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6600  set_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6601  set_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6602  set_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6603  set_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6604  set_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6605  set_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6606  set_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6607  set_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6608  set_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6609  set_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6610  set_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6611  set_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6612  set_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6613  """
6614  return _IMP_kernel.Model_set_attribute(self, *args)
6615 
6616  def get_attribute(self, *args):
6617  r"""
6618  get_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6619  get_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> IMP::Int
6620  get_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> IMP::Floats
6621  get_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> Vector3D
6622  get_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> Vector4D
6623  get_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> Vector3D
6624  get_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> Vector4D
6625  get_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> IMP::Ints
6626  get_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> IMP::String
6627  get_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> IMP::ParticleIndexes
6628  get_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6629  get_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> Object
6630  get_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> Object
6631  get_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> IMP::String
6632  get_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> IMP::Int
6633  get_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6634  get_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6635  """
6636  return _IMP_kernel.Model_get_attribute(self, *args)
6637 
6638  def set_is_optimized(self, *args):
6639  r"""
6640  set_is_optimized(Model self, Vector3DDerivKey arg2, ParticleIndex arg3, bool arg4)
6641  set_is_optimized(Model self, Vector4DDerivKey arg2, ParticleIndex arg3, bool arg4)
6642  set_is_optimized(Model self, FloatKey arg2, ParticleIndex arg3, bool arg4)
6643  """
6644  return _IMP_kernel.Model_set_is_optimized(self, *args)
6645 
6646  def add_to_derivative(self, *args):
6647  r"""
6648  add_to_derivative(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D v, DerivativeAccumulator da)
6649  add_to_derivative(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D v, DerivativeAccumulator da)
6650  add_to_derivative(Model self, FloatKey k, ParticleIndex particle, double v, DerivativeAccumulator da)
6651  """
6652  return _IMP_kernel.Model_add_to_derivative(self, *args)
6653 
6654  def get_sphere_attribute_sets_external(self):
6655  r"""get_sphere_attribute_sets_external(Model self) -> bool"""
6656  return _IMP_kernel.Model_get_sphere_attribute_sets_external(self)
6657 
6658  def set_sphere_attribute_sets_external(self, external):
6659  r"""set_sphere_attribute_sets_external(Model self, bool external)"""
6660  return _IMP_kernel.Model_set_sphere_attribute_sets_external(self, external)
6661 
6662  def get_number_of_sphere_attribute_sets(self):
6663  r"""get_number_of_sphere_attribute_sets(Model self) -> int"""
6664  return _IMP_kernel.Model_get_number_of_sphere_attribute_sets(self)
6665 
6666  def set_number_of_sphere_attribute_sets(self, nsets):
6667  r"""set_number_of_sphere_attribute_sets(Model self, int nsets)"""
6668  return _IMP_kernel.Model_set_number_of_sphere_attribute_sets(self, nsets)
6669 
6670  def set_active_sphere_attribute_set(self, set):
6671  r"""set_active_sphere_attribute_set(Model self, int set)"""
6672  return _IMP_kernel.Model_set_active_sphere_attribute_set(self, set)
6673 
6674  def get_number_of_internal_coordinate_attribute_sets(self):
6675  r"""get_number_of_internal_coordinate_attribute_sets(Model self) -> int"""
6676  return _IMP_kernel.Model_get_number_of_internal_coordinate_attribute_sets(self)
6677 
6678  def set_number_of_internal_coordinate_attribute_sets(self, nsets):
6679  r"""set_number_of_internal_coordinate_attribute_sets(Model self, int nsets)"""
6680  return _IMP_kernel.Model_set_number_of_internal_coordinate_attribute_sets(self, nsets)
6681 
6682  def get_internal_coordinate_attribute_sets_external(self):
6683  r"""get_internal_coordinate_attribute_sets_external(Model self) -> bool"""
6684  return _IMP_kernel.Model_get_internal_coordinate_attribute_sets_external(self)
6685 
6686  def set_internal_coordinate_attribute_sets_external(self, external):
6687  r"""set_internal_coordinate_attribute_sets_external(Model self, bool external)"""
6688  return _IMP_kernel.Model_set_internal_coordinate_attribute_sets_external(self, external)
6689 
6690  def set_active_internal_coordinate_attribute_set(self, set):
6691  r"""set_active_internal_coordinate_attribute_set(Model self, int set)"""
6692  return _IMP_kernel.Model_set_active_internal_coordinate_attribute_set(self, set)
6693 
6694  def get_number_of_attribute_sets(self, *args):
6695  r"""
6696  get_number_of_attribute_sets(Model self)
6697  get_number_of_attribute_sets(Model self, FloatKey k) -> int
6698  get_number_of_attribute_sets(Model self, Vector3DKey k) -> int
6699  get_number_of_attribute_sets(Model self, Vector4DKey k) -> int
6700  get_number_of_attribute_sets(Model self, Vector3DDerivKey k) -> int
6701  get_number_of_attribute_sets(Model self, Vector4DDerivKey k) -> int
6702  """
6703  return _IMP_kernel.Model_get_number_of_attribute_sets(self, *args)
6704 
6705  def set_number_of_attribute_sets(self, *args):
6706  r"""
6707  set_number_of_attribute_sets(Model self)
6708  set_number_of_attribute_sets(Model self, FloatKey k, int nsets)
6709  set_number_of_attribute_sets(Model self, Vector3DKey k, int nsets)
6710  set_number_of_attribute_sets(Model self, Vector4DKey k, int nsets)
6711  set_number_of_attribute_sets(Model self, Vector3DDerivKey k, int nsets)
6712  set_number_of_attribute_sets(Model self, Vector4DDerivKey k, int nsets)
6713  """
6714  return _IMP_kernel.Model_set_number_of_attribute_sets(self, *args)
6715 
6716  def set_active_attribute_set(self, *args):
6717  r"""
6718  set_active_attribute_set(Model self)
6719  set_active_attribute_set(Model self, FloatKey k, int set)
6720  set_active_attribute_set(Model self, Vector3DKey k, int set)
6721  set_active_attribute_set(Model self, Vector4DKey k, int set)
6722  set_active_attribute_set(Model self, Vector3DDerivKey k, int set)
6723  set_active_attribute_set(Model self, Vector4DDerivKey k, int set)
6724  """
6725  return _IMP_kernel.Model_set_active_attribute_set(self, *args)
6726 
6727  def set_attribute_sets_external(self, *args):
6728  r"""
6729  set_attribute_sets_external(Model self)
6730  set_attribute_sets_external(Model self, FloatKey k, bool external)
6731  set_attribute_sets_external(Model self, Vector3DKey k, bool external)
6732  set_attribute_sets_external(Model self, Vector4DKey k, bool external)
6733  set_attribute_sets_external(Model self, Vector3DDerivKey k, bool external)
6734  set_attribute_sets_external(Model self, Vector4DDerivKey k, bool external)
6735  """
6736  return _IMP_kernel.Model_set_attribute_sets_external(self, *args)
6737 
6738  def get_attribute_sets_external(self, *args):
6739  r"""
6740  get_attribute_sets_external(Model self)
6741  get_attribute_sets_external(Model self, FloatKey k) -> bool
6742  get_attribute_sets_external(Model self, Vector3DKey k) -> bool
6743  get_attribute_sets_external(Model self, Vector4DKey k) -> bool
6744  get_attribute_sets_external(Model self, Vector3DDerivKey k) -> bool
6745  get_attribute_sets_external(Model self, Vector4DDerivKey k) -> bool
6746  """
6747  return _IMP_kernel.Model_get_attribute_sets_external(self, *args)
6748 
6749  def get_particle(self, p):
6750  r"""get_particle(Model self, ParticleIndex p) -> Particle"""
6751  return _IMP_kernel.Model_get_particle(self, p)
6752 
6753  def get_has_particle(self, p):
6754  r"""get_has_particle(Model self, ParticleIndex p) -> bool"""
6755  return _IMP_kernel.Model_get_has_particle(self, p)
6756 
6757  def get_particle_indexes(self):
6758  r"""get_particle_indexes(Model self) -> IMP::ParticleIndexes"""
6759  return _IMP_kernel.Model_get_particle_indexes(self)
6760 
6761  def get_model_objects(self):
6762  r"""get_model_objects(Model self) -> IMP::ModelObjectsTemp"""
6763  return _IMP_kernel.Model_get_model_objects(self)
6764 
6765  def remove_particle(self, pi):
6766  r"""remove_particle(Model self, ParticleIndex pi)"""
6767  return _IMP_kernel.Model_remove_particle(self, pi)
6768 
6769  def add_data(self, mk, o):
6770  r"""add_data(Model self, ModelKey mk, Object o)"""
6771  return _IMP_kernel.Model_add_data(self, mk, o)
6772 
6773  def get_data(self, mk):
6774  r"""get_data(Model self, ModelKey mk) -> Object"""
6775  return _IMP_kernel.Model_get_data(self, mk)
6776 
6777  def remove_data(self, mk):
6778  r"""remove_data(Model self, ModelKey mk)"""
6779  return _IMP_kernel.Model_remove_data(self, mk)
6780 
6781  def get_has_data(self, mk):
6782  r"""get_has_data(Model self, ModelKey mk) -> bool"""
6783  return _IMP_kernel.Model_get_has_data(self, mk)
6784 
6785  def get_age(self):
6786  r"""get_age(Model self) -> unsigned int"""
6787  return _IMP_kernel.Model_get_age(self)
6788 
6789  def get_trigger_last_updated(self, tk):
6790  r"""get_trigger_last_updated(Model self, TriggerKey tk) -> unsigned int"""
6791  return _IMP_kernel.Model_get_trigger_last_updated(self, tk)
6792 
6793  def set_trigger_updated(self, tk):
6794  r"""set_trigger_updated(Model self, TriggerKey tk)"""
6795  return _IMP_kernel.Model_set_trigger_updated(self, tk)
6796 
6797  def get_dependencies_updated(self):
6798  r"""get_dependencies_updated(Model self) -> unsigned int"""
6799  return _IMP_kernel.Model_get_dependencies_updated(self)
6800 
6801  def get_removed_particles_attributes_age(self):
6802  r"""get_removed_particles_attributes_age(Model self) -> unsigned int"""
6803  return _IMP_kernel.Model_get_removed_particles_attributes_age(self)
6804 
6805  def save_dependencies(self):
6806  r"""save_dependencies(Model self)"""
6807  return _IMP_kernel.Model_save_dependencies(self)
6808 
6809  def restore_dependencies(self):
6810  r"""restore_dependencies(Model self)"""
6811  return _IMP_kernel.Model_restore_dependencies(self)
6812 
6813  def get_particles_size(self):
6814  r"""get_particles_size(Model self) -> unsigned int"""
6815  return _IMP_kernel.Model_get_particles_size(self)
6816 
6817  def get_unique_id(self):
6818  r"""get_unique_id(Model self) -> uint32_t"""
6819  return _IMP_kernel.Model_get_unique_id(self)
6820 
6821  @staticmethod
6822  def get_by_unique_id(id):
6823  r"""get_by_unique_id(uint32_t id) -> Model"""
6824  return _IMP_kernel.Model_get_by_unique_id(id)
6825 
6826  def get_version_info(self):
6827  r"""get_version_info(Model self) -> VersionInfo"""
6828  return _IMP_kernel.Model_get_version_info(self)
6829  __swig_destroy__ = _IMP_kernel.delete_Model
6830  def __del__(self):
6831  r"""__del__(Model self)"""
6832 
6833  _director_objects.cleanup()
6834 
6835 
6836  pass
6837 
6838 
6839  def do_destroy(self):
6840  r"""do_destroy(Model self)"""
6841  return _IMP_kernel.Model_do_destroy(self)
6842 
6843  def __str__(self):
6844  r"""__str__(Model self) -> std::string"""
6845  return _IMP_kernel.Model___str__(self)
6846 
6847  def __repr__(self):
6848  r"""__repr__(Model self) -> std::string"""
6849  return _IMP_kernel.Model___repr__(self)
6850 
6851  @staticmethod
6852  def get_from(o):
6853  return _object_cast_to_Model(o)
6854 
6855 
6856  def _get_as_binary(self):
6857  r"""_get_as_binary(Model self) -> PyObject *"""
6858  return _IMP_kernel.Model__get_as_binary(self)
6859 
6860  def _set_from_binary(self, p):
6861  r"""_set_from_binary(Model self, PyObject * p)"""
6862  return _IMP_kernel.Model__set_from_binary(self, p)
6863 
6864  def __getstate__(self):
6865  p = self._get_as_binary()
6866  if len(self.__dict__) > 1:
6867  d = self.__dict__.copy()
6868  del d['this']
6869  p = (d, p)
6870  return p
6871 
6872  def __setstate__(self, p):
6873  if not hasattr(self, 'this'):
6874  self.__init__()
6875  if isinstance(p, tuple):
6876  d, p = p
6877  self.__dict__.update(d)
6878  return self._set_from_binary(p)
6879 
6880 
6881  def get_ints_numpy(self, k, read_only=False):
6882  """Get the model's attribute array for IntKey k as a NumPy array.
6883  The array is indexed by ParticleIndex; particles that don't have
6884  this attribute will either be off the end of the array or will have
6885  the value INT_MAX.
6886  This is a NumPy view that shares memory with the Model. Thus,
6887  any changes to values in this list will be reflected in the Model.
6888  Also, if the Model attribute array moves in memory (e.g. if particles
6889  or attributes are added) this array will be invalidated, so it is
6890  unsafe to keep it around long term.
6891  If read_only is set True, values in the array cannot be changed.
6892  """
6893  return _get_ints_numpy(self, k, self, read_only)
6894 
6895  def get_numpy(self, k, read_only=False):
6896  """Get the model's attribute array for any type of Key
6897  k as a NumPy array. See Model::get_ints_numpy() for more details.
6898  If this Key has multiple attribute sets defined for it,
6899  a multi-dimensional view over all sets is returned. If the storage
6900  of these sets is external, a read-only view is returned where each
6901  row points to data currently in the model for the first set."""
6902  _numpy_meth_map = {IntKey: (_get_ints_numpy, False),
6903  FloatKey: (_get_floats_numpy, True),
6904  Vector3DKey: (_get_vector3ds_numpy, True),
6905  Vector3DDerivKey: (_get_vector3dderiv_numpy, True),
6906  Vector4DKey: (_get_vector4ds_numpy, True),
6907  Vector4DDerivKey: (_get_vector4dderiv_numpy, True),
6908  ParticleIndexKey: (_get_particle_indexes_numpy,
6909  False)}
6910  func, can_external = _numpy_meth_map[type(k)]
6911  n = func(self, k, self, read_only)
6912  if can_external and self.get_attribute_sets_external(k):
6913  nsets = self.get_number_of_attribute_sets(k)
6914  return numpy.broadcast_to(n, (nsets,) + n.shape)
6915  else:
6916  return n
6917 
6918  def get_floats_numpy(self, k, read_only=False):
6919  """Get the model's attribute array for FloatKey k as a NumPy array.
6920  See Model::get_ints_numpy() for more details."""
6921  return _get_floats_numpy(self, k, self, read_only)
6922 
6923  def get_derivatives_numpy(self, k, read_only=False):
6924  """Get the model's attribute derivatives array for key k
6925  as a NumPy array. See Model::get_ints_numpy() for more details."""
6926  _numpy_meth_map = {
6927  FloatKey: _get_derivatives_numpy,
6928  Vector3DDerivKey: _get_vector3dderiv_derivatives_numpy,
6929  Vector4DDerivKey: _get_vector4dderiv_derivatives_numpy}
6930  return _numpy_meth_map[type(k)](self, k, self, read_only)
6931 
6932  def get_vector3ds_numpy(self, k, read_only=False):
6933  """Get the model's attribute array for Vector3DKey k as a NumPy array.
6934  See Model::get_ints_numpy() for more details."""
6935  return _get_vector3ds_numpy(self, k, self, read_only)
6936 
6937  def get_spheres_numpy(self, read_only=False):
6938  """Get the model's XYZR attribute arrays as NumPy arrays.
6939  The attribute arrays for Cartesian coordinates and radii are
6940  stored separately from those for other FloatKeys. This function
6941  returns a tuple of two NumPy arrays, the first of coordinates and
6942  the second of radii. See Model::get_ints_numpy() for more details."""
6943  xyz, r = _get_spheres_numpy(self, self, read_only)
6944  if self.get_sphere_attribute_sets_external():
6945  nsets = self.get_number_of_sphere_attribute_sets()
6946  return (numpy.broadcast_to(xyz, (nsets,) + xyz.shape),
6947  numpy.broadcast_to(r, (nsets,) + r.shape))
6948  else:
6949  return xyz, r
6950 
6951  def get_sphere_derivatives_numpy(self, read_only=False):
6952  """Get the model's XYZR attribute derivatives arrays as NumPy arrays.
6953  See Model::get_ints_numpy() for more details."""
6954  return _get_sphere_derivatives_numpy(self, self, read_only)
6955 
6956  def get_internal_coordinates_numpy(self, read_only=False):
6957  """Get the model's internal coordinate array as a NumPy array.
6958  The attribute arrays for rigid body internal coordinates are
6959  stored separately from those for other FloatKeys.
6960  See Model::get_ints_numpy() for more details."""
6961  return _get_internal_coordinates_numpy(self, self, read_only)
6962 
6963  def get_internal_coordinate_derivatives_numpy(self, read_only=False):
6964  """Get the model's internal coordinate derivative array as a
6965  NumPy array.
6966  See Model::get_ints_numpy() for more details."""
6967  return _get_internal_coordinate_derivatives_numpy(
6968  self, self, read_only)
6969 
6970 
6971 # Register Model in _IMP_kernel:
6972 _IMP_kernel.Model_swigregister(Model)
6973 class Decorator(_Value):
6974  r"""Proxy of C++ IMP::Decorator class."""
6975 
6976  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6977  __repr__ = _swig_repr
6978 
6979  def __init__(self, p):
6980  r"""__init__(Decorator self, _ParticleAdaptor p) -> Decorator"""
6981  _IMP_kernel.Decorator_swiginit(self, _IMP_kernel.new_Decorator(p))
6982 
6983  def __ne__(self, o):
6984  r"""__ne__(Decorator self, Object o) -> bool"""
6985  return _IMP_kernel.Decorator___ne__(self, o)
6986 
6987  def __lt__(self, o):
6988  r"""__lt__(Decorator self, Object o) -> bool"""
6989  return _IMP_kernel.Decorator___lt__(self, o)
6990 
6991  def __gt__(self, o):
6992  r"""__gt__(Decorator self, Object o) -> bool"""
6993  return _IMP_kernel.Decorator___gt__(self, o)
6994 
6995  def __ge__(self, o):
6996  r"""__ge__(Decorator self, Object o) -> bool"""
6997  return _IMP_kernel.Decorator___ge__(self, o)
6998 
6999  def __le__(self, o):
7000  r"""__le__(Decorator self, Object o) -> bool"""
7001  return _IMP_kernel.Decorator___le__(self, o)
7002 
7003  def get_particle(self):
7004  r"""get_particle(Decorator self) -> Particle"""
7005  return _IMP_kernel.Decorator_get_particle(self)
7006 
7007  def get_particle_index(self):
7008  r"""get_particle_index(Decorator self) -> ParticleIndex"""
7009  return _IMP_kernel.Decorator_get_particle_index(self)
7010 
7011  def get_model(self):
7012  m = _IMP_kernel.Decorator_get_model(self)
7013  if m in _models_set:
7014  m = _models_set_get(m)
7015  return m
7016 
7017 
7018 
7019  def get_is_valid(self):
7020  r"""get_is_valid(Decorator self) -> bool"""
7021  return _IMP_kernel.Decorator_get_is_valid(self)
7022 
7023  def __hash__(self):
7024  r"""__hash__(Decorator self) -> std::size_t"""
7025  return _IMP_kernel.Decorator___hash__(self)
7026 
7027  def __eq__(self, *args):
7028  r"""
7029  __eq__(Decorator self, Object o) -> bool
7030  __eq__(Decorator self, Decorator o) -> bool
7031  __eq__(Decorator self, Particle o) -> bool
7032  """
7033  return _IMP_kernel.Decorator___eq__(self, *args)
7034 
7035  def __bool__(self):
7036  r"""__bool__(Decorator self) -> bool"""
7037  return _IMP_kernel.Decorator___bool__(self)
7038  __swig_destroy__ = _IMP_kernel.delete_Decorator
7039 
7040 # Register Decorator in _IMP_kernel:
7041 _IMP_kernel.Decorator_swigregister(Decorator)
7042 
7043 def check_particle(m, pi):
7044  r"""check_particle(Model m, ParticleIndex pi)"""
7045  return _IMP_kernel.check_particle(m, pi)
7046 class UnaryFunction(Object):
7047  r"""Proxy of C++ IMP::UnaryFunction class."""
7048 
7049  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7050 
7051  def __init__(self, *args):
7052  r"""__init__(UnaryFunction self, std::string name="UnaryFunction%1%") -> UnaryFunction"""
7053  if self.__class__ == UnaryFunction:
7054  _self = None
7055  else:
7056  _self = self
7057  _IMP_kernel.UnaryFunction_swiginit(self, _IMP_kernel.new_UnaryFunction(_self, *args))
7058 
7059  if self.__class__ != UnaryFunction:
7060  _director_objects.register(self)
7061 
7062 
7063 
7064 
7065  def evaluate(self, feature):
7066  r"""evaluate(UnaryFunction self, double feature) -> double"""
7067  return _IMP_kernel.UnaryFunction_evaluate(self, feature)
7068 
7069  def evaluate_with_derivative(self, feature):
7070  r"""evaluate_with_derivative(UnaryFunction self, double feature) -> IMP::DerivativePair"""
7071  return _IMP_kernel.UnaryFunction_evaluate_with_derivative(self, feature)
7072  __swig_destroy__ = _IMP_kernel.delete_UnaryFunction
7073 
7074  def __str__(self):
7075  r"""__str__(UnaryFunction self) -> std::string"""
7076  return _IMP_kernel.UnaryFunction___str__(self)
7077 
7078  def __repr__(self):
7079  r"""__repr__(UnaryFunction self) -> std::string"""
7080  return _IMP_kernel.UnaryFunction___repr__(self)
7081 
7082  @staticmethod
7083  def get_from(o):
7084  return _object_cast_to_UnaryFunction(o)
7085 
7086 
7087  def do_show(self, out):
7088  pass
7089 
7090  @staticmethod
7091  def get_from(o):
7092  return _object_cast_to_UnaryFunction(o)
7093 
7094 
7095  def _get_jax(self):
7096  """Return a JAX implementation of this UnaryFunction.
7097  Implement this method in a UnaryFunction subclass to provide
7098  an equivalent function using [JAX](https://docs.jax.dev/)
7099  that scores the provided feature value.
7100  """
7101  raise NotImplementedError(
7102  f"No JAX implementation for {self} ({type(self)})")
7103 
7104  def __disown__(self):
7105  self.this.disown()
7106  _IMP_kernel.disown_UnaryFunction(self)
7107  return weakref.proxy(self)
7108 
7109  def do_destroy(self):
7110  r"""do_destroy(UnaryFunction self)"""
7111  return _IMP_kernel.UnaryFunction_do_destroy(self)
7112 
7113 # Register UnaryFunction in _IMP_kernel:
7114 _IMP_kernel.UnaryFunction_swigregister(UnaryFunction)
7116  r"""Proxy of C++ IMP::OptimizerState class."""
7117 
7118  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7119 
7120  def __init__(self, *args):
7121  r"""
7122  __init__(OptimizerState self, Model m, std::string name) -> OptimizerState
7123  __init__(OptimizerState self) -> OptimizerState
7124  """
7125  if self.__class__ == OptimizerState:
7126  _self = None
7127  else:
7128  _self = self
7129  _IMP_kernel.OptimizerState_swiginit(self, _IMP_kernel.new_OptimizerState(_self, *args))
7130 
7131  if self.__class__ != OptimizerState:
7132  _director_objects.register(self)
7133 
7134 
7135 
7136 
7137  def update(self):
7138  r"""update(OptimizerState self)"""
7139  return _IMP_kernel.OptimizerState_update(self)
7140 
7141  def set_is_optimizing(self, arg0):
7142  r"""set_is_optimizing(OptimizerState self, bool arg0)"""
7143  return _IMP_kernel.OptimizerState_set_is_optimizing(self, arg0)
7144 
7145  def get_optimizer(self):
7146  r"""get_optimizer(OptimizerState self) -> Optimizer"""
7147  return _IMP_kernel.OptimizerState_get_optimizer(self)
7148 
7149  def set_period(self, p):
7150  r"""set_period(OptimizerState self, unsigned int p)"""
7151  return _IMP_kernel.OptimizerState_set_period(self, p)
7152 
7153  def get_period(self):
7154  r"""get_period(OptimizerState self) -> unsigned int"""
7155  return _IMP_kernel.OptimizerState_get_period(self)
7156 
7157  def reset(self):
7158  r"""reset(OptimizerState self)"""
7159  return _IMP_kernel.OptimizerState_reset(self)
7160 
7161  def update_always(self):
7162  r"""update_always(OptimizerState self)"""
7163  return _IMP_kernel.OptimizerState_update_always(self)
7164 
7165  def get_number_of_updates(self):
7166  r"""get_number_of_updates(OptimizerState self) -> unsigned int"""
7167  return _IMP_kernel.OptimizerState_get_number_of_updates(self)
7168 
7169  def set_number_of_updates(self, n):
7170  r"""set_number_of_updates(OptimizerState self, unsigned int n)"""
7171  return _IMP_kernel.OptimizerState_set_number_of_updates(self, n)
7172  __swig_destroy__ = _IMP_kernel.delete_OptimizerState
7173 
7174  def do_update(self, arg0):
7175  r"""do_update(OptimizerState self, unsigned int arg0)"""
7176  return _IMP_kernel.OptimizerState_do_update(self, arg0)
7177 
7178  def do_set_is_optimizing(self, arg0):
7179  r"""do_set_is_optimizing(OptimizerState self, bool arg0)"""
7180  return _IMP_kernel.OptimizerState_do_set_is_optimizing(self, arg0)
7181 
7182  def do_get_inputs(self):
7183  r"""do_get_inputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
7184  return _IMP_kernel.OptimizerState_do_get_inputs(self)
7185 
7186  def do_get_outputs(self):
7187  r"""do_get_outputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
7188  return _IMP_kernel.OptimizerState_do_get_outputs(self)
7189 
7190  def __str__(self):
7191  r"""__str__(OptimizerState self) -> std::string"""
7192  return _IMP_kernel.OptimizerState___str__(self)
7193 
7194  def __repr__(self):
7195  r"""__repr__(OptimizerState self) -> std::string"""
7196  return _IMP_kernel.OptimizerState___repr__(self)
7197 
7198  @staticmethod
7199  def get_from(o):
7200  return _object_cast_to_OptimizerState(o)
7201 
7202 
7203  def do_show(self, out):
7204  pass
7205 
7206  @staticmethod
7207  def get_from(o):
7208  return _object_cast_to_OptimizerState(o)
7209 
7210 
7211  def _get_jax(self, state_index):
7212  """Add JAX support for this OptimizerState.
7213 
7214  Each OptimizerState must explicitly support how it is going to
7215  be called when the Optimizer is run via JAX.
7216 
7217  OptimizerStates can run as traditional IMP CPU code
7218  on the IMP Model object, in which case None should be returned here.
7219  The Optimizer will sync any necessary information from JAX back
7220  with the IMP Model before calling the OptimizerState. However,
7221  the OptimizerState is not permitted to modify the Model; any
7222  changes will not be propagated back to the Optimizer.
7223  (For example, a thermostat which tries to change particle
7224  velocities will not function correctly.)
7225 
7226  Alternatively, a pure JAX implementation can be provided.
7227  See _wrap_jax for more information.
7228  """
7229  raise NotImplementedError(
7230  f"No JAX implementation for {self} ({type(self)})")
7231 
7232  def _wrap_jax(self, init_func, apply_func):
7233  """Create the return value for _get_jax.
7234  Use this method in _get_jax() to wrap the JAX function
7235  with other OptimizerState-specific information.
7236 
7237  @param init_func a JAX function which, given a JAX Optimizer,
7238  does any necessary setup and returns a (possibly modified)
7239  JAX Optimizer. If any OptimizerState-specific
7240  persistent state is needed, it can be stored in
7241  `opt.optimizer_states[state_index]` and later retrieved or
7242  modified in apply_func.
7243  @param apply_func a JAX function which, given a JAX Optimizer,
7244  does the JAX equivalent of do_update() and returns a new
7245  JAX Optimizer.
7246  """
7247  from IMP._jax_util import JAXOptimizerStateInfo
7248  return JAXOptimizerStateInfo(self, init_func, apply_func)
7249 
7250  def __disown__(self):
7251  self.this.disown()
7252  _IMP_kernel.disown_OptimizerState(self)
7253  return weakref.proxy(self)
7254 
7255  def do_destroy(self):
7256  r"""do_destroy(OptimizerState self)"""
7257  return _IMP_kernel.OptimizerState_do_destroy(self)
7258 
7259  def handle_set_has_required_score_states(self, arg0):
7260  r"""handle_set_has_required_score_states(OptimizerState self, bool arg0)"""
7261  return _IMP_kernel.OptimizerState_handle_set_has_required_score_states(self, arg0)
7262 
7263  def do_get_interactions(self):
7264  r"""do_get_interactions(OptimizerState self) -> IMP::ModelObjectsTemps"""
7265  return _IMP_kernel.OptimizerState_do_get_interactions(self)
7266 
7267 # Register OptimizerState in _IMP_kernel:
7268 _IMP_kernel.OptimizerState_swigregister(OptimizerState)
7269 class Refiner(_ParticleInputs, Object):
7270  r"""Proxy of C++ IMP::Refiner class."""
7271 
7272  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7273 
7274  def __init__(self, *args):
7275  r"""__init__(Refiner self, std::string name="Refiner %1%", bool is_by_ref=False) -> Refiner"""
7276  if self.__class__ == Refiner:
7277  _self = None
7278  else:
7279  _self = self
7280  _IMP_kernel.Refiner_swiginit(self, _IMP_kernel.new_Refiner(_self, *args))
7281 
7282  if self.__class__ != Refiner:
7283  _director_objects.register(self)
7284 
7285 
7286 
7287 
7288  def get_can_refine(self, arg0):
7289  r"""get_can_refine(Refiner self, Particle arg0) -> bool"""
7290  return _IMP_kernel.Refiner_get_can_refine(self, arg0)
7291 
7292  def get_refined_indexes(self, m, pi):
7293  r"""get_refined_indexes(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes"""
7294  return _IMP_kernel.Refiner_get_refined_indexes(self, m, pi)
7295 
7296  def get_refined_indexes_by_ref(self, m, pi):
7297  r"""get_refined_indexes_by_ref(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes const &"""
7298  return _IMP_kernel.Refiner_get_refined_indexes_by_ref(self, m, pi)
7299 
7300  def get_is_by_ref_supported(self):
7301  r"""get_is_by_ref_supported(Refiner self) -> bool"""
7302  return _IMP_kernel.Refiner_get_is_by_ref_supported(self)
7303 
7304  def get_refined(self, *args):
7305  r"""
7306  get_refined(Refiner self, Particle a) -> IMP::ParticlesTemp const
7307  get_refined(Refiner self, Particle a, unsigned int i) -> Particle
7308  """
7309  return _IMP_kernel.Refiner_get_refined(self, *args)
7310 
7311  def get_number_of_refined(self, a):
7312  r"""get_number_of_refined(Refiner self, Particle a) -> unsigned int"""
7313  return _IMP_kernel.Refiner_get_number_of_refined(self, a)
7314 
7315  def __str__(self):
7316  r"""__str__(Refiner self) -> std::string"""
7317  return _IMP_kernel.Refiner___str__(self)
7318 
7319  def __repr__(self):
7320  r"""__repr__(Refiner self) -> std::string"""
7321  return _IMP_kernel.Refiner___repr__(self)
7322 
7323  @staticmethod
7324  def get_from(o):
7325  return _object_cast_to_Refiner(o)
7326 
7327 
7328  def do_show(self, out):
7329  pass
7330 
7331  @staticmethod
7332  def get_from(o):
7333  return _object_cast_to_Refiner(o)
7334 
7335  __swig_destroy__ = _IMP_kernel.delete_Refiner
7336  def __disown__(self):
7337  self.this.disown()
7338  _IMP_kernel.disown_Refiner(self)
7339  return weakref.proxy(self)
7340 
7341  def do_get_inputs(self, m, pis):
7342  r"""do_get_inputs(Refiner self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7343  return _IMP_kernel.Refiner_do_get_inputs(self, m, pis)
7344 
7345  def do_destroy(self):
7346  r"""do_destroy(Refiner self)"""
7347  return _IMP_kernel.Refiner_do_destroy(self)
7348 
7349 # Register Refiner in _IMP_kernel:
7350 _IMP_kernel.Refiner_swigregister(Refiner)
7351 class Optimizer(ModelObject):
7352  r"""Proxy of C++ IMP::Optimizer class."""
7353 
7354  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7355 
7356  def set_is_optimizing_states(self, tf):
7357  r"""set_is_optimizing_states(Optimizer self, bool tf)"""
7358  return _IMP_kernel.Optimizer_set_is_optimizing_states(self, tf)
7359 
7360  def get_optimizer_state_inputs(self):
7361  r"""get_optimizer_state_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7362  return _IMP_kernel.Optimizer_get_optimizer_state_inputs(self)
7363 
7364  def do_get_inputs(self):
7365  r"""do_get_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7366  return _IMP_kernel.Optimizer_do_get_inputs(self)
7367 
7368  def do_get_outputs(self):
7369  r"""do_get_outputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7370  return _IMP_kernel.Optimizer_do_get_outputs(self)
7371 
7372  def __init__(self, *args):
7373  r"""
7374  __init__(Optimizer self, Model m, std::string name="Optimizer %1%") -> Optimizer
7375  __init__(Optimizer self) -> Optimizer
7376  """
7377  if self.__class__ == Optimizer:
7378  _self = None
7379  else:
7380  _self = self
7381  _IMP_kernel.Optimizer_swiginit(self, _IMP_kernel.new_Optimizer(_self, *args))
7382 
7383  if self.__class__ != Optimizer:
7384  _director_objects.register(self)
7385 
7386 
7387 
7388 
7389  def optimize(self, max_steps):
7390  r"""optimize(Optimizer self, unsigned int max_steps) -> double"""
7391  return _IMP_kernel.Optimizer_optimize(self, max_steps)
7392 
7393  def set_stop_on_good_score(self, tf):
7394  r"""set_stop_on_good_score(Optimizer self, bool tf)"""
7395  return _IMP_kernel.Optimizer_set_stop_on_good_score(self, tf)
7396 
7397  def get_stop_on_good_score(self):
7398  r"""get_stop_on_good_score(Optimizer self) -> bool"""
7399  return _IMP_kernel.Optimizer_get_stop_on_good_score(self)
7400 
7401  def get_last_score(self):
7402  r"""get_last_score(Optimizer self) -> double"""
7403  return _IMP_kernel.Optimizer_get_last_score(self)
7404 
7405  def get_scoring_function(self):
7406  r"""get_scoring_function(Optimizer self) -> ScoringFunction"""
7407  return _IMP_kernel.Optimizer_get_scoring_function(self)
7408  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)
7409  def __set_optimizer_states(self, obj): _list_util.set_varlist(self.optimizer_states, obj)
7410  def __del_optimizer_states(self): _list_util.del_varlist(self.optimizer_states)
7411  optimizer_states = property(__get_optimizer_states, __set_optimizer_states, __del_optimizer_states, doc="List of ##ucnames")
7412 
7413  def remove_optimizer_state(self, d):
7414  r"""remove_optimizer_state(Optimizer self, OptimizerState d)"""
7415  return _IMP_kernel.Optimizer_remove_optimizer_state(self, d)
7416 
7417  def _python_index_optimizer_state(self, d, start, stop):
7418  r"""_python_index_optimizer_state(Optimizer self, OptimizerState d, unsigned int start, unsigned int stop) -> unsigned int"""
7419  return _IMP_kernel.Optimizer__python_index_optimizer_state(self, d, start, stop)
7420 
7421  def remove_optimizer_states(self, d):
7422  r"""remove_optimizer_states(Optimizer self, IMP::OptimizerStates const & d)"""
7423  return _IMP_kernel.Optimizer_remove_optimizer_states(self, d)
7424 
7425  def set_optimizer_states(self, ps):
7426  r"""set_optimizer_states(Optimizer self, IMP::OptimizerStates const & ps)"""
7427  return _IMP_kernel.Optimizer_set_optimizer_states(self, ps)
7428 
7429  def set_optimizer_states_order(self, objs):
7430  r"""set_optimizer_states_order(Optimizer self, IMP::OptimizerStates const & objs)"""
7431  return _IMP_kernel.Optimizer_set_optimizer_states_order(self, objs)
7432 
7433  def add_optimizer_state(self, obj):
7434  r"""add_optimizer_state(Optimizer self, OptimizerState obj) -> unsigned int"""
7435  return _IMP_kernel.Optimizer_add_optimizer_state(self, obj)
7436 
7437  def add_optimizer_states(self, objs):
7438  r"""add_optimizer_states(Optimizer self, IMP::OptimizerStates const & objs)"""
7439  return _IMP_kernel.Optimizer_add_optimizer_states(self, objs)
7440 
7441  def clear_optimizer_states(self):
7442  r"""clear_optimizer_states(Optimizer self)"""
7443  return _IMP_kernel.Optimizer_clear_optimizer_states(self)
7444 
7445  def get_number_of_optimizer_states(self):
7446  r"""get_number_of_optimizer_states(Optimizer self) -> unsigned int"""
7447  return _IMP_kernel.Optimizer_get_number_of_optimizer_states(self)
7448 
7449  def get_has_optimizer_states(self):
7450  r"""get_has_optimizer_states(Optimizer self) -> bool"""
7451  return _IMP_kernel.Optimizer_get_has_optimizer_states(self)
7452 
7453  def get_optimizer_state(self, i):
7454  r"""get_optimizer_state(Optimizer self, unsigned int i) -> OptimizerState"""
7455  return _IMP_kernel.Optimizer_get_optimizer_state(self, i)
7456 
7457  def get_optimizer_states(self):
7458  r"""get_optimizer_states(Optimizer self) -> IMP::OptimizerStates"""
7459  return _IMP_kernel.Optimizer_get_optimizer_states(self)
7460 
7461  def erase_optimizer_state(self, i):
7462  r"""erase_optimizer_state(Optimizer self, unsigned int i)"""
7463  return _IMP_kernel.Optimizer_erase_optimizer_state(self, i)
7464 
7465  def reserve_optimizer_states(self, sz):
7466  r"""reserve_optimizer_states(Optimizer self, unsigned int sz)"""
7467  return _IMP_kernel.Optimizer_reserve_optimizer_states(self, sz)
7468 
7469  def set_scoring_function(self, sf):
7470  r"""set_scoring_function(Optimizer self, _ScoringFunctionAdaptor sf)"""
7471  return _IMP_kernel.Optimizer_set_scoring_function(self, sf)
7472  __swig_destroy__ = _IMP_kernel.delete_Optimizer
7473  def __del__(self):
7474  r"""__del__(Optimizer self)"""
7475 
7476  _director_objects.cleanup()
7477 
7478 
7479  pass
7480 
7481 
7482  def do_optimize(self, ns):
7483  r"""do_optimize(Optimizer self, unsigned int ns) -> double"""
7484  return _IMP_kernel.Optimizer_do_optimize(self, ns)
7485 
7486  def update_states(self):
7487  r"""update_states(Optimizer self)"""
7488  return _IMP_kernel.Optimizer_update_states(self)
7489 
7490  def __str__(self):
7491  r"""__str__(Optimizer self) -> std::string"""
7492  return _IMP_kernel.Optimizer___str__(self)
7493 
7494  def __repr__(self):
7495  r"""__repr__(Optimizer self) -> std::string"""
7496  return _IMP_kernel.Optimizer___repr__(self)
7497 
7498  @staticmethod
7499  def get_from(o):
7500  return _object_cast_to_Optimizer(o)
7501 
7502 
7503  def do_show(self, out):
7504  pass
7505 
7506  @staticmethod
7507  def get_from(o):
7508  return _object_cast_to_Optimizer(o)
7509 
7510  def __disown__(self):
7511  self.this.disown()
7512  _IMP_kernel.disown_Optimizer(self)
7513  return weakref.proxy(self)
7514 
7515  def do_destroy(self):
7516  r"""do_destroy(Optimizer self)"""
7517  return _IMP_kernel.Optimizer_do_destroy(self)
7518 
7519  def handle_set_has_required_score_states(self, arg0):
7520  r"""handle_set_has_required_score_states(Optimizer self, bool arg0)"""
7521  return _IMP_kernel.Optimizer_handle_set_has_required_score_states(self, arg0)
7522 
7523  def do_get_interactions(self):
7524  r"""do_get_interactions(Optimizer self) -> IMP::ModelObjectsTemps"""
7525  return _IMP_kernel.Optimizer_do_get_interactions(self)
7526 
7527 # Register Optimizer in _IMP_kernel:
7528 _IMP_kernel.Optimizer_swigregister(Optimizer)
7530  r"""Proxy of C++ IMP::AttributeOptimizer class."""
7531 
7532  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7533 
7534  def __init__(self, *args):
7535  r"""
7536  __init__(AttributeOptimizer self, Model m, std::string name="Optimizer %1%") -> AttributeOptimizer
7537  __init__(AttributeOptimizer self) -> AttributeOptimizer
7538  """
7539  if self.__class__ == AttributeOptimizer:
7540  _self = None
7541  else:
7542  _self = self
7543  _IMP_kernel.AttributeOptimizer_swiginit(self, _IMP_kernel.new_AttributeOptimizer(_self, *args))
7544 
7545  if self.__class__ != AttributeOptimizer:
7546  _director_objects.register(self)
7547 
7548 
7549 
7550 
7551  def get_optimized_attributes(self):
7552  r"""get_optimized_attributes(AttributeOptimizer self) -> IMP::FloatIndexes"""
7553  return _IMP_kernel.AttributeOptimizer_get_optimized_attributes(self)
7554 
7555  def set_value(self, fi, v):
7556  r"""set_value(AttributeOptimizer self, FloatIndex fi, double v)"""
7557  return _IMP_kernel.AttributeOptimizer_set_value(self, fi, v)
7558 
7559  def get_value(self, fi):
7560  r"""get_value(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7561  return _IMP_kernel.AttributeOptimizer_get_value(self, fi)
7562 
7563  def get_derivative(self, fi):
7564  r"""get_derivative(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7565  return _IMP_kernel.AttributeOptimizer_get_derivative(self, fi)
7566 
7567  def get_width(self, k):
7568  r"""get_width(AttributeOptimizer self, FloatKey k) -> double"""
7569  return _IMP_kernel.AttributeOptimizer_get_width(self, k)
7570 
7571  def set_scaled_value(self, fi, v):
7572  r"""set_scaled_value(AttributeOptimizer self, FloatIndex fi, IMP::Float v)"""
7573  return _IMP_kernel.AttributeOptimizer_set_scaled_value(self, fi, v)
7574 
7575  def get_scaled_value(self, fi):
7576  r"""get_scaled_value(AttributeOptimizer self, FloatIndex fi) -> double"""
7577  return _IMP_kernel.AttributeOptimizer_get_scaled_value(self, fi)
7578 
7579  def get_scaled_derivative(self, fi):
7580  r"""get_scaled_derivative(AttributeOptimizer self, FloatIndex fi) -> double"""
7581  return _IMP_kernel.AttributeOptimizer_get_scaled_derivative(self, fi)
7582 
7583  def clear_range_cache(self):
7584  r"""clear_range_cache(AttributeOptimizer self)"""
7585  return _IMP_kernel.AttributeOptimizer_clear_range_cache(self)
7586 
7587  def __str__(self):
7588  r"""__str__(AttributeOptimizer self) -> std::string"""
7589  return _IMP_kernel.AttributeOptimizer___str__(self)
7590 
7591  def __repr__(self):
7592  r"""__repr__(AttributeOptimizer self) -> std::string"""
7593  return _IMP_kernel.AttributeOptimizer___repr__(self)
7594 
7595  @staticmethod
7596  def get_from(o):
7597  return _object_cast_to_AttributeOptimizer(o)
7598 
7599 
7600  def do_show(self, out):
7601  pass
7602 
7603  @staticmethod
7604  def get_from(o):
7605  return _object_cast_to_AttributeOptimizer(o)
7606 
7607  __swig_destroy__ = _IMP_kernel.delete_AttributeOptimizer
7608  def __disown__(self):
7609  self.this.disown()
7610  _IMP_kernel.disown_AttributeOptimizer(self)
7611  return weakref.proxy(self)
7612 
7613  def do_destroy(self):
7614  r"""do_destroy(AttributeOptimizer self)"""
7615  return _IMP_kernel.AttributeOptimizer_do_destroy(self)
7616 
7617  def handle_set_has_required_score_states(self, arg0):
7618  r"""handle_set_has_required_score_states(AttributeOptimizer self, bool arg0)"""
7619  return _IMP_kernel.AttributeOptimizer_handle_set_has_required_score_states(self, arg0)
7620 
7621  def do_get_inputs(self):
7622  r"""do_get_inputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7623  return _IMP_kernel.AttributeOptimizer_do_get_inputs(self)
7624 
7625  def do_get_outputs(self):
7626  r"""do_get_outputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7627  return _IMP_kernel.AttributeOptimizer_do_get_outputs(self)
7628 
7629  def do_get_interactions(self):
7630  r"""do_get_interactions(AttributeOptimizer self) -> IMP::ModelObjectsTemps"""
7631  return _IMP_kernel.AttributeOptimizer_do_get_interactions(self)
7632 
7633  def do_optimize(self, ns):
7634  r"""do_optimize(AttributeOptimizer self, unsigned int ns) -> double"""
7635  return _IMP_kernel.AttributeOptimizer_do_optimize(self, ns)
7636 
7637 # Register AttributeOptimizer in _IMP_kernel:
7638 _IMP_kernel.AttributeOptimizer_swigregister(AttributeOptimizer)
7639 class ConfigurationSet(Object):
7640  r"""Proxy of C++ IMP::ConfigurationSet class."""
7641 
7642  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7643 
7644  def __init__(self, *args):
7645  r"""__init__(ConfigurationSet self, Model m, std::string name="ConfigurationSet %1%") -> ConfigurationSet"""
7646  _IMP_kernel.ConfigurationSet_swiginit(self, _IMP_kernel.new_ConfigurationSet(*args))
7647 
7648  def save_configuration(self):
7649  r"""save_configuration(ConfigurationSet self)"""
7650  return _IMP_kernel.ConfigurationSet_save_configuration(self)
7651 
7652  def get_number_of_configurations(self):
7653  r"""get_number_of_configurations(ConfigurationSet self) -> unsigned int"""
7654  return _IMP_kernel.ConfigurationSet_get_number_of_configurations(self)
7655 
7656  def load_configuration(self, i):
7657  r"""load_configuration(ConfigurationSet self, int i)"""
7658  return _IMP_kernel.ConfigurationSet_load_configuration(self, i)
7659 
7660  def remove_configuration(self, i):
7661  r"""remove_configuration(ConfigurationSet self, unsigned int i)"""
7662  return _IMP_kernel.ConfigurationSet_remove_configuration(self, i)
7663 
7664  def get_model(self):
7665  r"""get_model(ConfigurationSet self) -> Model"""
7666  return _IMP_kernel.ConfigurationSet_get_model(self)
7667 
7668  def get_version_info(self):
7669  r"""get_version_info(ConfigurationSet self) -> VersionInfo"""
7670  return _IMP_kernel.ConfigurationSet_get_version_info(self)
7671  __swig_destroy__ = _IMP_kernel.delete_ConfigurationSet
7672 
7673  def __str__(self):
7674  r"""__str__(ConfigurationSet self) -> std::string"""
7675  return _IMP_kernel.ConfigurationSet___str__(self)
7676 
7677  def __repr__(self):
7678  r"""__repr__(ConfigurationSet self) -> std::string"""
7679  return _IMP_kernel.ConfigurationSet___repr__(self)
7680 
7681  @staticmethod
7682  def get_from(o):
7683  return _object_cast_to_ConfigurationSet(o)
7684 
7685 
7686 # Register ConfigurationSet in _IMP_kernel:
7687 _IMP_kernel.ConfigurationSet_swigregister(ConfigurationSet)
7689  r"""Proxy of C++ IMP::SaveToConfigurationSetOptimizerState class."""
7690 
7691  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7692 
7693  def __init__(self, cs):
7694  r"""__init__(SaveToConfigurationSetOptimizerState self, ConfigurationSet cs) -> SaveToConfigurationSetOptimizerState"""
7695  _IMP_kernel.SaveToConfigurationSetOptimizerState_swiginit(self, _IMP_kernel.new_SaveToConfigurationSetOptimizerState(cs))
7696 
7697  def get_version_info(self):
7698  r"""get_version_info(SaveToConfigurationSetOptimizerState self) -> VersionInfo"""
7699  return _IMP_kernel.SaveToConfigurationSetOptimizerState_get_version_info(self)
7700  __swig_destroy__ = _IMP_kernel.delete_SaveToConfigurationSetOptimizerState
7701 
7702  def __str__(self):
7703  r"""__str__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7704  return _IMP_kernel.SaveToConfigurationSetOptimizerState___str__(self)
7705 
7706  def __repr__(self):
7707  r"""__repr__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7708  return _IMP_kernel.SaveToConfigurationSetOptimizerState___repr__(self)
7709 
7710  @staticmethod
7711  def get_from(o):
7712  return _object_cast_to_SaveToConfigurationSetOptimizerState(o)
7713 
7714 
7715 # Register SaveToConfigurationSetOptimizerState in _IMP_kernel:
7716 _IMP_kernel.SaveToConfigurationSetOptimizerState_swigregister(SaveToConfigurationSetOptimizerState)
7717 class Configuration(Object):
7718  r"""Proxy of C++ IMP::Configuration class."""
7719 
7720  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7721 
7722  def __init__(self, *args):
7723  r"""
7724  __init__(Configuration self, Model m, std::string name="Configuration %1%") -> Configuration
7725  __init__(Configuration self, Model m, Configuration base, std::string name="Configuration %1%") -> Configuration
7726  __init__(Configuration self) -> Configuration
7727  """
7728  _IMP_kernel.Configuration_swiginit(self, _IMP_kernel.new_Configuration(*args))
7729 
7730  def load_configuration(self):
7731  r"""load_configuration(Configuration self)"""
7732  return _IMP_kernel.Configuration_load_configuration(self)
7733 
7734  def swap_configuration(self):
7735  r"""swap_configuration(Configuration self)"""
7736  return _IMP_kernel.Configuration_swap_configuration(self)
7737 
7738  def get_version_info(self):
7739  r"""get_version_info(Configuration self) -> VersionInfo"""
7740  return _IMP_kernel.Configuration_get_version_info(self)
7741  __swig_destroy__ = _IMP_kernel.delete_Configuration
7742 
7743  def __str__(self):
7744  r"""__str__(Configuration self) -> std::string"""
7745  return _IMP_kernel.Configuration___str__(self)
7746 
7747  def __repr__(self):
7748  r"""__repr__(Configuration self) -> std::string"""
7749  return _IMP_kernel.Configuration___repr__(self)
7750 
7751  @staticmethod
7752  def get_from(o):
7753  return _object_cast_to_Configuration(o)
7754 
7755 
7756  def _get_as_binary(self):
7757  r"""_get_as_binary(Configuration self) -> PyObject *"""
7758  return _IMP_kernel.Configuration__get_as_binary(self)
7759 
7760  def _set_from_binary(self, p):
7761  r"""_set_from_binary(Configuration self, PyObject * p)"""
7762  return _IMP_kernel.Configuration__set_from_binary(self, p)
7763 
7764  def __getstate__(self):
7765  p = self._get_as_binary()
7766  if len(self.__dict__) > 1:
7767  d = self.__dict__.copy()
7768  del d['this']
7769  p = (d, p)
7770  return p
7771 
7772  def __setstate__(self, p):
7773  if not hasattr(self, 'this'):
7774  self.__init__()
7775  if isinstance(p, tuple):
7776  d, p = p
7777  self.__dict__.update(d)
7778  return self._set_from_binary(p)
7779 
7780 
7781 # Register Configuration in _IMP_kernel:
7782 _IMP_kernel.Configuration_swigregister(Configuration)
7783 class Sampler(Object):
7784  r"""Proxy of C++ IMP::Sampler class."""
7785 
7786  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7787 
7788  def __init__(self, *args):
7789  r"""__init__(Sampler self, Model m, std::string name="Sampler %1%") -> Sampler"""
7790  if self.__class__ == Sampler:
7791  _self = None
7792  else:
7793  _self = self
7794  _IMP_kernel.Sampler_swiginit(self, _IMP_kernel.new_Sampler(_self, *args))
7795 
7796  if self.__class__ != Sampler:
7797  _director_objects.register(self)
7798 
7799 
7800 
7801 
7802  def create_sample(self):
7803  r"""create_sample(Sampler self) -> ConfigurationSet"""
7804  return _IMP_kernel.Sampler_create_sample(self)
7805 
7806  def get_scoring_function(self):
7807  r"""get_scoring_function(Sampler self) -> ScoringFunction"""
7808  return _IMP_kernel.Sampler_get_scoring_function(self)
7809 
7810  def set_scoring_function(self, sf):
7811  r"""set_scoring_function(Sampler self, _ScoringFunctionAdaptor sf)"""
7812  return _IMP_kernel.Sampler_set_scoring_function(self, sf)
7813 
7814  def get_model(self):
7815  r"""get_model(Sampler self) -> Model"""
7816  return _IMP_kernel.Sampler_get_model(self)
7817 
7818  def do_sample(self):
7819  r"""do_sample(Sampler self) -> ConfigurationSet"""
7820  return _IMP_kernel.Sampler_do_sample(self)
7821  __swig_destroy__ = _IMP_kernel.delete_Sampler
7822 
7823  def __str__(self):
7824  r"""__str__(Sampler self) -> std::string"""
7825  return _IMP_kernel.Sampler___str__(self)
7826 
7827  def __repr__(self):
7828  r"""__repr__(Sampler self) -> std::string"""
7829  return _IMP_kernel.Sampler___repr__(self)
7830 
7831  @staticmethod
7832  def get_from(o):
7833  return _object_cast_to_Sampler(o)
7834 
7835 
7836  def do_show(self, out):
7837  pass
7838 
7839  @staticmethod
7840  def get_from(o):
7841  return _object_cast_to_Sampler(o)
7842 
7843  def __disown__(self):
7844  self.this.disown()
7845  _IMP_kernel.disown_Sampler(self)
7846  return weakref.proxy(self)
7847 
7848  def do_destroy(self):
7849  r"""do_destroy(Sampler self)"""
7850  return _IMP_kernel.Sampler_do_destroy(self)
7851 
7852 # Register Sampler in _IMP_kernel:
7853 _IMP_kernel.Sampler_swigregister(Sampler)
7854 class PairModifier(_ParticleInputs, _ParticleOutputs, Object):
7855  r"""Proxy of C++ IMP::PairModifier class."""
7856 
7857  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7858 
7859  def __init__(self, *args):
7860  r"""__init__(PairModifier self, std::string name="PairModifier %1%") -> PairModifier"""
7861  if self.__class__ == PairModifier:
7862  _self = None
7863  else:
7864  _self = self
7865  _IMP_kernel.PairModifier_swiginit(self, _IMP_kernel.new_PairModifier(_self, *args))
7866 
7867  if self.__class__ != PairModifier:
7868  _director_objects.register(self)
7869 
7870 
7871 
7872 
7873  def apply_index(self, m, v):
7874  r"""apply_index(PairModifier self, Model m, IMP::ParticleIndexPair const & v)"""
7875  return _IMP_kernel.PairModifier_apply_index(self, m, v)
7876 
7877  def apply_indexes(self, m, o, lower_bound, upper_bound):
7878  r"""apply_indexes(PairModifier self, Model m, IMP::ParticleIndexPairs const & o, unsigned int lower_bound, unsigned int upper_bound)"""
7879  return _IMP_kernel.PairModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
7880 
7881  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
7882  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)"""
7883  return _IMP_kernel.PairModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
7884 
7885  def __str__(self):
7886  r"""__str__(PairModifier self) -> std::string"""
7887  return _IMP_kernel.PairModifier___str__(self)
7888 
7889  def __repr__(self):
7890  r"""__repr__(PairModifier self) -> std::string"""
7891  return _IMP_kernel.PairModifier___repr__(self)
7892 
7893  @staticmethod
7894  def get_from(o):
7895  return _object_cast_to_PairModifier(o)
7896 
7897 
7898  def do_show(self, out):
7899  pass
7900 
7901  @staticmethod
7902  def get_from(o):
7903  return _object_cast_to_PairModifier(o)
7904 
7905  __swig_destroy__ = _IMP_kernel.delete_PairModifier
7906  def __disown__(self):
7907  self.this.disown()
7908  _IMP_kernel.disown_PairModifier(self)
7909  return weakref.proxy(self)
7910 
7911  def do_get_inputs(self, m, pis):
7912  r"""do_get_inputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7913  return _IMP_kernel.PairModifier_do_get_inputs(self, m, pis)
7914 
7915  def do_get_outputs(self, m, pis):
7916  r"""do_get_outputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7917  return _IMP_kernel.PairModifier_do_get_outputs(self, m, pis)
7918 
7919  def do_destroy(self):
7920  r"""do_destroy(PairModifier self)"""
7921  return _IMP_kernel.PairModifier_do_destroy(self)
7922 
7923 # Register PairModifier in _IMP_kernel:
7924 _IMP_kernel.PairModifier_swigregister(PairModifier)
7925 class PairScore(_ParticleInputs, Object):
7926  r"""Proxy of C++ IMP::PairScore class."""
7927 
7928  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7929 
7930  def __init__(self, *args):
7931  r"""__init__(PairScore self, std::string name="PairScore %1%") -> PairScore"""
7932  if self.__class__ == PairScore:
7933  _self = None
7934  else:
7935  _self = self
7936  _IMP_kernel.PairScore_swiginit(self, _IMP_kernel.new_PairScore(_self, *args))
7937 
7938  if self.__class__ != PairScore:
7939  _director_objects.register(self)
7940 
7941 
7942 
7943 
7944  def evaluate_index(self, m, vt, da):
7945  r"""evaluate_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da) -> double"""
7946  return _IMP_kernel.PairScore_evaluate_index(self, m, vt, da)
7947 
7948  def check_indexes(self, m, pis):
7949  r"""check_indexes(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
7950  return _IMP_kernel.PairScore_check_indexes(self, m, pis)
7951 
7952  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
7953  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"""
7954  return _IMP_kernel.PairScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
7955 
7956  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7957  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"""
7958  return _IMP_kernel.PairScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
7959 
7960  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
7961  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"""
7962  return _IMP_kernel.PairScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
7963 
7964  def evaluate_if_good_index(self, m, vt, da, max):
7965  r"""evaluate_if_good_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da, double max) -> double"""
7966  return _IMP_kernel.PairScore_evaluate_if_good_index(self, m, vt, da, max)
7967 
7968  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7969  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"""
7970  return _IMP_kernel.PairScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
7971 
7972  def create_current_decomposition(self, m, vt):
7973  r"""create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7974  return _IMP_kernel.PairScore_create_current_decomposition(self, m, vt)
7975 
7976  def do_create_current_decomposition(self, m, vt):
7977  r"""do_create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7978  return _IMP_kernel.PairScore_do_create_current_decomposition(self, m, vt)
7979  __swig_destroy__ = _IMP_kernel.delete_PairScore
7980 
7981  def __str__(self):
7982  r"""__str__(PairScore self) -> std::string"""
7983  return _IMP_kernel.PairScore___str__(self)
7984 
7985  def __repr__(self):
7986  r"""__repr__(PairScore self) -> std::string"""
7987  return _IMP_kernel.PairScore___repr__(self)
7988 
7989  @staticmethod
7990  def get_from(o):
7991  return _object_cast_to_PairScore(o)
7992 
7993 
7994  def do_show(self, out):
7995  pass
7996 
7997  @staticmethod
7998  def get_from(o):
7999  return _object_cast_to_PairScore(o)
8000 
8001 
8002  def _wrap_jax(self, m, score_func, keys=None):
8003  """Create the return value for _get_jax.
8004  Use this method in _get_jax() to wrap the JAX scoring function
8005  with other score-specific information.
8006 
8007  @param m The IMP.Model that the score will act on.
8008  @param score_func A function implemented using JAX that takes
8009  one argument (the current JAX Model) and returns the total
8010  score.
8011  @param keys Model attributes used by the PairScore.
8012  See IMP::Restraint::_wrap_jax.
8013  """
8014  from IMP._jax_util import JAXScoreInfo
8015  return JAXScoreInfo(m, score_func=score_func, keys=keys)
8016 
8017  def _get_jax(self, m, indexes, space):
8018  """Return a JAX implementation of this PairScore.
8019  Implement this method in a PairScore subclass to provide
8020  an equivalent function using [JAX](https://docs.jax.dev/)
8021  that scores the current JAX Model with a given set of
8022  ParticlePairIndexes. See also _wrap_jax.
8023 
8024  @param m The IMP.Model that the score will act on.
8025  @param indexes The ParticlePairIndexes that the score will act on.
8026  @param space The space in which the score is evaluated
8027  (e.g. a periodic box). See IMP._jax_util.Space.
8028  """
8029  raise NotImplementedError(
8030  f"No JAX implementation for {self} ({type(self)})")
8031 
8032  def __disown__(self):
8033  self.this.disown()
8034  _IMP_kernel.disown_PairScore(self)
8035  return weakref.proxy(self)
8036 
8037  def do_get_inputs(self, m, pis):
8038  r"""do_get_inputs(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8039  return _IMP_kernel.PairScore_do_get_inputs(self, m, pis)
8040 
8041  def do_destroy(self):
8042  r"""do_destroy(PairScore self)"""
8043  return _IMP_kernel.PairScore_do_destroy(self)
8044 
8045 # Register PairScore in _IMP_kernel:
8046 _IMP_kernel.PairScore_swigregister(PairScore)
8047 class PairPredicate(_ParticleInputs, Object):
8048  r"""Proxy of C++ IMP::PairPredicate class."""
8049 
8050  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8051 
8052  def __init__(self, *args):
8053  r"""__init__(PairPredicate self, std::string name="PairPredicate %1%") -> PairPredicate"""
8054  if self.__class__ == PairPredicate:
8055  _self = None
8056  else:
8057  _self = self
8058  _IMP_kernel.PairPredicate_swiginit(self, _IMP_kernel.new_PairPredicate(_self, *args))
8059 
8060  if self.__class__ != PairPredicate:
8061  _director_objects.register(self)
8062 
8063 
8064 
8065 
8066  def setup_for_get_value_index_in_batch(self, arg0):
8067  r"""setup_for_get_value_index_in_batch(PairPredicate self, Model arg0)"""
8068  return _IMP_kernel.PairPredicate_setup_for_get_value_index_in_batch(self, arg0)
8069 
8070  def get_value_index_in_batch(self, m, vt):
8071  r"""get_value_index_in_batch(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
8072  return _IMP_kernel.PairPredicate_get_value_index_in_batch(self, m, vt)
8073 
8074  def __call__(self, m, vt):
8075  r"""__call__(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
8076  return _IMP_kernel.PairPredicate___call__(self, m, vt)
8077 
8078  def get_value_index(self, *args):
8079  r"""
8080  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int
8081  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
8082  """
8083  return _IMP_kernel.PairPredicate_get_value_index(self, *args)
8084  __swig_destroy__ = _IMP_kernel.delete_PairPredicate
8085 
8086  def __str__(self):
8087  r"""__str__(PairPredicate self) -> std::string"""
8088  return _IMP_kernel.PairPredicate___str__(self)
8089 
8090  def __repr__(self):
8091  r"""__repr__(PairPredicate self) -> std::string"""
8092  return _IMP_kernel.PairPredicate___repr__(self)
8093 
8094  @staticmethod
8095  def get_from(o):
8096  return _object_cast_to_PairPredicate(o)
8097 
8098 
8099  def do_show(self, out):
8100  pass
8101 
8102  @staticmethod
8103  def get_from(o):
8104  return _object_cast_to_PairPredicate(o)
8105 
8106  def __disown__(self):
8107  self.this.disown()
8108  _IMP_kernel.disown_PairPredicate(self)
8109  return weakref.proxy(self)
8110 
8111  def do_get_inputs(self, m, pis):
8112  r"""do_get_inputs(PairPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8113  return _IMP_kernel.PairPredicate_do_get_inputs(self, m, pis)
8114 
8115  def do_destroy(self):
8116  r"""do_destroy(PairPredicate self)"""
8117  return _IMP_kernel.PairPredicate_do_destroy(self)
8118 
8119 # Register PairPredicate in _IMP_kernel:
8120 _IMP_kernel.PairPredicate_swigregister(PairPredicate)
8121 class PairContainer(Container):
8122  r"""Proxy of C++ IMP::PairContainer class."""
8123 
8124  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8125 
8126  def apply_generic(self, m):
8127  r"""apply_generic(PairContainer self, PairModifier m)"""
8128  return _IMP_kernel.PairContainer_apply_generic(self, m)
8129 
8130  def apply_generic_moved(self, m, moved_pis, reset_pis):
8131  r"""apply_generic_moved(PairContainer self, PairModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8132  return _IMP_kernel.PairContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8133 
8134  def apply(self, sm):
8135  r"""apply(PairContainer self, PairModifier sm)"""
8136  return _IMP_kernel.PairContainer_apply(self, sm)
8137 
8138  def apply_moved(self, sm, moved_pis, reset_pis):
8139  r"""apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8140  return _IMP_kernel.PairContainer_apply_moved(self, sm, moved_pis, reset_pis)
8141 
8142  def get_range_indexes(self):
8143  r"""get_range_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
8144  return _IMP_kernel.PairContainer_get_range_indexes(self)
8145 
8146  def get_contents(self):
8147  r"""get_contents(PairContainer self) -> IMP::ParticleIndexPairs const &"""
8148  return _IMP_kernel.PairContainer_get_contents(self)
8149 
8150  def get_indexes(self):
8151  r"""get_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
8152  return _IMP_kernel.PairContainer_get_indexes(self)
8153 
8154  def get(self, *args):
8155  r"""
8156  get(PairContainer self) -> IMP::ParticlePairsTemp
8157  get(PairContainer self, unsigned int i) -> IMP::ParticlePair
8158  """
8159  return _IMP_kernel.PairContainer_get(self, *args)
8160 
8161  def get_number(self):
8162  r"""get_number(PairContainer self) -> unsigned int"""
8163  return _IMP_kernel.PairContainer_get_number(self)
8164 
8165  def __init__(self, *args):
8166  r"""
8167  __init__(PairContainer self, Model m, std::string name="PairContainer %1%") -> PairContainer
8168  __init__(PairContainer self) -> PairContainer
8169  """
8170  if self.__class__ == PairContainer:
8171  _self = None
8172  else:
8173  _self = self
8174  _IMP_kernel.PairContainer_swiginit(self, _IMP_kernel.new_PairContainer(_self, *args))
8175 
8176  if self.__class__ != PairContainer:
8177  _director_objects.register(self)
8178 
8179 
8180 
8181 
8182  def do_apply(self, sm):
8183  r"""do_apply(PairContainer self, PairModifier sm)"""
8184  return _IMP_kernel.PairContainer_do_apply(self, sm)
8185 
8186  def do_apply_moved(self, sm, moved_pis, reset_pis):
8187  r"""do_apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8188  return _IMP_kernel.PairContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8189 
8190  def do_get_provides_access(self):
8191  r"""do_get_provides_access(PairContainer self) -> bool"""
8192  return _IMP_kernel.PairContainer_do_get_provides_access(self)
8193  __swig_destroy__ = _IMP_kernel.delete_PairContainer
8194 
8195  def __str__(self):
8196  r"""__str__(PairContainer self) -> std::string"""
8197  return _IMP_kernel.PairContainer___str__(self)
8198 
8199  def __repr__(self):
8200  r"""__repr__(PairContainer self) -> std::string"""
8201  return _IMP_kernel.PairContainer___repr__(self)
8202 
8203  @staticmethod
8204  def get_from(o):
8205  return _object_cast_to_PairContainer(o)
8206 
8207 
8208  def do_show(self, out):
8209  pass
8210 
8211  @staticmethod
8212  def get_from(o):
8213  return _object_cast_to_PairContainer(o)
8214 
8215  def __disown__(self):
8216  self.this.disown()
8217  _IMP_kernel.disown_PairContainer(self)
8218  return weakref.proxy(self)
8219 
8220  def do_destroy(self):
8221  r"""do_destroy(PairContainer self)"""
8222  return _IMP_kernel.PairContainer_do_destroy(self)
8223 
8224  def handle_set_has_required_score_states(self, arg0):
8225  r"""handle_set_has_required_score_states(PairContainer self, bool arg0)"""
8226  return _IMP_kernel.PairContainer_handle_set_has_required_score_states(self, arg0)
8227 
8228  def do_get_inputs(self):
8229  r"""do_get_inputs(PairContainer self) -> IMP::ModelObjectsTemp"""
8230  return _IMP_kernel.PairContainer_do_get_inputs(self)
8231 
8232  def do_get_interactions(self):
8233  r"""do_get_interactions(PairContainer self) -> IMP::ModelObjectsTemps"""
8234  return _IMP_kernel.PairContainer_do_get_interactions(self)
8235 
8236  def do_get_contents_hash(self):
8237  r"""do_get_contents_hash(PairContainer self) -> std::size_t"""
8238  return _IMP_kernel.PairContainer_do_get_contents_hash(self)
8239 
8240 # Register PairContainer in _IMP_kernel:
8241 _IMP_kernel.PairContainer_swigregister(PairContainer)
8242 class _PairContainerAdaptor(_InputAdaptor):
8243  r"""Proxy of C++ IMP::PairContainerAdaptor class."""
8244 
8245  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8246  __repr__ = _swig_repr
8247 
8248  def __init__(self, *args):
8249  r"""
8250  __init__(_PairContainerAdaptor self) -> _PairContainerAdaptor
8251  __init__(_PairContainerAdaptor self, PairContainer c) -> _PairContainerAdaptor
8252  __init__(_PairContainerAdaptor self, IMP::ParticlePairsTemp const & t) -> _PairContainerAdaptor
8253  """
8254  _IMP_kernel._PairContainerAdaptor_swiginit(self, _IMP_kernel.new__PairContainerAdaptor(*args))
8255 
8256  def set_name_if_default(self, name):
8257  r"""set_name_if_default(_PairContainerAdaptor self, std::string name)"""
8258  return _IMP_kernel._PairContainerAdaptor_set_name_if_default(self, name)
8259  __swig_destroy__ = _IMP_kernel.delete__PairContainerAdaptor
8260 
8261 # Register _PairContainerAdaptor in _IMP_kernel:
8262 _IMP_kernel._PairContainerAdaptor_swigregister(_PairContainerAdaptor)
8263 class QuadModifier(_ParticleInputs, _ParticleOutputs, Object):
8264  r"""Proxy of C++ IMP::QuadModifier class."""
8265 
8266  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8267 
8268  def __init__(self, *args):
8269  r"""__init__(QuadModifier self, std::string name="QuadModifier %1%") -> QuadModifier"""
8270  if self.__class__ == QuadModifier:
8271  _self = None
8272  else:
8273  _self = self
8274  _IMP_kernel.QuadModifier_swiginit(self, _IMP_kernel.new_QuadModifier(_self, *args))
8275 
8276  if self.__class__ != QuadModifier:
8277  _director_objects.register(self)
8278 
8279 
8280 
8281 
8282  def apply_index(self, m, v):
8283  r"""apply_index(QuadModifier self, Model m, IMP::ParticleIndexQuad const & v)"""
8284  return _IMP_kernel.QuadModifier_apply_index(self, m, v)
8285 
8286  def apply_indexes(self, m, o, lower_bound, upper_bound):
8287  r"""apply_indexes(QuadModifier self, Model m, IMP::ParticleIndexQuads const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8288  return _IMP_kernel.QuadModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8289 
8290  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8291  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)"""
8292  return _IMP_kernel.QuadModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8293 
8294  def __str__(self):
8295  r"""__str__(QuadModifier self) -> std::string"""
8296  return _IMP_kernel.QuadModifier___str__(self)
8297 
8298  def __repr__(self):
8299  r"""__repr__(QuadModifier self) -> std::string"""
8300  return _IMP_kernel.QuadModifier___repr__(self)
8301 
8302  @staticmethod
8303  def get_from(o):
8304  return _object_cast_to_QuadModifier(o)
8305 
8306 
8307  def do_show(self, out):
8308  pass
8309 
8310  @staticmethod
8311  def get_from(o):
8312  return _object_cast_to_QuadModifier(o)
8313 
8314  __swig_destroy__ = _IMP_kernel.delete_QuadModifier
8315  def __disown__(self):
8316  self.this.disown()
8317  _IMP_kernel.disown_QuadModifier(self)
8318  return weakref.proxy(self)
8319 
8320  def do_get_inputs(self, m, pis):
8321  r"""do_get_inputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8322  return _IMP_kernel.QuadModifier_do_get_inputs(self, m, pis)
8323 
8324  def do_get_outputs(self, m, pis):
8325  r"""do_get_outputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8326  return _IMP_kernel.QuadModifier_do_get_outputs(self, m, pis)
8327 
8328  def do_destroy(self):
8329  r"""do_destroy(QuadModifier self)"""
8330  return _IMP_kernel.QuadModifier_do_destroy(self)
8331 
8332 # Register QuadModifier in _IMP_kernel:
8333 _IMP_kernel.QuadModifier_swigregister(QuadModifier)
8334 class QuadScore(_ParticleInputs, Object):
8335  r"""Proxy of C++ IMP::QuadScore class."""
8336 
8337  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8338 
8339  def __init__(self, *args):
8340  r"""__init__(QuadScore self, std::string name="QuadScore %1%") -> QuadScore"""
8341  if self.__class__ == QuadScore:
8342  _self = None
8343  else:
8344  _self = self
8345  _IMP_kernel.QuadScore_swiginit(self, _IMP_kernel.new_QuadScore(_self, *args))
8346 
8347  if self.__class__ != QuadScore:
8348  _director_objects.register(self)
8349 
8350 
8351 
8352 
8353  def evaluate_index(self, m, vt, da):
8354  r"""evaluate_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da) -> double"""
8355  return _IMP_kernel.QuadScore_evaluate_index(self, m, vt, da)
8356 
8357  def check_indexes(self, m, pis):
8358  r"""check_indexes(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8359  return _IMP_kernel.QuadScore_check_indexes(self, m, pis)
8360 
8361  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8362  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"""
8363  return _IMP_kernel.QuadScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8364 
8365  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8366  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"""
8367  return _IMP_kernel.QuadScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8368 
8369  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8370  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"""
8371  return _IMP_kernel.QuadScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8372 
8373  def evaluate_if_good_index(self, m, vt, da, max):
8374  r"""evaluate_if_good_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da, double max) -> double"""
8375  return _IMP_kernel.QuadScore_evaluate_if_good_index(self, m, vt, da, max)
8376 
8377  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8378  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"""
8379  return _IMP_kernel.QuadScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8380 
8381  def create_current_decomposition(self, m, vt):
8382  r"""create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8383  return _IMP_kernel.QuadScore_create_current_decomposition(self, m, vt)
8384 
8385  def do_create_current_decomposition(self, m, vt):
8386  r"""do_create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8387  return _IMP_kernel.QuadScore_do_create_current_decomposition(self, m, vt)
8388  __swig_destroy__ = _IMP_kernel.delete_QuadScore
8389 
8390  def __str__(self):
8391  r"""__str__(QuadScore self) -> std::string"""
8392  return _IMP_kernel.QuadScore___str__(self)
8393 
8394  def __repr__(self):
8395  r"""__repr__(QuadScore self) -> std::string"""
8396  return _IMP_kernel.QuadScore___repr__(self)
8397 
8398  @staticmethod
8399  def get_from(o):
8400  return _object_cast_to_QuadScore(o)
8401 
8402 
8403  def do_show(self, out):
8404  pass
8405 
8406  @staticmethod
8407  def get_from(o):
8408  return _object_cast_to_QuadScore(o)
8409 
8410  def __disown__(self):
8411  self.this.disown()
8412  _IMP_kernel.disown_QuadScore(self)
8413  return weakref.proxy(self)
8414 
8415  def do_get_inputs(self, m, pis):
8416  r"""do_get_inputs(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8417  return _IMP_kernel.QuadScore_do_get_inputs(self, m, pis)
8418 
8419  def do_destroy(self):
8420  r"""do_destroy(QuadScore self)"""
8421  return _IMP_kernel.QuadScore_do_destroy(self)
8422 
8423 # Register QuadScore in _IMP_kernel:
8424 _IMP_kernel.QuadScore_swigregister(QuadScore)
8425 class QuadPredicate(_ParticleInputs, Object):
8426  r"""Proxy of C++ IMP::QuadPredicate class."""
8427 
8428  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8429 
8430  def __init__(self, *args):
8431  r"""__init__(QuadPredicate self, std::string name="QuadPredicate %1%") -> QuadPredicate"""
8432  if self.__class__ == QuadPredicate:
8433  _self = None
8434  else:
8435  _self = self
8436  _IMP_kernel.QuadPredicate_swiginit(self, _IMP_kernel.new_QuadPredicate(_self, *args))
8437 
8438  if self.__class__ != QuadPredicate:
8439  _director_objects.register(self)
8440 
8441 
8442 
8443 
8444  def setup_for_get_value_index_in_batch(self, arg0):
8445  r"""setup_for_get_value_index_in_batch(QuadPredicate self, Model arg0)"""
8446  return _IMP_kernel.QuadPredicate_setup_for_get_value_index_in_batch(self, arg0)
8447 
8448  def get_value_index_in_batch(self, m, vt):
8449  r"""get_value_index_in_batch(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8450  return _IMP_kernel.QuadPredicate_get_value_index_in_batch(self, m, vt)
8451 
8452  def __call__(self, m, vt):
8453  r"""__call__(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8454  return _IMP_kernel.QuadPredicate___call__(self, m, vt)
8455 
8456  def get_value_index(self, *args):
8457  r"""
8458  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int
8459  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuads const & o) -> IMP::Ints
8460  """
8461  return _IMP_kernel.QuadPredicate_get_value_index(self, *args)
8462  __swig_destroy__ = _IMP_kernel.delete_QuadPredicate
8463 
8464  def __str__(self):
8465  r"""__str__(QuadPredicate self) -> std::string"""
8466  return _IMP_kernel.QuadPredicate___str__(self)
8467 
8468  def __repr__(self):
8469  r"""__repr__(QuadPredicate self) -> std::string"""
8470  return _IMP_kernel.QuadPredicate___repr__(self)
8471 
8472  @staticmethod
8473  def get_from(o):
8474  return _object_cast_to_QuadPredicate(o)
8475 
8476 
8477  def do_show(self, out):
8478  pass
8479 
8480  @staticmethod
8481  def get_from(o):
8482  return _object_cast_to_QuadPredicate(o)
8483 
8484  def __disown__(self):
8485  self.this.disown()
8486  _IMP_kernel.disown_QuadPredicate(self)
8487  return weakref.proxy(self)
8488 
8489  def do_get_inputs(self, m, pis):
8490  r"""do_get_inputs(QuadPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8491  return _IMP_kernel.QuadPredicate_do_get_inputs(self, m, pis)
8492 
8493  def do_destroy(self):
8494  r"""do_destroy(QuadPredicate self)"""
8495  return _IMP_kernel.QuadPredicate_do_destroy(self)
8496 
8497 # Register QuadPredicate in _IMP_kernel:
8498 _IMP_kernel.QuadPredicate_swigregister(QuadPredicate)
8499 class QuadContainer(Container):
8500  r"""Proxy of C++ IMP::QuadContainer class."""
8501 
8502  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8503 
8504  def apply_generic(self, m):
8505  r"""apply_generic(QuadContainer self, QuadModifier m)"""
8506  return _IMP_kernel.QuadContainer_apply_generic(self, m)
8507 
8508  def apply_generic_moved(self, m, moved_pis, reset_pis):
8509  r"""apply_generic_moved(QuadContainer self, QuadModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8510  return _IMP_kernel.QuadContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8511 
8512  def apply(self, sm):
8513  r"""apply(QuadContainer self, QuadModifier sm)"""
8514  return _IMP_kernel.QuadContainer_apply(self, sm)
8515 
8516  def apply_moved(self, sm, moved_pis, reset_pis):
8517  r"""apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8518  return _IMP_kernel.QuadContainer_apply_moved(self, sm, moved_pis, reset_pis)
8519 
8520  def get_range_indexes(self):
8521  r"""get_range_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8522  return _IMP_kernel.QuadContainer_get_range_indexes(self)
8523 
8524  def get_contents(self):
8525  r"""get_contents(QuadContainer self) -> IMP::ParticleIndexQuads const &"""
8526  return _IMP_kernel.QuadContainer_get_contents(self)
8527 
8528  def get_indexes(self):
8529  r"""get_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8530  return _IMP_kernel.QuadContainer_get_indexes(self)
8531 
8532  def get(self, *args):
8533  r"""
8534  get(QuadContainer self) -> IMP::ParticleQuadsTemp
8535  get(QuadContainer self, unsigned int i) -> IMP::ParticleQuad
8536  """
8537  return _IMP_kernel.QuadContainer_get(self, *args)
8538 
8539  def get_number(self):
8540  r"""get_number(QuadContainer self) -> unsigned int"""
8541  return _IMP_kernel.QuadContainer_get_number(self)
8542 
8543  def __init__(self, *args):
8544  r"""
8545  __init__(QuadContainer self, Model m, std::string name="QuadContainer %1%") -> QuadContainer
8546  __init__(QuadContainer self) -> QuadContainer
8547  """
8548  if self.__class__ == QuadContainer:
8549  _self = None
8550  else:
8551  _self = self
8552  _IMP_kernel.QuadContainer_swiginit(self, _IMP_kernel.new_QuadContainer(_self, *args))
8553 
8554  if self.__class__ != QuadContainer:
8555  _director_objects.register(self)
8556 
8557 
8558 
8559 
8560  def do_apply(self, sm):
8561  r"""do_apply(QuadContainer self, QuadModifier sm)"""
8562  return _IMP_kernel.QuadContainer_do_apply(self, sm)
8563 
8564  def do_apply_moved(self, sm, moved_pis, reset_pis):
8565  r"""do_apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8566  return _IMP_kernel.QuadContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8567 
8568  def do_get_provides_access(self):
8569  r"""do_get_provides_access(QuadContainer self) -> bool"""
8570  return _IMP_kernel.QuadContainer_do_get_provides_access(self)
8571  __swig_destroy__ = _IMP_kernel.delete_QuadContainer
8572 
8573  def __str__(self):
8574  r"""__str__(QuadContainer self) -> std::string"""
8575  return _IMP_kernel.QuadContainer___str__(self)
8576 
8577  def __repr__(self):
8578  r"""__repr__(QuadContainer self) -> std::string"""
8579  return _IMP_kernel.QuadContainer___repr__(self)
8580 
8581  @staticmethod
8582  def get_from(o):
8583  return _object_cast_to_QuadContainer(o)
8584 
8585 
8586  def do_show(self, out):
8587  pass
8588 
8589  @staticmethod
8590  def get_from(o):
8591  return _object_cast_to_QuadContainer(o)
8592 
8593  def __disown__(self):
8594  self.this.disown()
8595  _IMP_kernel.disown_QuadContainer(self)
8596  return weakref.proxy(self)
8597 
8598  def do_destroy(self):
8599  r"""do_destroy(QuadContainer self)"""
8600  return _IMP_kernel.QuadContainer_do_destroy(self)
8601 
8602  def handle_set_has_required_score_states(self, arg0):
8603  r"""handle_set_has_required_score_states(QuadContainer self, bool arg0)"""
8604  return _IMP_kernel.QuadContainer_handle_set_has_required_score_states(self, arg0)
8605 
8606  def do_get_inputs(self):
8607  r"""do_get_inputs(QuadContainer self) -> IMP::ModelObjectsTemp"""
8608  return _IMP_kernel.QuadContainer_do_get_inputs(self)
8609 
8610  def do_get_interactions(self):
8611  r"""do_get_interactions(QuadContainer self) -> IMP::ModelObjectsTemps"""
8612  return _IMP_kernel.QuadContainer_do_get_interactions(self)
8613 
8614  def do_get_contents_hash(self):
8615  r"""do_get_contents_hash(QuadContainer self) -> std::size_t"""
8616  return _IMP_kernel.QuadContainer_do_get_contents_hash(self)
8617 
8618 # Register QuadContainer in _IMP_kernel:
8619 _IMP_kernel.QuadContainer_swigregister(QuadContainer)
8620 class _QuadContainerAdaptor(_InputAdaptor):
8621  r"""Proxy of C++ IMP::QuadContainerAdaptor class."""
8622 
8623  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8624  __repr__ = _swig_repr
8625 
8626  def __init__(self, *args):
8627  r"""
8628  __init__(_QuadContainerAdaptor self) -> _QuadContainerAdaptor
8629  __init__(_QuadContainerAdaptor self, QuadContainer c) -> _QuadContainerAdaptor
8630  __init__(_QuadContainerAdaptor self, IMP::ParticleQuadsTemp const & t) -> _QuadContainerAdaptor
8631  """
8632  _IMP_kernel._QuadContainerAdaptor_swiginit(self, _IMP_kernel.new__QuadContainerAdaptor(*args))
8633 
8634  def set_name_if_default(self, name):
8635  r"""set_name_if_default(_QuadContainerAdaptor self, std::string name)"""
8636  return _IMP_kernel._QuadContainerAdaptor_set_name_if_default(self, name)
8637  __swig_destroy__ = _IMP_kernel.delete__QuadContainerAdaptor
8638 
8639 # Register _QuadContainerAdaptor in _IMP_kernel:
8640 _IMP_kernel._QuadContainerAdaptor_swigregister(_QuadContainerAdaptor)
8641 class SingletonModifier(_ParticleInputs, _ParticleOutputs, Object):
8642  r"""Proxy of C++ IMP::SingletonModifier class."""
8643 
8644  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8645 
8646  def __init__(self, *args):
8647  r"""__init__(SingletonModifier self, std::string name="SingletonModifier %1%") -> SingletonModifier"""
8648  if self.__class__ == SingletonModifier:
8649  _self = None
8650  else:
8651  _self = self
8652  _IMP_kernel.SingletonModifier_swiginit(self, _IMP_kernel.new_SingletonModifier(_self, *args))
8653 
8654  if self.__class__ != SingletonModifier:
8655  _director_objects.register(self)
8656 
8657 
8658 
8659 
8660  def apply_index(self, m, v):
8661  r"""apply_index(SingletonModifier self, Model m, ParticleIndex v)"""
8662  return _IMP_kernel.SingletonModifier_apply_index(self, m, v)
8663 
8664  def apply_indexes(self, m, o, lower_bound, upper_bound):
8665  r"""apply_indexes(SingletonModifier self, Model m, IMP::ParticleIndexes const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8666  return _IMP_kernel.SingletonModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8667 
8668  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8669  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)"""
8670  return _IMP_kernel.SingletonModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8671 
8672  def __str__(self):
8673  r"""__str__(SingletonModifier self) -> std::string"""
8674  return _IMP_kernel.SingletonModifier___str__(self)
8675 
8676  def __repr__(self):
8677  r"""__repr__(SingletonModifier self) -> std::string"""
8678  return _IMP_kernel.SingletonModifier___repr__(self)
8679 
8680  @staticmethod
8681  def get_from(o):
8682  return _object_cast_to_SingletonModifier(o)
8683 
8684 
8685  def do_show(self, out):
8686  pass
8687 
8688  @staticmethod
8689  def get_from(o):
8690  return _object_cast_to_SingletonModifier(o)
8691 
8692 
8693  def _wrap_jax(self, apply_func, keys=None):
8694  """Create the return value for _get_jax.
8695  Use this method in _get_jax() to wrap the JAX function
8696  with other modifier-specific information.
8697 
8698  @param apply_func A function implemented using JAX that takes
8699  one argument (the current JAX Model) and returns a new
8700  modified JAX Model.
8701  @param keys Model attributes used by the SingletonModifier.
8702  See IMP::Restraint::_wrap_jax.
8703  """
8704  from IMP._jax_util import JAXModifierInfo
8705  return JAXModifierInfo(apply_func=apply_func, keys=keys)
8706 
8707  def _get_jax(self, m, indexes):
8708  """Return a JAX implementation of this SingletonModifier.
8709  Implement this method in a SingletonModifier subclass to provide
8710  an equivalent function using [JAX](https://docs.jax.dev/)
8711  that modifies the current JAX Model. See also _wrap_jax.
8712 
8713  @param m The IMP.Model that the modifier will act on.
8714  @param indexes The ParticleIndexes that the modifier will act on.
8715  """
8716  raise NotImplementedError(
8717  f"No JAX implementation for {self} ({type(self)})")
8718 
8719  __swig_destroy__ = _IMP_kernel.delete_SingletonModifier
8720  def __disown__(self):
8721  self.this.disown()
8722  _IMP_kernel.disown_SingletonModifier(self)
8723  return weakref.proxy(self)
8724 
8725  def do_get_inputs(self, m, pis):
8726  r"""do_get_inputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8727  return _IMP_kernel.SingletonModifier_do_get_inputs(self, m, pis)
8728 
8729  def do_get_outputs(self, m, pis):
8730  r"""do_get_outputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8731  return _IMP_kernel.SingletonModifier_do_get_outputs(self, m, pis)
8732 
8733  def do_destroy(self):
8734  r"""do_destroy(SingletonModifier self)"""
8735  return _IMP_kernel.SingletonModifier_do_destroy(self)
8736 
8737 # Register SingletonModifier in _IMP_kernel:
8738 _IMP_kernel.SingletonModifier_swigregister(SingletonModifier)
8739 class SingletonScore(_ParticleInputs, Object):
8740  r"""Proxy of C++ IMP::SingletonScore class."""
8741 
8742  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8743 
8744  def __init__(self, *args):
8745  r"""__init__(SingletonScore self, std::string name="SingletonScore %1%") -> SingletonScore"""
8746  if self.__class__ == SingletonScore:
8747  _self = None
8748  else:
8749  _self = self
8750  _IMP_kernel.SingletonScore_swiginit(self, _IMP_kernel.new_SingletonScore(_self, *args))
8751 
8752  if self.__class__ != SingletonScore:
8753  _director_objects.register(self)
8754 
8755 
8756 
8757 
8758  def evaluate_index(self, m, vt, da):
8759  r"""evaluate_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da) -> double"""
8760  return _IMP_kernel.SingletonScore_evaluate_index(self, m, vt, da)
8761 
8762  def check_indexes(self, m, pis):
8763  r"""check_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8764  return _IMP_kernel.SingletonScore_check_indexes(self, m, pis)
8765 
8766  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8767  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"""
8768  return _IMP_kernel.SingletonScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8769 
8770  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8771  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"""
8772  return _IMP_kernel.SingletonScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8773 
8774  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8775  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"""
8776  return _IMP_kernel.SingletonScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8777 
8778  def evaluate_if_good_index(self, m, vt, da, max):
8779  r"""evaluate_if_good_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da, double max) -> double"""
8780  return _IMP_kernel.SingletonScore_evaluate_if_good_index(self, m, vt, da, max)
8781 
8782  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8783  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"""
8784  return _IMP_kernel.SingletonScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8785 
8786  def create_current_decomposition(self, m, vt):
8787  r"""create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8788  return _IMP_kernel.SingletonScore_create_current_decomposition(self, m, vt)
8789 
8790  def do_create_current_decomposition(self, m, vt):
8791  r"""do_create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8792  return _IMP_kernel.SingletonScore_do_create_current_decomposition(self, m, vt)
8793  __swig_destroy__ = _IMP_kernel.delete_SingletonScore
8794 
8795  def __str__(self):
8796  r"""__str__(SingletonScore self) -> std::string"""
8797  return _IMP_kernel.SingletonScore___str__(self)
8798 
8799  def __repr__(self):
8800  r"""__repr__(SingletonScore self) -> std::string"""
8801  return _IMP_kernel.SingletonScore___repr__(self)
8802 
8803  @staticmethod
8804  def get_from(o):
8805  return _object_cast_to_SingletonScore(o)
8806 
8807 
8808  def do_show(self, out):
8809  pass
8810 
8811  @staticmethod
8812  def get_from(o):
8813  return _object_cast_to_SingletonScore(o)
8814 
8815 
8816  def _wrap_jax(self, m, score_func, keys=None):
8817  """See IMP::PairScore::_wrap_jax"""
8818  from IMP._jax_util import JAXScoreInfo
8819  return JAXScoreInfo(m, score_func=score_func, keys=keys)
8820 
8821  def _get_jax(self, m, indexes, space):
8822  """See IMP::PairScore::_get_jax"""
8823  raise NotImplementedError(
8824  f"No JAX implementation for {self} ({type(self)})")
8825 
8826  def __disown__(self):
8827  self.this.disown()
8828  _IMP_kernel.disown_SingletonScore(self)
8829  return weakref.proxy(self)
8830 
8831  def do_get_inputs(self, m, pis):
8832  r"""do_get_inputs(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8833  return _IMP_kernel.SingletonScore_do_get_inputs(self, m, pis)
8834 
8835  def do_destroy(self):
8836  r"""do_destroy(SingletonScore self)"""
8837  return _IMP_kernel.SingletonScore_do_destroy(self)
8838 
8839 # Register SingletonScore in _IMP_kernel:
8840 _IMP_kernel.SingletonScore_swigregister(SingletonScore)
8841 class SingletonPredicate(_ParticleInputs, Object):
8842  r"""Proxy of C++ IMP::SingletonPredicate class."""
8843 
8844  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8845 
8846  def __init__(self, *args):
8847  r"""__init__(SingletonPredicate self, std::string name="SingletonPredicate %1%") -> SingletonPredicate"""
8848  if self.__class__ == SingletonPredicate:
8849  _self = None
8850  else:
8851  _self = self
8852  _IMP_kernel.SingletonPredicate_swiginit(self, _IMP_kernel.new_SingletonPredicate(_self, *args))
8853 
8854  if self.__class__ != SingletonPredicate:
8855  _director_objects.register(self)
8856 
8857 
8858 
8859 
8860  def setup_for_get_value_index_in_batch(self, arg0):
8861  r"""setup_for_get_value_index_in_batch(SingletonPredicate self, Model arg0)"""
8862  return _IMP_kernel.SingletonPredicate_setup_for_get_value_index_in_batch(self, arg0)
8863 
8864  def get_value_index_in_batch(self, m, vt):
8865  r"""get_value_index_in_batch(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8866  return _IMP_kernel.SingletonPredicate_get_value_index_in_batch(self, m, vt)
8867 
8868  def __call__(self, m, vt):
8869  r"""__call__(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8870  return _IMP_kernel.SingletonPredicate___call__(self, m, vt)
8871 
8872  def get_value_index(self, *args):
8873  r"""
8874  get_value_index(SingletonPredicate self, Model m, ParticleIndex vt) -> int
8875  get_value_index(SingletonPredicate self, Model m, IMP::ParticleIndexes const & o) -> IMP::Ints
8876  """
8877  return _IMP_kernel.SingletonPredicate_get_value_index(self, *args)
8878  __swig_destroy__ = _IMP_kernel.delete_SingletonPredicate
8879 
8880  def __str__(self):
8881  r"""__str__(SingletonPredicate self) -> std::string"""
8882  return _IMP_kernel.SingletonPredicate___str__(self)
8883 
8884  def __repr__(self):
8885  r"""__repr__(SingletonPredicate self) -> std::string"""
8886  return _IMP_kernel.SingletonPredicate___repr__(self)
8887 
8888  @staticmethod
8889  def get_from(o):
8890  return _object_cast_to_SingletonPredicate(o)
8891 
8892 
8893  def do_show(self, out):
8894  pass
8895 
8896  @staticmethod
8897  def get_from(o):
8898  return _object_cast_to_SingletonPredicate(o)
8899 
8900  def __disown__(self):
8901  self.this.disown()
8902  _IMP_kernel.disown_SingletonPredicate(self)
8903  return weakref.proxy(self)
8904 
8905  def do_get_inputs(self, m, pis):
8906  r"""do_get_inputs(SingletonPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8907  return _IMP_kernel.SingletonPredicate_do_get_inputs(self, m, pis)
8908 
8909  def do_destroy(self):
8910  r"""do_destroy(SingletonPredicate self)"""
8911  return _IMP_kernel.SingletonPredicate_do_destroy(self)
8912 
8913 # Register SingletonPredicate in _IMP_kernel:
8914 _IMP_kernel.SingletonPredicate_swigregister(SingletonPredicate)
8916  r"""Proxy of C++ IMP::SingletonContainer class."""
8917 
8918  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8919 
8920  def apply_generic(self, m):
8921  r"""apply_generic(SingletonContainer self, SingletonModifier m)"""
8922  return _IMP_kernel.SingletonContainer_apply_generic(self, m)
8923 
8924  def apply_generic_moved(self, m, moved_pis, reset_pis):
8925  r"""apply_generic_moved(SingletonContainer self, SingletonModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8926  return _IMP_kernel.SingletonContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8927 
8928  def apply(self, sm):
8929  r"""apply(SingletonContainer self, SingletonModifier sm)"""
8930  return _IMP_kernel.SingletonContainer_apply(self, sm)
8931 
8932  def apply_moved(self, sm, moved_pis, reset_pis):
8933  r"""apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8934  return _IMP_kernel.SingletonContainer_apply_moved(self, sm, moved_pis, reset_pis)
8935 
8936  def get_range_indexes(self):
8937  r"""get_range_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8938  return _IMP_kernel.SingletonContainer_get_range_indexes(self)
8939 
8940  def get_contents(self):
8941  r"""get_contents(SingletonContainer self) -> IMP::ParticleIndexes const &"""
8942  return _IMP_kernel.SingletonContainer_get_contents(self)
8943 
8944  def get_indexes(self):
8945  r"""get_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8946  return _IMP_kernel.SingletonContainer_get_indexes(self)
8947 
8948  def get(self, *args):
8949  r"""
8950  get(SingletonContainer self) -> IMP::ParticlesTemp
8951  get(SingletonContainer self, unsigned int i) -> Particle
8952  """
8953  return _IMP_kernel.SingletonContainer_get(self, *args)
8954 
8955  def get_number(self):
8956  r"""get_number(SingletonContainer self) -> unsigned int"""
8957  return _IMP_kernel.SingletonContainer_get_number(self)
8958 
8959  def __init__(self, *args):
8960  r"""
8961  __init__(SingletonContainer self, Model m, std::string name="SingletonContainer %1%") -> SingletonContainer
8962  __init__(SingletonContainer self) -> SingletonContainer
8963  """
8964  if self.__class__ == SingletonContainer:
8965  _self = None
8966  else:
8967  _self = self
8968  _IMP_kernel.SingletonContainer_swiginit(self, _IMP_kernel.new_SingletonContainer(_self, *args))
8969 
8970  if self.__class__ != SingletonContainer:
8971  _director_objects.register(self)
8972 
8973 
8974 
8975 
8976  def do_apply(self, sm):
8977  r"""do_apply(SingletonContainer self, SingletonModifier sm)"""
8978  return _IMP_kernel.SingletonContainer_do_apply(self, sm)
8979 
8980  def do_apply_moved(self, sm, moved_pis, reset_pis):
8981  r"""do_apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8982  return _IMP_kernel.SingletonContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8983 
8984  def do_get_provides_access(self):
8985  r"""do_get_provides_access(SingletonContainer self) -> bool"""
8986  return _IMP_kernel.SingletonContainer_do_get_provides_access(self)
8987  __swig_destroy__ = _IMP_kernel.delete_SingletonContainer
8988 
8989  def __str__(self):
8990  r"""__str__(SingletonContainer self) -> std::string"""
8991  return _IMP_kernel.SingletonContainer___str__(self)
8992 
8993  def __repr__(self):
8994  r"""__repr__(SingletonContainer self) -> std::string"""
8995  return _IMP_kernel.SingletonContainer___repr__(self)
8996 
8997  @staticmethod
8998  def get_from(o):
8999  return _object_cast_to_SingletonContainer(o)
9000 
9001 
9002  def do_show(self, out):
9003  pass
9004 
9005  @staticmethod
9006  def get_from(o):
9007  return _object_cast_to_SingletonContainer(o)
9008 
9009  def __disown__(self):
9010  self.this.disown()
9011  _IMP_kernel.disown_SingletonContainer(self)
9012  return weakref.proxy(self)
9013 
9014  def do_destroy(self):
9015  r"""do_destroy(SingletonContainer self)"""
9016  return _IMP_kernel.SingletonContainer_do_destroy(self)
9017 
9018  def handle_set_has_required_score_states(self, arg0):
9019  r"""handle_set_has_required_score_states(SingletonContainer self, bool arg0)"""
9020  return _IMP_kernel.SingletonContainer_handle_set_has_required_score_states(self, arg0)
9021 
9022  def do_get_inputs(self):
9023  r"""do_get_inputs(SingletonContainer self) -> IMP::ModelObjectsTemp"""
9024  return _IMP_kernel.SingletonContainer_do_get_inputs(self)
9025 
9026  def do_get_interactions(self):
9027  r"""do_get_interactions(SingletonContainer self) -> IMP::ModelObjectsTemps"""
9028  return _IMP_kernel.SingletonContainer_do_get_interactions(self)
9029 
9030  def do_get_contents_hash(self):
9031  r"""do_get_contents_hash(SingletonContainer self) -> std::size_t"""
9032  return _IMP_kernel.SingletonContainer_do_get_contents_hash(self)
9033 
9034 # Register SingletonContainer in _IMP_kernel:
9035 _IMP_kernel.SingletonContainer_swigregister(SingletonContainer)
9036 class _SingletonContainerAdaptor(_InputAdaptor):
9037  r"""Proxy of C++ IMP::SingletonContainerAdaptor class."""
9038 
9039  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9040  __repr__ = _swig_repr
9041 
9042  def __init__(self, *args):
9043  r"""
9044  __init__(_SingletonContainerAdaptor self) -> _SingletonContainerAdaptor
9045  __init__(_SingletonContainerAdaptor self, SingletonContainer c) -> _SingletonContainerAdaptor
9046  __init__(_SingletonContainerAdaptor self, IMP::ParticlesTemp const & t) -> _SingletonContainerAdaptor
9047  """
9048  _IMP_kernel._SingletonContainerAdaptor_swiginit(self, _IMP_kernel.new__SingletonContainerAdaptor(*args))
9049 
9050  def set_name_if_default(self, name):
9051  r"""set_name_if_default(_SingletonContainerAdaptor self, std::string name)"""
9052  return _IMP_kernel._SingletonContainerAdaptor_set_name_if_default(self, name)
9053  __swig_destroy__ = _IMP_kernel.delete__SingletonContainerAdaptor
9054 
9055 # Register _SingletonContainerAdaptor in _IMP_kernel:
9056 _IMP_kernel._SingletonContainerAdaptor_swigregister(_SingletonContainerAdaptor)
9057 class TripletModifier(_ParticleInputs, _ParticleOutputs, Object):
9058  r"""Proxy of C++ IMP::TripletModifier class."""
9059 
9060  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9061 
9062  def __init__(self, *args):
9063  r"""__init__(TripletModifier self, std::string name="TripletModifier %1%") -> TripletModifier"""
9064  if self.__class__ == TripletModifier:
9065  _self = None
9066  else:
9067  _self = self
9068  _IMP_kernel.TripletModifier_swiginit(self, _IMP_kernel.new_TripletModifier(_self, *args))
9069 
9070  if self.__class__ != TripletModifier:
9071  _director_objects.register(self)
9072 
9073 
9074 
9075 
9076  def apply_index(self, m, v):
9077  r"""apply_index(TripletModifier self, Model m, IMP::ParticleIndexTriplet const & v)"""
9078  return _IMP_kernel.TripletModifier_apply_index(self, m, v)
9079 
9080  def apply_indexes(self, m, o, lower_bound, upper_bound):
9081  r"""apply_indexes(TripletModifier self, Model m, IMP::ParticleIndexTriplets const & o, unsigned int lower_bound, unsigned int upper_bound)"""
9082  return _IMP_kernel.TripletModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
9083 
9084  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
9085  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)"""
9086  return _IMP_kernel.TripletModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
9087 
9088  def __str__(self):
9089  r"""__str__(TripletModifier self) -> std::string"""
9090  return _IMP_kernel.TripletModifier___str__(self)
9091 
9092  def __repr__(self):
9093  r"""__repr__(TripletModifier self) -> std::string"""
9094  return _IMP_kernel.TripletModifier___repr__(self)
9095 
9096  @staticmethod
9097  def get_from(o):
9098  return _object_cast_to_TripletModifier(o)
9099 
9100 
9101  def do_show(self, out):
9102  pass
9103 
9104  @staticmethod
9105  def get_from(o):
9106  return _object_cast_to_TripletModifier(o)
9107 
9108  __swig_destroy__ = _IMP_kernel.delete_TripletModifier
9109  def __disown__(self):
9110  self.this.disown()
9111  _IMP_kernel.disown_TripletModifier(self)
9112  return weakref.proxy(self)
9113 
9114  def do_get_inputs(self, m, pis):
9115  r"""do_get_inputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9116  return _IMP_kernel.TripletModifier_do_get_inputs(self, m, pis)
9117 
9118  def do_get_outputs(self, m, pis):
9119  r"""do_get_outputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9120  return _IMP_kernel.TripletModifier_do_get_outputs(self, m, pis)
9121 
9122  def do_destroy(self):
9123  r"""do_destroy(TripletModifier self)"""
9124  return _IMP_kernel.TripletModifier_do_destroy(self)
9125 
9126 # Register TripletModifier in _IMP_kernel:
9127 _IMP_kernel.TripletModifier_swigregister(TripletModifier)
9128 class TripletScore(_ParticleInputs, Object):
9129  r"""Proxy of C++ IMP::TripletScore class."""
9130 
9131  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9132 
9133  def __init__(self, *args):
9134  r"""__init__(TripletScore self, std::string name="TripletScore %1%") -> TripletScore"""
9135  if self.__class__ == TripletScore:
9136  _self = None
9137  else:
9138  _self = self
9139  _IMP_kernel.TripletScore_swiginit(self, _IMP_kernel.new_TripletScore(_self, *args))
9140 
9141  if self.__class__ != TripletScore:
9142  _director_objects.register(self)
9143 
9144 
9145 
9146 
9147  def evaluate_index(self, m, vt, da):
9148  r"""evaluate_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da) -> double"""
9149  return _IMP_kernel.TripletScore_evaluate_index(self, m, vt, da)
9150 
9151  def check_indexes(self, m, pis):
9152  r"""check_indexes(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
9153  return _IMP_kernel.TripletScore_check_indexes(self, m, pis)
9154 
9155  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
9156  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"""
9157  return _IMP_kernel.TripletScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
9158 
9159  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9160  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"""
9161  return _IMP_kernel.TripletScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
9162 
9163  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
9164  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"""
9165  return _IMP_kernel.TripletScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
9166 
9167  def evaluate_if_good_index(self, m, vt, da, max):
9168  r"""evaluate_if_good_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da, double max) -> double"""
9169  return _IMP_kernel.TripletScore_evaluate_if_good_index(self, m, vt, da, max)
9170 
9171  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9172  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"""
9173  return _IMP_kernel.TripletScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
9174 
9175  def create_current_decomposition(self, m, vt):
9176  r"""create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
9177  return _IMP_kernel.TripletScore_create_current_decomposition(self, m, vt)
9178 
9179  def do_create_current_decomposition(self, m, vt):
9180  r"""do_create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
9181  return _IMP_kernel.TripletScore_do_create_current_decomposition(self, m, vt)
9182  __swig_destroy__ = _IMP_kernel.delete_TripletScore
9183 
9184  def __str__(self):
9185  r"""__str__(TripletScore self) -> std::string"""
9186  return _IMP_kernel.TripletScore___str__(self)
9187 
9188  def __repr__(self):
9189  r"""__repr__(TripletScore self) -> std::string"""
9190  return _IMP_kernel.TripletScore___repr__(self)
9191 
9192  @staticmethod
9193  def get_from(o):
9194  return _object_cast_to_TripletScore(o)
9195 
9196 
9197  def do_show(self, out):
9198  pass
9199 
9200  @staticmethod
9201  def get_from(o):
9202  return _object_cast_to_TripletScore(o)
9203 
9204  def __disown__(self):
9205  self.this.disown()
9206  _IMP_kernel.disown_TripletScore(self)
9207  return weakref.proxy(self)
9208 
9209  def do_get_inputs(self, m, pis):
9210  r"""do_get_inputs(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9211  return _IMP_kernel.TripletScore_do_get_inputs(self, m, pis)
9212 
9213  def do_destroy(self):
9214  r"""do_destroy(TripletScore self)"""
9215  return _IMP_kernel.TripletScore_do_destroy(self)
9216 
9217 # Register TripletScore in _IMP_kernel:
9218 _IMP_kernel.TripletScore_swigregister(TripletScore)
9219 class TripletPredicate(_ParticleInputs, Object):
9220  r"""Proxy of C++ IMP::TripletPredicate class."""
9221 
9222  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9223 
9224  def __init__(self, *args):
9225  r"""__init__(TripletPredicate self, std::string name="TripletPredicate %1%") -> TripletPredicate"""
9226  if self.__class__ == TripletPredicate:
9227  _self = None
9228  else:
9229  _self = self
9230  _IMP_kernel.TripletPredicate_swiginit(self, _IMP_kernel.new_TripletPredicate(_self, *args))
9231 
9232  if self.__class__ != TripletPredicate:
9233  _director_objects.register(self)
9234 
9235 
9236 
9237 
9238  def setup_for_get_value_index_in_batch(self, arg0):
9239  r"""setup_for_get_value_index_in_batch(TripletPredicate self, Model arg0)"""
9240  return _IMP_kernel.TripletPredicate_setup_for_get_value_index_in_batch(self, arg0)
9241 
9242  def get_value_index_in_batch(self, m, vt):
9243  r"""get_value_index_in_batch(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9244  return _IMP_kernel.TripletPredicate_get_value_index_in_batch(self, m, vt)
9245 
9246  def __call__(self, m, vt):
9247  r"""__call__(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9248  return _IMP_kernel.TripletPredicate___call__(self, m, vt)
9249 
9250  def get_value_index(self, *args):
9251  r"""
9252  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int
9253  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplets const & o) -> IMP::Ints
9254  """
9255  return _IMP_kernel.TripletPredicate_get_value_index(self, *args)
9256  __swig_destroy__ = _IMP_kernel.delete_TripletPredicate
9257 
9258  def __str__(self):
9259  r"""__str__(TripletPredicate self) -> std::string"""
9260  return _IMP_kernel.TripletPredicate___str__(self)
9261 
9262  def __repr__(self):
9263  r"""__repr__(TripletPredicate self) -> std::string"""
9264  return _IMP_kernel.TripletPredicate___repr__(self)
9265 
9266  @staticmethod
9267  def get_from(o):
9268  return _object_cast_to_TripletPredicate(o)
9269 
9270 
9271  def do_show(self, out):
9272  pass
9273 
9274  @staticmethod
9275  def get_from(o):
9276  return _object_cast_to_TripletPredicate(o)
9277 
9278  def __disown__(self):
9279  self.this.disown()
9280  _IMP_kernel.disown_TripletPredicate(self)
9281  return weakref.proxy(self)
9282 
9283  def do_get_inputs(self, m, pis):
9284  r"""do_get_inputs(TripletPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9285  return _IMP_kernel.TripletPredicate_do_get_inputs(self, m, pis)
9286 
9287  def do_destroy(self):
9288  r"""do_destroy(TripletPredicate self)"""
9289  return _IMP_kernel.TripletPredicate_do_destroy(self)
9290 
9291 # Register TripletPredicate in _IMP_kernel:
9292 _IMP_kernel.TripletPredicate_swigregister(TripletPredicate)
9294  r"""Proxy of C++ IMP::TripletContainer class."""
9295 
9296  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9297 
9298  def apply_generic(self, m):
9299  r"""apply_generic(TripletContainer self, TripletModifier m)"""
9300  return _IMP_kernel.TripletContainer_apply_generic(self, m)
9301 
9302  def apply_generic_moved(self, m, moved_pis, reset_pis):
9303  r"""apply_generic_moved(TripletContainer self, TripletModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9304  return _IMP_kernel.TripletContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
9305 
9306  def apply(self, sm):
9307  r"""apply(TripletContainer self, TripletModifier sm)"""
9308  return _IMP_kernel.TripletContainer_apply(self, sm)
9309 
9310  def apply_moved(self, sm, moved_pis, reset_pis):
9311  r"""apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9312  return _IMP_kernel.TripletContainer_apply_moved(self, sm, moved_pis, reset_pis)
9313 
9314  def get_range_indexes(self):
9315  r"""get_range_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9316  return _IMP_kernel.TripletContainer_get_range_indexes(self)
9317 
9318  def get_contents(self):
9319  r"""get_contents(TripletContainer self) -> IMP::ParticleIndexTriplets const &"""
9320  return _IMP_kernel.TripletContainer_get_contents(self)
9321 
9322  def get_indexes(self):
9323  r"""get_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9324  return _IMP_kernel.TripletContainer_get_indexes(self)
9325 
9326  def get(self, *args):
9327  r"""
9328  get(TripletContainer self) -> IMP::ParticleTripletsTemp
9329  get(TripletContainer self, unsigned int i) -> IMP::ParticleTriplet
9330  """
9331  return _IMP_kernel.TripletContainer_get(self, *args)
9332 
9333  def get_number(self):
9334  r"""get_number(TripletContainer self) -> unsigned int"""
9335  return _IMP_kernel.TripletContainer_get_number(self)
9336 
9337  def __init__(self, *args):
9338  r"""
9339  __init__(TripletContainer self, Model m, std::string name="TripletContainer %1%") -> TripletContainer
9340  __init__(TripletContainer self) -> TripletContainer
9341  """
9342  if self.__class__ == TripletContainer:
9343  _self = None
9344  else:
9345  _self = self
9346  _IMP_kernel.TripletContainer_swiginit(self, _IMP_kernel.new_TripletContainer(_self, *args))
9347 
9348  if self.__class__ != TripletContainer:
9349  _director_objects.register(self)
9350 
9351 
9352 
9353 
9354  def do_apply(self, sm):
9355  r"""do_apply(TripletContainer self, TripletModifier sm)"""
9356  return _IMP_kernel.TripletContainer_do_apply(self, sm)
9357 
9358  def do_apply_moved(self, sm, moved_pis, reset_pis):
9359  r"""do_apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9360  return _IMP_kernel.TripletContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
9361 
9362  def do_get_provides_access(self):
9363  r"""do_get_provides_access(TripletContainer self) -> bool"""
9364  return _IMP_kernel.TripletContainer_do_get_provides_access(self)
9365  __swig_destroy__ = _IMP_kernel.delete_TripletContainer
9366 
9367  def __str__(self):
9368  r"""__str__(TripletContainer self) -> std::string"""
9369  return _IMP_kernel.TripletContainer___str__(self)
9370 
9371  def __repr__(self):
9372  r"""__repr__(TripletContainer self) -> std::string"""
9373  return _IMP_kernel.TripletContainer___repr__(self)
9374 
9375  @staticmethod
9376  def get_from(o):
9377  return _object_cast_to_TripletContainer(o)
9378 
9379 
9380  def do_show(self, out):
9381  pass
9382 
9383  @staticmethod
9384  def get_from(o):
9385  return _object_cast_to_TripletContainer(o)
9386 
9387  def __disown__(self):
9388  self.this.disown()
9389  _IMP_kernel.disown_TripletContainer(self)
9390  return weakref.proxy(self)
9391 
9392  def do_destroy(self):
9393  r"""do_destroy(TripletContainer self)"""
9394  return _IMP_kernel.TripletContainer_do_destroy(self)
9395 
9396  def handle_set_has_required_score_states(self, arg0):
9397  r"""handle_set_has_required_score_states(TripletContainer self, bool arg0)"""
9398  return _IMP_kernel.TripletContainer_handle_set_has_required_score_states(self, arg0)
9399 
9400  def do_get_inputs(self):
9401  r"""do_get_inputs(TripletContainer self) -> IMP::ModelObjectsTemp"""
9402  return _IMP_kernel.TripletContainer_do_get_inputs(self)
9403 
9404  def do_get_interactions(self):
9405  r"""do_get_interactions(TripletContainer self) -> IMP::ModelObjectsTemps"""
9406  return _IMP_kernel.TripletContainer_do_get_interactions(self)
9407 
9408  def do_get_contents_hash(self):
9409  r"""do_get_contents_hash(TripletContainer self) -> std::size_t"""
9410  return _IMP_kernel.TripletContainer_do_get_contents_hash(self)
9411 
9412 # Register TripletContainer in _IMP_kernel:
9413 _IMP_kernel.TripletContainer_swigregister(TripletContainer)
9414 class _TripletContainerAdaptor(_InputAdaptor):
9415  r"""Proxy of C++ IMP::TripletContainerAdaptor class."""
9416 
9417  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9418  __repr__ = _swig_repr
9419 
9420  def __init__(self, *args):
9421  r"""
9422  __init__(_TripletContainerAdaptor self) -> _TripletContainerAdaptor
9423  __init__(_TripletContainerAdaptor self, TripletContainer c) -> _TripletContainerAdaptor
9424  __init__(_TripletContainerAdaptor self, IMP::ParticleTripletsTemp const & t) -> _TripletContainerAdaptor
9425  """
9426  _IMP_kernel._TripletContainerAdaptor_swiginit(self, _IMP_kernel.new__TripletContainerAdaptor(*args))
9427 
9428  def set_name_if_default(self, name):
9429  r"""set_name_if_default(_TripletContainerAdaptor self, std::string name)"""
9430  return _IMP_kernel._TripletContainerAdaptor_set_name_if_default(self, name)
9431  __swig_destroy__ = _IMP_kernel.delete__TripletContainerAdaptor
9432 
9433 # Register _TripletContainerAdaptor in _IMP_kernel:
9434 _IMP_kernel._TripletContainerAdaptor_swigregister(_TripletContainerAdaptor)
9435 
9436 def write_particles_to_buffer(particles, keys):
9437  r"""write_particles_to_buffer(IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys) -> IMP::Vector< char,std::allocator< char > >"""
9438  return _IMP_kernel.write_particles_to_buffer(particles, keys)
9439 
9440 def read_particles_from_buffer(buffer, particles, keys):
9441  r"""read_particles_from_buffer(IMP::Vector< char,std::allocator< char > > const & buffer, IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys)"""
9442  return _IMP_kernel.read_particles_from_buffer(buffer, particles, keys)
9443 
9444 def get_particles(m, ps):
9445  r"""get_particles(Model m, IMP::ParticleIndexes const & ps) -> IMP::ParticlesTemp"""
9446  return _IMP_kernel.get_particles(m, ps)
9447 
9448 def get_indexes(*args):
9449  r"""
9450  get_indexes(IMP::ParticlesTemp const & ps) -> IMP::ParticleIndexes
9451  get_indexes(IMP::ParticlePairsTemp const & ps) -> IMP::ParticleIndexPairs
9452  """
9453  return _IMP_kernel.get_indexes(*args)
9454 class _ParticleIndexAdaptor(object):
9455  r"""Proxy of C++ IMP::ParticleIndexAdaptor class."""
9456 
9457  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9458  __repr__ = _swig_repr
9459 
9460  def __init__(self, *args):
9461  r"""
9462  __init__(_ParticleIndexAdaptor self, Particle p) -> _ParticleIndexAdaptor
9463  __init__(_ParticleIndexAdaptor self, ParticleIndex pi) -> _ParticleIndexAdaptor
9464  __init__(_ParticleIndexAdaptor self, Decorator d) -> _ParticleIndexAdaptor
9465  """
9466  _IMP_kernel._ParticleIndexAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexAdaptor(*args))
9467  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexAdaptor
9468 
9469 # Register _ParticleIndexAdaptor in _IMP_kernel:
9470 _IMP_kernel._ParticleIndexAdaptor_swigregister(_ParticleIndexAdaptor)
9471 class _ParticleIndexesAdaptor(_InputAdaptor):
9472  r"""Proxy of C++ IMP::ParticleIndexesAdaptor class."""
9473 
9474  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9475  __repr__ = _swig_repr
9476 
9477  def __init__(self, *args):
9478  r"""
9479  __init__(_ParticleIndexesAdaptor self, IMP::ParticlesTemp const & ps) -> _ParticleIndexesAdaptor
9480  __init__(_ParticleIndexesAdaptor self, IMP::ParticleIndexes const & pi) -> _ParticleIndexesAdaptor
9481  __init__(_ParticleIndexesAdaptor self) -> _ParticleIndexesAdaptor
9482  """
9483  _IMP_kernel._ParticleIndexesAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexesAdaptor(*args))
9484  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexesAdaptor
9485 
9486 # Register _ParticleIndexesAdaptor in _IMP_kernel:
9487 _IMP_kernel._ParticleIndexesAdaptor_swigregister(_ParticleIndexesAdaptor)
9488 class _ParticleIndexPairsAdaptor(object):
9489  r"""Proxy of C++ IMP::ParticleIndexPairsAdaptor class."""
9490 
9491  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9492  __repr__ = _swig_repr
9493 
9494  def __init__(self, *args):
9495  r"""
9496  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticlePairsTemp const & ps) -> _ParticleIndexPairsAdaptor
9497  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticleIndexPairs const & pi) -> _ParticleIndexPairsAdaptor
9498  __init__(_ParticleIndexPairsAdaptor self) -> _ParticleIndexPairsAdaptor
9499  """
9500  _IMP_kernel._ParticleIndexPairsAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexPairsAdaptor(*args))
9501  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexPairsAdaptor
9502 
9503 # Register _ParticleIndexPairsAdaptor in _IMP_kernel:
9504 _IMP_kernel._ParticleIndexPairsAdaptor_swigregister(_ParticleIndexPairsAdaptor)
9505 class _ConstRestraint(Restraint):
9506  r"""Proxy of C++ IMP::internal::_ConstRestraint class."""
9507 
9508  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9509 
9510  def __init__(self, *args):
9511  r"""
9512  __init__(_ConstRestraint self, Model m, IMP::ParticleIndexes const & pis, double v) -> _ConstRestraint
9513  __init__(_ConstRestraint self) -> _ConstRestraint
9514  """
9515  _IMP_kernel._ConstRestraint_swiginit(self, _IMP_kernel.new__ConstRestraint(*args))
9516 
9517  def get_value(self):
9518  r"""get_value(_ConstRestraint self) -> double"""
9519  return _IMP_kernel._ConstRestraint_get_value(self)
9520 
9521  def do_create_decomposition(self):
9522  r"""do_create_decomposition(_ConstRestraint self) -> IMP::Restraints"""
9523  return _IMP_kernel._ConstRestraint_do_create_decomposition(self)
9524 
9525  def do_get_inputs(self):
9526  r"""do_get_inputs(_ConstRestraint self) -> IMP::ModelObjectsTemp"""
9527  return _IMP_kernel._ConstRestraint_do_get_inputs(self)
9528 
9529  def get_version_info(self):
9530  r"""get_version_info(_ConstRestraint self) -> VersionInfo"""
9531  return _IMP_kernel._ConstRestraint_get_version_info(self)
9532  __swig_destroy__ = _IMP_kernel.delete__ConstRestraint
9533 
9534  def __str__(self):
9535  r"""__str__(_ConstRestraint self) -> std::string"""
9536  return _IMP_kernel._ConstRestraint___str__(self)
9537 
9538  def __repr__(self):
9539  r"""__repr__(_ConstRestraint self) -> std::string"""
9540  return _IMP_kernel._ConstRestraint___repr__(self)
9541 
9542  @staticmethod
9543  def get_from(o):
9544  return _object_cast_to__ConstRestraint(o)
9545 
9546 
9547  def _get_as_binary(self):
9548  r"""_get_as_binary(_ConstRestraint self) -> PyObject *"""
9549  return _IMP_kernel._ConstRestraint__get_as_binary(self)
9550 
9551  def _set_from_binary(self, p):
9552  r"""_set_from_binary(_ConstRestraint self, PyObject * p)"""
9553  return _IMP_kernel._ConstRestraint__set_from_binary(self, p)
9554 
9555  def __getstate__(self):
9556  p = self._get_as_binary()
9557  if len(self.__dict__) > 1:
9558  d = self.__dict__.copy()
9559  del d['this']
9560  p = (d, p)
9561  return p
9562 
9563  def __setstate__(self, p):
9564  if not hasattr(self, 'this'):
9565  self.__init__()
9566  if isinstance(p, tuple):
9567  d, p = p
9568  self.__dict__.update(d)
9569  return self._set_from_binary(p)
9570 
9571 
9572  def _get_jax(self, space):
9573  value = self.get_value()
9574  # We always return `value` regardless of the JAX Model
9575  return self._wrap_jax(lambda jm: value)
9576 
9577 
9578 # Register _ConstRestraint in _IMP_kernel:
9579 _IMP_kernel._ConstRestraint_swigregister(_ConstRestraint)
9580 class _ConstSingletonScore(SingletonScore):
9581  r"""Proxy of C++ IMP::internal::_ConstSingletonScore class."""
9582 
9583  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9584 
9585  def __init__(self, *args):
9586  r"""
9587  __init__(_ConstSingletonScore self, double v) -> _ConstSingletonScore
9588  __init__(_ConstSingletonScore self) -> _ConstSingletonScore
9589  """
9590  _IMP_kernel._ConstSingletonScore_swiginit(self, _IMP_kernel.new__ConstSingletonScore(*args))
9591 
9592  def get_value(self):
9593  r"""get_value(_ConstSingletonScore self) -> double"""
9594  return _IMP_kernel._ConstSingletonScore_get_value(self)
9595 
9596  def do_get_inputs(self, arg2, arg3):
9597  r"""do_get_inputs(_ConstSingletonScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9598  return _IMP_kernel._ConstSingletonScore_do_get_inputs(self, arg2, arg3)
9599 
9600  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9601  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"""
9602  return _IMP_kernel._ConstSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9603 
9604  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9605  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"""
9606  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9607 
9608  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9609  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"""
9610  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9611 
9612  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9613  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"""
9614  return _IMP_kernel._ConstSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9615 
9616  def get_version_info(self):
9617  r"""get_version_info(_ConstSingletonScore self) -> VersionInfo"""
9618  return _IMP_kernel._ConstSingletonScore_get_version_info(self)
9619  __swig_destroy__ = _IMP_kernel.delete__ConstSingletonScore
9620 
9621  def __str__(self):
9622  r"""__str__(_ConstSingletonScore self) -> std::string"""
9623  return _IMP_kernel._ConstSingletonScore___str__(self)
9624 
9625  def __repr__(self):
9626  r"""__repr__(_ConstSingletonScore self) -> std::string"""
9627  return _IMP_kernel._ConstSingletonScore___repr__(self)
9628 
9629  @staticmethod
9630  def get_from(o):
9631  return _object_cast_to__ConstSingletonScore(o)
9632 
9633 
9634  def _get_as_binary(self):
9635  r"""_get_as_binary(_ConstSingletonScore self) -> PyObject *"""
9636  return _IMP_kernel._ConstSingletonScore__get_as_binary(self)
9637 
9638  def _set_from_binary(self, p):
9639  r"""_set_from_binary(_ConstSingletonScore self, PyObject * p)"""
9640  return _IMP_kernel._ConstSingletonScore__set_from_binary(self, p)
9641 
9642  def __getstate__(self):
9643  p = self._get_as_binary()
9644  if len(self.__dict__) > 1:
9645  d = self.__dict__.copy()
9646  del d['this']
9647  p = (d, p)
9648  return p
9649 
9650  def __setstate__(self, p):
9651  if not hasattr(self, 'this'):
9652  self.__init__()
9653  if isinstance(p, tuple):
9654  d, p = p
9655  self.__dict__.update(d)
9656  return self._set_from_binary(p)
9657 
9658 
9659  def _get_jax(self, m, indexes, space):
9660  value = self.get_value()
9661  # We always return `value` regardless of the JAX Model or indexes
9662  return self._wrap_jax(m, lambda jm: value)
9663 
9664 
9665 # Register _ConstSingletonScore in _IMP_kernel:
9666 _IMP_kernel._ConstSingletonScore_swigregister(_ConstSingletonScore)
9667 class _ConstPairScore(PairScore):
9668  r"""Proxy of C++ IMP::internal::_ConstPairScore class."""
9669 
9670  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9671 
9672  def __init__(self, *args):
9673  r"""
9674  __init__(_ConstPairScore self, double v) -> _ConstPairScore
9675  __init__(_ConstPairScore self) -> _ConstPairScore
9676  """
9677  _IMP_kernel._ConstPairScore_swiginit(self, _IMP_kernel.new__ConstPairScore(*args))
9678 
9679  def get_value(self):
9680  r"""get_value(_ConstPairScore self) -> double"""
9681  return _IMP_kernel._ConstPairScore_get_value(self)
9682 
9683  def do_get_inputs(self, arg2, arg3):
9684  r"""do_get_inputs(_ConstPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9685  return _IMP_kernel._ConstPairScore_do_get_inputs(self, arg2, arg3)
9686 
9687  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9688  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"""
9689  return _IMP_kernel._ConstPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9690 
9691  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9692  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"""
9693  return _IMP_kernel._ConstPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9694 
9695  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9696  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"""
9697  return _IMP_kernel._ConstPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9698 
9699  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9700  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"""
9701  return _IMP_kernel._ConstPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9702 
9703  def get_version_info(self):
9704  r"""get_version_info(_ConstPairScore self) -> VersionInfo"""
9705  return _IMP_kernel._ConstPairScore_get_version_info(self)
9706  __swig_destroy__ = _IMP_kernel.delete__ConstPairScore
9707 
9708  def __str__(self):
9709  r"""__str__(_ConstPairScore self) -> std::string"""
9710  return _IMP_kernel._ConstPairScore___str__(self)
9711 
9712  def __repr__(self):
9713  r"""__repr__(_ConstPairScore self) -> std::string"""
9714  return _IMP_kernel._ConstPairScore___repr__(self)
9715 
9716  @staticmethod
9717  def get_from(o):
9718  return _object_cast_to__ConstPairScore(o)
9719 
9720 
9721  def _get_as_binary(self):
9722  r"""_get_as_binary(_ConstPairScore self) -> PyObject *"""
9723  return _IMP_kernel._ConstPairScore__get_as_binary(self)
9724 
9725  def _set_from_binary(self, p):
9726  r"""_set_from_binary(_ConstPairScore self, PyObject * p)"""
9727  return _IMP_kernel._ConstPairScore__set_from_binary(self, p)
9728 
9729  def __getstate__(self):
9730  p = self._get_as_binary()
9731  if len(self.__dict__) > 1:
9732  d = self.__dict__.copy()
9733  del d['this']
9734  p = (d, p)
9735  return p
9736 
9737  def __setstate__(self, p):
9738  if not hasattr(self, 'this'):
9739  self.__init__()
9740  if isinstance(p, tuple):
9741  d, p = p
9742  self.__dict__.update(d)
9743  return self._set_from_binary(p)
9744 
9745 
9746  def _get_jax(self, m, indexes, space):
9747  value = self.get_value()
9748  # We always return `value` regardless of the JAX Model or indexes
9749  return self._wrap_jax(m, lambda jm: value)
9750 
9751 
9752 # Register _ConstPairScore in _IMP_kernel:
9753 _IMP_kernel._ConstPairScore_swigregister(_ConstPairScore)
9754 class _TrivialDecorator(Decorator):
9755  r"""Proxy of C++ IMP::internal::_TrivialDecorator class."""
9756 
9757  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9758 
9759  def __init__(self, *args):
9760  r"""
9761  __init__(_TrivialDecorator self) -> _TrivialDecorator
9762  __init__(_TrivialDecorator self, Model m, ParticleIndex id) -> _TrivialDecorator
9763  __init__(_TrivialDecorator self, _ParticleAdaptor d) -> _TrivialDecorator
9764  """
9765  _IMP_kernel._TrivialDecorator_swiginit(self, _IMP_kernel.new__TrivialDecorator(*args))
9766 
9767  def show(self, *args):
9768  r"""show(_TrivialDecorator self, _ostream out=std::cout)"""
9769  return _IMP_kernel._TrivialDecorator_show(self, *args)
9770 
9771  @staticmethod
9772  def setup_particle(*args):
9773  r"""
9774  setup_particle(Model m, ParticleIndex pi) -> _TrivialDecorator
9775  setup_particle(_ParticleAdaptor pa) -> _TrivialDecorator
9776  """
9777  return _IMP_kernel._TrivialDecorator_setup_particle(*args)
9778 
9779  @staticmethod
9780  def get_is_setup(*args):
9781  r"""
9782  get_is_setup(_ParticleAdaptor p) -> bool
9783  get_is_setup(Model m, ParticleIndex pi) -> bool
9784  """
9785  return _IMP_kernel._TrivialDecorator_get_is_setup(*args)
9786 
9787  def add_attribute(self, *args):
9788  r"""
9789  add_attribute(_TrivialDecorator self, FloatKey k, IMP::Float v, bool opt)
9790  add_attribute(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9791  add_attribute(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9792  add_attribute(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9793  add_attribute(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9794  add_attribute(_TrivialDecorator self, StringKey a0, IMP::String a1)
9795  add_attribute(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9796  add_attribute(_TrivialDecorator self, ObjectKey a0, Object a1)
9797  add_attribute(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9798  add_attribute(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9799  add_attribute(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9800  add_attribute(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9801  """
9802  return _IMP_kernel._TrivialDecorator_add_attribute(self, *args)
9803 
9804  def get_value(self, *args):
9805  r"""
9806  get_value(_TrivialDecorator self, FloatKey a0) -> IMP::Float
9807  get_value(_TrivialDecorator self, IntKey a0) -> IMP::Int
9808  get_value(_TrivialDecorator self, FloatsKey a0) -> IMP::Floats
9809  get_value(_TrivialDecorator self, IntsKey a0) -> IMP::Ints
9810  get_value(_TrivialDecorator self, StringKey a0) -> IMP::String
9811  get_value(_TrivialDecorator self, ParticleIndexKey a0) -> Particle
9812  get_value(_TrivialDecorator self, ObjectKey a0) -> Object
9813  get_value(_TrivialDecorator self, SparseFloatKey a0) -> IMP::Float
9814  get_value(_TrivialDecorator self, SparseIntKey a0) -> IMP::Int
9815  get_value(_TrivialDecorator self, SparseStringKey a0) -> IMP::String
9816  get_value(_TrivialDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9817  """
9818  return _IMP_kernel._TrivialDecorator_get_value(self, *args)
9819 
9820  def set_value(self, *args):
9821  r"""
9822  set_value(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9823  set_value(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9824  set_value(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9825  set_value(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9826  set_value(_TrivialDecorator self, StringKey a0, IMP::String a1)
9827  set_value(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9828  set_value(_TrivialDecorator self, ObjectKey a0, Object a1)
9829  set_value(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9830  set_value(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9831  set_value(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9832  set_value(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9833  """
9834  return _IMP_kernel._TrivialDecorator_set_value(self, *args)
9835 
9836  def remove_attribute(self, *args):
9837  r"""
9838  remove_attribute(_TrivialDecorator self, FloatKey a0)
9839  remove_attribute(_TrivialDecorator self, IntKey a0)
9840  remove_attribute(_TrivialDecorator self, FloatsKey a0)
9841  remove_attribute(_TrivialDecorator self, IntsKey a0)
9842  remove_attribute(_TrivialDecorator self, StringKey a0)
9843  remove_attribute(_TrivialDecorator self, ParticleIndexKey a0)
9844  remove_attribute(_TrivialDecorator self, ObjectKey a0)
9845  remove_attribute(_TrivialDecorator self, SparseFloatKey a0)
9846  remove_attribute(_TrivialDecorator self, SparseIntKey a0)
9847  remove_attribute(_TrivialDecorator self, SparseStringKey a0)
9848  remove_attribute(_TrivialDecorator self, SparseParticleIndexKey a0)
9849  """
9850  return _IMP_kernel._TrivialDecorator_remove_attribute(self, *args)
9851 
9852  def has_attribute(self, *args):
9853  r"""
9854  has_attribute(_TrivialDecorator self, FloatKey a0) -> bool
9855  has_attribute(_TrivialDecorator self, IntKey a0) -> bool
9856  has_attribute(_TrivialDecorator self, FloatsKey a0) -> bool
9857  has_attribute(_TrivialDecorator self, IntsKey a0) -> bool
9858  has_attribute(_TrivialDecorator self, StringKey a0) -> bool
9859  has_attribute(_TrivialDecorator self, ParticleIndexKey a0) -> bool
9860  has_attribute(_TrivialDecorator self, ObjectKey a0) -> bool
9861  has_attribute(_TrivialDecorator self, SparseFloatKey a0) -> bool
9862  has_attribute(_TrivialDecorator self, SparseIntKey a0) -> bool
9863  has_attribute(_TrivialDecorator self, SparseStringKey a0) -> bool
9864  has_attribute(_TrivialDecorator self, SparseParticleIndexKey a0) -> bool
9865  """
9866  return _IMP_kernel._TrivialDecorator_has_attribute(self, *args)
9867 
9868  def get_derivative(self, a0):
9869  r"""get_derivative(_TrivialDecorator self, FloatKey a0) -> double"""
9870  return _IMP_kernel._TrivialDecorator_get_derivative(self, a0)
9871 
9872  def get_name(self):
9873  r"""get_name(_TrivialDecorator self) -> std::string"""
9874  return _IMP_kernel._TrivialDecorator_get_name(self)
9875 
9876  def clear_caches(self):
9877  r"""clear_caches(_TrivialDecorator self)"""
9878  return _IMP_kernel._TrivialDecorator_clear_caches(self)
9879 
9880  def set_name(self, a0):
9881  r"""set_name(_TrivialDecorator self, std::string a0)"""
9882  return _IMP_kernel._TrivialDecorator_set_name(self, a0)
9883 
9884  def set_check_level(self, a0):
9885  r"""set_check_level(_TrivialDecorator self, IMP::CheckLevel a0)"""
9886  return _IMP_kernel._TrivialDecorator_set_check_level(self, a0)
9887 
9888  def add_to_derivative(self, a0, a1, a2):
9889  r"""add_to_derivative(_TrivialDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9890  return _IMP_kernel._TrivialDecorator_add_to_derivative(self, a0, a1, a2)
9891 
9892  def set_is_optimized(self, a0, a1):
9893  r"""set_is_optimized(_TrivialDecorator self, FloatKey a0, bool a1)"""
9894  return _IMP_kernel._TrivialDecorator_set_is_optimized(self, a0, a1)
9895 
9896  def get_is_optimized(self, a0):
9897  r"""get_is_optimized(_TrivialDecorator self, FloatKey a0) -> bool"""
9898  return _IMP_kernel._TrivialDecorator_get_is_optimized(self, a0)
9899 
9900  def get_check_level(self):
9901  r"""get_check_level(_TrivialDecorator self) -> IMP::CheckLevel"""
9902  return _IMP_kernel._TrivialDecorator_get_check_level(self)
9903 
9904  def __eq__(self, *args):
9905  r"""
9906  __eq__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9907  __eq__(_TrivialDecorator self, Particle d) -> bool
9908  """
9909  return _IMP_kernel._TrivialDecorator___eq__(self, *args)
9910 
9911  def __ne__(self, *args):
9912  r"""
9913  __ne__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9914  __ne__(_TrivialDecorator self, Particle d) -> bool
9915  """
9916  return _IMP_kernel._TrivialDecorator___ne__(self, *args)
9917 
9918  def __le__(self, *args):
9919  r"""
9920  __le__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9921  __le__(_TrivialDecorator self, Particle d) -> bool
9922  """
9923  return _IMP_kernel._TrivialDecorator___le__(self, *args)
9924 
9925  def __lt__(self, *args):
9926  r"""
9927  __lt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9928  __lt__(_TrivialDecorator self, Particle d) -> bool
9929  """
9930  return _IMP_kernel._TrivialDecorator___lt__(self, *args)
9931 
9932  def __ge__(self, *args):
9933  r"""
9934  __ge__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9935  __ge__(_TrivialDecorator self, Particle d) -> bool
9936  """
9937  return _IMP_kernel._TrivialDecorator___ge__(self, *args)
9938 
9939  def __gt__(self, *args):
9940  r"""
9941  __gt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9942  __gt__(_TrivialDecorator self, Particle d) -> bool
9943  """
9944  return _IMP_kernel._TrivialDecorator___gt__(self, *args)
9945 
9946  def __hash__(self):
9947  r"""__hash__(_TrivialDecorator self) -> std::size_t"""
9948  return _IMP_kernel._TrivialDecorator___hash__(self)
9949 
9950  def __str__(self):
9951  r"""__str__(_TrivialDecorator self) -> std::string"""
9952  return _IMP_kernel._TrivialDecorator___str__(self)
9953 
9954  def __repr__(self):
9955  r"""__repr__(_TrivialDecorator self) -> std::string"""
9956  return _IMP_kernel._TrivialDecorator___repr__(self)
9957 
9958  def _get_as_binary(self):
9959  r"""_get_as_binary(_TrivialDecorator self) -> PyObject *"""
9960  return _IMP_kernel._TrivialDecorator__get_as_binary(self)
9961 
9962  def _set_from_binary(self, p):
9963  r"""_set_from_binary(_TrivialDecorator self, PyObject * p)"""
9964  return _IMP_kernel._TrivialDecorator__set_from_binary(self, p)
9965 
9966  def __getstate__(self):
9967  p = self._get_as_binary()
9968  if len(self.__dict__) > 1:
9969  d = self.__dict__.copy()
9970  del d['this']
9971  p = (d, p)
9972  return p
9973 
9974  def __setstate__(self, p):
9975  if not hasattr(self, 'this'):
9976  self.__init__()
9977  if isinstance(p, tuple):
9978  d, p = p
9979  self.__dict__.update(d)
9980  return self._set_from_binary(p)
9981 
9982  __swig_destroy__ = _IMP_kernel.delete__TrivialDecorator
9983 
9984 # Register _TrivialDecorator in _IMP_kernel:
9985 _IMP_kernel._TrivialDecorator_swigregister(_TrivialDecorator)
9986 class _TrivialDerivedDecorator(_TrivialDecorator):
9987  r"""Proxy of C++ IMP::internal::_TrivialDerivedDecorator class."""
9988 
9989  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9990 
9991  def __init__(self, *args):
9992  r"""
9993  __init__(_TrivialDerivedDecorator self) -> _TrivialDerivedDecorator
9994  __init__(_TrivialDerivedDecorator self, Model m, ParticleIndex id) -> _TrivialDerivedDecorator
9995  __init__(_TrivialDerivedDecorator self, _ParticleAdaptor d) -> _TrivialDerivedDecorator
9996  """
9997  _IMP_kernel._TrivialDerivedDecorator_swiginit(self, _IMP_kernel.new__TrivialDerivedDecorator(*args))
9998 
9999  def show(self, *args):
10000  r"""show(_TrivialDerivedDecorator self, _ostream out=std::cout)"""
10001  return _IMP_kernel._TrivialDerivedDecorator_show(self, *args)
10002 
10003  @staticmethod
10004  def setup_particle(*args):
10005  r"""
10006  setup_particle(Model m, ParticleIndex pi) -> _TrivialDerivedDecorator
10007  setup_particle(_ParticleAdaptor pa) -> _TrivialDerivedDecorator
10008  """
10009  return _IMP_kernel._TrivialDerivedDecorator_setup_particle(*args)
10010 
10011  @staticmethod
10012  def get_is_setup(*args):
10013  r"""
10014  get_is_setup(_ParticleAdaptor p) -> bool
10015  get_is_setup(Model m, ParticleIndex pi) -> bool
10016  """
10017  return _IMP_kernel._TrivialDerivedDecorator_get_is_setup(*args)
10018 
10019  def add_attribute(self, *args):
10020  r"""
10021  add_attribute(_TrivialDerivedDecorator self, FloatKey k, IMP::Float v, bool opt)
10022  add_attribute(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
10023  add_attribute(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
10024  add_attribute(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
10025  add_attribute(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
10026  add_attribute(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
10027  add_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
10028  add_attribute(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
10029  add_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
10030  add_attribute(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
10031  add_attribute(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
10032  add_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10033  """
10034  return _IMP_kernel._TrivialDerivedDecorator_add_attribute(self, *args)
10035 
10036  def get_value(self, *args):
10037  r"""
10038  get_value(_TrivialDerivedDecorator self, FloatKey a0) -> IMP::Float
10039  get_value(_TrivialDerivedDecorator self, IntKey a0) -> IMP::Int
10040  get_value(_TrivialDerivedDecorator self, FloatsKey a0) -> IMP::Floats
10041  get_value(_TrivialDerivedDecorator self, IntsKey a0) -> IMP::Ints
10042  get_value(_TrivialDerivedDecorator self, StringKey a0) -> IMP::String
10043  get_value(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> Particle
10044  get_value(_TrivialDerivedDecorator self, ObjectKey a0) -> Object
10045  get_value(_TrivialDerivedDecorator self, SparseFloatKey a0) -> IMP::Float
10046  get_value(_TrivialDerivedDecorator self, SparseIntKey a0) -> IMP::Int
10047  get_value(_TrivialDerivedDecorator self, SparseStringKey a0) -> IMP::String
10048  get_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
10049  """
10050  return _IMP_kernel._TrivialDerivedDecorator_get_value(self, *args)
10051 
10052  def set_value(self, *args):
10053  r"""
10054  set_value(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
10055  set_value(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
10056  set_value(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
10057  set_value(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
10058  set_value(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
10059  set_value(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
10060  set_value(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
10061  set_value(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
10062  set_value(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
10063  set_value(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
10064  set_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10065  """
10066  return _IMP_kernel._TrivialDerivedDecorator_set_value(self, *args)
10067 
10068  def remove_attribute(self, *args):
10069  r"""
10070  remove_attribute(_TrivialDerivedDecorator self, FloatKey a0)
10071  remove_attribute(_TrivialDerivedDecorator self, IntKey a0)
10072  remove_attribute(_TrivialDerivedDecorator self, FloatsKey a0)
10073  remove_attribute(_TrivialDerivedDecorator self, IntsKey a0)
10074  remove_attribute(_TrivialDerivedDecorator self, StringKey a0)
10075  remove_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0)
10076  remove_attribute(_TrivialDerivedDecorator self, ObjectKey a0)
10077  remove_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0)
10078  remove_attribute(_TrivialDerivedDecorator self, SparseIntKey a0)
10079  remove_attribute(_TrivialDerivedDecorator self, SparseStringKey a0)
10080  remove_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0)
10081  """
10082  return _IMP_kernel._TrivialDerivedDecorator_remove_attribute(self, *args)
10083 
10084  def has_attribute(self, *args):
10085  r"""
10086  has_attribute(_TrivialDerivedDecorator self, FloatKey a0) -> bool
10087  has_attribute(_TrivialDerivedDecorator self, IntKey a0) -> bool
10088  has_attribute(_TrivialDerivedDecorator self, FloatsKey a0) -> bool
10089  has_attribute(_TrivialDerivedDecorator self, IntsKey a0) -> bool
10090  has_attribute(_TrivialDerivedDecorator self, StringKey a0) -> bool
10091  has_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> bool
10092  has_attribute(_TrivialDerivedDecorator self, ObjectKey a0) -> bool
10093  has_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0) -> bool
10094  has_attribute(_TrivialDerivedDecorator self, SparseIntKey a0) -> bool
10095  has_attribute(_TrivialDerivedDecorator self, SparseStringKey a0) -> bool
10096  has_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> bool
10097  """
10098  return _IMP_kernel._TrivialDerivedDecorator_has_attribute(self, *args)
10099 
10100  def get_derivative(self, a0):
10101  r"""get_derivative(_TrivialDerivedDecorator self, FloatKey a0) -> double"""
10102  return _IMP_kernel._TrivialDerivedDecorator_get_derivative(self, a0)
10103 
10104  def get_name(self):
10105  r"""get_name(_TrivialDerivedDecorator self) -> std::string"""
10106  return _IMP_kernel._TrivialDerivedDecorator_get_name(self)
10107 
10108  def clear_caches(self):
10109  r"""clear_caches(_TrivialDerivedDecorator self)"""
10110  return _IMP_kernel._TrivialDerivedDecorator_clear_caches(self)
10111 
10112  def set_name(self, a0):
10113  r"""set_name(_TrivialDerivedDecorator self, std::string a0)"""
10114  return _IMP_kernel._TrivialDerivedDecorator_set_name(self, a0)
10115 
10116  def set_check_level(self, a0):
10117  r"""set_check_level(_TrivialDerivedDecorator self, IMP::CheckLevel a0)"""
10118  return _IMP_kernel._TrivialDerivedDecorator_set_check_level(self, a0)
10119 
10120  def add_to_derivative(self, a0, a1, a2):
10121  r"""add_to_derivative(_TrivialDerivedDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10122  return _IMP_kernel._TrivialDerivedDecorator_add_to_derivative(self, a0, a1, a2)
10123 
10124  def set_is_optimized(self, a0, a1):
10125  r"""set_is_optimized(_TrivialDerivedDecorator self, FloatKey a0, bool a1)"""
10126  return _IMP_kernel._TrivialDerivedDecorator_set_is_optimized(self, a0, a1)
10127 
10128  def get_is_optimized(self, a0):
10129  r"""get_is_optimized(_TrivialDerivedDecorator self, FloatKey a0) -> bool"""
10130  return _IMP_kernel._TrivialDerivedDecorator_get_is_optimized(self, a0)
10131 
10132  def get_check_level(self):
10133  r"""get_check_level(_TrivialDerivedDecorator self) -> IMP::CheckLevel"""
10134  return _IMP_kernel._TrivialDerivedDecorator_get_check_level(self)
10135 
10136  def __eq__(self, *args):
10137  r"""
10138  __eq__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10139  __eq__(_TrivialDerivedDecorator self, Particle d) -> bool
10140  """
10141  return _IMP_kernel._TrivialDerivedDecorator___eq__(self, *args)
10142 
10143  def __ne__(self, *args):
10144  r"""
10145  __ne__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10146  __ne__(_TrivialDerivedDecorator self, Particle d) -> bool
10147  """
10148  return _IMP_kernel._TrivialDerivedDecorator___ne__(self, *args)
10149 
10150  def __le__(self, *args):
10151  r"""
10152  __le__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10153  __le__(_TrivialDerivedDecorator self, Particle d) -> bool
10154  """
10155  return _IMP_kernel._TrivialDerivedDecorator___le__(self, *args)
10156 
10157  def __lt__(self, *args):
10158  r"""
10159  __lt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10160  __lt__(_TrivialDerivedDecorator self, Particle d) -> bool
10161  """
10162  return _IMP_kernel._TrivialDerivedDecorator___lt__(self, *args)
10163 
10164  def __ge__(self, *args):
10165  r"""
10166  __ge__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10167  __ge__(_TrivialDerivedDecorator self, Particle d) -> bool
10168  """
10169  return _IMP_kernel._TrivialDerivedDecorator___ge__(self, *args)
10170 
10171  def __gt__(self, *args):
10172  r"""
10173  __gt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
10174  __gt__(_TrivialDerivedDecorator self, Particle d) -> bool
10175  """
10176  return _IMP_kernel._TrivialDerivedDecorator___gt__(self, *args)
10177 
10178  def __hash__(self):
10179  r"""__hash__(_TrivialDerivedDecorator self) -> std::size_t"""
10180  return _IMP_kernel._TrivialDerivedDecorator___hash__(self)
10181 
10182  def __str__(self):
10183  r"""__str__(_TrivialDerivedDecorator self) -> std::string"""
10184  return _IMP_kernel._TrivialDerivedDecorator___str__(self)
10185 
10186  def __repr__(self):
10187  r"""__repr__(_TrivialDerivedDecorator self) -> std::string"""
10188  return _IMP_kernel._TrivialDerivedDecorator___repr__(self)
10189 
10190  def _get_as_binary(self):
10191  r"""_get_as_binary(_TrivialDerivedDecorator self) -> PyObject *"""
10192  return _IMP_kernel._TrivialDerivedDecorator__get_as_binary(self)
10193 
10194  def _set_from_binary(self, p):
10195  r"""_set_from_binary(_TrivialDerivedDecorator self, PyObject * p)"""
10196  return _IMP_kernel._TrivialDerivedDecorator__set_from_binary(self, p)
10197 
10198  def __getstate__(self):
10199  p = self._get_as_binary()
10200  if len(self.__dict__) > 1:
10201  d = self.__dict__.copy()
10202  del d['this']
10203  p = (d, p)
10204  return p
10205 
10206  def __setstate__(self, p):
10207  if not hasattr(self, 'this'):
10208  self.__init__()
10209  if isinstance(p, tuple):
10210  d, p = p
10211  self.__dict__.update(d)
10212  return self._set_from_binary(p)
10213 
10214  __swig_destroy__ = _IMP_kernel.delete__TrivialDerivedDecorator
10215 
10216 # Register _TrivialDerivedDecorator in _IMP_kernel:
10217 _IMP_kernel._TrivialDerivedDecorator_swigregister(_TrivialDerivedDecorator)
10218 class _TrivialTraitsDecorator(Decorator):
10219  r"""Proxy of C++ IMP::internal::_TrivialTraitsDecorator class."""
10220 
10221  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10222 
10223  def get_decorator_traits(self):
10224  r"""get_decorator_traits(_TrivialTraitsDecorator self) -> StringKey"""
10225  return _IMP_kernel._TrivialTraitsDecorator_get_decorator_traits(self)
10226 
10227  @staticmethod
10228  def get_default_decorator_traits():
10229  r"""get_default_decorator_traits() -> StringKey"""
10230  return _IMP_kernel._TrivialTraitsDecorator_get_default_decorator_traits()
10231 
10232  def __init__(self, *args):
10233  r"""
10234  __init__(_TrivialTraitsDecorator self) -> _TrivialTraitsDecorator
10235  __init__(_TrivialTraitsDecorator self, Model m, ParticleIndex id, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10236  __init__(_TrivialTraitsDecorator self, _ParticleAdaptor d, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10237  """
10238  _IMP_kernel._TrivialTraitsDecorator_swiginit(self, _IMP_kernel.new__TrivialTraitsDecorator(*args))
10239 
10240  def show(self, *args):
10241  r"""show(_TrivialTraitsDecorator self, _ostream out=std::cout)"""
10242  return _IMP_kernel._TrivialTraitsDecorator_show(self, *args)
10243 
10244  @staticmethod
10245  def setup_particle(*args):
10246  r"""
10247  setup_particle(Model m, ParticleIndex pi, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10248  setup_particle(_ParticleAdaptor d, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10249  """
10250  return _IMP_kernel._TrivialTraitsDecorator_setup_particle(*args)
10251 
10252  @staticmethod
10253  def get_is_setup(*args):
10254  r"""
10255  get_is_setup(_ParticleAdaptor p, StringKey tr=get_default_key()) -> bool
10256  get_is_setup(Model m, ParticleIndex pi, StringKey k=get_default_key()) -> bool
10257  """
10258  return _IMP_kernel._TrivialTraitsDecorator_get_is_setup(*args)
10259 
10260  @staticmethod
10261  def get_default_key():
10262  r"""get_default_key() -> StringKey"""
10263  return _IMP_kernel._TrivialTraitsDecorator_get_default_key()
10264 
10265  def add_attribute(self, *args):
10266  r"""
10267  add_attribute(_TrivialTraitsDecorator self, FloatKey k, IMP::Float v, bool opt)
10268  add_attribute(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10269  add_attribute(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10270  add_attribute(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10271  add_attribute(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10272  add_attribute(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10273  add_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10274  add_attribute(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10275  add_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10276  add_attribute(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10277  add_attribute(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10278  add_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10279  """
10280  return _IMP_kernel._TrivialTraitsDecorator_add_attribute(self, *args)
10281 
10282  def get_value(self, *args):
10283  r"""
10284  get_value(_TrivialTraitsDecorator self, FloatKey a0) -> IMP::Float
10285  get_value(_TrivialTraitsDecorator self, IntKey a0) -> IMP::Int
10286  get_value(_TrivialTraitsDecorator self, FloatsKey a0) -> IMP::Floats
10287  get_value(_TrivialTraitsDecorator self, IntsKey a0) -> IMP::Ints
10288  get_value(_TrivialTraitsDecorator self, StringKey a0) -> IMP::String
10289  get_value(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> Particle
10290  get_value(_TrivialTraitsDecorator self, ObjectKey a0) -> Object
10291  get_value(_TrivialTraitsDecorator self, SparseFloatKey a0) -> IMP::Float
10292  get_value(_TrivialTraitsDecorator self, SparseIntKey a0) -> IMP::Int
10293  get_value(_TrivialTraitsDecorator self, SparseStringKey a0) -> IMP::String
10294  get_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
10295  """
10296  return _IMP_kernel._TrivialTraitsDecorator_get_value(self, *args)
10297 
10298  def set_value(self, *args):
10299  r"""
10300  set_value(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10301  set_value(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10302  set_value(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10303  set_value(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10304  set_value(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10305  set_value(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10306  set_value(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10307  set_value(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10308  set_value(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10309  set_value(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10310  set_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10311  """
10312  return _IMP_kernel._TrivialTraitsDecorator_set_value(self, *args)
10313 
10314  def remove_attribute(self, *args):
10315  r"""
10316  remove_attribute(_TrivialTraitsDecorator self, FloatKey a0)
10317  remove_attribute(_TrivialTraitsDecorator self, IntKey a0)
10318  remove_attribute(_TrivialTraitsDecorator self, FloatsKey a0)
10319  remove_attribute(_TrivialTraitsDecorator self, IntsKey a0)
10320  remove_attribute(_TrivialTraitsDecorator self, StringKey a0)
10321  remove_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0)
10322  remove_attribute(_TrivialTraitsDecorator self, ObjectKey a0)
10323  remove_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0)
10324  remove_attribute(_TrivialTraitsDecorator self, SparseIntKey a0)
10325  remove_attribute(_TrivialTraitsDecorator self, SparseStringKey a0)
10326  remove_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0)
10327  """
10328  return _IMP_kernel._TrivialTraitsDecorator_remove_attribute(self, *args)
10329 
10330  def has_attribute(self, *args):
10331  r"""
10332  has_attribute(_TrivialTraitsDecorator self, FloatKey a0) -> bool
10333  has_attribute(_TrivialTraitsDecorator self, IntKey a0) -> bool
10334  has_attribute(_TrivialTraitsDecorator self, FloatsKey a0) -> bool
10335  has_attribute(_TrivialTraitsDecorator self, IntsKey a0) -> bool
10336  has_attribute(_TrivialTraitsDecorator self, StringKey a0) -> bool
10337  has_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> bool
10338  has_attribute(_TrivialTraitsDecorator self, ObjectKey a0) -> bool
10339  has_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0) -> bool
10340  has_attribute(_TrivialTraitsDecorator self, SparseIntKey a0) -> bool
10341  has_attribute(_TrivialTraitsDecorator self, SparseStringKey a0) -> bool
10342  has_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> bool
10343  """
10344  return _IMP_kernel._TrivialTraitsDecorator_has_attribute(self, *args)
10345 
10346  def get_derivative(self, a0):
10347  r"""get_derivative(_TrivialTraitsDecorator self, FloatKey a0) -> double"""
10348  return _IMP_kernel._TrivialTraitsDecorator_get_derivative(self, a0)
10349 
10350  def get_name(self):
10351  r"""get_name(_TrivialTraitsDecorator self) -> std::string"""
10352  return _IMP_kernel._TrivialTraitsDecorator_get_name(self)
10353 
10354  def clear_caches(self):
10355  r"""clear_caches(_TrivialTraitsDecorator self)"""
10356  return _IMP_kernel._TrivialTraitsDecorator_clear_caches(self)
10357 
10358  def set_name(self, a0):
10359  r"""set_name(_TrivialTraitsDecorator self, std::string a0)"""
10360  return _IMP_kernel._TrivialTraitsDecorator_set_name(self, a0)
10361 
10362  def set_check_level(self, a0):
10363  r"""set_check_level(_TrivialTraitsDecorator self, IMP::CheckLevel a0)"""
10364  return _IMP_kernel._TrivialTraitsDecorator_set_check_level(self, a0)
10365 
10366  def add_to_derivative(self, a0, a1, a2):
10367  r"""add_to_derivative(_TrivialTraitsDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10368  return _IMP_kernel._TrivialTraitsDecorator_add_to_derivative(self, a0, a1, a2)
10369 
10370  def set_is_optimized(self, a0, a1):
10371  r"""set_is_optimized(_TrivialTraitsDecorator self, FloatKey a0, bool a1)"""
10372  return _IMP_kernel._TrivialTraitsDecorator_set_is_optimized(self, a0, a1)
10373 
10374  def get_is_optimized(self, a0):
10375  r"""get_is_optimized(_TrivialTraitsDecorator self, FloatKey a0) -> bool"""
10376  return _IMP_kernel._TrivialTraitsDecorator_get_is_optimized(self, a0)
10377 
10378  def get_check_level(self):
10379  r"""get_check_level(_TrivialTraitsDecorator self) -> IMP::CheckLevel"""
10380  return _IMP_kernel._TrivialTraitsDecorator_get_check_level(self)
10381 
10382  def __eq__(self, *args):
10383  r"""
10384  __eq__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10385  __eq__(_TrivialTraitsDecorator self, Particle d) -> bool
10386  """
10387  return _IMP_kernel._TrivialTraitsDecorator___eq__(self, *args)
10388 
10389  def __ne__(self, *args):
10390  r"""
10391  __ne__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10392  __ne__(_TrivialTraitsDecorator self, Particle d) -> bool
10393  """
10394  return _IMP_kernel._TrivialTraitsDecorator___ne__(self, *args)
10395 
10396  def __le__(self, *args):
10397  r"""
10398  __le__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10399  __le__(_TrivialTraitsDecorator self, Particle d) -> bool
10400  """
10401  return _IMP_kernel._TrivialTraitsDecorator___le__(self, *args)
10402 
10403  def __lt__(self, *args):
10404  r"""
10405  __lt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10406  __lt__(_TrivialTraitsDecorator self, Particle d) -> bool
10407  """
10408  return _IMP_kernel._TrivialTraitsDecorator___lt__(self, *args)
10409 
10410  def __ge__(self, *args):
10411  r"""
10412  __ge__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10413  __ge__(_TrivialTraitsDecorator self, Particle d) -> bool
10414  """
10415  return _IMP_kernel._TrivialTraitsDecorator___ge__(self, *args)
10416 
10417  def __gt__(self, *args):
10418  r"""
10419  __gt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10420  __gt__(_TrivialTraitsDecorator self, Particle d) -> bool
10421  """
10422  return _IMP_kernel._TrivialTraitsDecorator___gt__(self, *args)
10423 
10424  def __hash__(self):
10425  r"""__hash__(_TrivialTraitsDecorator self) -> std::size_t"""
10426  return _IMP_kernel._TrivialTraitsDecorator___hash__(self)
10427 
10428  def __str__(self):
10429  r"""__str__(_TrivialTraitsDecorator self) -> std::string"""
10430  return _IMP_kernel._TrivialTraitsDecorator___str__(self)
10431 
10432  def __repr__(self):
10433  r"""__repr__(_TrivialTraitsDecorator self) -> std::string"""
10434  return _IMP_kernel._TrivialTraitsDecorator___repr__(self)
10435  __swig_destroy__ = _IMP_kernel.delete__TrivialTraitsDecorator
10436 
10437 # Register _TrivialTraitsDecorator in _IMP_kernel:
10438 _IMP_kernel._TrivialTraitsDecorator_swigregister(_TrivialTraitsDecorator)
10439 
10440 def __lshift__(*args):
10441  r"""
10442  __lshift__(_ostream out, _TrivialDecorator n) -> _ostream
10443  __lshift__(_ostream out, _TrivialDerivedDecorator n) -> _ostream
10444  __lshift__(_ostream out, _TrivialTraitsDecorator n) -> _ostream
10445  """
10446  return _IMP_kernel.__lshift__(*args)
10447 class _ConstOptimizer(Optimizer):
10448  r"""Proxy of C++ IMP::internal::_ConstOptimizer class."""
10449 
10450  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10451 
10452  def __init__(self, *args):
10453  r"""
10454  __init__(_ConstOptimizer self, Model m) -> _ConstOptimizer
10455  __init__(_ConstOptimizer self) -> _ConstOptimizer
10456  """
10457  _IMP_kernel._ConstOptimizer_swiginit(self, _IMP_kernel.new__ConstOptimizer(*args))
10458 
10459  def do_optimize(self, max_steps):
10460  r"""do_optimize(_ConstOptimizer self, unsigned int max_steps) -> IMP::Float"""
10461  return _IMP_kernel._ConstOptimizer_do_optimize(self, max_steps)
10462 
10463  def get_version_info(self):
10464  r"""get_version_info(_ConstOptimizer self) -> VersionInfo"""
10465  return _IMP_kernel._ConstOptimizer_get_version_info(self)
10466  __swig_destroy__ = _IMP_kernel.delete__ConstOptimizer
10467 
10468  def __str__(self):
10469  r"""__str__(_ConstOptimizer self) -> std::string"""
10470  return _IMP_kernel._ConstOptimizer___str__(self)
10471 
10472  def __repr__(self):
10473  r"""__repr__(_ConstOptimizer self) -> std::string"""
10474  return _IMP_kernel._ConstOptimizer___repr__(self)
10475 
10476  @staticmethod
10477  def get_from(o):
10478  return _object_cast_to__ConstOptimizer(o)
10479 
10480 
10481  def _get_as_binary(self):
10482  r"""_get_as_binary(_ConstOptimizer self) -> PyObject *"""
10483  return _IMP_kernel._ConstOptimizer__get_as_binary(self)
10484 
10485  def _set_from_binary(self, p):
10486  r"""_set_from_binary(_ConstOptimizer self, PyObject * p)"""
10487  return _IMP_kernel._ConstOptimizer__set_from_binary(self, p)
10488 
10489  def __getstate__(self):
10490  p = self._get_as_binary()
10491  if len(self.__dict__) > 1:
10492  d = self.__dict__.copy()
10493  del d['this']
10494  p = (d, p)
10495  return p
10496 
10497  def __setstate__(self, p):
10498  if not hasattr(self, 'this'):
10499  self.__init__()
10500  if isinstance(p, tuple):
10501  d, p = p
10502  self.__dict__.update(d)
10503  return self._set_from_binary(p)
10504 
10505 
10506 # Register _ConstOptimizer in _IMP_kernel:
10507 _IMP_kernel._ConstOptimizer_swigregister(_ConstOptimizer)
10508 
10509 def get_particle(p):
10510  r"""get_particle(Particle p) -> Particle"""
10511  return _IMP_kernel.get_particle(p)
10512 
10513 def _decorator_test(p):
10514  r"""_decorator_test(Particle p)"""
10515  return _IMP_kernel._decorator_test(p)
10516 
10517 def _overloaded_decorator(*args):
10518  r"""
10519  _overloaded_decorator(_TrivialDecorator a) -> int
10520  _overloaded_decorator(_TrivialDerivedDecorator a) -> int
10521  """
10522  return _IMP_kernel._overloaded_decorator(*args)
10523 
10524 def _take_particles(*args):
10525  r"""
10526  _take_particles(IMP::Particles const & ps) -> unsigned int
10527  _take_particles(Model m, IMP::Particles const & ps) -> unsigned int
10528  _take_particles(Model m, IMP::Particles const & ps, TextOutput out) -> unsigned int
10529  """
10530  return _IMP_kernel._take_particles(*args)
10531 
10532 def _give_particles(m):
10533  r"""_give_particles(Model m) -> IMP::Particles const &"""
10534  return _IMP_kernel._give_particles(m)
10535 
10536 def _pass_particles(ps):
10537  r"""_pass_particles(IMP::Particles const & ps) -> IMP::Particles const &"""
10538  return _IMP_kernel._pass_particles(ps)
10539 
10540 def _pass_particle(ps):
10541  r"""_pass_particle(Particle ps) -> Particle"""
10542  return _IMP_kernel._pass_particle(ps)
10543 
10544 def _pass_particle_pair(pp):
10545  r"""_pass_particle_pair(IMP::ParticlePair const & pp) -> IMP::ParticlePair const &"""
10546  return _IMP_kernel._pass_particle_pair(pp)
10547 
10548 def _give_particles_copy(m):
10549  r"""_give_particles_copy(Model m) -> IMP::Particles"""
10550  return _IMP_kernel._give_particles_copy(m)
10551 
10552 def _pass_float_keys(input):
10553  r"""_pass_float_keys(IMP::FloatKeys const & input) -> IMP::FloatKeys"""
10554  return _IMP_kernel._pass_float_keys(input)
10555 
10556 def _pass(*args):
10557  r"""
10558  _pass(IMP::Particles const & p) -> IMP::Particles const
10559  _pass(IMP::Restraints const & p) -> IMP::Restraints const &
10560  """
10561  return _IMP_kernel._pass(*args)
10562 
10563 def _pass_decorators(p):
10564  r"""_pass_decorators(IMP::internal::_TrivialDecorators const & p) -> IMP::internal::_TrivialDecorators const &"""
10565  return _IMP_kernel._pass_decorators(p)
10566 
10567 def _pass_decorator_traits(p):
10568  r"""_pass_decorator_traits(IMP::internal::_TrivialTraitsDecorators const & p) -> IMP::internal::_TrivialTraitsDecorators const &"""
10569  return _IMP_kernel._pass_decorator_traits(p)
10570 
10571 def _pass_particle_pairs(p):
10572  r"""_pass_particle_pairs(IMP::ParticlePairsTemp const & p) -> IMP::ParticlePairsTemp"""
10573  return _IMP_kernel._pass_particle_pairs(p)
10574 
10575 def _pass_particle_index_pairs(p):
10576  r"""_pass_particle_index_pairs(IMP::ParticleIndexPairs const & p) -> IMP::ParticleIndexPairs"""
10577  return _IMP_kernel._pass_particle_index_pairs(p)
10578 
10579 def _pass_model_objects(p):
10580  r"""_pass_model_objects(IMP::ModelObjectsTemp const & p) -> IMP::ModelObjectsTemp"""
10581  return _IMP_kernel._pass_model_objects(p)
10582 
10583 def _pass_particles_temps(ps):
10584  r"""_pass_particles_temps(IMP::ParticlesTemps const & ps) -> IMP::ParticlesTemps"""
10585  return _IMP_kernel._pass_particles_temps(ps)
10586 
10587 def _test_overload(*args):
10588  r"""
10589  _test_overload(IMP::Particles const & ps) -> int
10590  _test_overload(IMP::Restraints const & ps) -> int
10591  """
10592  return _IMP_kernel._test_overload(*args)
10593 
10594 def _get_range(m, k):
10595  r"""_get_range(Model m, FloatKey k) -> IMP::FloatRange"""
10596  return _IMP_kernel._get_range(m, k)
10597 
10598 def _create_particles_from_pdb(name, m):
10599  r"""_create_particles_from_pdb(std::string name, Model m) -> IMP::ParticleIndexes"""
10600  return _IMP_kernel._create_particles_from_pdb(name, m)
10601 class _LogPairScore(PairScore):
10602  r"""Proxy of C++ IMP::internal::_LogPairScore class."""
10603 
10604  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10605  __repr__ = _swig_repr
10606 
10607  def __init__(self):
10608  r"""__init__(_LogPairScore self) -> _LogPairScore"""
10609  _IMP_kernel._LogPairScore_swiginit(self, _IMP_kernel.new__LogPairScore())
10610 
10611  def do_get_inputs(self, arg2, arg3):
10612  r"""do_get_inputs(_LogPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
10613  return _IMP_kernel._LogPairScore_do_get_inputs(self, arg2, arg3)
10614 
10615  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
10616  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"""
10617  return _IMP_kernel._LogPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
10618 
10619  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
10620  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"""
10621  return _IMP_kernel._LogPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
10622 
10623  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
10624  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"""
10625  return _IMP_kernel._LogPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
10626 
10627  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
10628  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"""
10629  return _IMP_kernel._LogPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
10630 
10631  def get_version_info(self):
10632  r"""get_version_info(_LogPairScore self) -> VersionInfo"""
10633  return _IMP_kernel._LogPairScore_get_version_info(self)
10634  __swig_destroy__ = _IMP_kernel.delete__LogPairScore
10635 
10636  def get_particle_pairs(self):
10637  r"""get_particle_pairs(_LogPairScore self) -> IMP::ParticlePairsTemp"""
10638  return _IMP_kernel._LogPairScore_get_particle_pairs(self)
10639 
10640  def clear(self):
10641  r"""clear(_LogPairScore self)"""
10642  return _IMP_kernel._LogPairScore_clear(self)
10643 
10644  def get_contains(self, pp):
10645  r"""get_contains(_LogPairScore self, IMP::ParticlePair const & pp) -> bool"""
10646  return _IMP_kernel._LogPairScore_get_contains(self, pp)
10647 
10648 # Register _LogPairScore in _IMP_kernel:
10649 _IMP_kernel._LogPairScore_swigregister(_LogPairScore)
10650 
10651 def _overloaded_particles(*args):
10652  r"""
10653  _overloaded_particles(Particle arg1)
10654  _overloaded_particles(IMP::Particles const & arg1)
10655  _overloaded_particles(IMP::ParticlesTemp const & arg1)
10656  _overloaded_particles(Model arg1, IMP::ParticleIndexes const & arg2)
10657  _overloaded_particles(IMP::internal::_TrivialDecorators const & arg1)
10658  _overloaded_particles(_TrivialDecorator arg1)
10659  """
10660  return _IMP_kernel._overloaded_particles(*args)
10661 class _ImplicitParticles(object):
10662  r"""Proxy of C++ IMP::internal::_ImplicitParticles class."""
10663 
10664  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10665  __repr__ = _swig_repr
10666 
10667  def __init__(self, *args):
10668  r"""
10669  __init__(_ImplicitParticles self, Particle arg2) -> _ImplicitParticles
10670  __init__(_ImplicitParticles self, IMP::Particles const & arg2) -> _ImplicitParticles
10671  __init__(_ImplicitParticles self, IMP::ParticlesTemp const & arg2) -> _ImplicitParticles
10672  __init__(_ImplicitParticles self, Model arg2, IMP::ParticleIndexes const & arg3) -> _ImplicitParticles
10673  __init__(_ImplicitParticles self, IMP::internal::_TrivialDecorators const & arg2) -> _ImplicitParticles
10674  __init__(_ImplicitParticles self, _TrivialDecorator arg2) -> _ImplicitParticles
10675  """
10676  _IMP_kernel._ImplicitParticles_swiginit(self, _IMP_kernel.new__ImplicitParticles(*args))
10677  __swig_destroy__ = _IMP_kernel.delete__ImplicitParticles
10678 
10679 # Register _ImplicitParticles in _IMP_kernel:
10680 _IMP_kernel._ImplicitParticles_swigregister(_ImplicitParticles)
10681 
10682 def _implicit_particles(arg1):
10683  r"""_implicit_particles(_ImplicitParticles arg1)"""
10684  return _IMP_kernel._implicit_particles(arg1)
10685 
10686 def _take_particle_adaptor(pa):
10687  r"""_take_particle_adaptor(_ParticleAdaptor pa) -> ParticleIndex"""
10688  return _IMP_kernel._take_particle_adaptor(pa)
10689 
10690 def _take_particle_indexes_adaptor(pa):
10691  r"""_take_particle_indexes_adaptor(_ParticleIndexesAdaptor pa) -> IMP::ParticleIndexes"""
10692  return _IMP_kernel._take_particle_indexes_adaptor(pa)
10693 class Vector1D(_VectorBase1D):
10694  r"""Proxy of C++ IMP::VectorD< 1 > class."""
10695 
10696  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10697 
10698  def get_unit_vector(self):
10699  r"""get_unit_vector(Vector1D self) -> Vector1D"""
10700  return _IMP_kernel.Vector1D_get_unit_vector(self)
10701 
10702  def __truediv__(self, *args):
10703  return _IMP_kernel.Vector1D___truediv__(self, *args)
10704 
10705 
10706 
10707  def __neg__(self):
10708  r"""__neg__(Vector1D self) -> Vector1D"""
10709  return _IMP_kernel.Vector1D___neg__(self)
10710 
10711  def __sub__(self, o):
10712  r"""__sub__(Vector1D self, Vector1D o) -> Vector1D"""
10713  return _IMP_kernel.Vector1D___sub__(self, o)
10714 
10715  def __add__(self, ret):
10716  r"""__add__(Vector1D self, Vector1D ret) -> Vector1D"""
10717  return _IMP_kernel.Vector1D___add__(self, ret)
10718 
10719  def __mul__(self, *args):
10720  r"""
10721  __mul__(Vector1D self, double s) -> Vector1D
10722  __mul__(Vector1D self, Vector1D o) -> double
10723  """
10724  return _IMP_kernel.Vector1D___mul__(self, *args)
10725 
10726  def __init__(self, *args):
10727  r"""
10728  __init__(Vector1D self, IMP::Floats const & f) -> Vector1D
10729  __init__(Vector1D self) -> Vector1D
10730  __init__(Vector1D self, double x) -> Vector1D
10731  """
10732  _IMP_kernel.Vector1D_swiginit(self, _IMP_kernel.new_Vector1D(*args))
10733 
10734  def __iadd__(self, *args):
10735  _IMP_kernel.Vector1D___iadd__(self, *args)
10736  return self
10737 
10738 
10739 
10740  def __imul__(self, *args):
10741  _IMP_kernel.Vector1D___imul__(self, *args)
10742  return self
10743 
10744 
10745 
10746  def __itruediv__(self, *args):
10747  _IMP_kernel.Vector1D___itruediv__(self, *args)
10748  return self
10749 
10750 
10751 
10752  def __isub__(self, *args):
10753  _IMP_kernel.Vector1D___isub__(self, *args)
10754  return self
10755 
10756 
10757 
10758  def __len__(self):
10759  r"""__len__(Vector1D self) -> unsigned int"""
10760  return _IMP_kernel.Vector1D___len__(self)
10761 
10762  def __rmul__(self, f):
10763  r"""__rmul__(Vector1D self, double f) -> Vector1D"""
10764  return _IMP_kernel.Vector1D___rmul__(self, f)
10765 
10766  def __str__(self):
10767  r"""__str__(Vector1D self) -> std::string"""
10768  return _IMP_kernel.Vector1D___str__(self)
10769 
10770  def __repr__(self):
10771  r"""__repr__(Vector1D self) -> std::string"""
10772  return _IMP_kernel.Vector1D___repr__(self)
10773 
10774  def __eq__(self, arg2):
10775  r"""__eq__(Vector1D self, Vector1D arg2) -> bool"""
10776  return _IMP_kernel.Vector1D___eq__(self, arg2)
10777 
10778  def _get_as_binary(self):
10779  r"""_get_as_binary(Vector1D self) -> PyObject *"""
10780  return _IMP_kernel.Vector1D__get_as_binary(self)
10781 
10782  def _set_from_binary(self, p):
10783  r"""_set_from_binary(Vector1D self, PyObject * p)"""
10784  return _IMP_kernel.Vector1D__set_from_binary(self, p)
10785 
10786  def __getstate__(self):
10787  p = self._get_as_binary()
10788  if len(self.__dict__) > 1:
10789  d = self.__dict__.copy()
10790  del d['this']
10791  p = (d, p)
10792  return p
10793 
10794  def __setstate__(self, p):
10795  if not hasattr(self, 'this'):
10796  self.__init__()
10797  if isinstance(p, tuple):
10798  d, p = p
10799  self.__dict__.update(d)
10800  return self._set_from_binary(p)
10801 
10802 
10803  def __getitem__(self, index):
10804  if isinstance(index, slice):
10805  return [self[i] for i in range(*index.indices(len(self)))]
10806  else:
10807  return _IMP_kernel.Vector1D___getitem__(self, index)
10808 
10809 
10810 
10811  def __setitem__(self, index, val):
10812  if isinstance(index, slice):
10813  if not hasattr(val, '__iter__'):
10814  raise TypeError("must assign iterable to extended slice")
10815  inds = range(*index.indices(len(self)))
10816  if len(inds) != len(val):
10817  raise ValueError(
10818  "attempt to assign sequence of size %d "
10819  "to extended slice of size %d" % (len(val), len(inds)))
10820  for ind, v in zip(inds, val):
10821  self[ind] = v
10822  else:
10823  return _IMP_kernel.Vector1D___setitem__(self, index, val)
10824 
10825 
10826  __swig_destroy__ = _IMP_kernel.delete_Vector1D
10827 
10828 # Register Vector1D in _IMP_kernel:
10829 _IMP_kernel.Vector1D_swigregister(Vector1D)
10830 class Vector2D(_VectorBase2D):
10831  r"""Proxy of C++ IMP::VectorD< 2 > class."""
10832 
10833  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10834 
10835  def get_unit_vector(self):
10836  r"""get_unit_vector(Vector2D self) -> Vector2D"""
10837  return _IMP_kernel.Vector2D_get_unit_vector(self)
10838 
10839  def __truediv__(self, *args):
10840  return _IMP_kernel.Vector2D___truediv__(self, *args)
10841 
10842 
10843 
10844  def __neg__(self):
10845  r"""__neg__(Vector2D self) -> Vector2D"""
10846  return _IMP_kernel.Vector2D___neg__(self)
10847 
10848  def __sub__(self, o):
10849  r"""__sub__(Vector2D self, Vector2D o) -> Vector2D"""
10850  return _IMP_kernel.Vector2D___sub__(self, o)
10851 
10852  def __add__(self, ret):
10853  r"""__add__(Vector2D self, Vector2D ret) -> Vector2D"""
10854  return _IMP_kernel.Vector2D___add__(self, ret)
10855 
10856  def __mul__(self, *args):
10857  r"""
10858  __mul__(Vector2D self, double s) -> Vector2D
10859  __mul__(Vector2D self, Vector2D o) -> double
10860  """
10861  return _IMP_kernel.Vector2D___mul__(self, *args)
10862 
10863  def __init__(self, *args):
10864  r"""
10865  __init__(Vector2D self, IMP::Floats const & f) -> Vector2D
10866  __init__(Vector2D self) -> Vector2D
10867  __init__(Vector2D self, double x, double y) -> Vector2D
10868  """
10869  _IMP_kernel.Vector2D_swiginit(self, _IMP_kernel.new_Vector2D(*args))
10870 
10871  def __iadd__(self, *args):
10872  _IMP_kernel.Vector2D___iadd__(self, *args)
10873  return self
10874 
10875 
10876 
10877  def __imul__(self, *args):
10878  _IMP_kernel.Vector2D___imul__(self, *args)
10879  return self
10880 
10881 
10882 
10883  def __itruediv__(self, *args):
10884  _IMP_kernel.Vector2D___itruediv__(self, *args)
10885  return self
10886 
10887 
10888 
10889  def __isub__(self, *args):
10890  _IMP_kernel.Vector2D___isub__(self, *args)
10891  return self
10892 
10893 
10894 
10895  def __len__(self):
10896  r"""__len__(Vector2D self) -> unsigned int"""
10897  return _IMP_kernel.Vector2D___len__(self)
10898 
10899  def __rmul__(self, f):
10900  r"""__rmul__(Vector2D self, double f) -> Vector2D"""
10901  return _IMP_kernel.Vector2D___rmul__(self, f)
10902 
10903  def __str__(self):
10904  r"""__str__(Vector2D self) -> std::string"""
10905  return _IMP_kernel.Vector2D___str__(self)
10906 
10907  def __repr__(self):
10908  r"""__repr__(Vector2D self) -> std::string"""
10909  return _IMP_kernel.Vector2D___repr__(self)
10910 
10911  def __eq__(self, arg2):
10912  r"""__eq__(Vector2D self, Vector2D arg2) -> bool"""
10913  return _IMP_kernel.Vector2D___eq__(self, arg2)
10914 
10915  def _get_as_binary(self):
10916  r"""_get_as_binary(Vector2D self) -> PyObject *"""
10917  return _IMP_kernel.Vector2D__get_as_binary(self)
10918 
10919  def _set_from_binary(self, p):
10920  r"""_set_from_binary(Vector2D self, PyObject * p)"""
10921  return _IMP_kernel.Vector2D__set_from_binary(self, p)
10922 
10923  def __getstate__(self):
10924  p = self._get_as_binary()
10925  if len(self.__dict__) > 1:
10926  d = self.__dict__.copy()
10927  del d['this']
10928  p = (d, p)
10929  return p
10930 
10931  def __setstate__(self, p):
10932  if not hasattr(self, 'this'):
10933  self.__init__()
10934  if isinstance(p, tuple):
10935  d, p = p
10936  self.__dict__.update(d)
10937  return self._set_from_binary(p)
10938 
10939 
10940  def __getitem__(self, index):
10941  if isinstance(index, slice):
10942  return [self[i] for i in range(*index.indices(len(self)))]
10943  else:
10944  return _IMP_kernel.Vector2D___getitem__(self, index)
10945 
10946 
10947 
10948  def __setitem__(self, index, val):
10949  if isinstance(index, slice):
10950  if not hasattr(val, '__iter__'):
10951  raise TypeError("must assign iterable to extended slice")
10952  inds = range(*index.indices(len(self)))
10953  if len(inds) != len(val):
10954  raise ValueError(
10955  "attempt to assign sequence of size %d "
10956  "to extended slice of size %d" % (len(val), len(inds)))
10957  for ind, v in zip(inds, val):
10958  self[ind] = v
10959  else:
10960  return _IMP_kernel.Vector2D___setitem__(self, index, val)
10961 
10962 
10963  __swig_destroy__ = _IMP_kernel.delete_Vector2D
10964 
10965 # Register Vector2D in _IMP_kernel:
10966 _IMP_kernel.Vector2D_swigregister(Vector2D)
10967 class Vector3D(_VectorBase3D):
10968  r"""Proxy of C++ IMP::VectorD< 3 > class."""
10969 
10970  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10971 
10972  def get_unit_vector(self):
10973  r"""get_unit_vector(Vector3D self) -> Vector3D"""
10974  return _IMP_kernel.Vector3D_get_unit_vector(self)
10975 
10976  def __truediv__(self, *args):
10977  return _IMP_kernel.Vector3D___truediv__(self, *args)
10978 
10979 
10980 
10981  def __neg__(self):
10982  r"""__neg__(Vector3D self) -> Vector3D"""
10983  return _IMP_kernel.Vector3D___neg__(self)
10984 
10985  def __sub__(self, o):
10986  r"""__sub__(Vector3D self, Vector3D o) -> Vector3D"""
10987  return _IMP_kernel.Vector3D___sub__(self, o)
10988 
10989  def __add__(self, ret):
10990  r"""__add__(Vector3D self, Vector3D ret) -> Vector3D"""
10991  return _IMP_kernel.Vector3D___add__(self, ret)
10992 
10993  def __mul__(self, *args):
10994  r"""
10995  __mul__(Vector3D self, double s) -> Vector3D
10996  __mul__(Vector3D self, Vector3D o) -> double
10997  """
10998  return _IMP_kernel.Vector3D___mul__(self, *args)
10999 
11000  def __init__(self, *args):
11001  r"""
11002  __init__(Vector3D self, IMP::Floats const & f) -> Vector3D
11003  __init__(Vector3D self) -> Vector3D
11004  __init__(Vector3D self, double x, double y, double z) -> Vector3D
11005  """
11006  _IMP_kernel.Vector3D_swiginit(self, _IMP_kernel.new_Vector3D(*args))
11007 
11008  def __iadd__(self, *args):
11009  _IMP_kernel.Vector3D___iadd__(self, *args)
11010  return self
11011 
11012 
11013 
11014  def __imul__(self, *args):
11015  _IMP_kernel.Vector3D___imul__(self, *args)
11016  return self
11017 
11018 
11019 
11020  def __itruediv__(self, *args):
11021  _IMP_kernel.Vector3D___itruediv__(self, *args)
11022  return self
11023 
11024 
11025 
11026  def __isub__(self, *args):
11027  _IMP_kernel.Vector3D___isub__(self, *args)
11028  return self
11029 
11030 
11031 
11032  def __len__(self):
11033  r"""__len__(Vector3D self) -> unsigned int"""
11034  return _IMP_kernel.Vector3D___len__(self)
11035 
11036  def __rmul__(self, f):
11037  r"""__rmul__(Vector3D self, double f) -> Vector3D"""
11038  return _IMP_kernel.Vector3D___rmul__(self, f)
11039 
11040  def __str__(self):
11041  r"""__str__(Vector3D self) -> std::string"""
11042  return _IMP_kernel.Vector3D___str__(self)
11043 
11044  def __repr__(self):
11045  r"""__repr__(Vector3D self) -> std::string"""
11046  return _IMP_kernel.Vector3D___repr__(self)
11047 
11048  def __eq__(self, arg2):
11049  r"""__eq__(Vector3D self, Vector3D arg2) -> bool"""
11050  return _IMP_kernel.Vector3D___eq__(self, arg2)
11051 
11052  def _get_as_binary(self):
11053  r"""_get_as_binary(Vector3D self) -> PyObject *"""
11054  return _IMP_kernel.Vector3D__get_as_binary(self)
11055 
11056  def _set_from_binary(self, p):
11057  r"""_set_from_binary(Vector3D self, PyObject * p)"""
11058  return _IMP_kernel.Vector3D__set_from_binary(self, p)
11059 
11060  def __getstate__(self):
11061  p = self._get_as_binary()
11062  if len(self.__dict__) > 1:
11063  d = self.__dict__.copy()
11064  del d['this']
11065  p = (d, p)
11066  return p
11067 
11068  def __setstate__(self, p):
11069  if not hasattr(self, 'this'):
11070  self.__init__()
11071  if isinstance(p, tuple):
11072  d, p = p
11073  self.__dict__.update(d)
11074  return self._set_from_binary(p)
11075 
11076 
11077  def __getitem__(self, index):
11078  if isinstance(index, slice):
11079  return [self[i] for i in range(*index.indices(len(self)))]
11080  else:
11081  return _IMP_kernel.Vector3D___getitem__(self, index)
11082 
11083 
11084 
11085  def __setitem__(self, index, val):
11086  if isinstance(index, slice):
11087  if not hasattr(val, '__iter__'):
11088  raise TypeError("must assign iterable to extended slice")
11089  inds = range(*index.indices(len(self)))
11090  if len(inds) != len(val):
11091  raise ValueError(
11092  "attempt to assign sequence of size %d "
11093  "to extended slice of size %d" % (len(val), len(inds)))
11094  for ind, v in zip(inds, val):
11095  self[ind] = v
11096  else:
11097  return _IMP_kernel.Vector3D___setitem__(self, index, val)
11098 
11099 
11100  __swig_destroy__ = _IMP_kernel.delete_Vector3D
11101 
11102 # Register Vector3D in _IMP_kernel:
11103 _IMP_kernel.Vector3D_swigregister(Vector3D)
11104 class Vector4D(_VectorBase4D):
11105  r"""Proxy of C++ IMP::VectorD< 4 > class."""
11106 
11107  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11108 
11109  def get_unit_vector(self):
11110  r"""get_unit_vector(Vector4D self) -> Vector4D"""
11111  return _IMP_kernel.Vector4D_get_unit_vector(self)
11112 
11113  def __truediv__(self, *args):
11114  return _IMP_kernel.Vector4D___truediv__(self, *args)
11115 
11116 
11117 
11118  def __neg__(self):
11119  r"""__neg__(Vector4D self) -> Vector4D"""
11120  return _IMP_kernel.Vector4D___neg__(self)
11121 
11122  def __sub__(self, o):
11123  r"""__sub__(Vector4D self, Vector4D o) -> Vector4D"""
11124  return _IMP_kernel.Vector4D___sub__(self, o)
11125 
11126  def __add__(self, ret):
11127  r"""__add__(Vector4D self, Vector4D ret) -> Vector4D"""
11128  return _IMP_kernel.Vector4D___add__(self, ret)
11129 
11130  def __mul__(self, *args):
11131  r"""
11132  __mul__(Vector4D self, double s) -> Vector4D
11133  __mul__(Vector4D self, Vector4D o) -> double
11134  """
11135  return _IMP_kernel.Vector4D___mul__(self, *args)
11136 
11137  def __init__(self, *args):
11138  r"""
11139  __init__(Vector4D self, IMP::Floats const & f) -> Vector4D
11140  __init__(Vector4D self) -> Vector4D
11141  __init__(Vector4D self, double x0, double x1, double x2, double x3) -> Vector4D
11142  """
11143  _IMP_kernel.Vector4D_swiginit(self, _IMP_kernel.new_Vector4D(*args))
11144 
11145  def __iadd__(self, *args):
11146  _IMP_kernel.Vector4D___iadd__(self, *args)
11147  return self
11148 
11149 
11150 
11151  def __imul__(self, *args):
11152  _IMP_kernel.Vector4D___imul__(self, *args)
11153  return self
11154 
11155 
11156 
11157  def __itruediv__(self, *args):
11158  _IMP_kernel.Vector4D___itruediv__(self, *args)
11159  return self
11160 
11161 
11162 
11163  def __isub__(self, *args):
11164  _IMP_kernel.Vector4D___isub__(self, *args)
11165  return self
11166 
11167 
11168 
11169  def __len__(self):
11170  r"""__len__(Vector4D self) -> unsigned int"""
11171  return _IMP_kernel.Vector4D___len__(self)
11172 
11173  def __rmul__(self, f):
11174  r"""__rmul__(Vector4D self, double f) -> Vector4D"""
11175  return _IMP_kernel.Vector4D___rmul__(self, f)
11176 
11177  def __str__(self):
11178  r"""__str__(Vector4D self) -> std::string"""
11179  return _IMP_kernel.Vector4D___str__(self)
11180 
11181  def __repr__(self):
11182  r"""__repr__(Vector4D self) -> std::string"""
11183  return _IMP_kernel.Vector4D___repr__(self)
11184 
11185  def __eq__(self, arg2):
11186  r"""__eq__(Vector4D self, Vector4D arg2) -> bool"""
11187  return _IMP_kernel.Vector4D___eq__(self, arg2)
11188 
11189  def _get_as_binary(self):
11190  r"""_get_as_binary(Vector4D self) -> PyObject *"""
11191  return _IMP_kernel.Vector4D__get_as_binary(self)
11192 
11193  def _set_from_binary(self, p):
11194  r"""_set_from_binary(Vector4D self, PyObject * p)"""
11195  return _IMP_kernel.Vector4D__set_from_binary(self, p)
11196 
11197  def __getstate__(self):
11198  p = self._get_as_binary()
11199  if len(self.__dict__) > 1:
11200  d = self.__dict__.copy()
11201  del d['this']
11202  p = (d, p)
11203  return p
11204 
11205  def __setstate__(self, p):
11206  if not hasattr(self, 'this'):
11207  self.__init__()
11208  if isinstance(p, tuple):
11209  d, p = p
11210  self.__dict__.update(d)
11211  return self._set_from_binary(p)
11212 
11213 
11214  def __getitem__(self, index):
11215  if isinstance(index, slice):
11216  return [self[i] for i in range(*index.indices(len(self)))]
11217  else:
11218  return _IMP_kernel.Vector4D___getitem__(self, index)
11219 
11220 
11221 
11222  def __setitem__(self, index, val):
11223  if isinstance(index, slice):
11224  if not hasattr(val, '__iter__'):
11225  raise TypeError("must assign iterable to extended slice")
11226  inds = range(*index.indices(len(self)))
11227  if len(inds) != len(val):
11228  raise ValueError(
11229  "attempt to assign sequence of size %d "
11230  "to extended slice of size %d" % (len(val), len(inds)))
11231  for ind, v in zip(inds, val):
11232  self[ind] = v
11233  else:
11234  return _IMP_kernel.Vector4D___setitem__(self, index, val)
11235 
11236 
11237  __swig_destroy__ = _IMP_kernel.delete_Vector4D
11238 
11239 # Register Vector4D in _IMP_kernel:
11240 _IMP_kernel.Vector4D_swigregister(Vector4D)
11241 class Vector5D(_VectorBase5D):
11242  r"""Proxy of C++ IMP::VectorD< 5 > class."""
11243 
11244  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11245 
11246  def get_unit_vector(self):
11247  r"""get_unit_vector(Vector5D self) -> Vector5D"""
11248  return _IMP_kernel.Vector5D_get_unit_vector(self)
11249 
11250  def __truediv__(self, *args):
11251  return _IMP_kernel.Vector5D___truediv__(self, *args)
11252 
11253 
11254 
11255  def __neg__(self):
11256  r"""__neg__(Vector5D self) -> Vector5D"""
11257  return _IMP_kernel.Vector5D___neg__(self)
11258 
11259  def __sub__(self, o):
11260  r"""__sub__(Vector5D self, Vector5D o) -> Vector5D"""
11261  return _IMP_kernel.Vector5D___sub__(self, o)
11262 
11263  def __add__(self, ret):
11264  r"""__add__(Vector5D self, Vector5D ret) -> Vector5D"""
11265  return _IMP_kernel.Vector5D___add__(self, ret)
11266 
11267  def __mul__(self, *args):
11268  r"""
11269  __mul__(Vector5D self, double s) -> Vector5D
11270  __mul__(Vector5D self, Vector5D o) -> double
11271  """
11272  return _IMP_kernel.Vector5D___mul__(self, *args)
11273 
11274  def __init__(self, *args):
11275  r"""
11276  __init__(Vector5D self, IMP::Floats const & f) -> Vector5D
11277  __init__(Vector5D self) -> Vector5D
11278  __init__(Vector5D self, double x0, double x1, double x2, double x3, double x4) -> Vector5D
11279  """
11280  _IMP_kernel.Vector5D_swiginit(self, _IMP_kernel.new_Vector5D(*args))
11281 
11282  def __iadd__(self, *args):
11283  _IMP_kernel.Vector5D___iadd__(self, *args)
11284  return self
11285 
11286 
11287 
11288  def __imul__(self, *args):
11289  _IMP_kernel.Vector5D___imul__(self, *args)
11290  return self
11291 
11292 
11293 
11294  def __itruediv__(self, *args):
11295  _IMP_kernel.Vector5D___itruediv__(self, *args)
11296  return self
11297 
11298 
11299 
11300  def __isub__(self, *args):
11301  _IMP_kernel.Vector5D___isub__(self, *args)
11302  return self
11303 
11304 
11305 
11306  def __len__(self):
11307  r"""__len__(Vector5D self) -> unsigned int"""
11308  return _IMP_kernel.Vector5D___len__(self)
11309 
11310  def __rmul__(self, f):
11311  r"""__rmul__(Vector5D self, double f) -> Vector5D"""
11312  return _IMP_kernel.Vector5D___rmul__(self, f)
11313 
11314  def __str__(self):
11315  r"""__str__(Vector5D self) -> std::string"""
11316  return _IMP_kernel.Vector5D___str__(self)
11317 
11318  def __repr__(self):
11319  r"""__repr__(Vector5D self) -> std::string"""
11320  return _IMP_kernel.Vector5D___repr__(self)
11321 
11322  def __eq__(self, arg2):
11323  r"""__eq__(Vector5D self, Vector5D arg2) -> bool"""
11324  return _IMP_kernel.Vector5D___eq__(self, arg2)
11325 
11326  def _get_as_binary(self):
11327  r"""_get_as_binary(Vector5D self) -> PyObject *"""
11328  return _IMP_kernel.Vector5D__get_as_binary(self)
11329 
11330  def _set_from_binary(self, p):
11331  r"""_set_from_binary(Vector5D self, PyObject * p)"""
11332  return _IMP_kernel.Vector5D__set_from_binary(self, p)
11333 
11334  def __getstate__(self):
11335  p = self._get_as_binary()
11336  if len(self.__dict__) > 1:
11337  d = self.__dict__.copy()
11338  del d['this']
11339  p = (d, p)
11340  return p
11341 
11342  def __setstate__(self, p):
11343  if not hasattr(self, 'this'):
11344  self.__init__()
11345  if isinstance(p, tuple):
11346  d, p = p
11347  self.__dict__.update(d)
11348  return self._set_from_binary(p)
11349 
11350 
11351  def __getitem__(self, index):
11352  if isinstance(index, slice):
11353  return [self[i] for i in range(*index.indices(len(self)))]
11354  else:
11355  return _IMP_kernel.Vector5D___getitem__(self, index)
11356 
11357 
11358 
11359  def __setitem__(self, index, val):
11360  if isinstance(index, slice):
11361  if not hasattr(val, '__iter__'):
11362  raise TypeError("must assign iterable to extended slice")
11363  inds = range(*index.indices(len(self)))
11364  if len(inds) != len(val):
11365  raise ValueError(
11366  "attempt to assign sequence of size %d "
11367  "to extended slice of size %d" % (len(val), len(inds)))
11368  for ind, v in zip(inds, val):
11369  self[ind] = v
11370  else:
11371  return _IMP_kernel.Vector5D___setitem__(self, index, val)
11372 
11373 
11374  __swig_destroy__ = _IMP_kernel.delete_Vector5D
11375 
11376 # Register Vector5D in _IMP_kernel:
11377 _IMP_kernel.Vector5D_swigregister(Vector5D)
11378 class Vector6D(_VectorBase6D):
11379  r"""Proxy of C++ IMP::VectorD< 6 > class."""
11380 
11381  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11382 
11383  def get_unit_vector(self):
11384  r"""get_unit_vector(Vector6D self) -> Vector6D"""
11385  return _IMP_kernel.Vector6D_get_unit_vector(self)
11386 
11387  def __truediv__(self, *args):
11388  return _IMP_kernel.Vector6D___truediv__(self, *args)
11389 
11390 
11391 
11392  def __neg__(self):
11393  r"""__neg__(Vector6D self) -> Vector6D"""
11394  return _IMP_kernel.Vector6D___neg__(self)
11395 
11396  def __sub__(self, o):
11397  r"""__sub__(Vector6D self, Vector6D o) -> Vector6D"""
11398  return _IMP_kernel.Vector6D___sub__(self, o)
11399 
11400  def __add__(self, ret):
11401  r"""__add__(Vector6D self, Vector6D ret) -> Vector6D"""
11402  return _IMP_kernel.Vector6D___add__(self, ret)
11403 
11404  def __mul__(self, *args):
11405  r"""
11406  __mul__(Vector6D self, double s) -> Vector6D
11407  __mul__(Vector6D self, Vector6D o) -> double
11408  """
11409  return _IMP_kernel.Vector6D___mul__(self, *args)
11410 
11411  def __init__(self, *args):
11412  r"""
11413  __init__(Vector6D self, IMP::Floats const & f) -> Vector6D
11414  __init__(Vector6D self) -> Vector6D
11415  __init__(Vector6D self, double x0, double x1, double x2, double x3, double x4, double x5) -> Vector6D
11416  """
11417  _IMP_kernel.Vector6D_swiginit(self, _IMP_kernel.new_Vector6D(*args))
11418 
11419  def __iadd__(self, *args):
11420  _IMP_kernel.Vector6D___iadd__(self, *args)
11421  return self
11422 
11423 
11424 
11425  def __imul__(self, *args):
11426  _IMP_kernel.Vector6D___imul__(self, *args)
11427  return self
11428 
11429 
11430 
11431  def __itruediv__(self, *args):
11432  _IMP_kernel.Vector6D___itruediv__(self, *args)
11433  return self
11434 
11435 
11436 
11437  def __isub__(self, *args):
11438  _IMP_kernel.Vector6D___isub__(self, *args)
11439  return self
11440 
11441 
11442 
11443  def __len__(self):
11444  r"""__len__(Vector6D self) -> unsigned int"""
11445  return _IMP_kernel.Vector6D___len__(self)
11446 
11447  def __rmul__(self, f):
11448  r"""__rmul__(Vector6D self, double f) -> Vector6D"""
11449  return _IMP_kernel.Vector6D___rmul__(self, f)
11450 
11451  def __str__(self):
11452  r"""__str__(Vector6D self) -> std::string"""
11453  return _IMP_kernel.Vector6D___str__(self)
11454 
11455  def __repr__(self):
11456  r"""__repr__(Vector6D self) -> std::string"""
11457  return _IMP_kernel.Vector6D___repr__(self)
11458 
11459  def __eq__(self, arg2):
11460  r"""__eq__(Vector6D self, Vector6D arg2) -> bool"""
11461  return _IMP_kernel.Vector6D___eq__(self, arg2)
11462 
11463  def _get_as_binary(self):
11464  r"""_get_as_binary(Vector6D self) -> PyObject *"""
11465  return _IMP_kernel.Vector6D__get_as_binary(self)
11466 
11467  def _set_from_binary(self, p):
11468  r"""_set_from_binary(Vector6D self, PyObject * p)"""
11469  return _IMP_kernel.Vector6D__set_from_binary(self, p)
11470 
11471  def __getstate__(self):
11472  p = self._get_as_binary()
11473  if len(self.__dict__) > 1:
11474  d = self.__dict__.copy()
11475  del d['this']
11476  p = (d, p)
11477  return p
11478 
11479  def __setstate__(self, p):
11480  if not hasattr(self, 'this'):
11481  self.__init__()
11482  if isinstance(p, tuple):
11483  d, p = p
11484  self.__dict__.update(d)
11485  return self._set_from_binary(p)
11486 
11487 
11488  def __getitem__(self, index):
11489  if isinstance(index, slice):
11490  return [self[i] for i in range(*index.indices(len(self)))]
11491  else:
11492  return _IMP_kernel.Vector6D___getitem__(self, index)
11493 
11494 
11495 
11496  def __setitem__(self, index, val):
11497  if isinstance(index, slice):
11498  if not hasattr(val, '__iter__'):
11499  raise TypeError("must assign iterable to extended slice")
11500  inds = range(*index.indices(len(self)))
11501  if len(inds) != len(val):
11502  raise ValueError(
11503  "attempt to assign sequence of size %d "
11504  "to extended slice of size %d" % (len(val), len(inds)))
11505  for ind, v in zip(inds, val):
11506  self[ind] = v
11507  else:
11508  return _IMP_kernel.Vector6D___setitem__(self, index, val)
11509 
11510 
11511  __swig_destroy__ = _IMP_kernel.delete_Vector6D
11512 
11513 # Register Vector6D in _IMP_kernel:
11514 _IMP_kernel.Vector6D_swigregister(Vector6D)
11515 class VectorKD(_VectorBaseKD):
11516  r"""Proxy of C++ IMP::VectorD< -1 > class."""
11517 
11518  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11519 
11520  def get_unit_vector(self):
11521  r"""get_unit_vector(VectorKD self) -> VectorKD"""
11522  return _IMP_kernel.VectorKD_get_unit_vector(self)
11523 
11524  def __truediv__(self, *args):
11525  return _IMP_kernel.VectorKD___truediv__(self, *args)
11526 
11527 
11528 
11529  def __neg__(self):
11530  r"""__neg__(VectorKD self) -> VectorKD"""
11531  return _IMP_kernel.VectorKD___neg__(self)
11532 
11533  def __sub__(self, o):
11534  r"""__sub__(VectorKD self, VectorKD o) -> VectorKD"""
11535  return _IMP_kernel.VectorKD___sub__(self, o)
11536 
11537  def __add__(self, ret):
11538  r"""__add__(VectorKD self, VectorKD ret) -> VectorKD"""
11539  return _IMP_kernel.VectorKD___add__(self, ret)
11540 
11541  def __mul__(self, *args):
11542  r"""
11543  __mul__(VectorKD self, double s) -> VectorKD
11544  __mul__(VectorKD self, VectorKD o) -> double
11545  """
11546  return _IMP_kernel.VectorKD___mul__(self, *args)
11547 
11548  def __init__(self, *args):
11549  r"""
11550  __init__(VectorKD self, IMP::Floats const & f) -> VectorKD
11551  __init__(VectorKD self) -> VectorKD
11552  __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
11553  """
11554  _IMP_kernel.VectorKD_swiginit(self, _IMP_kernel.new_VectorKD(*args))
11555 
11556  def __iadd__(self, *args):
11557  _IMP_kernel.VectorKD___iadd__(self, *args)
11558  return self
11559 
11560 
11561 
11562  def __imul__(self, *args):
11563  _IMP_kernel.VectorKD___imul__(self, *args)
11564  return self
11565 
11566 
11567 
11568  def __itruediv__(self, *args):
11569  _IMP_kernel.VectorKD___itruediv__(self, *args)
11570  return self
11571 
11572 
11573 
11574  def __isub__(self, *args):
11575  _IMP_kernel.VectorKD___isub__(self, *args)
11576  return self
11577 
11578 
11579 
11580  def __len__(self):
11581  r"""__len__(VectorKD self) -> unsigned int"""
11582  return _IMP_kernel.VectorKD___len__(self)
11583 
11584  def __rmul__(self, f):
11585  r"""__rmul__(VectorKD self, double f) -> VectorKD"""
11586  return _IMP_kernel.VectorKD___rmul__(self, f)
11587 
11588  def __str__(self):
11589  r"""__str__(VectorKD self) -> std::string"""
11590  return _IMP_kernel.VectorKD___str__(self)
11591 
11592  def __repr__(self):
11593  r"""__repr__(VectorKD self) -> std::string"""
11594  return _IMP_kernel.VectorKD___repr__(self)
11595 
11596  def __eq__(self, arg2):
11597  r"""__eq__(VectorKD self, VectorKD arg2) -> bool"""
11598  return _IMP_kernel.VectorKD___eq__(self, arg2)
11599 
11600  def _get_as_binary(self):
11601  r"""_get_as_binary(VectorKD self) -> PyObject *"""
11602  return _IMP_kernel.VectorKD__get_as_binary(self)
11603 
11604  def _set_from_binary(self, p):
11605  r"""_set_from_binary(VectorKD self, PyObject * p)"""
11606  return _IMP_kernel.VectorKD__set_from_binary(self, p)
11607 
11608  def __getstate__(self):
11609  p = self._get_as_binary()
11610  if len(self.__dict__) > 1:
11611  d = self.__dict__.copy()
11612  del d['this']
11613  p = (d, p)
11614  return p
11615 
11616  def __setstate__(self, p):
11617  if not hasattr(self, 'this'):
11618  self.__init__()
11619  if isinstance(p, tuple):
11620  d, p = p
11621  self.__dict__.update(d)
11622  return self._set_from_binary(p)
11623 
11624 
11625  def __getitem__(self, index):
11626  if isinstance(index, slice):
11627  return [self[i] for i in range(*index.indices(len(self)))]
11628  else:
11629  return _IMP_kernel.VectorKD___getitem__(self, index)
11630 
11631 
11632 
11633  def __setitem__(self, index, val):
11634  if isinstance(index, slice):
11635  if not hasattr(val, '__iter__'):
11636  raise TypeError("must assign iterable to extended slice")
11637  inds = range(*index.indices(len(self)))
11638  if len(inds) != len(val):
11639  raise ValueError(
11640  "attempt to assign sequence of size %d "
11641  "to extended slice of size %d" % (len(val), len(inds)))
11642  for ind, v in zip(inds, val):
11643  self[ind] = v
11644  else:
11645  return _IMP_kernel.VectorKD___setitem__(self, index, val)
11646 
11647 
11648  __swig_destroy__ = _IMP_kernel.delete_VectorKD
11649 
11650 # Register VectorKD in _IMP_kernel:
11651 _IMP_kernel.VectorKD_swigregister(VectorKD)
11652 
11653 def get_basis_vector_1d(coordinate):
11654  r"""get_basis_vector_1d(unsigned int coordinate) -> Vector1D"""
11655  return _IMP_kernel.get_basis_vector_1d(coordinate)
11656 
11657 def get_basis_vector_2d(coordinate):
11658  r"""get_basis_vector_2d(unsigned int coordinate) -> Vector2D"""
11659  return _IMP_kernel.get_basis_vector_2d(coordinate)
11660 
11661 def get_basis_vector_3d(coordinate):
11662  r"""get_basis_vector_3d(unsigned int coordinate) -> Vector3D"""
11663  return _IMP_kernel.get_basis_vector_3d(coordinate)
11664 
11665 def get_basis_vector_4d(coordinate):
11666  r"""get_basis_vector_4d(unsigned int coordinate) -> Vector4D"""
11667  return _IMP_kernel.get_basis_vector_4d(coordinate)
11668 
11669 def get_basis_vector_5d(coordinate):
11670  r"""get_basis_vector_5d(unsigned int coordinate) -> Vector5D"""
11671  return _IMP_kernel.get_basis_vector_5d(coordinate)
11672 
11673 def get_basis_vector_6d(coordinate):
11674  r"""get_basis_vector_6d(unsigned int coordinate) -> Vector6D"""
11675  return _IMP_kernel.get_basis_vector_6d(coordinate)
11676 
11677 def get_zero_vector_1d():
11678  r"""get_zero_vector_1d() -> Vector1D"""
11679  return _IMP_kernel.get_zero_vector_1d()
11680 
11681 def get_zero_vector_2d():
11682  r"""get_zero_vector_2d() -> Vector2D"""
11683  return _IMP_kernel.get_zero_vector_2d()
11684 
11685 def get_zero_vector_3d():
11686  r"""get_zero_vector_3d() -> Vector3D"""
11687  return _IMP_kernel.get_zero_vector_3d()
11688 
11689 def get_zero_vector_4d():
11690  r"""get_zero_vector_4d() -> Vector4D"""
11691  return _IMP_kernel.get_zero_vector_4d()
11692 
11693 def get_zero_vector_5d():
11694  r"""get_zero_vector_5d() -> Vector5D"""
11695  return _IMP_kernel.get_zero_vector_5d()
11696 
11697 def get_zero_vector_6d():
11698  r"""get_zero_vector_6d() -> Vector6D"""
11699  return _IMP_kernel.get_zero_vector_6d()
11700 
11701 def get_ones_vector_1d(v=1):
11702  r"""get_ones_vector_1d(double v=1) -> Vector1D"""
11703  return _IMP_kernel.get_ones_vector_1d(v)
11704 
11705 def get_ones_vector_2d(v=1):
11706  r"""get_ones_vector_2d(double v=1) -> Vector2D"""
11707  return _IMP_kernel.get_ones_vector_2d(v)
11708 
11709 def get_ones_vector_3d(v=1):
11710  r"""get_ones_vector_3d(double v=1) -> Vector3D"""
11711  return _IMP_kernel.get_ones_vector_3d(v)
11712 
11713 def get_ones_vector_4d(v=1):
11714  r"""get_ones_vector_4d(double v=1) -> Vector4D"""
11715  return _IMP_kernel.get_ones_vector_4d(v)
11716 
11717 def get_ones_vector_5d(v=1):
11718  r"""get_ones_vector_5d(double v=1) -> Vector5D"""
11719  return _IMP_kernel.get_ones_vector_5d(v)
11720 
11721 def get_ones_vector_6d(v=1):
11722  r"""get_ones_vector_6d(double v=1) -> Vector6D"""
11723  return _IMP_kernel.get_ones_vector_6d(v)
11724 class _RestraintsScoringFunction(ScoringFunction):
11725  r"""Proxy of C++ IMP::internal::GenericRestraintsScoringFunction< ::IMP::Restraints > class."""
11726 
11727  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11728  __repr__ = _swig_repr
11729 
11730  def __init__(self, *args):
11731  r"""
11732  __init__(_RestraintsScoringFunction self, IMP::RestraintsTemp const & rs, double weight=1.0, double max=NO_MAX, std::string name="RestraintsScoringFunction%1%") -> _RestraintsScoringFunction
11733  __init__(_RestraintsScoringFunction self) -> _RestraintsScoringFunction
11734  """
11735  _IMP_kernel._RestraintsScoringFunction_swiginit(self, _IMP_kernel.new__RestraintsScoringFunction(*args))
11736 
11737  def do_add_score_and_derivatives(self, sa, ss):
11738  r"""do_add_score_and_derivatives(_RestraintsScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
11739  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives(self, sa, ss)
11740 
11741  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
11742  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)"""
11743  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
11744 
11745  def do_get_inputs(self):
11746  r"""do_get_inputs(_RestraintsScoringFunction self) -> IMP::ModelObjectsTemp"""
11747  return _IMP_kernel._RestraintsScoringFunction_do_get_inputs(self)
11748 
11749  def get_restraints(self):
11750  r"""get_restraints(_RestraintsScoringFunction self) -> IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const &"""
11751  return _IMP_kernel._RestraintsScoringFunction_get_restraints(self)
11752 
11753  def set_restraints(self, s):
11754  r"""set_restraints(_RestraintsScoringFunction self, IMP::RestraintsTemp const & s)"""
11755  return _IMP_kernel._RestraintsScoringFunction_set_restraints(self, s)
11756 
11757  def get_number_of_restraints(self):
11758  r"""get_number_of_restraints(_RestraintsScoringFunction self) -> unsigned int"""
11759  return _IMP_kernel._RestraintsScoringFunction_get_number_of_restraints(self)
11760 
11761  def clear_restraints(self):
11762  r"""clear_restraints(_RestraintsScoringFunction self)"""
11763  return _IMP_kernel._RestraintsScoringFunction_clear_restraints(self)
11764 
11765  def get_restraint(self, i):
11766  r"""get_restraint(_RestraintsScoringFunction self, unsigned int i) -> Restraint"""
11767  return _IMP_kernel._RestraintsScoringFunction_get_restraint(self, i)
11768 
11769  def erase_restraint(self, i):
11770  r"""erase_restraint(_RestraintsScoringFunction self, unsigned int i)"""
11771  return _IMP_kernel._RestraintsScoringFunction_erase_restraint(self, i)
11772 
11773  def add_restraint(self, r):
11774  r"""add_restraint(_RestraintsScoringFunction self, Restraint r) -> unsigned int"""
11775  return _IMP_kernel._RestraintsScoringFunction_add_restraint(self, r)
11776 
11777  def add_restraints(self, r):
11778  r"""add_restraints(_RestraintsScoringFunction self, IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const & r)"""
11779  return _IMP_kernel._RestraintsScoringFunction_add_restraints(self, r)
11780 
11781  def _python_index_restraint(self, r, start, stop):
11782  r"""_python_index_restraint(_RestraintsScoringFunction self, Restraint r, unsigned int start, unsigned int stop) -> unsigned int"""
11783  return _IMP_kernel._RestraintsScoringFunction__python_index_restraint(self, r, start, stop)
11784 
11785  def get_version_info(self):
11786  r"""get_version_info(_RestraintsScoringFunction self) -> VersionInfo"""
11787  return _IMP_kernel._RestraintsScoringFunction_get_version_info(self)
11788  __swig_destroy__ = _IMP_kernel.delete__RestraintsScoringFunction
11789 
11790  @staticmethod
11791  def get_from(o):
11792  return _object_cast_to__RestraintsScoringFunction(o)
11793 
11794 
11795  def __get_restraints(self):
11796  return _list_util.VarList(
11797  getdimfunc=self.get_number_of_restraints,
11798  getfunc=self.get_restraint, erasefunc=self.erase_restraint,
11799  appendfunc=self.add_restraint, extendfunc=self.add_restraints,
11800  clearfunc=self.clear_restraints,
11801  indexfunc=self._python_index_restraint)
11802 
11803  def __set_restraints(self, obj):
11804  _list_util.set_varlist(self.restraints, obj)
11805 
11806  def __del_restraints(self):
11807  _list_util.del_varlist(self.restraints)
11808 
11809  restraints = property(__get_restraints, __set_restraints,
11810  __del_restraints, doc="List of Restraints")
11811 
11812 
11813  def _get_jax(self, space=None):
11814  import IMP.jax
11815  space = space or IMP.jax.FreeSpace
11816  jis = [r.get_derived_object()._get_jax(space) for r in self.restraints]
11817  funcs = [j.score_func for j in jis]
11818  keys = frozenset(x for j in jis for x in j._keys)
11819  def jax_sf(jm):
11820  return sum(f(jm) for f in funcs)
11821  return IMP._jax_util.JAXRestraintInfo(
11822  m=self.get_model(), score_func=jax_sf, weight=1.0, keys=keys)
11823 
11824 
11825 # Register _RestraintsScoringFunction in _IMP_kernel:
11826 _IMP_kernel._RestraintsScoringFunction_swigregister(_RestraintsScoringFunction)
11827 class ScopedSetFloatAttribute(_RAII):
11828  r"""Proxy of C++ IMP::ScopedSetAttribute< IMP::FloatKey,IMP::Float > class."""
11829 
11830  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11831 
11832  def __init__(self, *args):
11833  r"""
11834  __init__(ScopedSetFloatAttribute self) -> ScopedSetFloatAttribute
11835  __init__(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value) -> ScopedSetFloatAttribute
11836  """
11837  _IMP_kernel.ScopedSetFloatAttribute_swiginit(self, _IMP_kernel.new_ScopedSetFloatAttribute(*args))
11838 
11839  def set(self, p, key, value):
11840  r"""set(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value)"""
11841  return _IMP_kernel.ScopedSetFloatAttribute_set(self, p, key, value)
11842 
11843  def reset(self):
11844  r"""reset(ScopedSetFloatAttribute self)"""
11845  return _IMP_kernel.ScopedSetFloatAttribute_reset(self)
11846  __swig_destroy__ = _IMP_kernel.delete_ScopedSetFloatAttribute
11847 
11848  def show(self, *args):
11849  r"""show(ScopedSetFloatAttribute self, _ostream out=std::cout)"""
11850  return _IMP_kernel.ScopedSetFloatAttribute_show(self, *args)
11851 
11852  def __str__(self):
11853  r"""__str__(ScopedSetFloatAttribute self) -> std::string"""
11854  return _IMP_kernel.ScopedSetFloatAttribute___str__(self)
11855 
11856  def __repr__(self):
11857  r"""__repr__(ScopedSetFloatAttribute self) -> std::string"""
11858  return _IMP_kernel.ScopedSetFloatAttribute___repr__(self)
11859 
11860 # Register ScopedSetFloatAttribute in _IMP_kernel:
11861 _IMP_kernel.ScopedSetFloatAttribute_swigregister(ScopedSetFloatAttribute)
11862 
11863 def _get_module_data_path(module, file_name):
11864  r"""_get_module_data_path(std::string module, std::string file_name) -> std::string"""
11865  return _IMP_kernel._get_module_data_path(module, file_name)
11866 
11867 def _get_module_example_path(module, file_name):
11868  r"""_get_module_example_path(std::string module, std::string file_name) -> std::string"""
11869  return _IMP_kernel._get_module_example_path(module, file_name)
11870 
11871 #used_modules=[]
11872 #def show_used_modules():
11873 # for m in used_modules:
11874 # print "%-20s %s" % (m.get_module(), m.get_version())
11875 
11876 # Ensure that Windows gets the PATH set to include anything in the library
11877 # search path
11878 if sys.platform == 'win32' and 'IMP_LD_PATH' in os.environ:
11879  dirs = os.environ['IMP_LD_PATH'].split(":")
11880  pathcomps = os.environ['PATH'].split(";")
11881  for d in dirs:
11882  if d not in pathcomps:
11883  os.environ['PATH'] = d + ';' + os.environ['PATH']
11884 
11885 
11886 
11887 import sys
11888 import os
11889 
11891  """Allow command line tools to easily implement multiple commands.
11892  Typically, an IMP command line tool will use an instance of this class
11893  to provide a consistent interface to multiple distinct commands
11894  from a single binary, rather than providing a potentially large
11895  number of binaries. This is similar to the way a number of common
11896  command line tools outside of IMP function (e.g. Git provides a single
11897  `git` tool which implements multiple commands - `git add`, `git commit`,
11898  `git push` and so on).
11899 
11900  Each command is implemented with a Python module of the same name
11901  that can be imported from the module (for example, if `module_name`
11902  is `IMP.foo`, the `bar` command is provided by the `IMP.foo.bar` Python
11903  module, which would usually be found as `modules/foo/pyext/src/bar.py`).
11904  Each such module should have a docstring and a `%main()` method
11905  that takes no arguments (the module should also call its `%main()` method
11906  if it is run directly, i.e. with something like
11907  `if __name__=="__main__": %main()`). The encompassing module
11908  (`IMP.foo` in the example) should define `_all_commands` as a Python
11909  list of all valid commands.
11910 
11911  See the `multifit` and `cnmultifit` command line tools for example
11912  usage.
11913  """
11914 
11915  def __init__(self, short_help, long_help, module_name):
11916  """Constructor.
11917  @param short_help A few words that describe the command line tool.
11918  @param long_help Longer text, used in the `help` command.
11919  @param module_name Name of the module (e.g. `IMP.foo`) that
11920  implements the commands.
11921  """
11922  self.short_help = short_help
11923  self.long_help = long_help
11924  self.module_name = module_name
11925  self._all_commands = self.import_module()._all_commands
11926  self._progname = os.path.basename(sys.argv[0])
11927 
11928  def main(self):
11929  """Call this method to act upon the user-provided command line"""
11930  if len(sys.argv) <= 1:
11931  print(self.short_help + " Use '%s help' for help." % self._progname)
11932  else:
11933  command = sys.argv[1]
11934  if command in ('help', '--help', '-h'):
11935  if len(sys.argv) == 3:
11936  self.show_command_help(sys.argv[2])
11937  else:
11938  self.show_help()
11939  elif command == '--version':
11940  self.show_version()
11941  elif command in self._all_commands:
11942  self.do_command(command)
11943  else:
11944  self.unknown_command(command)
11945 
11946  def import_module(self, mod=None):
11947  modname = self.module_name
11948  if mod is not None:
11949  modname += "." + mod
11950  return __import__(modname, {}, {}, [''])
11951 
11952  def unknown_command(self, command):
11953  print("Unknown command: '%s'" % command)
11954  print("Use '%s help' for help." % self._progname)
11955  sys.exit(1)
11956 
11957  def _get_version(self):
11958  return self.import_module().get_module_version()
11959 
11960  def show_version(self):
11961  print(self._progname + ' ' + self._get_version())
11962 
11963  def show_help(self):
11964  ver = self._get_version()
11965  print("%s, version %s." % (self._progname, ver))
11966  print(self.long_help + """
11967 
11968 This program is part of IMP, the Integrative Modeling Platform,
11969 which is %s.
11970 For additional information about IMP, see <https://integrativemodeling.org>.
11971 
11972 Usage: %s <command> [options] [args]
11973 
11974 Commands:""" % (get_copyright(), self._progname))
11975  commands = self._all_commands[:] + ['help']
11976  commands.sort()
11977  cmdlen = max([len(c) for c in commands])
11978  for c in commands:
11979  if c == 'help':
11980  doc = 'Get help on using %s.' % self._progname
11981  else:
11982  doc = self.import_module(c).__doc__ or "<no help>"
11983  c += ' ' * (cmdlen - len(c))
11984  print(' ' + c + ' ' + doc)
11985  print("""
11986 Use "%s help <command>" for detailed help on any command
11987  or "%s --version" to see the version number.""" % (self._progname,
11988  self._progname))
11989 
11990  def do_command(self, command):
11991  mod = self.import_module(command)
11992  sys.argv[0] = self._progname + ' ' + command
11993  del sys.argv[1]
11994  mod.main()
11995 
11996  def show_command_help(self, command):
11997  if command == 'help':
11998  self.show_help()
11999  elif command in self._all_commands or command == 'help':
12000  mod = self.import_module(command)
12001  sys.argv = [self._progname + ' ' + command, '--help']
12002  mod.main()
12003  else:
12004  self.unknown_command(command)
12005 
12006 
12007 
12008 
12009 def get_networkx_graph(ig):
12010  import networkx
12011  g = networkx.DiGraph()
12012  if len(ig.get_vertices()) == 0:
12013  return g
12014 
12015  class NodeWrapper:
12016 
12017  def __init__(self, p):
12018  self.p = p
12019 
12020  def __str__(self):
12021  return self.p.get_name()
12022 
12023  def __call__(self, name):
12024  return self.p.__call__(name)
12025 
12026  for vi in ig.get_vertices():
12027  n = ig.get_vertex_name(vi)
12028  g.add_node(NodeWrapper(n))
12029  for vi in ig.get_vertices():
12030  n = ig.get_vertex_name(vi)
12031  for ni in ig.get_out_neighbors(vi):
12032  nn = ig.get_vertex_name(ni)
12033  g.add_edge(NodeWrapper(n), NodeWrapper(nn))
12034  return g
12035 
12036 
12037 def show_altgraph(g):
12038  def clean(name):
12039  try:
12040  n0 = name.get_name()
12041  except:
12042  n0 = str(name)
12043  n1 = str(n0).replace('"', '')
12044  n2 = n1.replace("\n", '')
12045  return n2
12046  import altgraph
12047  from altgraph import Graph, Dot
12048  graph = Graph.Graph()
12049  for i, v in enumerate(g.get_vertices()):
12050  graph.add_node(i) # , node_data=g.get_vertex_name(v)
12051  for i, v in enumerate(g.get_vertices()):
12052  for n in g.get_out_neighbors(v):
12053  graph.add_edge(v, n)
12054  dot = Dot.Dot(graph) # , graph_type="digraph"
12055  for i, v in enumerate(g.get_vertices()):
12056  dot.node_style(i, label=clean(g.get_vertex_name(v)))
12057  dot.display()
12058 
12059 
12060 def show_graphviz(g):
12061  import subprocess
12062  tfn = create_temporary_file_name("graph", ".dot")
12063  tfon = create_temporary_file_name("graph", ".pdf")
12064  st = g.get_graphviz_string()
12065  with open(tfn, "w") as fh:
12066  fh.write(st)
12067  try:
12068  print("running dot")
12069  sp = subprocess.Popen(["dot", "-Tpdf", tfn, "-o" + tfon])
12070  sp.wait()
12071  except:
12072  import sys
12073  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")
12074  return
12075  import platform
12076  if platform.system() == "Darwin":
12077  cmd = ["open"]
12078  else:
12079  cmd = ["gv", "acroread", "xpdf"]
12080  success = False
12081  for c in cmd:
12082  print("launching viewer " + c)
12083  try:
12084  subprocess.check_call([c, tfon])
12085  success = True
12086  break
12087  except:
12088  pass
12089  if not success:
12090  print("Could not display file. It is saved at " + tfon)
12091  return tfon
12092 
12093 
12094 
12095 
12096 import functools
12097 import contextlib
12098 
12099 def deprecated_module(version, module, help_message):
12100  """Mark a Python module as deprecated.
12101  @note The `module` argument would normally be `__name__`.
12102  @see [deprecation support](@ref deprecation)."""
12104  "Module %s is deprecated. %s\n" % (module, help_message))
12105 
12106 def deprecated_object(version, help_message):
12107  """Python decorator to mark a class as deprecated.
12108  @see [deprecation support](@ref deprecation)."""
12109  def wrapper(obj):
12110  orig_init = obj.__init__
12111 # Don't try to copy __module__ since __init__ may not have it
12112 # (e.g. if we subclassed object but didn't override __init__)
12113  @functools.wraps(orig_init, ('__name__', '__doc__'))
12114  def __init__(obj, *args, **keys):
12115  handle_use_deprecated("Object %s is deprecated. %s\n"
12116  % (type(obj), help_message))
12117  orig_init(obj, *args, **keys)
12118  obj.__init__ = __init__
12119  return obj
12120  return wrapper
12121 
12122 def deprecated_method(version, help_message):
12123  """Python decorator to mark a method as deprecated.
12124  @see [deprecation support](@ref deprecation)."""
12125  def out_wrapper(obj):
12126  @functools.wraps(obj)
12127  def wrapper(cls, *args, **keys):
12128  handle_use_deprecated("Method %s in %s is deprecated. %s\n"
12129  % (obj.__name__, type(cls), help_message))
12130  return obj(cls, *args, **keys)
12131  return wrapper
12132  return out_wrapper
12133 
12134 def deprecated_function(version, help_message):
12135  """Python decorator to mark a function as deprecated.
12136  @see [deprecation support](@ref deprecation)."""
12137  def out_wrapper(obj):
12138  @functools.wraps(obj)
12139  def wrapper(*args, **keys):
12140  handle_use_deprecated("Function %s is deprecated. %s\n"
12141  % (obj.__name__, help_message))
12142  return obj(*args, **keys)
12143  return wrapper
12144  return out_wrapper
12145 
12146 @contextlib.contextmanager
12147 def allow_deprecated(allow=True):
12148  """Context manager to temporarily allow (or disallow) deprecated code.
12149  @see [deprecation support](@ref deprecation)."""
12151  set_deprecation_exceptions(not allow)
12152  yield
12154 
12155 
12156 def _get_all_flags(ntokens):
12157  r"""_get_all_flags(unsigned int ntokens) -> IMP::Strings"""
12158  return _IMP_kernel._get_all_flags(ntokens)
12159 
12160 def _print_internal_help(out, description):
12161  r"""_print_internal_help(_ostream out, std::string description)"""
12162  return _IMP_kernel._print_internal_help(out, description)
12163 
12164 
12165 import argparse
12166 import sys
12167 
12168 class _PassThroughAction(argparse.Action):
12169  """Pass an argument through to the IMP Boost parser"""
12170  def __call__(self, parser, namespace, values, option_string=None):
12171  parser._boost_command_line.append(option_string)
12172  if values != []:
12173  parser._boost_command_line.append(values)
12174 # Terminate processing immediately if necessary (otherwise argparse
12175 # may fail if we're missing positional arguments)
12176  if option_string in ('-h', '--help', '--help_advanced', '--version'):
12177  parser._handle_boost()
12178 
12179 
12180 class ArgumentParser(argparse.ArgumentParser):
12181  """IMP-specific subclass of argparse.ArgumentParser.
12182  This adds options common to all IMP applications
12183  (see IMP::setup_from_argv()).
12184  """
12185 
12186  def __init__(self, *args, **kwargs):
12187 # Don't add --help option (since the Boost option parser handles it)
12188  kwargs['add_help'] = False
12189  super().__init__(*args, **kwargs)
12190  for ntoken in (0, 1):
12191  flags = _get_all_flags(ntoken)
12192  for f in flags:
12193  arg = ['-h', '--help'] if f == 'help' else ['--' + f]
12194  self.add_argument(*arg, help=argparse.SUPPRESS,
12195  nargs=None if ntoken else 0,
12196  action=_PassThroughAction,
12197  default=argparse.SUPPRESS)
12198 
12199  def parse_args(self, args=None, namespace=None):
12200  """Parse the command line and return optional and positional arguments.
12201  This functions in the same way as the method in the base class
12202  argparse.ArgumentParser, except that it also processes optional
12203  arguments common to all IMP applications (these are not returned
12204  in `args`, but can be obtained in the usual way, e.g. by calling
12205  IMP::get_string_flag()).
12206  @returns args
12207  """
12208  self._boost_command_line = [sys.argv[0]]
12209  ret = super().parse_args(args, namespace)
12210  if len(self._boost_command_line) > 1:
12211  self._handle_boost()
12212  return ret
12213 
12214  def _get_description(self):
12215  return self.format_help() + "\nOptions common to all IMP applications:"
12216 
12217  def print_help(self, file=None):
12218  _print_internal_help(file if file else sys.stdout,
12219  self._get_description())
12220 
12221  def _handle_boost(self):
12222  setup_from_argv(self._boost_command_line,
12223  self._get_description(),
12224  '==SUPPRESS==', 0)
12225 
12226 class RandomNumberGenerator(object):
12227  r"""Proxy of C++ IMP::RandomNumberGenerator class."""
12228 
12229  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12230  __repr__ = _swig_repr
12231 
12232  def seed(self, x):
12233  r"""seed(RandomNumberGenerator self, int x)"""
12234  return _IMP_kernel.RandomNumberGenerator_seed(self, x)
12235 
12236  def __call__(self):
12237  r"""__call__(RandomNumberGenerator self) -> int"""
12238  return _IMP_kernel.RandomNumberGenerator___call__(self)
12239 
12240  def get_state(self):
12241  r"""get_state(RandomNumberGenerator self) -> PyObject *"""
12242  return _IMP_kernel.RandomNumberGenerator_get_state(self)
12243 
12244  def set_state(self, p):
12245  r"""set_state(RandomNumberGenerator self, PyObject * p)"""
12246  return _IMP_kernel.RandomNumberGenerator_set_state(self, p)
12247 
12248  def __init__(self):
12249  r"""__init__(RandomNumberGenerator self) -> RandomNumberGenerator"""
12250  _IMP_kernel.RandomNumberGenerator_swiginit(self, _IMP_kernel.new_RandomNumberGenerator())
12251  __swig_destroy__ = _IMP_kernel.delete_RandomNumberGenerator
12252 
12253 # Register RandomNumberGenerator in _IMP_kernel:
12254 _IMP_kernel.RandomNumberGenerator_swigregister(RandomNumberGenerator)
12255 
12256 def get_random_float_uniform(*args):
12257  r"""
12258  get_random_float_uniform() -> float
12259  get_random_float_uniform(float min, float max) -> float
12260  """
12261  return _IMP_kernel.get_random_float_uniform(*args)
12262 
12263 def get_random_double_uniform(*args):
12264  r"""
12265  get_random_double_uniform() -> double
12266  get_random_double_uniform(double min, double max) -> double
12267  """
12268  return _IMP_kernel.get_random_double_uniform(*args)
12269 
12270 def get_random_floats_normal(n, mean=0.0, stddev=1.0):
12271  r"""get_random_floats_normal(unsigned int n, float mean=0.0, float stddev=1.0) -> IMP::Vector< float,std::allocator< float > >"""
12272  return _IMP_kernel.get_random_floats_normal(n, mean, stddev)
12273 
12274 def get_random_doubles_normal(n, mean=0.0, stddev=1.0):
12275  r"""get_random_doubles_normal(unsigned int n, double mean=0.0, double stddev=1.0) -> IMP::Vector< double,std::allocator< double > >"""
12276  return _IMP_kernel.get_random_doubles_normal(n, mean, stddev)
12277 
12278 def get_random_floats_uniform(n):
12279  r"""get_random_floats_uniform(unsigned int n) -> IMP::Vector< float,std::allocator< float > >"""
12280  return _IMP_kernel.get_random_floats_uniform(n)
12281 
12282 def get_random_doubles_uniform(n):
12283  r"""get_random_doubles_uniform(unsigned int n) -> IMP::Vector< double,std::allocator< double > >"""
12284  return _IMP_kernel.get_random_doubles_uniform(n)
12285 
12286 def get_random_seed():
12287  r"""get_random_seed() -> boost::uint64_t"""
12288  return _IMP_kernel.get_random_seed()
12289 
12290 def _get_derivatives_numpy(m, k, m_pyobj, read_only):
12291  r"""_get_derivatives_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12292  return _IMP_kernel._get_derivatives_numpy(m, k, m_pyobj, read_only)
12293 
12294 def _get_floats_numpy(m, k, m_pyobj, read_only):
12295  r"""_get_floats_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12296  return _IMP_kernel._get_floats_numpy(m, k, m_pyobj, read_only)
12297 
12298 def _get_ints_numpy(m, k, m_pyobj, read_only):
12299  r"""_get_ints_numpy(Model m, IntKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12300  return _IMP_kernel._get_ints_numpy(m, k, m_pyobj, read_only)
12301 
12302 def _get_particle_indexes_numpy(m, k, m_pyobj, read_only):
12303  r"""_get_particle_indexes_numpy(Model m, ParticleIndexKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12304  return _IMP_kernel._get_particle_indexes_numpy(m, k, m_pyobj, read_only)
12305 
12306 def _get_vector3ds_numpy(m, k, m_pyobj, read_only):
12307  r"""_get_vector3ds_numpy(Model m, Vector3DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12308  return _IMP_kernel._get_vector3ds_numpy(m, k, m_pyobj, read_only)
12309 
12310 def _get_vector3dderiv_numpy(m, k, m_pyobj, read_only):
12311  r"""_get_vector3dderiv_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12312  return _IMP_kernel._get_vector3dderiv_numpy(m, k, m_pyobj, read_only)
12313 
12314 def _get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12315  r"""_get_vector3dderiv_derivatives_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12316  return _IMP_kernel._get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12317 
12318 def _get_vector4ds_numpy(m, k, m_pyobj, read_only):
12319  r"""_get_vector4ds_numpy(Model m, Vector4DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12320  return _IMP_kernel._get_vector4ds_numpy(m, k, m_pyobj, read_only)
12321 
12322 def _get_vector4dderiv_numpy(m, k, m_pyobj, read_only):
12323  r"""_get_vector4dderiv_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12324  return _IMP_kernel._get_vector4dderiv_numpy(m, k, m_pyobj, read_only)
12325 
12326 def _get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12327  r"""_get_vector4dderiv_derivatives_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12328  return _IMP_kernel._get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12329 
12330 def _get_spheres_numpy(m, m_pyobj, read_only):
12331  r"""_get_spheres_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12332  return _IMP_kernel._get_spheres_numpy(m, m_pyobj, read_only)
12333 
12334 def _get_sphere_derivatives_numpy(m, m_pyobj, read_only):
12335  r"""_get_sphere_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12336  return _IMP_kernel._get_sphere_derivatives_numpy(m, m_pyobj, read_only)
12337 
12338 def _get_internal_coordinates_numpy(m, m_pyobj, read_only):
12339  r"""_get_internal_coordinates_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12340  return _IMP_kernel._get_internal_coordinates_numpy(m, m_pyobj, read_only)
12341 
12342 def _get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only):
12343  r"""_get_internal_coordinate_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12344  return _IMP_kernel._get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only)
12345 
12346 try:
12347  import numpy
12348  ParticleIndex = numpy.intc
12349 except ImportError:
12350  pass
12351 
12352 
12353 class JAXWarning(UserWarning):
12354  """Warning for incomplete JAX support or different behavior of JAX code"""
12355  pass
12356 
12357 
12358 def get_module_name():
12359  r"""get_module_name() -> std::string const"""
12360  return _IMP_kernel.get_module_name()
12361 
12362 def get_module_version():
12363  r"""get_module_version() -> std::string const"""
12364  return _IMP_kernel.get_module_version()
12365 
12366 def get_example_path(fname):
12367  r"""get_example_path(std::string fname) -> std::string"""
12368  return _IMP_kernel.get_example_path(fname)
12369 
12370 def get_data_path(fname):
12371  r"""get_data_path(std::string fname) -> std::string"""
12372  return _IMP_kernel.get_data_path(fname)
12373 
12374 from . import _version_check
12375 _version_check.check_version(get_module_version())
12376 __version__ = get_module_version()
12377 
12378 
12379 random_number_generator = cvar.random_number_generator
12380 
Particle * get_particle(ParticleIndex p) const
Get the particle from an index.
Definition: Model.h:638
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:6881
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:11890
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:12147
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:6918
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:1343
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:11928
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:12099
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:12134
virtual ::IMP::VersionInfo get_version_info() const override
Get information about the module and version of the object.
Definition: Model.h:800
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:62
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:274
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:6951
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:6895
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:278
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:12122
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:12199
def get_internal_coordinates_numpy
Get the model's internal coordinate array as a NumPy array.
Definition: __init__.py:6957
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:6963
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:6939
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:12180
def get_derivatives_numpy
Get the model's attribute derivatives array for key k as a NumPy array.
Definition: __init__.py:6923
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:12106
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:12353
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:208
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:11915
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:6932
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.