IMP logo
IMP Reference Guide  develop.385bf31a7a,2026/08/05
The Integrative Modeling Platform
__init__.py
1 # This file was automatically generated by SWIG (https://www.swig.org).
2 # Version 4.4.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 from sys import version_info as _swig_python_version_info
15 import _IMP_kernel
16 
17 try:
18  import builtins as __builtin__
19 except ImportError:
20  import __builtin__
21 
22 def _swig_repr(self):
23  try:
24  strthis = "proxy of " + self.this.__repr__()
25  except __builtin__.Exception:
26  strthis = ""
27  return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
28 
29 
30 def _swig_setattr_nondynamic_instance_variable(set):
31  def set_instance_attr(self, name, value):
32  if name == "this":
33  set(self, name, value)
34  elif name == "thisown":
35  self.this.own(value)
36  elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
37  set(self, name, value)
38  else:
39  raise AttributeError("You cannot add instance attributes to %s" % self)
40  return set_instance_attr
41 
42 
43 def _swig_setattr_nondynamic_class_variable(set):
44  def set_class_attr(cls, name, value):
45  if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
46  set(cls, name, value)
47  else:
48  raise AttributeError("You cannot add class attributes to %s" % cls)
49  return set_class_attr
50 
51 
52 def _swig_add_metaclass(metaclass):
53  """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
54  def wrapper(cls):
55  return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
56  return wrapper
57 
58 
59 class _SwigNonDynamicMeta(type):
60  """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
61  __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)
62 
63 
64 import weakref
65 
66 class IMP_KERNEL_SwigPyIterator(object):
67  r"""Proxy of C++ swig::IMP_KERNEL_SwigPyIterator class."""
68 
69  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
70 
71  def __init__(self, *args, **kwargs):
72  raise AttributeError("No constructor defined - class is abstract")
73  __repr__ = _swig_repr
74  __swig_destroy__ = _IMP_kernel.delete_IMP_KERNEL_SwigPyIterator
75 
76  def value(self):
77  r"""value(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
78  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_value(self)
79 
80  def incr(self, n=1):
81  r"""incr(IMP_KERNEL_SwigPyIterator self, size_t n=1) -> IMP_KERNEL_SwigPyIterator"""
82  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_incr(self, n)
83 
84  def decr(self, n=1):
85  r"""decr(IMP_KERNEL_SwigPyIterator self, size_t n=1) -> IMP_KERNEL_SwigPyIterator"""
86  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_decr(self, n)
87 
88  def distance(self, x):
89  r"""distance(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> ptrdiff_t"""
90  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_distance(self, x)
91 
92  def equal(self, x):
93  r"""equal(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
94  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_equal(self, x)
95 
96  def copy(self):
97  r"""copy(IMP_KERNEL_SwigPyIterator self) -> IMP_KERNEL_SwigPyIterator"""
98  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_copy(self)
99 
100  def next(self):
101  r"""next(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
102  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_next(self)
103 
104  def __next__(self):
105  r"""__next__(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
106  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___next__(self)
107 
108  def previous(self):
109  r"""previous(IMP_KERNEL_SwigPyIterator self) -> PyObject *"""
110  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_previous(self)
111 
112  def advance(self, n):
113  r"""advance(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
114  return _IMP_kernel.IMP_KERNEL_SwigPyIterator_advance(self, n)
115 
116  def __eq__(self, x):
117  r"""__eq__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
118  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___eq__(self, x)
119 
120  def __ne__(self, x):
121  r"""__ne__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> bool"""
122  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___ne__(self, x)
123 
124  def __iadd__(self, n):
125  r"""__iadd__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
126  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___iadd__(self, n)
127 
128  def __isub__(self, n):
129  r"""__isub__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
130  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___isub__(self, n)
131 
132  def __add__(self, n):
133  r"""__add__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator"""
134  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___add__(self, n)
135 
136  def __sub__(self, *args):
137  r"""
138  __sub__(IMP_KERNEL_SwigPyIterator self, ptrdiff_t n) -> IMP_KERNEL_SwigPyIterator
139  __sub__(IMP_KERNEL_SwigPyIterator self, IMP_KERNEL_SwigPyIterator x) -> ptrdiff_t
140  """
141  return _IMP_kernel.IMP_KERNEL_SwigPyIterator___sub__(self, *args)
142  def __iter__(self):
143  return self
144 
145 # Register IMP_KERNEL_SwigPyIterator in _IMP_kernel:
146 _IMP_kernel.IMP_KERNEL_SwigPyIterator_swigregister(IMP_KERNEL_SwigPyIterator)
147 
148 _value_types=[]
149 _object_types=[]
150 _raii_types=[]
151 _plural_types=[]
152 
153 IMP_DEBUG = _IMP_kernel.IMP_DEBUG
154 
155 IMP_RELEASE = _IMP_kernel.IMP_RELEASE
156 
157 IMP_SILENT = _IMP_kernel.IMP_SILENT
158 
159 IMP_PROGRESS = _IMP_kernel.IMP_PROGRESS
160 
161 IMP_TERSE = _IMP_kernel.IMP_TERSE
162 
163 IMP_VERBOSE = _IMP_kernel.IMP_VERBOSE
164 
165 IMP_MEMORY = _IMP_kernel.IMP_MEMORY
166 
167 IMP_NONE = _IMP_kernel.IMP_NONE
168 
169 IMP_USAGE = _IMP_kernel.IMP_USAGE
170 
171 IMP_INTERNAL = _IMP_kernel.IMP_INTERNAL
172 
173 IMP_KERNEL_HAS_LOG4CXX = _IMP_kernel.IMP_KERNEL_HAS_LOG4CXX
174 
175 IMP_COMPILER_HAS_CEREAL_RAW_POINTER = _IMP_kernel.IMP_COMPILER_HAS_CEREAL_RAW_POINTER
176 
177 IMP_COMPILER_HAS_DEBUG_VECTOR = _IMP_kernel.IMP_COMPILER_HAS_DEBUG_VECTOR
178 
179 IMP_COMPILER_HAS_RANDOM_SHUFFLE = _IMP_kernel.IMP_COMPILER_HAS_RANDOM_SHUFFLE
180 
181 IMP_COMPILER_HAS_THREE_WAY = _IMP_kernel.IMP_COMPILER_HAS_THREE_WAY
182 
183 IMP_KERNEL_HAS_BOOST_RANDOM = _IMP_kernel.IMP_KERNEL_HAS_BOOST_RANDOM
184 
185 IMP_KERNEL_HAS_NUMPY = _IMP_kernel.IMP_KERNEL_HAS_NUMPY
186 
187 IMP_KERNEL_HAS_BOOST_SYSTEM = _IMP_kernel.IMP_KERNEL_HAS_BOOST_SYSTEM
188 
189 IMP_KERNEL_HAS_GPERFTOOLS = _IMP_kernel.IMP_KERNEL_HAS_GPERFTOOLS
190 
191 IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER = _IMP_kernel.IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER
192 
193 IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER = _IMP_kernel.IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER
194 
195 IMPKERNEL_SHOW_WARNINGS = _IMP_kernel.IMPKERNEL_SHOW_WARNINGS
196 
197 
198 import sys
199 class _DirectorObjects:
200  """@internal Simple class to keep references to director objects
201  to prevent premature deletion."""
202  def __init__(self):
203  self._objects = []
204  def register(self, obj):
205  """Take a reference to a director object; will only work for
206  refcounted C++ classes"""
207  if hasattr(obj, 'get_ref_count'):
208  self._objects.append(obj)
209  def cleanup(self):
210  """Only drop our reference and allow cleanup by Python if no other
211  Python references exist (we hold 3 references: one in self._objects,
212  one in x, and one in the argument list for getrefcount) *and* no
213  other C++ references exist (the Python object always holds one)"""
214  objs = [x for x in self._objects if sys.getrefcount(x) > 3 \
215  or x.get_ref_count() > 1]
216 # Do in two steps so the references are kept until the end of the
217 # function (deleting references may trigger a fresh call to this method)
218  self._objects = objs
219  def get_object_count(self):
220  """Get number of director objects (useful for testing only)"""
221  return len(self._objects)
222 _director_objects = _DirectorObjects()
223 
224 DEFAULT_CHECK = _IMP_kernel.DEFAULT_CHECK
225 
226 NONE = _IMP_kernel.NONE
227 
228 USAGE = _IMP_kernel.USAGE
229 
230 USAGE_AND_INTERNAL = _IMP_kernel.USAGE_AND_INTERNAL
231 
232 
233 def set_check_level(tf):
234  r"""set_check_level(IMP::CheckLevel tf)"""
235  return _IMP_kernel.set_check_level(tf)
236 
237 def get_check_level():
238  r"""get_check_level() -> IMP::CheckLevel"""
239  return _IMP_kernel.get_check_level()
240 
241 from _IMP_kernel import Exception, InternalException, ModelException, EventException
242 from _IMP_kernel import UsageException, IndexException, IOException, ValueException
243 from _IMP_kernel import TypeException
244 
245 class _ostream(object):
246  r"""Proxy of C++ std::ostream class."""
247 
248  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
249 
250  def __init__(self, *args, **kwargs):
251  raise AttributeError("No constructor defined")
252  __repr__ = _swig_repr
253 
254  def write(self, osa_buf):
255  r"""write(_ostream self, char const * osa_buf)"""
256  return _IMP_kernel._ostream_write(self, osa_buf)
257 
258 # Register _ostream in _IMP_kernel:
259 _IMP_kernel._ostream_swigregister(_ostream)
260 IMP_C_OPEN_BINARY = _IMP_kernel.IMP_C_OPEN_BINARY
261 
262 
263 from . import _list_util
264 
265 
266 _models_set = weakref.WeakSet()
267 
268 def _models_set_get(m):
269  for x in _models_set:
270  if x == m:
271  return x
272 
273 
274 _raii_types.append("SetLogState")
275 
276 
277 _raii_types.append("SetNumberOfThreads")
278 
279 
280 _raii_types.append("SetCheckState")
281 
282 
283 _object_types.append("Object")
284 
285 
286 def _object_cast_to_Object(o):
287  r"""_object_cast_to_Object(Object * o) -> Object"""
288  return _IMP_kernel._object_cast_to_Object(o)
289 
290 _object_types.append("_TestObject")
291 
292 
293 def _object_cast_to__TestObject(o):
294  r"""_object_cast_to__TestObject(Object * o) -> _TestObject"""
295  return _IMP_kernel._object_cast_to__TestObject(o)
296 
297 VersionInfos=list
298 _plural_types.append("VersionInfos")
299 _value_types.append("VersionInfo")
300 
301 
302 _raii_types.append("CreateLogContext")
303 
304 
305 _raii_types.append("WarningContext")
306 
307 
308 _raii_types.append("SetLogTarget")
309 
310 
311 _TestValues=list
312 _plural_types.append("_TestValues")
313 _value_types.append("_TestValue")
314 
315 
316 Floats=list
317 _plural_types.append("Floats")
318 _value_types.append("Float")
319 
320 
321 Ints=list
322 _plural_types.append("Ints")
323 _value_types.append("Int")
324 
325 
326 Strings=list
327 _plural_types.append("Strings")
328 _value_types.append("String")
329 
330 
331 _Protections=list
332 _plural_types.append("_Protections")
333 _value_types.append("_Protection")
334 
335 class _GeometricPrimitive1D(object):
336  r"""Proxy of C++ IMP::GeometricPrimitiveD< 1 > class."""
337 
338  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
339 
340  def __init__(self, *args, **kwargs):
341  raise AttributeError("No constructor defined")
342  __repr__ = _swig_repr
343  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive1D
344 
345 # Register _GeometricPrimitive1D in _IMP_kernel:
346 _IMP_kernel._GeometricPrimitive1D_swigregister(_GeometricPrimitive1D)
347 class _GeometricPrimitive2D(object):
348  r"""Proxy of C++ IMP::GeometricPrimitiveD< 2 > class."""
349 
350  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
351 
352  def __init__(self, *args, **kwargs):
353  raise AttributeError("No constructor defined")
354  __repr__ = _swig_repr
355  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive2D
356 
357 # Register _GeometricPrimitive2D in _IMP_kernel:
358 _IMP_kernel._GeometricPrimitive2D_swigregister(_GeometricPrimitive2D)
359 class _GeometricPrimitive3D(object):
360  r"""Proxy of C++ IMP::GeometricPrimitiveD< 3 > class."""
361 
362  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
363 
364  def __init__(self, *args, **kwargs):
365  raise AttributeError("No constructor defined")
366  __repr__ = _swig_repr
367  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive3D
368 
369 # Register _GeometricPrimitive3D in _IMP_kernel:
370 _IMP_kernel._GeometricPrimitive3D_swigregister(_GeometricPrimitive3D)
371 class _GeometricPrimitive4D(object):
372  r"""Proxy of C++ IMP::GeometricPrimitiveD< 4 > class."""
373 
374  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
375 
376  def __init__(self, *args, **kwargs):
377  raise AttributeError("No constructor defined")
378  __repr__ = _swig_repr
379  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive4D
380 
381 # Register _GeometricPrimitive4D in _IMP_kernel:
382 _IMP_kernel._GeometricPrimitive4D_swigregister(_GeometricPrimitive4D)
383 class _GeometricPrimitive5D(object):
384  r"""Proxy of C++ IMP::GeometricPrimitiveD< 5 > class."""
385 
386  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
387 
388  def __init__(self, *args, **kwargs):
389  raise AttributeError("No constructor defined")
390  __repr__ = _swig_repr
391  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive5D
392 
393 # Register _GeometricPrimitive5D in _IMP_kernel:
394 _IMP_kernel._GeometricPrimitive5D_swigregister(_GeometricPrimitive5D)
395 class _GeometricPrimitive6D(object):
396  r"""Proxy of C++ IMP::GeometricPrimitiveD< 6 > class."""
397 
398  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
399 
400  def __init__(self, *args, **kwargs):
401  raise AttributeError("No constructor defined")
402  __repr__ = _swig_repr
403  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitive6D
404 
405 # Register _GeometricPrimitive6D in _IMP_kernel:
406 _IMP_kernel._GeometricPrimitive6D_swigregister(_GeometricPrimitive6D)
407 class _GeometricPrimitiveKD(object):
408  r"""Proxy of C++ IMP::GeometricPrimitiveD< -1 > class."""
409 
410  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
411 
412  def __init__(self, *args, **kwargs):
413  raise AttributeError("No constructor defined")
414  __repr__ = _swig_repr
415  __swig_destroy__ = _IMP_kernel.delete__GeometricPrimitiveKD
416 
417 # Register _GeometricPrimitiveKD in _IMP_kernel:
418 _IMP_kernel._GeometricPrimitiveKD_swigregister(_GeometricPrimitiveKD)
419 class _VectorBaseKD(_GeometricPrimitiveKD):
420  r"""Proxy of C++ IMP::internal::VectorBaseD< -1 > class."""
421 
422  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
423  __repr__ = _swig_repr
424 
425  def __init__(self):
426  r"""__init__(_VectorBaseKD self) -> _VectorBaseKD"""
427  _IMP_kernel._VectorBaseKD_swiginit(self, _IMP_kernel.new__VectorBaseKD())
428 
429  def get_scalar_product(self, o):
430  r"""get_scalar_product(_VectorBaseKD self, _VectorBaseKD o) -> double"""
431  return _IMP_kernel._VectorBaseKD_get_scalar_product(self, o)
432 
433  def get_squared_magnitude(self):
434  r"""get_squared_magnitude(_VectorBaseKD self) -> double"""
435  return _IMP_kernel._VectorBaseKD_get_squared_magnitude(self)
436 
437  def get_magnitude(self):
438  r"""get_magnitude(_VectorBaseKD self) -> double"""
439  return _IMP_kernel._VectorBaseKD_get_magnitude(self)
440 
441  def get_distance(self, o):
442  r"""get_distance(_VectorBaseKD self, _VectorBaseKD o) -> double"""
443  return _IMP_kernel._VectorBaseKD_get_distance(self, o)
444 
445  def __mul__(self, o):
446  r"""__mul__(_VectorBaseKD self, _VectorBaseKD o) -> double"""
447  return _IMP_kernel._VectorBaseKD___mul__(self, o)
448 
449  def __iadd__(self, o):
450  r"""__iadd__(_VectorBaseKD self, _VectorBaseKD o) -> _VectorBaseKD"""
451  return _IMP_kernel._VectorBaseKD___iadd__(self, o)
452 
453  def __isub__(self, o):
454  r"""__isub__(_VectorBaseKD self, _VectorBaseKD o) -> _VectorBaseKD"""
455  return _IMP_kernel._VectorBaseKD___isub__(self, o)
456 
457  def __itruediv__(self, *args):
458  return _IMP_kernel._VectorBaseKD___itruediv__(self, *args)
459  __idiv__ = __itruediv__
460 
461 
462 
463  def __imul__(self, f):
464  r"""__imul__(_VectorBaseKD self, double f) -> _VectorBaseKD"""
465  return _IMP_kernel._VectorBaseKD___imul__(self, f)
466 
467  def show(self, *args):
468  r"""
469  show(_VectorBaseKD self, _ostream out, std::string delim, bool parens=True)
470  show(_VectorBaseKD self, _ostream out=std::cout)
471  """
472  return _IMP_kernel._VectorBaseKD_show(self, *args)
473 
474  def get_dimension(self):
475  r"""get_dimension(_VectorBaseKD self) -> unsigned int"""
476  return _IMP_kernel._VectorBaseKD_get_dimension(self)
477  __swig_destroy__ = _IMP_kernel.delete__VectorBaseKD
478 
479 # Register _VectorBaseKD in _IMP_kernel:
480 _IMP_kernel._VectorBaseKD_swigregister(_VectorBaseKD)
481 class _VectorBase1D(_GeometricPrimitive1D):
482  r"""Proxy of C++ IMP::internal::VectorBaseD< 1 > class."""
483 
484  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
485  __repr__ = _swig_repr
486 
487  def __init__(self):
488  r"""__init__(_VectorBase1D self) -> _VectorBase1D"""
489  _IMP_kernel._VectorBase1D_swiginit(self, _IMP_kernel.new__VectorBase1D())
490 
491  def get_scalar_product(self, o):
492  r"""get_scalar_product(_VectorBase1D self, _VectorBase1D o) -> double"""
493  return _IMP_kernel._VectorBase1D_get_scalar_product(self, o)
494 
495  def get_squared_magnitude(self):
496  r"""get_squared_magnitude(_VectorBase1D self) -> double"""
497  return _IMP_kernel._VectorBase1D_get_squared_magnitude(self)
498 
499  def get_magnitude(self):
500  r"""get_magnitude(_VectorBase1D self) -> double"""
501  return _IMP_kernel._VectorBase1D_get_magnitude(self)
502 
503  def get_distance(self, o):
504  r"""get_distance(_VectorBase1D self, _VectorBase1D o) -> double"""
505  return _IMP_kernel._VectorBase1D_get_distance(self, o)
506 
507  def __mul__(self, o):
508  r"""__mul__(_VectorBase1D self, _VectorBase1D o) -> double"""
509  return _IMP_kernel._VectorBase1D___mul__(self, o)
510 
511  def __iadd__(self, o):
512  r"""__iadd__(_VectorBase1D self, _VectorBase1D o) -> _VectorBase1D"""
513  return _IMP_kernel._VectorBase1D___iadd__(self, o)
514 
515  def __isub__(self, o):
516  r"""__isub__(_VectorBase1D self, _VectorBase1D o) -> _VectorBase1D"""
517  return _IMP_kernel._VectorBase1D___isub__(self, o)
518 
519  def __itruediv__(self, *args):
520  return _IMP_kernel._VectorBase1D___itruediv__(self, *args)
521  __idiv__ = __itruediv__
522 
523 
524 
525  def __imul__(self, f):
526  r"""__imul__(_VectorBase1D self, double f) -> _VectorBase1D"""
527  return _IMP_kernel._VectorBase1D___imul__(self, f)
528 
529  def show(self, *args):
530  r"""
531  show(_VectorBase1D self, _ostream out, std::string delim, bool parens=True)
532  show(_VectorBase1D self, _ostream out=std::cout)
533  """
534  return _IMP_kernel._VectorBase1D_show(self, *args)
535 
536  def get_dimension(self):
537  r"""get_dimension(_VectorBase1D self) -> unsigned int"""
538  return _IMP_kernel._VectorBase1D_get_dimension(self)
539  __swig_destroy__ = _IMP_kernel.delete__VectorBase1D
540 
541 # Register _VectorBase1D in _IMP_kernel:
542 _IMP_kernel._VectorBase1D_swigregister(_VectorBase1D)
543 class _VectorBase2D(_GeometricPrimitive2D):
544  r"""Proxy of C++ IMP::internal::VectorBaseD< 2 > class."""
545 
546  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
547  __repr__ = _swig_repr
548 
549  def __init__(self):
550  r"""__init__(_VectorBase2D self) -> _VectorBase2D"""
551  _IMP_kernel._VectorBase2D_swiginit(self, _IMP_kernel.new__VectorBase2D())
552 
553  def get_scalar_product(self, o):
554  r"""get_scalar_product(_VectorBase2D self, _VectorBase2D o) -> double"""
555  return _IMP_kernel._VectorBase2D_get_scalar_product(self, o)
556 
557  def get_squared_magnitude(self):
558  r"""get_squared_magnitude(_VectorBase2D self) -> double"""
559  return _IMP_kernel._VectorBase2D_get_squared_magnitude(self)
560 
561  def get_magnitude(self):
562  r"""get_magnitude(_VectorBase2D self) -> double"""
563  return _IMP_kernel._VectorBase2D_get_magnitude(self)
564 
565  def get_distance(self, o):
566  r"""get_distance(_VectorBase2D self, _VectorBase2D o) -> double"""
567  return _IMP_kernel._VectorBase2D_get_distance(self, o)
568 
569  def __mul__(self, o):
570  r"""__mul__(_VectorBase2D self, _VectorBase2D o) -> double"""
571  return _IMP_kernel._VectorBase2D___mul__(self, o)
572 
573  def __iadd__(self, o):
574  r"""__iadd__(_VectorBase2D self, _VectorBase2D o) -> _VectorBase2D"""
575  return _IMP_kernel._VectorBase2D___iadd__(self, o)
576 
577  def __isub__(self, o):
578  r"""__isub__(_VectorBase2D self, _VectorBase2D o) -> _VectorBase2D"""
579  return _IMP_kernel._VectorBase2D___isub__(self, o)
580 
581  def __itruediv__(self, *args):
582  return _IMP_kernel._VectorBase2D___itruediv__(self, *args)
583  __idiv__ = __itruediv__
584 
585 
586 
587  def __imul__(self, f):
588  r"""__imul__(_VectorBase2D self, double f) -> _VectorBase2D"""
589  return _IMP_kernel._VectorBase2D___imul__(self, f)
590 
591  def show(self, *args):
592  r"""
593  show(_VectorBase2D self, _ostream out, std::string delim, bool parens=True)
594  show(_VectorBase2D self, _ostream out=std::cout)
595  """
596  return _IMP_kernel._VectorBase2D_show(self, *args)
597 
598  def get_dimension(self):
599  r"""get_dimension(_VectorBase2D self) -> unsigned int"""
600  return _IMP_kernel._VectorBase2D_get_dimension(self)
601  __swig_destroy__ = _IMP_kernel.delete__VectorBase2D
602 
603 # Register _VectorBase2D in _IMP_kernel:
604 _IMP_kernel._VectorBase2D_swigregister(_VectorBase2D)
605 class _VectorBase3D(_GeometricPrimitive3D):
606  r"""Proxy of C++ IMP::internal::VectorBaseD< 3 > class."""
607 
608  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
609  __repr__ = _swig_repr
610 
611  def __init__(self):
612  r"""__init__(_VectorBase3D self) -> _VectorBase3D"""
613  _IMP_kernel._VectorBase3D_swiginit(self, _IMP_kernel.new__VectorBase3D())
614 
615  def get_scalar_product(self, o):
616  r"""get_scalar_product(_VectorBase3D self, _VectorBase3D o) -> double"""
617  return _IMP_kernel._VectorBase3D_get_scalar_product(self, o)
618 
619  def get_squared_magnitude(self):
620  r"""get_squared_magnitude(_VectorBase3D self) -> double"""
621  return _IMP_kernel._VectorBase3D_get_squared_magnitude(self)
622 
623  def get_magnitude(self):
624  r"""get_magnitude(_VectorBase3D self) -> double"""
625  return _IMP_kernel._VectorBase3D_get_magnitude(self)
626 
627  def get_distance(self, o):
628  r"""get_distance(_VectorBase3D self, _VectorBase3D o) -> double"""
629  return _IMP_kernel._VectorBase3D_get_distance(self, o)
630 
631  def __mul__(self, o):
632  r"""__mul__(_VectorBase3D self, _VectorBase3D o) -> double"""
633  return _IMP_kernel._VectorBase3D___mul__(self, o)
634 
635  def __iadd__(self, o):
636  r"""__iadd__(_VectorBase3D self, _VectorBase3D o) -> _VectorBase3D"""
637  return _IMP_kernel._VectorBase3D___iadd__(self, o)
638 
639  def __isub__(self, o):
640  r"""__isub__(_VectorBase3D self, _VectorBase3D o) -> _VectorBase3D"""
641  return _IMP_kernel._VectorBase3D___isub__(self, o)
642 
643  def __itruediv__(self, *args):
644  return _IMP_kernel._VectorBase3D___itruediv__(self, *args)
645  __idiv__ = __itruediv__
646 
647 
648 
649  def __imul__(self, f):
650  r"""__imul__(_VectorBase3D self, double f) -> _VectorBase3D"""
651  return _IMP_kernel._VectorBase3D___imul__(self, f)
652 
653  def show(self, *args):
654  r"""
655  show(_VectorBase3D self, _ostream out, std::string delim, bool parens=True)
656  show(_VectorBase3D self, _ostream out=std::cout)
657  """
658  return _IMP_kernel._VectorBase3D_show(self, *args)
659 
660  def get_dimension(self):
661  r"""get_dimension(_VectorBase3D self) -> unsigned int"""
662  return _IMP_kernel._VectorBase3D_get_dimension(self)
663  __swig_destroy__ = _IMP_kernel.delete__VectorBase3D
664 
665 # Register _VectorBase3D in _IMP_kernel:
666 _IMP_kernel._VectorBase3D_swigregister(_VectorBase3D)
667 class _VectorBase4D(_GeometricPrimitive4D):
668  r"""Proxy of C++ IMP::internal::VectorBaseD< 4 > class."""
669 
670  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
671  __repr__ = _swig_repr
672 
673  def __init__(self):
674  r"""__init__(_VectorBase4D self) -> _VectorBase4D"""
675  _IMP_kernel._VectorBase4D_swiginit(self, _IMP_kernel.new__VectorBase4D())
676 
677  def get_scalar_product(self, o):
678  r"""get_scalar_product(_VectorBase4D self, _VectorBase4D o) -> double"""
679  return _IMP_kernel._VectorBase4D_get_scalar_product(self, o)
680 
681  def get_squared_magnitude(self):
682  r"""get_squared_magnitude(_VectorBase4D self) -> double"""
683  return _IMP_kernel._VectorBase4D_get_squared_magnitude(self)
684 
685  def get_magnitude(self):
686  r"""get_magnitude(_VectorBase4D self) -> double"""
687  return _IMP_kernel._VectorBase4D_get_magnitude(self)
688 
689  def get_distance(self, o):
690  r"""get_distance(_VectorBase4D self, _VectorBase4D o) -> double"""
691  return _IMP_kernel._VectorBase4D_get_distance(self, o)
692 
693  def __mul__(self, o):
694  r"""__mul__(_VectorBase4D self, _VectorBase4D o) -> double"""
695  return _IMP_kernel._VectorBase4D___mul__(self, o)
696 
697  def __iadd__(self, o):
698  r"""__iadd__(_VectorBase4D self, _VectorBase4D o) -> _VectorBase4D"""
699  return _IMP_kernel._VectorBase4D___iadd__(self, o)
700 
701  def __isub__(self, o):
702  r"""__isub__(_VectorBase4D self, _VectorBase4D o) -> _VectorBase4D"""
703  return _IMP_kernel._VectorBase4D___isub__(self, o)
704 
705  def __itruediv__(self, *args):
706  return _IMP_kernel._VectorBase4D___itruediv__(self, *args)
707  __idiv__ = __itruediv__
708 
709 
710 
711  def __imul__(self, f):
712  r"""__imul__(_VectorBase4D self, double f) -> _VectorBase4D"""
713  return _IMP_kernel._VectorBase4D___imul__(self, f)
714 
715  def show(self, *args):
716  r"""
717  show(_VectorBase4D self, _ostream out, std::string delim, bool parens=True)
718  show(_VectorBase4D self, _ostream out=std::cout)
719  """
720  return _IMP_kernel._VectorBase4D_show(self, *args)
721 
722  def get_dimension(self):
723  r"""get_dimension(_VectorBase4D self) -> unsigned int"""
724  return _IMP_kernel._VectorBase4D_get_dimension(self)
725  __swig_destroy__ = _IMP_kernel.delete__VectorBase4D
726 
727 # Register _VectorBase4D in _IMP_kernel:
728 _IMP_kernel._VectorBase4D_swigregister(_VectorBase4D)
729 class _VectorBase5D(_GeometricPrimitive5D):
730  r"""Proxy of C++ IMP::internal::VectorBaseD< 5 > class."""
731 
732  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
733  __repr__ = _swig_repr
734 
735  def __init__(self):
736  r"""__init__(_VectorBase5D self) -> _VectorBase5D"""
737  _IMP_kernel._VectorBase5D_swiginit(self, _IMP_kernel.new__VectorBase5D())
738 
739  def get_scalar_product(self, o):
740  r"""get_scalar_product(_VectorBase5D self, _VectorBase5D o) -> double"""
741  return _IMP_kernel._VectorBase5D_get_scalar_product(self, o)
742 
743  def get_squared_magnitude(self):
744  r"""get_squared_magnitude(_VectorBase5D self) -> double"""
745  return _IMP_kernel._VectorBase5D_get_squared_magnitude(self)
746 
747  def get_magnitude(self):
748  r"""get_magnitude(_VectorBase5D self) -> double"""
749  return _IMP_kernel._VectorBase5D_get_magnitude(self)
750 
751  def get_distance(self, o):
752  r"""get_distance(_VectorBase5D self, _VectorBase5D o) -> double"""
753  return _IMP_kernel._VectorBase5D_get_distance(self, o)
754 
755  def __mul__(self, o):
756  r"""__mul__(_VectorBase5D self, _VectorBase5D o) -> double"""
757  return _IMP_kernel._VectorBase5D___mul__(self, o)
758 
759  def __iadd__(self, o):
760  r"""__iadd__(_VectorBase5D self, _VectorBase5D o) -> _VectorBase5D"""
761  return _IMP_kernel._VectorBase5D___iadd__(self, o)
762 
763  def __isub__(self, o):
764  r"""__isub__(_VectorBase5D self, _VectorBase5D o) -> _VectorBase5D"""
765  return _IMP_kernel._VectorBase5D___isub__(self, o)
766 
767  def __itruediv__(self, *args):
768  return _IMP_kernel._VectorBase5D___itruediv__(self, *args)
769  __idiv__ = __itruediv__
770 
771 
772 
773  def __imul__(self, f):
774  r"""__imul__(_VectorBase5D self, double f) -> _VectorBase5D"""
775  return _IMP_kernel._VectorBase5D___imul__(self, f)
776 
777  def show(self, *args):
778  r"""
779  show(_VectorBase5D self, _ostream out, std::string delim, bool parens=True)
780  show(_VectorBase5D self, _ostream out=std::cout)
781  """
782  return _IMP_kernel._VectorBase5D_show(self, *args)
783 
784  def get_dimension(self):
785  r"""get_dimension(_VectorBase5D self) -> unsigned int"""
786  return _IMP_kernel._VectorBase5D_get_dimension(self)
787  __swig_destroy__ = _IMP_kernel.delete__VectorBase5D
788 
789 # Register _VectorBase5D in _IMP_kernel:
790 _IMP_kernel._VectorBase5D_swigregister(_VectorBase5D)
791 class _VectorBase6D(_GeometricPrimitive6D):
792  r"""Proxy of C++ IMP::internal::VectorBaseD< 6 > class."""
793 
794  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
795  __repr__ = _swig_repr
796 
797  def __init__(self):
798  r"""__init__(_VectorBase6D self) -> _VectorBase6D"""
799  _IMP_kernel._VectorBase6D_swiginit(self, _IMP_kernel.new__VectorBase6D())
800 
801  def get_scalar_product(self, o):
802  r"""get_scalar_product(_VectorBase6D self, _VectorBase6D o) -> double"""
803  return _IMP_kernel._VectorBase6D_get_scalar_product(self, o)
804 
805  def get_squared_magnitude(self):
806  r"""get_squared_magnitude(_VectorBase6D self) -> double"""
807  return _IMP_kernel._VectorBase6D_get_squared_magnitude(self)
808 
809  def get_magnitude(self):
810  r"""get_magnitude(_VectorBase6D self) -> double"""
811  return _IMP_kernel._VectorBase6D_get_magnitude(self)
812 
813  def get_distance(self, o):
814  r"""get_distance(_VectorBase6D self, _VectorBase6D o) -> double"""
815  return _IMP_kernel._VectorBase6D_get_distance(self, o)
816 
817  def __mul__(self, o):
818  r"""__mul__(_VectorBase6D self, _VectorBase6D o) -> double"""
819  return _IMP_kernel._VectorBase6D___mul__(self, o)
820 
821  def __iadd__(self, o):
822  r"""__iadd__(_VectorBase6D self, _VectorBase6D o) -> _VectorBase6D"""
823  return _IMP_kernel._VectorBase6D___iadd__(self, o)
824 
825  def __isub__(self, o):
826  r"""__isub__(_VectorBase6D self, _VectorBase6D o) -> _VectorBase6D"""
827  return _IMP_kernel._VectorBase6D___isub__(self, o)
828 
829  def __itruediv__(self, *args):
830  return _IMP_kernel._VectorBase6D___itruediv__(self, *args)
831  __idiv__ = __itruediv__
832 
833 
834 
835  def __imul__(self, f):
836  r"""__imul__(_VectorBase6D self, double f) -> _VectorBase6D"""
837  return _IMP_kernel._VectorBase6D___imul__(self, f)
838 
839  def show(self, *args):
840  r"""
841  show(_VectorBase6D self, _ostream out, std::string delim, bool parens=True)
842  show(_VectorBase6D self, _ostream out=std::cout)
843  """
844  return _IMP_kernel._VectorBase6D_show(self, *args)
845 
846  def get_dimension(self):
847  r"""get_dimension(_VectorBase6D self) -> unsigned int"""
848  return _IMP_kernel._VectorBase6D_get_dimension(self)
849  __swig_destroy__ = _IMP_kernel.delete__VectorBase6D
850 
851 # Register _VectorBase6D in _IMP_kernel:
852 _IMP_kernel._VectorBase6D_swigregister(_VectorBase6D)
853 class _InputAdaptor(object):
854  r"""Proxy of C++ IMP::InputAdaptor class."""
855 
856  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
857 
858  def __init__(self, *args, **kwargs):
859  raise AttributeError("No constructor defined")
860  __repr__ = _swig_repr
861 
862  def __getstate__(self):
863  raise NotImplementedError(str(self.__class__)
864  + " does not support serialization")
865 
866  __swig_destroy__ = _IMP_kernel.delete__InputAdaptor
867 
868 # Register _InputAdaptor in _IMP_kernel:
869 _IMP_kernel._InputAdaptor_swigregister(_InputAdaptor)
870 class _NonCopyable(object):
871  r"""Proxy of C++ IMP::NonCopyable class."""
872 
873  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
874 
875  def __init__(self, *args, **kwargs):
876  raise AttributeError("No constructor defined")
877  __repr__ = _swig_repr
878  __swig_destroy__ = _IMP_kernel.delete__NonCopyable
879 
880 # Register _NonCopyable in _IMP_kernel:
881 _IMP_kernel._NonCopyable_swigregister(_NonCopyable)
882 class _RAII(_NonCopyable):
883  r"""Proxy of C++ IMP::RAII class."""
884 
885  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
886 
887  def __init__(self, *args, **kwargs):
888  raise AttributeError("No constructor defined")
889  __repr__ = _swig_repr
890  __swig_destroy__ = _IMP_kernel.delete__RAII
891 
892 # Register _RAII in _IMP_kernel:
893 _IMP_kernel._RAII_swigregister(_RAII)
894 class _Value(object):
895  r"""Proxy of C++ IMP::Value class."""
896 
897  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
898 
899  def __init__(self, *args, **kwargs):
900  raise AttributeError("No constructor defined")
901  __repr__ = _swig_repr
902 
903  def __getstate__(self):
904  raise NotImplementedError(str(self.__class__)
905  + " does not support serialization")
906 
907  __swig_destroy__ = _IMP_kernel.delete__Value
908 
909 # Register _Value in _IMP_kernel:
910 _IMP_kernel._Value_swigregister(_Value)
911 
912 def get_executable_name():
913  r"""get_executable_name() -> std::string"""
914  return _IMP_kernel.get_executable_name()
915 
916 def setup_from_argv(*args):
917  r"""
918  setup_from_argv(IMP::Strings const & argv, std::string description)
919  setup_from_argv(IMP::Strings const & argv, std::string description, std::string positional_description, int num_positional) -> IMP::Strings
920  """
921  return _IMP_kernel.setup_from_argv(*args)
922 
923 def add_string_flag(name, default_value, description):
924  r"""add_string_flag(std::string name, std::string default_value, std::string description)"""
925  return _IMP_kernel.add_string_flag(name, default_value, description)
926 
927 def get_string_flag(name):
928  r"""get_string_flag(std::string name) -> std::string"""
929  return _IMP_kernel.get_string_flag(name)
930 
931 def add_int_flag(name, default_value, description):
932  r"""add_int_flag(std::string name, size_t default_value, std::string description)"""
933  return _IMP_kernel.add_int_flag(name, default_value, description)
934 
935 def get_int_flag(name):
936  r"""get_int_flag(std::string name) -> size_t"""
937  return _IMP_kernel.get_int_flag(name)
938 
939 def add_bool_flag(name, description):
940  r"""add_bool_flag(std::string name, std::string description)"""
941  return _IMP_kernel.add_bool_flag(name, description)
942 
943 def get_bool_flag(name):
944  r"""get_bool_flag(std::string name) -> bool"""
945  return _IMP_kernel.get_bool_flag(name)
946 
947 def add_float_flag(name, default_value, description):
948  r"""add_float_flag(std::string name, double default_value, std::string description)"""
949  return _IMP_kernel.add_float_flag(name, default_value, description)
950 
951 def get_float_flag(name):
952  r"""get_float_flag(std::string name) -> double"""
953  return _IMP_kernel.get_float_flag(name)
954 
955 def write_help(*args):
956  r"""write_help(_ostream out=std::cerr)"""
957  return _IMP_kernel.write_help(*args)
958 
959 def get_is_quick_test():
960  r"""get_is_quick_test() -> bool"""
961  return _IMP_kernel.get_is_quick_test()
962 DEFAULT = _IMP_kernel.DEFAULT
963 
964 SILENT = _IMP_kernel.SILENT
965 
966 WARNING = _IMP_kernel.WARNING
967 
968 PROGRESS = _IMP_kernel.PROGRESS
969 
970 TERSE = _IMP_kernel.TERSE
971 
972 VERBOSE = _IMP_kernel.VERBOSE
973 
974 MEMORY = _IMP_kernel.MEMORY
975 
976 ALL_LOG = _IMP_kernel.ALL_LOG
977 
978 class VersionInfo(_Value):
979  r"""Proxy of C++ IMP::VersionInfo class."""
980 
981  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
982 
983  def __init__(self, *args):
984  r"""
985  __init__(VersionInfo self, std::string module, std::string version) -> VersionInfo
986  __init__(VersionInfo self) -> VersionInfo
987  """
988  _IMP_kernel.VersionInfo_swiginit(self, _IMP_kernel.new_VersionInfo(*args))
989 
990  def get_module(self):
991  r"""get_module(VersionInfo self) -> std::string"""
992  return _IMP_kernel.VersionInfo_get_module(self)
993 
994  def get_version(self):
995  r"""get_version(VersionInfo self) -> std::string"""
996  return _IMP_kernel.VersionInfo_get_version(self)
997 
998  def show(self, *args):
999  r"""show(VersionInfo self, _ostream out=std::cout)"""
1000  return _IMP_kernel.VersionInfo_show(self, *args)
1001 
1002  def __cmp__(self, o):
1003  r"""__cmp__(VersionInfo self, VersionInfo o) -> int"""
1004  return _IMP_kernel.VersionInfo___cmp__(self, o)
1005 
1006  def __eq__(self, o):
1007  r"""__eq__(VersionInfo self, VersionInfo o) -> bool"""
1008  return _IMP_kernel.VersionInfo___eq__(self, o)
1009 
1010  def __ne__(self, o):
1011  r"""__ne__(VersionInfo self, VersionInfo o) -> bool"""
1012  return _IMP_kernel.VersionInfo___ne__(self, o)
1013 
1014  def __lt__(self, o):
1015  r"""__lt__(VersionInfo self, VersionInfo o) -> bool"""
1016  return _IMP_kernel.VersionInfo___lt__(self, o)
1017 
1018  def __gt__(self, o):
1019  r"""__gt__(VersionInfo self, VersionInfo o) -> bool"""
1020  return _IMP_kernel.VersionInfo___gt__(self, o)
1021 
1022  def __ge__(self, o):
1023  r"""__ge__(VersionInfo self, VersionInfo o) -> bool"""
1024  return _IMP_kernel.VersionInfo___ge__(self, o)
1025 
1026  def __le__(self, o):
1027  r"""__le__(VersionInfo self, VersionInfo o) -> bool"""
1028  return _IMP_kernel.VersionInfo___le__(self, o)
1029 
1030  def __str__(self):
1031  r"""__str__(VersionInfo self) -> std::string"""
1032  return _IMP_kernel.VersionInfo___str__(self)
1033 
1034  def __repr__(self):
1035  r"""__repr__(VersionInfo self) -> std::string"""
1036  return _IMP_kernel.VersionInfo___repr__(self)
1037 
1038  def _get_as_binary(self):
1039  r"""_get_as_binary(VersionInfo self) -> PyObject *"""
1040  return _IMP_kernel.VersionInfo__get_as_binary(self)
1041 
1042  def _set_from_binary(self, p):
1043  r"""_set_from_binary(VersionInfo self, PyObject * p)"""
1044  return _IMP_kernel.VersionInfo__set_from_binary(self, p)
1045 
1046  def __getstate__(self):
1047  p = self._get_as_binary()
1048  if len(self.__dict__) > 1:
1049  d = self.__dict__.copy()
1050  del d['this']
1051  p = (d, p)
1052  return p
1053 
1054  def __setstate__(self, p):
1055  if not hasattr(self, 'this'):
1056  self.__init__()
1057  if isinstance(p, tuple):
1058  d, p = p
1059  self.__dict__.update(d)
1060  return self._set_from_binary(p)
1061 
1062  __swig_destroy__ = _IMP_kernel.delete_VersionInfo
1063 
1064 # Register VersionInfo in _IMP_kernel:
1065 _IMP_kernel.VersionInfo_swigregister(VersionInfo)
1066 class TextOutput(_InputAdaptor):
1067  r"""Proxy of C++ IMP::TextOutput class."""
1068 
1069  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1070  __repr__ = _swig_repr
1071 
1072  def __init__(self, *args):
1073  r"""
1074  __init__(TextOutput self, int arg2) -> TextOutput
1075  __init__(TextOutput self, double arg2) -> TextOutput
1076  __init__(TextOutput self, char const * c, bool append=False) -> TextOutput
1077  __init__(TextOutput self, IMP::TextProxy< std::ostream > p) -> TextOutput
1078  __init__(TextOutput self) -> TextOutput
1079  __init__(TextOutput self, std::string file_name, bool append=False) -> TextOutput
1080  """
1081  _IMP_kernel.TextOutput_swiginit(self, _IMP_kernel.new_TextOutput(*args))
1082 
1083  def show(self, *args):
1084  r"""show(TextOutput self, _ostream out=std::cout)"""
1085  return _IMP_kernel.TextOutput_show(self, *args)
1086 
1087  def get_name(self):
1088  r"""get_name(TextOutput self) -> std::string"""
1089  return _IMP_kernel.TextOutput_get_name(self)
1090  __swig_destroy__ = _IMP_kernel.delete_TextOutput
1091 
1092 # Register TextOutput in _IMP_kernel:
1093 _IMP_kernel.TextOutput_swigregister(TextOutput)
1094 class TextInput(_InputAdaptor):
1095  r"""Proxy of C++ IMP::TextInput class."""
1096 
1097  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1098  __repr__ = _swig_repr
1099 
1100  def __init__(self, *args):
1101  r"""
1102  __init__(TextInput self, int arg2) -> TextInput
1103  __init__(TextInput self, double arg2) -> TextInput
1104  __init__(TextInput self, char const * c) -> TextInput
1105  __init__(TextInput self, IMP::TextProxy< std::istream > p) -> TextInput
1106  __init__(TextInput self) -> TextInput
1107  __init__(TextInput self, std::string file_name) -> TextInput
1108  """
1109  _IMP_kernel.TextInput_swiginit(self, _IMP_kernel.new_TextInput(*args))
1110 
1111  def show(self, *args):
1112  r"""show(TextInput self, _ostream out=std::cout)"""
1113  return _IMP_kernel.TextInput_show(self, *args)
1114 
1115  def get_name(self):
1116  r"""get_name(TextInput self) -> std::string"""
1117  return _IMP_kernel.TextInput_get_name(self)
1118 
1119  def set_binary_open_mode(self, binary):
1120  r"""set_binary_open_mode(TextInput self, bool binary)"""
1121  return _IMP_kernel.TextInput_set_binary_open_mode(self, binary)
1122  __swig_destroy__ = _IMP_kernel.delete_TextInput
1123 
1124 # Register TextInput in _IMP_kernel:
1125 _IMP_kernel.TextInput_swigregister(TextInput)
1126 class SetLogTarget(_RAII):
1127  r"""Proxy of C++ IMP::SetLogTarget class."""
1128 
1129  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1130 
1131  def __init__(self, *args):
1132  r"""
1133  __init__(SetLogTarget self) -> SetLogTarget
1134  __init__(SetLogTarget self, TextOutput to) -> SetLogTarget
1135  """
1136  _IMP_kernel.SetLogTarget_swiginit(self, _IMP_kernel.new_SetLogTarget(*args))
1137 
1138  def set(self, to):
1139  r"""set(SetLogTarget self, TextOutput to)"""
1140  return _IMP_kernel.SetLogTarget_set(self, to)
1141 
1142  def reset(self):
1143  r"""reset(SetLogTarget self)"""
1144  return _IMP_kernel.SetLogTarget_reset(self)
1145  __swig_destroy__ = _IMP_kernel.delete_SetLogTarget
1146 
1147  def show(self, *args):
1148  r"""show(SetLogTarget self, _ostream out=std::cout)"""
1149  return _IMP_kernel.SetLogTarget_show(self, *args)
1150 
1151  def __enter__(self):
1152  return self
1153  def __exit__(self, exc_type, exc_val, exc_tb):
1154  self.reset()
1155  return False
1156 
1157 
1158  def __str__(self):
1159  r"""__str__(SetLogTarget self) -> std::string"""
1160  return _IMP_kernel.SetLogTarget___str__(self)
1161 
1162  def __repr__(self):
1163  r"""__repr__(SetLogTarget self) -> std::string"""
1164  return _IMP_kernel.SetLogTarget___repr__(self)
1165 
1166 # Register SetLogTarget in _IMP_kernel:
1167 _IMP_kernel.SetLogTarget_swigregister(SetLogTarget)
1168 
1169 def create_temporary_file(*args):
1170  r"""create_temporary_file(std::string prefix="imp_temp", std::string suffix="") -> TextOutput"""
1171  return _IMP_kernel.create_temporary_file(*args)
1172 
1173 def create_temporary_file_name(*args):
1174  r"""create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="") -> std::string"""
1175  return _IMP_kernel.create_temporary_file_name(*args)
1176 
1177 def get_relative_path(base, relative):
1178  r"""get_relative_path(std::string base, std::string relative) -> std::string"""
1179  return _IMP_kernel.get_relative_path(base, relative)
1180 
1181 def get_absolute_path(file):
1182  r"""get_absolute_path(std::string file) -> std::string"""
1183  return _IMP_kernel.get_absolute_path(file)
1184 
1185 def push_log_context(functionname, object):
1186  r"""push_log_context(char const * functionname, void const * object)"""
1187  return _IMP_kernel.push_log_context(functionname, object)
1188 
1189 def pop_log_context():
1190  r"""pop_log_context()"""
1191  return _IMP_kernel.pop_log_context()
1192 
1193 def add_to_log(*args):
1194  r"""
1195  add_to_log(std::string to_write)
1196  add_to_log(IMP::LogLevel level, std::string to_write)
1197  """
1198  return _IMP_kernel.add_to_log(*args)
1199 
1200 def set_log_level(l):
1201  r"""set_log_level(IMP::LogLevel l)"""
1202  return _IMP_kernel.set_log_level(l)
1203 
1204 def set_log_timer(tb):
1205  r"""set_log_timer(bool tb)"""
1206  return _IMP_kernel.set_log_timer(tb)
1207 
1208 def reset_log_timer():
1209  r"""reset_log_timer()"""
1210  return _IMP_kernel.reset_log_timer()
1211 
1212 def get_log_level():
1213  r"""get_log_level() -> IMP::LogLevel"""
1214  return _IMP_kernel.get_log_level()
1215 
1216 def set_progress_display(description, steps):
1217  r"""set_progress_display(std::string description, unsigned int steps)"""
1218  return _IMP_kernel.set_progress_display(description, steps)
1219 
1220 def add_to_progress_display(step=1):
1221  r"""add_to_progress_display(unsigned int step=1)"""
1222  return _IMP_kernel.add_to_progress_display(step)
1223 class Object(_NonCopyable):
1224  r"""Proxy of C++ IMP::Object class."""
1225 
1226  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1227 
1228  def __init__(self, name):
1229  r"""__init__(Object self, std::string name) -> Object"""
1230  if self.__class__ == Object:
1231  _self = None
1232  else:
1233  _self = self
1234  _IMP_kernel.Object_swiginit(self, _IMP_kernel.new_Object(_self, name))
1235 
1236  if self.__class__ != Object:
1237  _director_objects.register(self)
1238 
1239 
1240 
1241  __swig_destroy__ = _IMP_kernel.delete_Object
1242 
1243  def __hash__(self):
1244  r"""__hash__(Object self) -> std::size_t"""
1245  return _IMP_kernel.Object___hash__(self)
1246 
1247  def set_log_level(self, l):
1248  r"""set_log_level(Object self, IMP::LogLevel l)"""
1249  return _IMP_kernel.Object_set_log_level(self, l)
1250 
1251  def set_check_level(self, l):
1252  r"""set_check_level(Object self, IMP::CheckLevel l)"""
1253  return _IMP_kernel.Object_set_check_level(self, l)
1254 
1255  def get_log_level(self):
1256  r"""get_log_level(Object self) -> IMP::LogLevel"""
1257  return _IMP_kernel.Object_get_log_level(self)
1258 
1259  def get_check_level(self):
1260  r"""get_check_level(Object self) -> IMP::CheckLevel"""
1261  return _IMP_kernel.Object_get_check_level(self)
1262 
1263  def get_version_info(self):
1264  r"""get_version_info(Object self) -> VersionInfo"""
1265  val = _IMP_kernel.Object_get_version_info(self)
1266  if val.get_module() == 'none':
1267  val = VersionInfo(
1268  self.__module__,
1269  __import__(self.__module__).get_module_version())
1270  return val
1271 
1272  def get_name(self):
1273  r"""get_name(Object self) -> std::string const &"""
1274  return _IMP_kernel.Object_get_name(self)
1275 
1276  def set_name(self, name):
1277  r"""set_name(Object self, std::string name)"""
1278  return _IMP_kernel.Object_set_name(self, name)
1279 
1280  def get_type_name(self):
1281  r"""get_type_name(Object self) -> std::string"""
1282  val = _IMP_kernel.Object_get_type_name(self)
1283  if val == 'unknown object type':
1284  val = self.__class__.__name__
1285  return val
1286 
1287  def set_was_used(self, tf):
1288  r"""set_was_used(Object self, bool tf)"""
1289  return _IMP_kernel.Object_set_was_used(self, tf)
1290 
1291  def show(self, *args):
1292  r"""show(Object self, _ostream out=std::cout)"""
1293  return _IMP_kernel.Object_show(self, *args)
1294 
1295  def get_string(self):
1296  r"""get_string(Object self) -> std::string"""
1297  return _IMP_kernel.Object_get_string(self)
1298 
1299  def _on_destruction(self):
1300  r"""_on_destruction(Object self)"""
1301  return _IMP_kernel.Object__on_destruction(self)
1302 
1303  def get_is_valid(self):
1304  r"""get_is_valid(Object self) -> bool"""
1305  return _IMP_kernel.Object_get_is_valid(self)
1306 
1307  def get_ref_count(self):
1308  r"""get_ref_count(Object self) -> unsigned int"""
1309  return _IMP_kernel.Object_get_ref_count(self)
1310 
1311  @staticmethod
1312  def get_number_of_live_objects():
1313  r"""get_number_of_live_objects() -> unsigned int"""
1314  return _IMP_kernel.Object_get_number_of_live_objects()
1315 
1316  def get_is_shared(self):
1317  r"""get_is_shared(Object self) -> bool"""
1318  return _IMP_kernel.Object_get_is_shared(self)
1319 
1320  def clear_caches(self):
1321  r"""clear_caches(Object self)"""
1322  return _IMP_kernel.Object_clear_caches(self)
1323 
1324  def do_destroy(self):
1325  r"""do_destroy(Object self)"""
1326  return _IMP_kernel.Object_do_destroy(self)
1327 
1328  def __getstate__(self):
1329  raise NotImplementedError(str(self.__class__)
1330  + " does not support serialization")
1331 
1332 
1333  def __eq__(self, o):
1334  r"""__eq__(Object self, Object o) -> bool"""
1335  return _IMP_kernel.Object___eq__(self, o)
1336 
1337  def __ne__(self, o):
1338  r"""__ne__(Object self, Object o) -> bool"""
1339  return _IMP_kernel.Object___ne__(self, o)
1340 
1341  def __le__(self, o):
1342  r"""__le__(Object self, Object o) -> bool"""
1343  return _IMP_kernel.Object___le__(self, o)
1344 
1345  def __lt__(self, o):
1346  r"""__lt__(Object self, Object o) -> bool"""
1347  return _IMP_kernel.Object___lt__(self, o)
1348 
1349  def __ge__(self, o):
1350  r"""__ge__(Object self, Object o) -> bool"""
1351  return _IMP_kernel.Object___ge__(self, o)
1352 
1353  def __gt__(self, o):
1354  r"""__gt__(Object self, Object o) -> bool"""
1355  return _IMP_kernel.Object___gt__(self, o)
1356 
1357  def _get_director_object(self):
1358  r"""_get_director_object(Object self) -> PyObject *"""
1359  return _IMP_kernel.Object__get_director_object(self)
1360 
1362  """Return this object cast to the most derived subclass."""
1363  # If this is a SWIG director, return the original Python object
1364  pyobj = self._get_director_object()
1365  if pyobj is not None:
1366  return pyobj
1367  # Otherwise, use the object's module and type name to look up
1368  # the corresponding most-derived Python type
1369  modname = self.get_version_info().get_module().replace('::', '.')
1370  type_name = self.get_type_name()
1371  if (modname == 'IMP.core'
1372  and type_name == 'GenericBoundingBox3DSingletonScore'):
1373  type_name = 'BoundingBox3DSingletonScore'
1374  elif (modname == 'IMP.core'
1375  and type_name == 'GenericAttributeSingletonScore'):
1376  type_name = 'AttributeSingletonScore'
1377  elif (modname == 'IMP.core'
1378  and type_name == 'GenericBoundingSphere3DSingletonScore'):
1379  type_name = 'BoundingSphere3DSingletonScore'
1380  elif modname == 'IMP' and type_name == 'RestraintScoringFunction':
1381  # The implicit RestraintScoringFunction isn't exposed to Python,
1382  # so just return the base class
1383  return self
1384  elif modname == 'IMP' and type_name == 'GenericRestraintsScoringFunction':
1385  type_name = '_RestraintsScoringFunction'
1386  modobj = sys.modules[modname]
1387  clsobj = getattr(modobj, type_name)
1388  return clsobj.get_from(self)
1389 
1390 
1391  def __str__(self):
1392  r"""__str__(Object self) -> std::string"""
1393  return _IMP_kernel.Object___str__(self)
1394 
1395  def __repr__(self):
1396  r"""__repr__(Object self) -> std::string"""
1397  return _IMP_kernel.Object___repr__(self)
1398 
1399  @staticmethod
1400  def get_from(o):
1401  return _object_cast_to_Object(o)
1402 
1403  def __disown__(self):
1404  self.this.disown()
1405  _IMP_kernel.disown_Object(self)
1406  return weakref.proxy(self)
1407 
1408 # Register Object in _IMP_kernel:
1409 _IMP_kernel.Object_swigregister(Object)
1410 class SetLogState(_RAII):
1411  r"""Proxy of C++ IMP::SetLogState class."""
1412 
1413  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1414 
1415  def reset(self):
1416  r"""reset(SetLogState self)"""
1417  return _IMP_kernel.SetLogState_reset(self)
1418  __swig_destroy__ = _IMP_kernel.delete_SetLogState
1419 
1420  def show(self, *args):
1421  r"""show(SetLogState self, _ostream out=std::cout)"""
1422  return _IMP_kernel.SetLogState_show(self, *args)
1423 
1424  def __init__(self, *args):
1425  r"""
1426  __init__(SetLogState self) -> SetLogState
1427  __init__(SetLogState self, Object o, IMP::LogLevel l) -> SetLogState
1428  __init__(SetLogState self, IMP::LogLevel l) -> SetLogState
1429  """
1430  _IMP_kernel.SetLogState_swiginit(self, _IMP_kernel.new_SetLogState(*args))
1431 
1432  def set(self, *args):
1433  r"""
1434  set(SetLogState self, Object o, IMP::LogLevel l)
1435  set(SetLogState self, IMP::LogLevel l)
1436  """
1437  return _IMP_kernel.SetLogState_set(self, *args)
1438 
1439  def __enter__(self):
1440  return self
1441  def __exit__(self, exc_type, exc_val, exc_tb):
1442  self.reset()
1443  return False
1444 
1445 
1446  def __str__(self):
1447  r"""__str__(SetLogState self) -> std::string"""
1448  return _IMP_kernel.SetLogState___str__(self)
1449 
1450  def __repr__(self):
1451  r"""__repr__(SetLogState self) -> std::string"""
1452  return _IMP_kernel.SetLogState___repr__(self)
1453 
1454 # Register SetLogState in _IMP_kernel:
1455 _IMP_kernel.SetLogState_swigregister(SetLogState)
1456 class WarningContext(object):
1457  r"""Proxy of C++ IMP::WarningContext class."""
1458 
1459  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1460  data_ = property(_IMP_kernel.WarningContext_data__get, _IMP_kernel.WarningContext_data__set, doc=r"""data_ : boost::unordered_set<(std::string)>""")
1461 
1462  def add_warning(self, key, warning):
1463  r"""add_warning(WarningContext self, std::string key, std::string warning)"""
1464  return _IMP_kernel.WarningContext_add_warning(self, key, warning)
1465 
1466  def clear_warnings(self):
1467  r"""clear_warnings(WarningContext self)"""
1468  return _IMP_kernel.WarningContext_clear_warnings(self)
1469 
1470  def dump_warnings(self):
1471  r"""dump_warnings(WarningContext self)"""
1472  return _IMP_kernel.WarningContext_dump_warnings(self)
1473  __swig_destroy__ = _IMP_kernel.delete_WarningContext
1474 
1475  def show(self, *args):
1476  r"""show(WarningContext self, _ostream out=std::cout)"""
1477  return _IMP_kernel.WarningContext_show(self, *args)
1478 
1479  def __enter__(self):
1480  return self
1481  def __exit__(self, exc_type, exc_val, exc_tb):
1482  self.reset()
1483  return False
1484 
1485 
1486  def __str__(self):
1487  r"""__str__(WarningContext self) -> std::string"""
1488  return _IMP_kernel.WarningContext___str__(self)
1489 
1490  def __repr__(self):
1491  r"""__repr__(WarningContext self) -> std::string"""
1492  return _IMP_kernel.WarningContext___repr__(self)
1493 
1494  def __init__(self):
1495  r"""__init__(WarningContext self) -> WarningContext"""
1496  _IMP_kernel.WarningContext_swiginit(self, _IMP_kernel.new_WarningContext())
1497 
1498 # Register WarningContext in _IMP_kernel:
1499 _IMP_kernel.WarningContext_swigregister(WarningContext)
1500 class CreateLogContext(_RAII):
1501  r"""Proxy of C++ IMP::CreateLogContext class."""
1502 
1503  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1504 
1505  def __init__(self, *args):
1506  r"""
1507  __init__(CreateLogContext self, std::string fname, Object object=None) -> CreateLogContext
1508  __init__(CreateLogContext self) -> CreateLogContext
1509  __init__(CreateLogContext self, char const * fname, Object object=None) -> CreateLogContext
1510  """
1511  _IMP_kernel.CreateLogContext_swiginit(self, _IMP_kernel.new_CreateLogContext(*args))
1512 
1513  def set(self, fname, object=None):
1514  r"""set(CreateLogContext self, char const * fname, Object object=None)"""
1515  return _IMP_kernel.CreateLogContext_set(self, fname, object)
1516 
1517  def reset(self):
1518  r"""reset(CreateLogContext self)"""
1519  return _IMP_kernel.CreateLogContext_reset(self)
1520  __swig_destroy__ = _IMP_kernel.delete_CreateLogContext
1521 
1522  def show(self, *args):
1523  r"""show(CreateLogContext self, _ostream out=std::cout)"""
1524  return _IMP_kernel.CreateLogContext_show(self, *args)
1525 
1526  def __enter__(self):
1527  return self
1528  def __exit__(self, exc_type, exc_val, exc_tb):
1529  self.reset()
1530  return False
1531 
1532 
1533  def __str__(self):
1534  r"""__str__(CreateLogContext self) -> std::string"""
1535  return _IMP_kernel.CreateLogContext___str__(self)
1536 
1537  def __repr__(self):
1538  r"""__repr__(CreateLogContext self) -> std::string"""
1539  return _IMP_kernel.CreateLogContext___repr__(self)
1540 
1541 # Register CreateLogContext in _IMP_kernel:
1542 _IMP_kernel.CreateLogContext_swigregister(CreateLogContext)
1543 class SetCheckState(_RAII):
1544  r"""Proxy of C++ IMP::SetCheckState class."""
1545 
1546  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1547 
1548  def reset(self):
1549  r"""reset(SetCheckState self)"""
1550  return _IMP_kernel.SetCheckState_reset(self)
1551  __swig_destroy__ = _IMP_kernel.delete_SetCheckState
1552 
1553  def show(self, *args):
1554  r"""show(SetCheckState self, _ostream out=std::cout)"""
1555  return _IMP_kernel.SetCheckState_show(self, *args)
1556 
1557  def __init__(self, *args):
1558  r"""
1559  __init__(SetCheckState self) -> SetCheckState
1560  __init__(SetCheckState self, Object o, IMP::CheckLevel l) -> SetCheckState
1561  __init__(SetCheckState self, IMP::CheckLevel l) -> SetCheckState
1562  """
1563  _IMP_kernel.SetCheckState_swiginit(self, _IMP_kernel.new_SetCheckState(*args))
1564 
1565  def set(self, *args):
1566  r"""
1567  set(SetCheckState self, Object o, IMP::CheckLevel l)
1568  set(SetCheckState self, IMP::CheckLevel l)
1569  """
1570  return _IMP_kernel.SetCheckState_set(self, *args)
1571 
1572  def __enter__(self):
1573  return self
1574  def __exit__(self, exc_type, exc_val, exc_tb):
1575  self.reset()
1576  return False
1577 
1578 
1579  def __str__(self):
1580  r"""__str__(SetCheckState self) -> std::string"""
1581  return _IMP_kernel.SetCheckState___str__(self)
1582 
1583  def __repr__(self):
1584  r"""__repr__(SetCheckState self) -> std::string"""
1585  return _IMP_kernel.SetCheckState___repr__(self)
1586 
1587 # Register SetCheckState in _IMP_kernel:
1588 _IMP_kernel.SetCheckState_swigregister(SetCheckState)
1589 
1590 def get_unique_name(templ):
1591  r"""get_unique_name(std::string templ) -> std::string"""
1592  return _IMP_kernel.get_unique_name(templ)
1593 
1594 def get_copyright():
1595  r"""get_copyright() -> std::string"""
1596  return _IMP_kernel.get_copyright()
1597 class _Protection(object):
1598  r"""Proxy of C++ IMP::internal::_Protection class."""
1599 
1600  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1601 
1602  def __init__(self, *args, **kwargs):
1603  raise AttributeError("No constructor defined")
1604 
1605  def show(self, *args):
1606  r"""show(_Protection self, _ostream out=std::cout)"""
1607  return _IMP_kernel._Protection_show(self, *args)
1608 
1609  def __str__(self):
1610  r"""__str__(_Protection self) -> std::string"""
1611  return _IMP_kernel._Protection___str__(self)
1612 
1613  def __repr__(self):
1614  r"""__repr__(_Protection self) -> std::string"""
1615  return _IMP_kernel._Protection___repr__(self)
1616  __swig_destroy__ = _IMP_kernel.delete__Protection
1617 
1618 # Register _Protection in _IMP_kernel:
1619 _IMP_kernel._Protection_swigregister(_Protection)
1620 
1621 def _test_log():
1622  r"""_test_log()"""
1623  return _IMP_kernel._test_log()
1624 
1625 def _test_intranges(ips):
1626  r"""_test_intranges(IMP::IntRanges const & ips) -> int"""
1627  return _IMP_kernel._test_intranges(ips)
1628 
1629 def _test_intrange(*args):
1630  r"""
1631  _test_intrange(IMP::IntRange const & ips) -> IMP::IntRange
1632  _test_intrange() -> IMP::IntRange
1633  """
1634  return _IMP_kernel._test_intrange(*args)
1635 
1636 def _test_ifile(a):
1637  r"""_test_ifile(TextInput a) -> std::string"""
1638  return _IMP_kernel._test_ifile(a)
1639 
1640 def _test_ofile(a):
1641  r"""_test_ofile(TextOutput a) -> std::string"""
1642  return _IMP_kernel._test_ofile(a)
1643 
1644 def _test_ifile_overloaded(*args):
1645  r"""
1646  _test_ifile_overloaded(TextInput a, int i) -> std::string
1647  _test_ifile_overloaded(TextInput a, std::string st) -> std::string
1648  """
1649  return _IMP_kernel._test_ifile_overloaded(*args)
1650 
1651 def _test_ofile_overloaded(*args):
1652  r"""
1653  _test_ofile_overloaded(TextOutput a, int i) -> std::string
1654  _test_ofile_overloaded(TextOutput a, std::string st) -> std::string
1655  """
1656  return _IMP_kernel._test_ofile_overloaded(*args)
1657 class _TestValue(object):
1658  r"""Proxy of C++ IMP::internal::_TestValue class."""
1659 
1660  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1661 
1662  def __init__(self, i):
1663  r"""__init__(_TestValue self, int i) -> _TestValue"""
1664  _IMP_kernel._TestValue_swiginit(self, _IMP_kernel.new__TestValue(i))
1665 
1666  def show(self, *args):
1667  r"""show(_TestValue self, _ostream out=std::cout)"""
1668  return _IMP_kernel._TestValue_show(self, *args)
1669 
1670  def __cmp__(self, o):
1671  r"""__cmp__(_TestValue self, _TestValue o) -> int"""
1672  return _IMP_kernel._TestValue___cmp__(self, o)
1673 
1674  def __eq__(self, o):
1675  r"""__eq__(_TestValue self, _TestValue o) -> bool"""
1676  return _IMP_kernel._TestValue___eq__(self, o)
1677 
1678  def __ne__(self, o):
1679  r"""__ne__(_TestValue self, _TestValue o) -> bool"""
1680  return _IMP_kernel._TestValue___ne__(self, o)
1681 
1682  def __lt__(self, o):
1683  r"""__lt__(_TestValue self, _TestValue o) -> bool"""
1684  return _IMP_kernel._TestValue___lt__(self, o)
1685 
1686  def __gt__(self, o):
1687  r"""__gt__(_TestValue self, _TestValue o) -> bool"""
1688  return _IMP_kernel._TestValue___gt__(self, o)
1689 
1690  def __ge__(self, o):
1691  r"""__ge__(_TestValue self, _TestValue o) -> bool"""
1692  return _IMP_kernel._TestValue___ge__(self, o)
1693 
1694  def __le__(self, o):
1695  r"""__le__(_TestValue self, _TestValue o) -> bool"""
1696  return _IMP_kernel._TestValue___le__(self, o)
1697 
1698  def get(self):
1699  r"""get(_TestValue self) -> int"""
1700  return _IMP_kernel._TestValue_get(self)
1701 
1702  def get_float(self):
1703  r"""get_float(_TestValue self) -> float const &"""
1704  return _IMP_kernel._TestValue_get_float(self)
1705 
1706  def get_double(self):
1707  r"""get_double(_TestValue self) -> double const &"""
1708  return _IMP_kernel._TestValue_get_double(self)
1709 
1710  def get_Float(self):
1711  r"""get_Float(_TestValue self) -> IMP::Float const &"""
1712  return _IMP_kernel._TestValue_get_Float(self)
1713 
1714  def get_int(self):
1715  r"""get_int(_TestValue self) -> int const &"""
1716  return _IMP_kernel._TestValue_get_int(self)
1717 
1718  def get_Int(self):
1719  r"""get_Int(_TestValue self) -> IMP::Int const &"""
1720  return _IMP_kernel._TestValue_get_Int(self)
1721 
1722  def get_string(self):
1723  r"""get_string(_TestValue self) -> std::string const &"""
1724  return _IMP_kernel._TestValue_get_string(self)
1725 
1726  def get_String(self):
1727  r"""get_String(_TestValue self) -> IMP::String const &"""
1728  return _IMP_kernel._TestValue_get_String(self)
1729 
1730  def __str__(self):
1731  r"""__str__(_TestValue self) -> std::string"""
1732  return _IMP_kernel._TestValue___str__(self)
1733 
1734  def __repr__(self):
1735  r"""__repr__(_TestValue self) -> std::string"""
1736  return _IMP_kernel._TestValue___repr__(self)
1737  __swig_destroy__ = _IMP_kernel.delete__TestValue
1738 
1739 # Register _TestValue in _IMP_kernel:
1740 _IMP_kernel._TestValue_swigregister(_TestValue)
1741 
1742 def _pass_plain_pair(p):
1743  r"""_pass_plain_pair(IMP::FloatPair p) -> IMP::FloatPair"""
1744  return _IMP_kernel._pass_plain_pair(p)
1745 
1746 def _pass_overloaded_strings(*args):
1747  r"""
1748  _pass_overloaded_strings(IMP::Strings const & a, int arg2) -> IMP::Strings
1749  _pass_overloaded_strings(IMP::Strings const & a) -> IMP::Strings
1750  """
1751  return _IMP_kernel._pass_overloaded_strings(*args)
1752 
1753 def _pass_pair(p):
1754  r"""_pass_pair(IMP::DerivativePair const & p) -> IMP::DerivativePair"""
1755  return _IMP_kernel._pass_pair(p)
1756 
1757 def _pass_floats(input):
1758  r"""_pass_floats(IMP::Floats const & input) -> IMP::Floats"""
1759  return _IMP_kernel._pass_floats(input)
1760 
1761 def _pass_ints(input):
1762  r"""_pass_ints(IMP::Ints input) -> IMP::Ints"""
1763  return _IMP_kernel._pass_ints(input)
1764 
1765 def _pass_ints_list(input):
1766  r"""_pass_ints_list(IMP::IntsList const & input) -> IMP::IntsList"""
1767  return _IMP_kernel._pass_ints_list(input)
1768 
1769 def _pass_ints_lists(input):
1770  r"""_pass_ints_lists(IMP::IntsLists const & input) -> IMP::IntsLists"""
1771  return _IMP_kernel._pass_ints_lists(input)
1772 
1773 def _pass_strings(input):
1774  r"""_pass_strings(IMP::Strings const & input) -> IMP::Strings const &"""
1775  return _IMP_kernel._pass_strings(input)
1776 class _TestObject(Object):
1777  r"""Proxy of C++ IMP::internal::_TestObject class."""
1778 
1779  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1780 
1781  def __init__(self):
1782  r"""__init__(_TestObject self) -> _TestObject"""
1783  _IMP_kernel._TestObject_swiginit(self, _IMP_kernel.new__TestObject())
1784 
1785  def get_version_info(self):
1786  r"""get_version_info(_TestObject self) -> VersionInfo"""
1787  return _IMP_kernel._TestObject_get_version_info(self)
1788  __swig_destroy__ = _IMP_kernel.delete__TestObject
1789 
1790  def __str__(self):
1791  r"""__str__(_TestObject self) -> std::string"""
1792  return _IMP_kernel._TestObject___str__(self)
1793 
1794  def __repr__(self):
1795  r"""__repr__(_TestObject self) -> std::string"""
1796  return _IMP_kernel._TestObject___repr__(self)
1797 
1798  @staticmethod
1799  def get_from(o):
1800  return _object_cast_to__TestObject(o)
1801 
1802 
1803 # Register _TestObject in _IMP_kernel:
1804 _IMP_kernel._TestObject_swigregister(_TestObject)
1805 
1806 def get_live_object_names():
1807  r"""get_live_object_names() -> IMP::Strings"""
1808  return _IMP_kernel.get_live_object_names()
1809 
1810 def get_live_objects():
1811  r"""get_live_objects() -> IMP::Objects"""
1812  return _IMP_kernel.get_live_objects()
1813 
1814 def set_show_leaked_objects(tf):
1815  r"""set_show_leaked_objects(bool tf)"""
1816  return _IMP_kernel.set_show_leaked_objects(tf)
1817 
1818 def set_deprecation_warnings(tf):
1819  r"""set_deprecation_warnings(bool tf)"""
1820  return _IMP_kernel.set_deprecation_warnings(tf)
1821 
1823  r"""set_deprecation_exceptions(bool tf)"""
1824  return _IMP_kernel.set_deprecation_exceptions(tf)
1825 
1827  r"""get_deprecation_exceptions() -> bool"""
1828  return _IMP_kernel.get_deprecation_exceptions()
1829 
1830 def handle_use_deprecated(message):
1831  r"""handle_use_deprecated(std::string message)"""
1832  return _IMP_kernel.handle_use_deprecated(message)
1833 
1834 def get_number_of_threads():
1835  r"""get_number_of_threads() -> unsigned int"""
1836  return _IMP_kernel.get_number_of_threads()
1837 
1838 def set_number_of_threads(n):
1839  r"""set_number_of_threads(unsigned int n)"""
1840  return _IMP_kernel.set_number_of_threads(n)
1841 class SetNumberOfThreads(_RAII):
1842  r"""Proxy of C++ IMP::SetNumberOfThreads class."""
1843 
1844  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1845 
1846  def __init__(self, *args):
1847  r"""
1848  __init__(SetNumberOfThreads self) -> SetNumberOfThreads
1849  __init__(SetNumberOfThreads self, unsigned int n) -> SetNumberOfThreads
1850  """
1851  _IMP_kernel.SetNumberOfThreads_swiginit(self, _IMP_kernel.new_SetNumberOfThreads(*args))
1852 
1853  def set(self, n):
1854  r"""set(SetNumberOfThreads self, unsigned int n)"""
1855  return _IMP_kernel.SetNumberOfThreads_set(self, n)
1856 
1857  def reset(self):
1858  r"""reset(SetNumberOfThreads self)"""
1859  return _IMP_kernel.SetNumberOfThreads_reset(self)
1860  __swig_destroy__ = _IMP_kernel.delete_SetNumberOfThreads
1861 
1862  def show(self, *args):
1863  r"""show(SetNumberOfThreads self, _ostream out=std::cout)"""
1864  return _IMP_kernel.SetNumberOfThreads_show(self, *args)
1865 
1866  def __enter__(self):
1867  return self
1868  def __exit__(self, exc_type, exc_val, exc_tb):
1869  self.reset()
1870  return False
1871 
1872 
1873  def __str__(self):
1874  r"""__str__(SetNumberOfThreads self) -> std::string"""
1875  return _IMP_kernel.SetNumberOfThreads___str__(self)
1876 
1877  def __repr__(self):
1878  r"""__repr__(SetNumberOfThreads self) -> std::string"""
1879  return _IMP_kernel.SetNumberOfThreads___repr__(self)
1880 
1881 # Register SetNumberOfThreads in _IMP_kernel:
1882 _IMP_kernel.SetNumberOfThreads_swigregister(SetNumberOfThreads)
1883 
1884 import os
1885 i_m_p="IMP_MODULE_PATH"
1886 if i_m_p in os.environ.keys():
1887  __path__.insert(0, os.environ[i_m_p])
1888 
1889 def _forward_add_attribute(self, name, value, opt=None):
1890  if opt is not None:
1891  self.get_particle().add_attribute(name, value, opt)
1892  else:
1893  self.get_particle().add_attribute(name, value)
1894 def _forward_get_value(self, name):
1895  self.get_particle().get_value(name)
1896 def _forward_set_value(self, name, value):
1897  self.get_particle().set_value(name, value)
1898 
1899 
1900 build="release"
1901 
1902 
1903 _object_types.append("Constraint")
1904 
1905 
1906 def _object_cast_to_Constraint(o):
1907  r"""_object_cast_to_Constraint(Object o) -> Constraint"""
1908  return _IMP_kernel._object_cast_to_Constraint(o)
1909 
1910 _object_types.append("Undecorator")
1911 
1912 
1913 def _object_cast_to_Undecorator(o):
1914  r"""_object_cast_to_Undecorator(Object o) -> Undecorator"""
1915  return _IMP_kernel._object_cast_to_Undecorator(o)
1916 
1917 _object_types.append("Container")
1918 
1919 
1920 def _object_cast_to_Container(o):
1921  r"""_object_cast_to_Container(Object o) -> Container"""
1922  return _IMP_kernel._object_cast_to_Container(o)
1923 
1924 _object_types.append("Optimizer")
1925 
1926 
1927 def _object_cast_to_Optimizer(o):
1928  r"""_object_cast_to_Optimizer(Object o) -> Optimizer"""
1929  return _IMP_kernel._object_cast_to_Optimizer(o)
1930 
1931 _object_types.append("AttributeOptimizer")
1932 
1933 
1934 def _object_cast_to_AttributeOptimizer(o):
1935  r"""_object_cast_to_AttributeOptimizer(Object o) -> AttributeOptimizer"""
1936  return _IMP_kernel._object_cast_to_AttributeOptimizer(o)
1937 
1938 _object_types.append("OptimizerState")
1939 
1940 
1941 def _object_cast_to_OptimizerState(o):
1942  r"""_object_cast_to_OptimizerState(Object o) -> OptimizerState"""
1943  return _IMP_kernel._object_cast_to_OptimizerState(o)
1944 
1945 _object_types.append("PairContainer")
1946 
1947 
1948 def _object_cast_to_PairContainer(o):
1949  r"""_object_cast_to_PairContainer(Object o) -> PairContainer"""
1950  return _IMP_kernel._object_cast_to_PairContainer(o)
1951 
1952 _object_types.append("PairModifier")
1953 
1954 
1955 def _object_cast_to_PairModifier(o):
1956  r"""_object_cast_to_PairModifier(Object o) -> PairModifier"""
1957  return _IMP_kernel._object_cast_to_PairModifier(o)
1958 
1959 _object_types.append("PairScore")
1960 
1961 
1962 def _object_cast_to_PairScore(o):
1963  r"""_object_cast_to_PairScore(Object o) -> PairScore"""
1964  return _IMP_kernel._object_cast_to_PairScore(o)
1965 
1966 _object_types.append("QuadContainer")
1967 
1968 
1969 def _object_cast_to_QuadContainer(o):
1970  r"""_object_cast_to_QuadContainer(Object o) -> QuadContainer"""
1971  return _IMP_kernel._object_cast_to_QuadContainer(o)
1972 
1973 _object_types.append("QuadModifier")
1974 
1975 
1976 def _object_cast_to_QuadModifier(o):
1977  r"""_object_cast_to_QuadModifier(Object o) -> QuadModifier"""
1978  return _IMP_kernel._object_cast_to_QuadModifier(o)
1979 
1980 _object_types.append("QuadScore")
1981 
1982 
1983 def _object_cast_to_QuadScore(o):
1984  r"""_object_cast_to_QuadScore(Object o) -> QuadScore"""
1985  return _IMP_kernel._object_cast_to_QuadScore(o)
1986 
1987 _object_types.append("Refiner")
1988 
1989 
1990 def _object_cast_to_Refiner(o):
1991  r"""_object_cast_to_Refiner(Object o) -> Refiner"""
1992  return _IMP_kernel._object_cast_to_Refiner(o)
1993 
1994 _object_types.append("Restraint")
1995 
1996 
1997 def _object_cast_to_Restraint(o):
1998  r"""_object_cast_to_Restraint(Object o) -> Restraint"""
1999  return _IMP_kernel._object_cast_to_Restraint(o)
2000 
2001 _object_types.append("Sampler")
2002 
2003 
2004 def _object_cast_to_Sampler(o):
2005  r"""_object_cast_to_Sampler(Object o) -> Sampler"""
2006  return _IMP_kernel._object_cast_to_Sampler(o)
2007 
2008 _object_types.append("ScoreState")
2009 
2010 
2011 def _object_cast_to_ScoreState(o):
2012  r"""_object_cast_to_ScoreState(Object o) -> ScoreState"""
2013  return _IMP_kernel._object_cast_to_ScoreState(o)
2014 
2015 _object_types.append("SingletonContainer")
2016 
2017 
2018 def _object_cast_to_SingletonContainer(o):
2019  r"""_object_cast_to_SingletonContainer(Object o) -> SingletonContainer"""
2020  return _IMP_kernel._object_cast_to_SingletonContainer(o)
2021 
2022 _object_types.append("SingletonModifier")
2023 
2024 
2025 def _object_cast_to_SingletonModifier(o):
2026  r"""_object_cast_to_SingletonModifier(Object o) -> SingletonModifier"""
2027  return _IMP_kernel._object_cast_to_SingletonModifier(o)
2028 
2029 _object_types.append("SingletonScore")
2030 
2031 
2032 def _object_cast_to_SingletonScore(o):
2033  r"""_object_cast_to_SingletonScore(Object o) -> SingletonScore"""
2034  return _IMP_kernel._object_cast_to_SingletonScore(o)
2035 
2036 _object_types.append("TripletContainer")
2037 
2038 
2039 def _object_cast_to_TripletContainer(o):
2040  r"""_object_cast_to_TripletContainer(Object o) -> TripletContainer"""
2041  return _IMP_kernel._object_cast_to_TripletContainer(o)
2042 
2043 _object_types.append("TripletModifier")
2044 
2045 
2046 def _object_cast_to_TripletModifier(o):
2047  r"""_object_cast_to_TripletModifier(Object o) -> TripletModifier"""
2048  return _IMP_kernel._object_cast_to_TripletModifier(o)
2049 
2050 _object_types.append("TripletScore")
2051 
2052 
2053 def _object_cast_to_TripletScore(o):
2054  r"""_object_cast_to_TripletScore(Object o) -> TripletScore"""
2055  return _IMP_kernel._object_cast_to_TripletScore(o)
2056 
2057 _object_types.append("UnaryFunction")
2058 
2059 
2060 def _object_cast_to_UnaryFunction(o):
2061  r"""_object_cast_to_UnaryFunction(Object o) -> UnaryFunction"""
2062  return _IMP_kernel._object_cast_to_UnaryFunction(o)
2063 
2064 _object_types.append("RestraintInfo")
2065 
2066 
2067 def _object_cast_to_RestraintInfo(o):
2068  r"""_object_cast_to_RestraintInfo(Object o) -> RestraintInfo"""
2069  return _IMP_kernel._object_cast_to_RestraintInfo(o)
2070 
2071 _object_types.append("ConfigurationSet")
2072 
2073 
2074 def _object_cast_to_ConfigurationSet(o):
2075  r"""_object_cast_to_ConfigurationSet(Object o) -> ConfigurationSet"""
2076  return _IMP_kernel._object_cast_to_ConfigurationSet(o)
2077 
2078 _object_types.append("Configuration")
2079 
2080 
2081 def _object_cast_to_Configuration(o):
2082  r"""_object_cast_to_Configuration(Object o) -> Configuration"""
2083  return _IMP_kernel._object_cast_to_Configuration(o)
2084 
2085 _object_types.append("Model")
2086 
2087 
2088 def _object_cast_to_Model(o):
2089  r"""_object_cast_to_Model(Object o) -> Model"""
2090  return _IMP_kernel._object_cast_to_Model(o)
2091 
2092 _object_types.append("Particle")
2093 
2094 
2095 def _object_cast_to_Particle(o):
2096  r"""_object_cast_to_Particle(Object o) -> Particle"""
2097  return _IMP_kernel._object_cast_to_Particle(o)
2098 
2099 _object_types.append("RestraintSet")
2100 
2101 
2102 def _object_cast_to_RestraintSet(o):
2103  r"""_object_cast_to_RestraintSet(Object o) -> RestraintSet"""
2104  return _IMP_kernel._object_cast_to_RestraintSet(o)
2105 
2106 ParticlePairsTemp=list
2107 _plural_types.append("ParticlePairsTemp")
2108 _value_types.append("ParticlePair")
2109 
2110 
2111 ParticleTripletsTemp=list
2112 _plural_types.append("ParticleTripletsTemp")
2113 _value_types.append("ParticleTriplet")
2114 
2115 
2116 ParticleQuadsTemp=list
2117 _plural_types.append("ParticleQuadsTemp")
2118 _value_types.append("ParticleQuad")
2119 
2120 
2121 ParticleIndexPairs=list
2122 _plural_types.append("ParticleIndexPairs")
2123 _value_types.append("ParticleIndexPair")
2124 
2125 
2126 ParticleIndexTriplets=list
2127 _plural_types.append("ParticleIndexTriplets")
2128 _value_types.append("ParticleIndexTriplet")
2129 
2130 
2131 ParticleIndexQuads=list
2132 _plural_types.append("ParticleIndexQuads")
2133 _value_types.append("ParticleIndexQuad")
2134 
2135 
2136 _object_types.append("SingletonPredicate")
2137 
2138 
2139 def _object_cast_to_SingletonPredicate(o):
2140  r"""_object_cast_to_SingletonPredicate(Object o) -> SingletonPredicate"""
2141  return _IMP_kernel._object_cast_to_SingletonPredicate(o)
2142 
2143 _object_types.append("PairPredicate")
2144 
2145 
2146 def _object_cast_to_PairPredicate(o):
2147  r"""_object_cast_to_PairPredicate(Object o) -> PairPredicate"""
2148  return _IMP_kernel._object_cast_to_PairPredicate(o)
2149 
2150 _object_types.append("TripletPredicate")
2151 
2152 
2153 def _object_cast_to_TripletPredicate(o):
2154  r"""_object_cast_to_TripletPredicate(Object o) -> TripletPredicate"""
2155  return _IMP_kernel._object_cast_to_TripletPredicate(o)
2156 
2157 _object_types.append("QuadPredicate")
2158 
2159 
2160 def _object_cast_to_QuadPredicate(o):
2161  r"""_object_cast_to_QuadPredicate(Object o) -> QuadPredicate"""
2162  return _IMP_kernel._object_cast_to_QuadPredicate(o)
2163 
2164 _object_types.append("SaveToConfigurationSetOptimizerState")
2165 
2166 
2167 def _object_cast_to_SaveToConfigurationSetOptimizerState(o):
2168  r"""_object_cast_to_SaveToConfigurationSetOptimizerState(Object o) -> SaveToConfigurationSetOptimizerState"""
2169  return _IMP_kernel._object_cast_to_SaveToConfigurationSetOptimizerState(o)
2170 
2171 EvaluationStates=list
2172 _plural_types.append("EvaluationStates")
2173 _value_types.append("EvaluationState")
2174 
2175 
2176 ScoreAccumulators=list
2177 _plural_types.append("ScoreAccumulators")
2178 _value_types.append("ScoreAccumulator")
2179 
2180 
2181 ParticleIndexes=list
2182 _plural_types.append("ParticleIndexes")
2183 _value_types.append("ParticleIndex")
2184 
2185 
2186 FloatIndexes=list
2187 _plural_types.append("FloatIndexes")
2188 _value_types.append("FloatIndex")
2189 
2190 
2191 FloatKeys=list
2192 _plural_types.append("FloatKeys")
2193 _value_types.append("FloatKey")
2194 
2195 
2196 FloatsKeys=list
2197 _plural_types.append("FloatsKeys")
2198 _value_types.append("FloatsKey")
2199 
2200 
2201 IntKeys=list
2202 _plural_types.append("IntKeys")
2203 _value_types.append("IntKey")
2204 
2205 
2206 IntsKeys=list
2207 _plural_types.append("IntsKeys")
2208 _value_types.append("IntsKey")
2209 
2210 
2211 StringKeys=list
2212 _plural_types.append("StringKeys")
2213 _value_types.append("StringKey")
2214 
2215 
2216 ParticleIndexKeys=list
2217 _plural_types.append("ParticleIndexKeys")
2218 _value_types.append("ParticleIndexKey")
2219 
2220 
2221 ParticleIndexesKeys=list
2222 _plural_types.append("ParticleIndexesKeys")
2223 _value_types.append("ParticleIndexesKey")
2224 
2225 
2226 ObjectKeys=list
2227 _plural_types.append("ObjectKeys")
2228 _value_types.append("ObjectKey")
2229 
2230 
2231 ModelKeys=list
2232 _plural_types.append("ModelKeys")
2233 _value_types.append("ModelKey")
2234 
2235 
2236 TriggerKeys=list
2237 _plural_types.append("TriggerKeys")
2238 _value_types.append("TriggerKey")
2239 
2240 
2241 SparseFloatKeys=list
2242 _plural_types.append("SparseFloatKeys")
2243 _value_types.append("SparseFloatKey")
2244 
2245 
2246 SparseIntKeys=list
2247 _plural_types.append("SparseIntKeys")
2248 _value_types.append("SparseIntKey")
2249 
2250 
2251 SparseStringKeys=list
2252 _plural_types.append("SparseStringKeys")
2253 _value_types.append("SparseStringKey")
2254 
2255 
2256 SparseParticleIndexKeys=list
2257 _plural_types.append("SparseParticleIndexKeys")
2258 _value_types.append("SparseParticleIndexKey")
2259 
2260 
2261 Vector3DKeys=list
2262 _plural_types.append("Vector3DKeys")
2263 _value_types.append("Vector3DKey")
2264 
2265 
2266 Vector4DKeys=list
2267 _plural_types.append("Vector4DKeys")
2268 _value_types.append("Vector4DKey")
2269 
2270 
2271 Vector3DDerivKeys=list
2272 _plural_types.append("Vector3DDerivKeys")
2273 _value_types.append("Vector3DDerivKey")
2274 
2275 
2276 Vector4DDerivKeys=list
2277 _plural_types.append("Vector4DDerivKeys")
2278 _value_types.append("Vector4DDerivKey")
2279 
2280 
2281 _raii_types.append("ScopedSetFloatAttribute")
2282 
2283 
2284 _object_types.append("ScoringFunction")
2285 
2286 
2287 def _object_cast_to_ScoringFunction(o):
2288  r"""_object_cast_to_ScoringFunction(Object o) -> ScoringFunction"""
2289  return _IMP_kernel._object_cast_to_ScoringFunction(o)
2290 
2291 _object_types.append("ModelObject")
2292 
2293 
2294 def _object_cast_to_ModelObject(o):
2295  r"""_object_cast_to_ModelObject(Object o) -> ModelObject"""
2296  return _IMP_kernel._object_cast_to_ModelObject(o)
2297 
2298 _object_types.append("_RestraintsScoringFunction")
2299 
2300 
2301 def _object_cast_to__RestraintsScoringFunction(o):
2302  r"""_object_cast_to__RestraintsScoringFunction(Object o) -> _RestraintsScoringFunction"""
2303  return _IMP_kernel._object_cast_to__RestraintsScoringFunction(o)
2304 
2305 def _TrivialDecorators(l=[]):
2306  return [_TrivialDecorator(x) for x in l]
2307 _plural_types.append("_TrivialDecorators")
2308 
2309 
2310 _value_types.append("_TrivialDecorator")
2311 
2312 
2313 def _TrivialDerivedDecorators(l=[]):
2314  return [_TrivialDerivedDecorator(x) for x in l]
2315 _plural_types.append("_TrivialDerivedDecorators")
2316 
2317 
2318 _value_types.append("_TrivialDerivedDecorator")
2319 
2320 
2321 def _TrivialTraitsDecorators(l=[]):
2322  return [_TrivialTraitsDecorator(x) for x in l]
2323 _plural_types.append("_TrivialTraitsDecorators")
2324 
2325 
2326 _value_types.append("_TrivialTraitsDecorator")
2327 
2328 
2329 _object_types.append("_ConstRestraint")
2330 
2331 
2332 def _object_cast_to__ConstRestraint(o):
2333  r"""_object_cast_to__ConstRestraint(Object o) -> _ConstRestraint"""
2334  return _IMP_kernel._object_cast_to__ConstRestraint(o)
2335 
2336 _object_types.append("_ConstOptimizer")
2337 
2338 
2339 def _object_cast_to__ConstOptimizer(o):
2340  r"""_object_cast_to__ConstOptimizer(Object o) -> _ConstOptimizer"""
2341  return _IMP_kernel._object_cast_to__ConstOptimizer(o)
2342 
2343 _object_types.append("_ConstSingletonScore")
2344 
2345 
2346 def _object_cast_to__ConstSingletonScore(o):
2347  r"""_object_cast_to__ConstSingletonScore(Object o) -> _ConstSingletonScore"""
2348  return _IMP_kernel._object_cast_to__ConstSingletonScore(o)
2349 
2350 _object_types.append("_ConstPairScore")
2351 
2352 
2353 def _object_cast_to__ConstPairScore(o):
2354  r"""_object_cast_to__ConstPairScore(Object o) -> _ConstPairScore"""
2355  return _IMP_kernel._object_cast_to__ConstPairScore(o)
2356 class DependencyGraph(Object):
2357  r"""Proxy of C++ IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex > class."""
2358 
2359  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2360  __repr__ = _swig_repr
2361 
2362  def __init__(self):
2363  r"""__init__(DependencyGraph self) -> DependencyGraph"""
2364  _IMP_kernel.DependencyGraph_swiginit(self, _IMP_kernel.new_DependencyGraph())
2365 
2366  def get_graph(self):
2367  r"""get_graph(DependencyGraph self) -> IMP::DependencyGraph const &"""
2368  return _IMP_kernel.DependencyGraph_get_graph(self)
2369 
2370  def get_vertices(self):
2371  r"""get_vertices(DependencyGraph self) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptors"""
2372  return _IMP_kernel.DependencyGraph_get_vertices(self)
2373 
2374  def get_vertex_name(self, i):
2375  r"""get_vertex_name(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor i) -> ModelObject"""
2376  return _IMP_kernel.DependencyGraph_get_vertex_name(self, i)
2377 
2378  def get_in_neighbors(self, v):
2379  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"""
2380  return _IMP_kernel.DependencyGraph_get_in_neighbors(self, v)
2381 
2382  def get_out_neighbors(self, v):
2383  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"""
2384  return _IMP_kernel.DependencyGraph_get_out_neighbors(self, v)
2385 
2386  def show_graphviz(self, *args):
2387  r"""show_graphviz(DependencyGraph self, _ostream out=std::cout)"""
2388  return _IMP_kernel.DependencyGraph_show_graphviz(self, *args)
2389 
2390  def get_graphviz_string(self):
2391  r"""get_graphviz_string(DependencyGraph self) -> std::string"""
2392  return _IMP_kernel.DependencyGraph_get_graphviz_string(self)
2393 
2394  def add_edge(self, v0, v1):
2395  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)"""
2396  return _IMP_kernel.DependencyGraph_add_edge(self, v0, v1)
2397 
2398  def add_vertex(self, l):
2399  r"""add_vertex(DependencyGraph self, ModelObject l) -> IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor"""
2400  return _IMP_kernel.DependencyGraph_add_vertex(self, l)
2401 
2402  def remove_vertex(self, l):
2403  r"""remove_vertex(DependencyGraph self, IMP::internal::BoostDigraph< IMP::DependencyGraph,IMP::ModelObject *,IMP::ShowDependencyGraphVertex >::VertexDescriptor l)"""
2404  return _IMP_kernel.DependencyGraph_remove_vertex(self, l)
2405  __swig_destroy__ = _IMP_kernel.delete_DependencyGraph
2406 
2407 # Register DependencyGraph in _IMP_kernel:
2408 _IMP_kernel.DependencyGraph_swigregister(DependencyGraph)
2409 
2410 _value_types.append("DependencyGraph")
2411 
2412 class FloatKey(_Value):
2413  r"""Proxy of C++ IMP::Key< 0 > class."""
2414 
2415  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2416 
2417  def __init__(self, *args):
2418  r"""
2419  __init__(FloatKey self) -> FloatKey
2420  __init__(FloatKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatKey
2421  __init__(FloatKey self, unsigned int i) -> FloatKey
2422  """
2423  _IMP_kernel.FloatKey_swiginit(self, _IMP_kernel.new_FloatKey(*args))
2424 
2425  @staticmethod
2426  def add_key(sc):
2427  r"""add_key(std::string sc) -> unsigned int"""
2428  return _IMP_kernel.FloatKey_add_key(sc)
2429 
2430  @staticmethod
2431  def get_key_exists(sc):
2432  r"""get_key_exists(std::string sc) -> bool"""
2433  return _IMP_kernel.FloatKey_get_key_exists(sc)
2434 
2435  def get_string(self):
2436  r"""get_string(FloatKey self) -> std::string const"""
2437  return _IMP_kernel.FloatKey_get_string(self)
2438 
2439  def __cmp__(self, o):
2440  r"""__cmp__(FloatKey self, FloatKey o) -> int"""
2441  return _IMP_kernel.FloatKey___cmp__(self, o)
2442 
2443  def __eq__(self, o):
2444  r"""__eq__(FloatKey self, FloatKey o) -> bool"""
2445  return _IMP_kernel.FloatKey___eq__(self, o)
2446 
2447  def __ne__(self, o):
2448  r"""__ne__(FloatKey self, FloatKey o) -> bool"""
2449  return _IMP_kernel.FloatKey___ne__(self, o)
2450 
2451  def __lt__(self, o):
2452  r"""__lt__(FloatKey self, FloatKey o) -> bool"""
2453  return _IMP_kernel.FloatKey___lt__(self, o)
2454 
2455  def __gt__(self, o):
2456  r"""__gt__(FloatKey self, FloatKey o) -> bool"""
2457  return _IMP_kernel.FloatKey___gt__(self, o)
2458 
2459  def __ge__(self, o):
2460  r"""__ge__(FloatKey self, FloatKey o) -> bool"""
2461  return _IMP_kernel.FloatKey___ge__(self, o)
2462 
2463  def __le__(self, o):
2464  r"""__le__(FloatKey self, FloatKey o) -> bool"""
2465  return _IMP_kernel.FloatKey___le__(self, o)
2466 
2467  def __hash__(self):
2468  r"""__hash__(FloatKey self) -> std::size_t"""
2469  return _IMP_kernel.FloatKey___hash__(self)
2470 
2471  def show(self, *args):
2472  r"""show(FloatKey self, _ostream out=std::cout)"""
2473  return _IMP_kernel.FloatKey_show(self, *args)
2474 
2475  @staticmethod
2476  def add_alias(old_key, new_name):
2477  r"""add_alias(FloatKey old_key, std::string new_name) -> FloatKey"""
2478  return _IMP_kernel.FloatKey_add_alias(old_key, new_name)
2479 
2480  @staticmethod
2481  def get_number_of_keys():
2482  r"""get_number_of_keys() -> unsigned int"""
2483  return _IMP_kernel.FloatKey_get_number_of_keys()
2484 
2485  def get_index(self):
2486  r"""get_index(FloatKey self) -> unsigned int"""
2487  return _IMP_kernel.FloatKey_get_index(self)
2488 
2489  @staticmethod
2490  def show_all(out):
2491  r"""show_all(_ostream out)"""
2492  return _IMP_kernel.FloatKey_show_all(out)
2493 
2494  @staticmethod
2495  def get_all_strings():
2496  r"""get_all_strings() -> IMP::Vector< std::string >"""
2497  return _IMP_kernel.FloatKey_get_all_strings()
2498 
2499  @staticmethod
2500  def get_number_unique():
2501  r"""get_number_unique() -> unsigned int"""
2502  return _IMP_kernel.FloatKey_get_number_unique()
2503 
2504  def __str__(self):
2505  r"""__str__(FloatKey self) -> std::string"""
2506  return _IMP_kernel.FloatKey___str__(self)
2507 
2508  def __repr__(self):
2509  r"""__repr__(FloatKey self) -> std::string"""
2510  return _IMP_kernel.FloatKey___repr__(self)
2511  __swig_destroy__ = _IMP_kernel.delete_FloatKey
2512 
2513 # Register FloatKey in _IMP_kernel:
2514 _IMP_kernel.FloatKey_swigregister(FloatKey)
2515 class IntKey(_Value):
2516  r"""Proxy of C++ IMP::Key< 1 > class."""
2517 
2518  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2519 
2520  def __init__(self, *args):
2521  r"""
2522  __init__(IntKey self) -> IntKey
2523  __init__(IntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntKey
2524  __init__(IntKey self, unsigned int i) -> IntKey
2525  """
2526  _IMP_kernel.IntKey_swiginit(self, _IMP_kernel.new_IntKey(*args))
2527 
2528  @staticmethod
2529  def add_key(sc):
2530  r"""add_key(std::string sc) -> unsigned int"""
2531  return _IMP_kernel.IntKey_add_key(sc)
2532 
2533  @staticmethod
2534  def get_key_exists(sc):
2535  r"""get_key_exists(std::string sc) -> bool"""
2536  return _IMP_kernel.IntKey_get_key_exists(sc)
2537 
2538  def get_string(self):
2539  r"""get_string(IntKey self) -> std::string const"""
2540  return _IMP_kernel.IntKey_get_string(self)
2541 
2542  def __cmp__(self, o):
2543  r"""__cmp__(IntKey self, IntKey o) -> int"""
2544  return _IMP_kernel.IntKey___cmp__(self, o)
2545 
2546  def __eq__(self, o):
2547  r"""__eq__(IntKey self, IntKey o) -> bool"""
2548  return _IMP_kernel.IntKey___eq__(self, o)
2549 
2550  def __ne__(self, o):
2551  r"""__ne__(IntKey self, IntKey o) -> bool"""
2552  return _IMP_kernel.IntKey___ne__(self, o)
2553 
2554  def __lt__(self, o):
2555  r"""__lt__(IntKey self, IntKey o) -> bool"""
2556  return _IMP_kernel.IntKey___lt__(self, o)
2557 
2558  def __gt__(self, o):
2559  r"""__gt__(IntKey self, IntKey o) -> bool"""
2560  return _IMP_kernel.IntKey___gt__(self, o)
2561 
2562  def __ge__(self, o):
2563  r"""__ge__(IntKey self, IntKey o) -> bool"""
2564  return _IMP_kernel.IntKey___ge__(self, o)
2565 
2566  def __le__(self, o):
2567  r"""__le__(IntKey self, IntKey o) -> bool"""
2568  return _IMP_kernel.IntKey___le__(self, o)
2569 
2570  def __hash__(self):
2571  r"""__hash__(IntKey self) -> std::size_t"""
2572  return _IMP_kernel.IntKey___hash__(self)
2573 
2574  def show(self, *args):
2575  r"""show(IntKey self, _ostream out=std::cout)"""
2576  return _IMP_kernel.IntKey_show(self, *args)
2577 
2578  @staticmethod
2579  def add_alias(old_key, new_name):
2580  r"""add_alias(IntKey old_key, std::string new_name) -> IntKey"""
2581  return _IMP_kernel.IntKey_add_alias(old_key, new_name)
2582 
2583  @staticmethod
2584  def get_number_of_keys():
2585  r"""get_number_of_keys() -> unsigned int"""
2586  return _IMP_kernel.IntKey_get_number_of_keys()
2587 
2588  def get_index(self):
2589  r"""get_index(IntKey self) -> unsigned int"""
2590  return _IMP_kernel.IntKey_get_index(self)
2591 
2592  @staticmethod
2593  def show_all(out):
2594  r"""show_all(_ostream out)"""
2595  return _IMP_kernel.IntKey_show_all(out)
2596 
2597  @staticmethod
2598  def get_all_strings():
2599  r"""get_all_strings() -> IMP::Vector< std::string >"""
2600  return _IMP_kernel.IntKey_get_all_strings()
2601 
2602  @staticmethod
2603  def get_number_unique():
2604  r"""get_number_unique() -> unsigned int"""
2605  return _IMP_kernel.IntKey_get_number_unique()
2606 
2607  def __str__(self):
2608  r"""__str__(IntKey self) -> std::string"""
2609  return _IMP_kernel.IntKey___str__(self)
2610 
2611  def __repr__(self):
2612  r"""__repr__(IntKey self) -> std::string"""
2613  return _IMP_kernel.IntKey___repr__(self)
2614  __swig_destroy__ = _IMP_kernel.delete_IntKey
2615 
2616 # Register IntKey in _IMP_kernel:
2617 _IMP_kernel.IntKey_swigregister(IntKey)
2618 class StringKey(_Value):
2619  r"""Proxy of C++ IMP::Key< 2 > class."""
2620 
2621  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2622 
2623  def __init__(self, *args):
2624  r"""
2625  __init__(StringKey self) -> StringKey
2626  __init__(StringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> StringKey
2627  __init__(StringKey self, unsigned int i) -> StringKey
2628  """
2629  _IMP_kernel.StringKey_swiginit(self, _IMP_kernel.new_StringKey(*args))
2630 
2631  @staticmethod
2632  def add_key(sc):
2633  r"""add_key(std::string sc) -> unsigned int"""
2634  return _IMP_kernel.StringKey_add_key(sc)
2635 
2636  @staticmethod
2637  def get_key_exists(sc):
2638  r"""get_key_exists(std::string sc) -> bool"""
2639  return _IMP_kernel.StringKey_get_key_exists(sc)
2640 
2641  def get_string(self):
2642  r"""get_string(StringKey self) -> std::string const"""
2643  return _IMP_kernel.StringKey_get_string(self)
2644 
2645  def __cmp__(self, o):
2646  r"""__cmp__(StringKey self, StringKey o) -> int"""
2647  return _IMP_kernel.StringKey___cmp__(self, o)
2648 
2649  def __eq__(self, o):
2650  r"""__eq__(StringKey self, StringKey o) -> bool"""
2651  return _IMP_kernel.StringKey___eq__(self, o)
2652 
2653  def __ne__(self, o):
2654  r"""__ne__(StringKey self, StringKey o) -> bool"""
2655  return _IMP_kernel.StringKey___ne__(self, o)
2656 
2657  def __lt__(self, o):
2658  r"""__lt__(StringKey self, StringKey o) -> bool"""
2659  return _IMP_kernel.StringKey___lt__(self, o)
2660 
2661  def __gt__(self, o):
2662  r"""__gt__(StringKey self, StringKey o) -> bool"""
2663  return _IMP_kernel.StringKey___gt__(self, o)
2664 
2665  def __ge__(self, o):
2666  r"""__ge__(StringKey self, StringKey o) -> bool"""
2667  return _IMP_kernel.StringKey___ge__(self, o)
2668 
2669  def __le__(self, o):
2670  r"""__le__(StringKey self, StringKey o) -> bool"""
2671  return _IMP_kernel.StringKey___le__(self, o)
2672 
2673  def __hash__(self):
2674  r"""__hash__(StringKey self) -> std::size_t"""
2675  return _IMP_kernel.StringKey___hash__(self)
2676 
2677  def show(self, *args):
2678  r"""show(StringKey self, _ostream out=std::cout)"""
2679  return _IMP_kernel.StringKey_show(self, *args)
2680 
2681  @staticmethod
2682  def add_alias(old_key, new_name):
2683  r"""add_alias(StringKey old_key, std::string new_name) -> StringKey"""
2684  return _IMP_kernel.StringKey_add_alias(old_key, new_name)
2685 
2686  @staticmethod
2687  def get_number_of_keys():
2688  r"""get_number_of_keys() -> unsigned int"""
2689  return _IMP_kernel.StringKey_get_number_of_keys()
2690 
2691  def get_index(self):
2692  r"""get_index(StringKey self) -> unsigned int"""
2693  return _IMP_kernel.StringKey_get_index(self)
2694 
2695  @staticmethod
2696  def show_all(out):
2697  r"""show_all(_ostream out)"""
2698  return _IMP_kernel.StringKey_show_all(out)
2699 
2700  @staticmethod
2701  def get_all_strings():
2702  r"""get_all_strings() -> IMP::Vector< std::string >"""
2703  return _IMP_kernel.StringKey_get_all_strings()
2704 
2705  @staticmethod
2706  def get_number_unique():
2707  r"""get_number_unique() -> unsigned int"""
2708  return _IMP_kernel.StringKey_get_number_unique()
2709 
2710  def __str__(self):
2711  r"""__str__(StringKey self) -> std::string"""
2712  return _IMP_kernel.StringKey___str__(self)
2713 
2714  def __repr__(self):
2715  r"""__repr__(StringKey self) -> std::string"""
2716  return _IMP_kernel.StringKey___repr__(self)
2717  __swig_destroy__ = _IMP_kernel.delete_StringKey
2718 
2719 # Register StringKey in _IMP_kernel:
2720 _IMP_kernel.StringKey_swigregister(StringKey)
2721 class ParticleIndexKey(_Value):
2722  r"""Proxy of C++ IMP::Key< 3 > class."""
2723 
2724  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2725 
2726  def __init__(self, *args):
2727  r"""
2728  __init__(ParticleIndexKey self) -> ParticleIndexKey
2729  __init__(ParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexKey
2730  __init__(ParticleIndexKey self, unsigned int i) -> ParticleIndexKey
2731  """
2732  _IMP_kernel.ParticleIndexKey_swiginit(self, _IMP_kernel.new_ParticleIndexKey(*args))
2733 
2734  @staticmethod
2735  def add_key(sc):
2736  r"""add_key(std::string sc) -> unsigned int"""
2737  return _IMP_kernel.ParticleIndexKey_add_key(sc)
2738 
2739  @staticmethod
2740  def get_key_exists(sc):
2741  r"""get_key_exists(std::string sc) -> bool"""
2742  return _IMP_kernel.ParticleIndexKey_get_key_exists(sc)
2743 
2744  def get_string(self):
2745  r"""get_string(ParticleIndexKey self) -> std::string const"""
2746  return _IMP_kernel.ParticleIndexKey_get_string(self)
2747 
2748  def __cmp__(self, o):
2749  r"""__cmp__(ParticleIndexKey self, ParticleIndexKey o) -> int"""
2750  return _IMP_kernel.ParticleIndexKey___cmp__(self, o)
2751 
2752  def __eq__(self, o):
2753  r"""__eq__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2754  return _IMP_kernel.ParticleIndexKey___eq__(self, o)
2755 
2756  def __ne__(self, o):
2757  r"""__ne__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2758  return _IMP_kernel.ParticleIndexKey___ne__(self, o)
2759 
2760  def __lt__(self, o):
2761  r"""__lt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2762  return _IMP_kernel.ParticleIndexKey___lt__(self, o)
2763 
2764  def __gt__(self, o):
2765  r"""__gt__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2766  return _IMP_kernel.ParticleIndexKey___gt__(self, o)
2767 
2768  def __ge__(self, o):
2769  r"""__ge__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2770  return _IMP_kernel.ParticleIndexKey___ge__(self, o)
2771 
2772  def __le__(self, o):
2773  r"""__le__(ParticleIndexKey self, ParticleIndexKey o) -> bool"""
2774  return _IMP_kernel.ParticleIndexKey___le__(self, o)
2775 
2776  def __hash__(self):
2777  r"""__hash__(ParticleIndexKey self) -> std::size_t"""
2778  return _IMP_kernel.ParticleIndexKey___hash__(self)
2779 
2780  def show(self, *args):
2781  r"""show(ParticleIndexKey self, _ostream out=std::cout)"""
2782  return _IMP_kernel.ParticleIndexKey_show(self, *args)
2783 
2784  @staticmethod
2785  def add_alias(old_key, new_name):
2786  r"""add_alias(ParticleIndexKey old_key, std::string new_name) -> ParticleIndexKey"""
2787  return _IMP_kernel.ParticleIndexKey_add_alias(old_key, new_name)
2788 
2789  @staticmethod
2790  def get_number_of_keys():
2791  r"""get_number_of_keys() -> unsigned int"""
2792  return _IMP_kernel.ParticleIndexKey_get_number_of_keys()
2793 
2794  def get_index(self):
2795  r"""get_index(ParticleIndexKey self) -> unsigned int"""
2796  return _IMP_kernel.ParticleIndexKey_get_index(self)
2797 
2798  @staticmethod
2799  def show_all(out):
2800  r"""show_all(_ostream out)"""
2801  return _IMP_kernel.ParticleIndexKey_show_all(out)
2802 
2803  @staticmethod
2804  def get_all_strings():
2805  r"""get_all_strings() -> IMP::Vector< std::string >"""
2806  return _IMP_kernel.ParticleIndexKey_get_all_strings()
2807 
2808  @staticmethod
2809  def get_number_unique():
2810  r"""get_number_unique() -> unsigned int"""
2811  return _IMP_kernel.ParticleIndexKey_get_number_unique()
2812 
2813  def __str__(self):
2814  r"""__str__(ParticleIndexKey self) -> std::string"""
2815  return _IMP_kernel.ParticleIndexKey___str__(self)
2816 
2817  def __repr__(self):
2818  r"""__repr__(ParticleIndexKey self) -> std::string"""
2819  return _IMP_kernel.ParticleIndexKey___repr__(self)
2820  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexKey
2821 
2822 # Register ParticleIndexKey in _IMP_kernel:
2823 _IMP_kernel.ParticleIndexKey_swigregister(ParticleIndexKey)
2824 class ObjectKey(_Value):
2825  r"""Proxy of C++ IMP::Key< 4 > class."""
2826 
2827  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2828 
2829  def __init__(self, *args):
2830  r"""
2831  __init__(ObjectKey self) -> ObjectKey
2832  __init__(ObjectKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ObjectKey
2833  __init__(ObjectKey self, unsigned int i) -> ObjectKey
2834  """
2835  _IMP_kernel.ObjectKey_swiginit(self, _IMP_kernel.new_ObjectKey(*args))
2836 
2837  @staticmethod
2838  def add_key(sc):
2839  r"""add_key(std::string sc) -> unsigned int"""
2840  return _IMP_kernel.ObjectKey_add_key(sc)
2841 
2842  @staticmethod
2843  def get_key_exists(sc):
2844  r"""get_key_exists(std::string sc) -> bool"""
2845  return _IMP_kernel.ObjectKey_get_key_exists(sc)
2846 
2847  def get_string(self):
2848  r"""get_string(ObjectKey self) -> std::string const"""
2849  return _IMP_kernel.ObjectKey_get_string(self)
2850 
2851  def __cmp__(self, o):
2852  r"""__cmp__(ObjectKey self, ObjectKey o) -> int"""
2853  return _IMP_kernel.ObjectKey___cmp__(self, o)
2854 
2855  def __eq__(self, o):
2856  r"""__eq__(ObjectKey self, ObjectKey o) -> bool"""
2857  return _IMP_kernel.ObjectKey___eq__(self, o)
2858 
2859  def __ne__(self, o):
2860  r"""__ne__(ObjectKey self, ObjectKey o) -> bool"""
2861  return _IMP_kernel.ObjectKey___ne__(self, o)
2862 
2863  def __lt__(self, o):
2864  r"""__lt__(ObjectKey self, ObjectKey o) -> bool"""
2865  return _IMP_kernel.ObjectKey___lt__(self, o)
2866 
2867  def __gt__(self, o):
2868  r"""__gt__(ObjectKey self, ObjectKey o) -> bool"""
2869  return _IMP_kernel.ObjectKey___gt__(self, o)
2870 
2871  def __ge__(self, o):
2872  r"""__ge__(ObjectKey self, ObjectKey o) -> bool"""
2873  return _IMP_kernel.ObjectKey___ge__(self, o)
2874 
2875  def __le__(self, o):
2876  r"""__le__(ObjectKey self, ObjectKey o) -> bool"""
2877  return _IMP_kernel.ObjectKey___le__(self, o)
2878 
2879  def __hash__(self):
2880  r"""__hash__(ObjectKey self) -> std::size_t"""
2881  return _IMP_kernel.ObjectKey___hash__(self)
2882 
2883  def show(self, *args):
2884  r"""show(ObjectKey self, _ostream out=std::cout)"""
2885  return _IMP_kernel.ObjectKey_show(self, *args)
2886 
2887  @staticmethod
2888  def add_alias(old_key, new_name):
2889  r"""add_alias(ObjectKey old_key, std::string new_name) -> ObjectKey"""
2890  return _IMP_kernel.ObjectKey_add_alias(old_key, new_name)
2891 
2892  @staticmethod
2893  def get_number_of_keys():
2894  r"""get_number_of_keys() -> unsigned int"""
2895  return _IMP_kernel.ObjectKey_get_number_of_keys()
2896 
2897  def get_index(self):
2898  r"""get_index(ObjectKey self) -> unsigned int"""
2899  return _IMP_kernel.ObjectKey_get_index(self)
2900 
2901  @staticmethod
2902  def show_all(out):
2903  r"""show_all(_ostream out)"""
2904  return _IMP_kernel.ObjectKey_show_all(out)
2905 
2906  @staticmethod
2907  def get_all_strings():
2908  r"""get_all_strings() -> IMP::Vector< std::string >"""
2909  return _IMP_kernel.ObjectKey_get_all_strings()
2910 
2911  @staticmethod
2912  def get_number_unique():
2913  r"""get_number_unique() -> unsigned int"""
2914  return _IMP_kernel.ObjectKey_get_number_unique()
2915 
2916  def __str__(self):
2917  r"""__str__(ObjectKey self) -> std::string"""
2918  return _IMP_kernel.ObjectKey___str__(self)
2919 
2920  def __repr__(self):
2921  r"""__repr__(ObjectKey self) -> std::string"""
2922  return _IMP_kernel.ObjectKey___repr__(self)
2923  __swig_destroy__ = _IMP_kernel.delete_ObjectKey
2924 
2925 # Register ObjectKey in _IMP_kernel:
2926 _IMP_kernel.ObjectKey_swigregister(ObjectKey)
2927 class IntsKey(_Value):
2928  r"""Proxy of C++ IMP::Key< 5 > class."""
2929 
2930  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2931 
2932  def __init__(self, *args):
2933  r"""
2934  __init__(IntsKey self) -> IntsKey
2935  __init__(IntsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> IntsKey
2936  __init__(IntsKey self, unsigned int i) -> IntsKey
2937  """
2938  _IMP_kernel.IntsKey_swiginit(self, _IMP_kernel.new_IntsKey(*args))
2939 
2940  @staticmethod
2941  def add_key(sc):
2942  r"""add_key(std::string sc) -> unsigned int"""
2943  return _IMP_kernel.IntsKey_add_key(sc)
2944 
2945  @staticmethod
2946  def get_key_exists(sc):
2947  r"""get_key_exists(std::string sc) -> bool"""
2948  return _IMP_kernel.IntsKey_get_key_exists(sc)
2949 
2950  def get_string(self):
2951  r"""get_string(IntsKey self) -> std::string const"""
2952  return _IMP_kernel.IntsKey_get_string(self)
2953 
2954  def __cmp__(self, o):
2955  r"""__cmp__(IntsKey self, IntsKey o) -> int"""
2956  return _IMP_kernel.IntsKey___cmp__(self, o)
2957 
2958  def __eq__(self, o):
2959  r"""__eq__(IntsKey self, IntsKey o) -> bool"""
2960  return _IMP_kernel.IntsKey___eq__(self, o)
2961 
2962  def __ne__(self, o):
2963  r"""__ne__(IntsKey self, IntsKey o) -> bool"""
2964  return _IMP_kernel.IntsKey___ne__(self, o)
2965 
2966  def __lt__(self, o):
2967  r"""__lt__(IntsKey self, IntsKey o) -> bool"""
2968  return _IMP_kernel.IntsKey___lt__(self, o)
2969 
2970  def __gt__(self, o):
2971  r"""__gt__(IntsKey self, IntsKey o) -> bool"""
2972  return _IMP_kernel.IntsKey___gt__(self, o)
2973 
2974  def __ge__(self, o):
2975  r"""__ge__(IntsKey self, IntsKey o) -> bool"""
2976  return _IMP_kernel.IntsKey___ge__(self, o)
2977 
2978  def __le__(self, o):
2979  r"""__le__(IntsKey self, IntsKey o) -> bool"""
2980  return _IMP_kernel.IntsKey___le__(self, o)
2981 
2982  def __hash__(self):
2983  r"""__hash__(IntsKey self) -> std::size_t"""
2984  return _IMP_kernel.IntsKey___hash__(self)
2985 
2986  def show(self, *args):
2987  r"""show(IntsKey self, _ostream out=std::cout)"""
2988  return _IMP_kernel.IntsKey_show(self, *args)
2989 
2990  @staticmethod
2991  def add_alias(old_key, new_name):
2992  r"""add_alias(IntsKey old_key, std::string new_name) -> IntsKey"""
2993  return _IMP_kernel.IntsKey_add_alias(old_key, new_name)
2994 
2995  @staticmethod
2996  def get_number_of_keys():
2997  r"""get_number_of_keys() -> unsigned int"""
2998  return _IMP_kernel.IntsKey_get_number_of_keys()
2999 
3000  def get_index(self):
3001  r"""get_index(IntsKey self) -> unsigned int"""
3002  return _IMP_kernel.IntsKey_get_index(self)
3003 
3004  @staticmethod
3005  def show_all(out):
3006  r"""show_all(_ostream out)"""
3007  return _IMP_kernel.IntsKey_show_all(out)
3008 
3009  @staticmethod
3010  def get_all_strings():
3011  r"""get_all_strings() -> IMP::Vector< std::string >"""
3012  return _IMP_kernel.IntsKey_get_all_strings()
3013 
3014  @staticmethod
3015  def get_number_unique():
3016  r"""get_number_unique() -> unsigned int"""
3017  return _IMP_kernel.IntsKey_get_number_unique()
3018 
3019  def __str__(self):
3020  r"""__str__(IntsKey self) -> std::string"""
3021  return _IMP_kernel.IntsKey___str__(self)
3022 
3023  def __repr__(self):
3024  r"""__repr__(IntsKey self) -> std::string"""
3025  return _IMP_kernel.IntsKey___repr__(self)
3026  __swig_destroy__ = _IMP_kernel.delete_IntsKey
3027 
3028 # Register IntsKey in _IMP_kernel:
3029 _IMP_kernel.IntsKey_swigregister(IntsKey)
3030 class ParticleIndexesKey(_Value):
3031  r"""Proxy of C++ IMP::Key< 6 > class."""
3032 
3033  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3034 
3035  def __init__(self, *args):
3036  r"""
3037  __init__(ParticleIndexesKey self) -> ParticleIndexesKey
3038  __init__(ParticleIndexesKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ParticleIndexesKey
3039  __init__(ParticleIndexesKey self, unsigned int i) -> ParticleIndexesKey
3040  """
3041  _IMP_kernel.ParticleIndexesKey_swiginit(self, _IMP_kernel.new_ParticleIndexesKey(*args))
3042 
3043  @staticmethod
3044  def add_key(sc):
3045  r"""add_key(std::string sc) -> unsigned int"""
3046  return _IMP_kernel.ParticleIndexesKey_add_key(sc)
3047 
3048  @staticmethod
3049  def get_key_exists(sc):
3050  r"""get_key_exists(std::string sc) -> bool"""
3051  return _IMP_kernel.ParticleIndexesKey_get_key_exists(sc)
3052 
3053  def get_string(self):
3054  r"""get_string(ParticleIndexesKey self) -> std::string const"""
3055  return _IMP_kernel.ParticleIndexesKey_get_string(self)
3056 
3057  def __cmp__(self, o):
3058  r"""__cmp__(ParticleIndexesKey self, ParticleIndexesKey o) -> int"""
3059  return _IMP_kernel.ParticleIndexesKey___cmp__(self, o)
3060 
3061  def __eq__(self, o):
3062  r"""__eq__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3063  return _IMP_kernel.ParticleIndexesKey___eq__(self, o)
3064 
3065  def __ne__(self, o):
3066  r"""__ne__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3067  return _IMP_kernel.ParticleIndexesKey___ne__(self, o)
3068 
3069  def __lt__(self, o):
3070  r"""__lt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3071  return _IMP_kernel.ParticleIndexesKey___lt__(self, o)
3072 
3073  def __gt__(self, o):
3074  r"""__gt__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3075  return _IMP_kernel.ParticleIndexesKey___gt__(self, o)
3076 
3077  def __ge__(self, o):
3078  r"""__ge__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3079  return _IMP_kernel.ParticleIndexesKey___ge__(self, o)
3080 
3081  def __le__(self, o):
3082  r"""__le__(ParticleIndexesKey self, ParticleIndexesKey o) -> bool"""
3083  return _IMP_kernel.ParticleIndexesKey___le__(self, o)
3084 
3085  def __hash__(self):
3086  r"""__hash__(ParticleIndexesKey self) -> std::size_t"""
3087  return _IMP_kernel.ParticleIndexesKey___hash__(self)
3088 
3089  def show(self, *args):
3090  r"""show(ParticleIndexesKey self, _ostream out=std::cout)"""
3091  return _IMP_kernel.ParticleIndexesKey_show(self, *args)
3092 
3093  @staticmethod
3094  def add_alias(old_key, new_name):
3095  r"""add_alias(ParticleIndexesKey old_key, std::string new_name) -> ParticleIndexesKey"""
3096  return _IMP_kernel.ParticleIndexesKey_add_alias(old_key, new_name)
3097 
3098  @staticmethod
3099  def get_number_of_keys():
3100  r"""get_number_of_keys() -> unsigned int"""
3101  return _IMP_kernel.ParticleIndexesKey_get_number_of_keys()
3102 
3103  def get_index(self):
3104  r"""get_index(ParticleIndexesKey self) -> unsigned int"""
3105  return _IMP_kernel.ParticleIndexesKey_get_index(self)
3106 
3107  @staticmethod
3108  def show_all(out):
3109  r"""show_all(_ostream out)"""
3110  return _IMP_kernel.ParticleIndexesKey_show_all(out)
3111 
3112  @staticmethod
3113  def get_all_strings():
3114  r"""get_all_strings() -> IMP::Vector< std::string >"""
3115  return _IMP_kernel.ParticleIndexesKey_get_all_strings()
3116 
3117  @staticmethod
3118  def get_number_unique():
3119  r"""get_number_unique() -> unsigned int"""
3120  return _IMP_kernel.ParticleIndexesKey_get_number_unique()
3121 
3122  def __str__(self):
3123  r"""__str__(ParticleIndexesKey self) -> std::string"""
3124  return _IMP_kernel.ParticleIndexesKey___str__(self)
3125 
3126  def __repr__(self):
3127  r"""__repr__(ParticleIndexesKey self) -> std::string"""
3128  return _IMP_kernel.ParticleIndexesKey___repr__(self)
3129  __swig_destroy__ = _IMP_kernel.delete_ParticleIndexesKey
3130 
3131 # Register ParticleIndexesKey in _IMP_kernel:
3132 _IMP_kernel.ParticleIndexesKey_swigregister(ParticleIndexesKey)
3133 class ModelKey(_Value):
3134  r"""Proxy of C++ IMP::Key< 8 > class."""
3135 
3136  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3137 
3138  def __init__(self, *args):
3139  r"""
3140  __init__(ModelKey self) -> ModelKey
3141  __init__(ModelKey self, std::string const & c, bool is_implicit_add_permitted=True) -> ModelKey
3142  __init__(ModelKey self, unsigned int i) -> ModelKey
3143  """
3144  _IMP_kernel.ModelKey_swiginit(self, _IMP_kernel.new_ModelKey(*args))
3145 
3146  @staticmethod
3147  def add_key(sc):
3148  r"""add_key(std::string sc) -> unsigned int"""
3149  return _IMP_kernel.ModelKey_add_key(sc)
3150 
3151  @staticmethod
3152  def get_key_exists(sc):
3153  r"""get_key_exists(std::string sc) -> bool"""
3154  return _IMP_kernel.ModelKey_get_key_exists(sc)
3155 
3156  def get_string(self):
3157  r"""get_string(ModelKey self) -> std::string const"""
3158  return _IMP_kernel.ModelKey_get_string(self)
3159 
3160  def __cmp__(self, o):
3161  r"""__cmp__(ModelKey self, ModelKey o) -> int"""
3162  return _IMP_kernel.ModelKey___cmp__(self, o)
3163 
3164  def __eq__(self, o):
3165  r"""__eq__(ModelKey self, ModelKey o) -> bool"""
3166  return _IMP_kernel.ModelKey___eq__(self, o)
3167 
3168  def __ne__(self, o):
3169  r"""__ne__(ModelKey self, ModelKey o) -> bool"""
3170  return _IMP_kernel.ModelKey___ne__(self, o)
3171 
3172  def __lt__(self, o):
3173  r"""__lt__(ModelKey self, ModelKey o) -> bool"""
3174  return _IMP_kernel.ModelKey___lt__(self, o)
3175 
3176  def __gt__(self, o):
3177  r"""__gt__(ModelKey self, ModelKey o) -> bool"""
3178  return _IMP_kernel.ModelKey___gt__(self, o)
3179 
3180  def __ge__(self, o):
3181  r"""__ge__(ModelKey self, ModelKey o) -> bool"""
3182  return _IMP_kernel.ModelKey___ge__(self, o)
3183 
3184  def __le__(self, o):
3185  r"""__le__(ModelKey self, ModelKey o) -> bool"""
3186  return _IMP_kernel.ModelKey___le__(self, o)
3187 
3188  def __hash__(self):
3189  r"""__hash__(ModelKey self) -> std::size_t"""
3190  return _IMP_kernel.ModelKey___hash__(self)
3191 
3192  def show(self, *args):
3193  r"""show(ModelKey self, _ostream out=std::cout)"""
3194  return _IMP_kernel.ModelKey_show(self, *args)
3195 
3196  @staticmethod
3197  def add_alias(old_key, new_name):
3198  r"""add_alias(ModelKey old_key, std::string new_name) -> ModelKey"""
3199  return _IMP_kernel.ModelKey_add_alias(old_key, new_name)
3200 
3201  @staticmethod
3202  def get_number_of_keys():
3203  r"""get_number_of_keys() -> unsigned int"""
3204  return _IMP_kernel.ModelKey_get_number_of_keys()
3205 
3206  def get_index(self):
3207  r"""get_index(ModelKey self) -> unsigned int"""
3208  return _IMP_kernel.ModelKey_get_index(self)
3209 
3210  @staticmethod
3211  def show_all(out):
3212  r"""show_all(_ostream out)"""
3213  return _IMP_kernel.ModelKey_show_all(out)
3214 
3215  @staticmethod
3216  def get_all_strings():
3217  r"""get_all_strings() -> IMP::Vector< std::string >"""
3218  return _IMP_kernel.ModelKey_get_all_strings()
3219 
3220  @staticmethod
3221  def get_number_unique():
3222  r"""get_number_unique() -> unsigned int"""
3223  return _IMP_kernel.ModelKey_get_number_unique()
3224 
3225  def __str__(self):
3226  r"""__str__(ModelKey self) -> std::string"""
3227  return _IMP_kernel.ModelKey___str__(self)
3228 
3229  def __repr__(self):
3230  r"""__repr__(ModelKey self) -> std::string"""
3231  return _IMP_kernel.ModelKey___repr__(self)
3232  __swig_destroy__ = _IMP_kernel.delete_ModelKey
3233 
3234 # Register ModelKey in _IMP_kernel:
3235 _IMP_kernel.ModelKey_swigregister(ModelKey)
3236 class TriggerKey(_Value):
3237  r"""Proxy of C++ IMP::Key< 11 > class."""
3238 
3239  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3240 
3241  def __init__(self, *args):
3242  r"""
3243  __init__(TriggerKey self) -> TriggerKey
3244  __init__(TriggerKey self, std::string const & c, bool is_implicit_add_permitted=True) -> TriggerKey
3245  __init__(TriggerKey self, unsigned int i) -> TriggerKey
3246  """
3247  _IMP_kernel.TriggerKey_swiginit(self, _IMP_kernel.new_TriggerKey(*args))
3248 
3249  @staticmethod
3250  def add_key(sc):
3251  r"""add_key(std::string sc) -> unsigned int"""
3252  return _IMP_kernel.TriggerKey_add_key(sc)
3253 
3254  @staticmethod
3255  def get_key_exists(sc):
3256  r"""get_key_exists(std::string sc) -> bool"""
3257  return _IMP_kernel.TriggerKey_get_key_exists(sc)
3258 
3259  def get_string(self):
3260  r"""get_string(TriggerKey self) -> std::string const"""
3261  return _IMP_kernel.TriggerKey_get_string(self)
3262 
3263  def __cmp__(self, o):
3264  r"""__cmp__(TriggerKey self, TriggerKey o) -> int"""
3265  return _IMP_kernel.TriggerKey___cmp__(self, o)
3266 
3267  def __eq__(self, o):
3268  r"""__eq__(TriggerKey self, TriggerKey o) -> bool"""
3269  return _IMP_kernel.TriggerKey___eq__(self, o)
3270 
3271  def __ne__(self, o):
3272  r"""__ne__(TriggerKey self, TriggerKey o) -> bool"""
3273  return _IMP_kernel.TriggerKey___ne__(self, o)
3274 
3275  def __lt__(self, o):
3276  r"""__lt__(TriggerKey self, TriggerKey o) -> bool"""
3277  return _IMP_kernel.TriggerKey___lt__(self, o)
3278 
3279  def __gt__(self, o):
3280  r"""__gt__(TriggerKey self, TriggerKey o) -> bool"""
3281  return _IMP_kernel.TriggerKey___gt__(self, o)
3282 
3283  def __ge__(self, o):
3284  r"""__ge__(TriggerKey self, TriggerKey o) -> bool"""
3285  return _IMP_kernel.TriggerKey___ge__(self, o)
3286 
3287  def __le__(self, o):
3288  r"""__le__(TriggerKey self, TriggerKey o) -> bool"""
3289  return _IMP_kernel.TriggerKey___le__(self, o)
3290 
3291  def __hash__(self):
3292  r"""__hash__(TriggerKey self) -> std::size_t"""
3293  return _IMP_kernel.TriggerKey___hash__(self)
3294 
3295  def show(self, *args):
3296  r"""show(TriggerKey self, _ostream out=std::cout)"""
3297  return _IMP_kernel.TriggerKey_show(self, *args)
3298 
3299  @staticmethod
3300  def add_alias(old_key, new_name):
3301  r"""add_alias(TriggerKey old_key, std::string new_name) -> TriggerKey"""
3302  return _IMP_kernel.TriggerKey_add_alias(old_key, new_name)
3303 
3304  @staticmethod
3305  def get_number_of_keys():
3306  r"""get_number_of_keys() -> unsigned int"""
3307  return _IMP_kernel.TriggerKey_get_number_of_keys()
3308 
3309  def get_index(self):
3310  r"""get_index(TriggerKey self) -> unsigned int"""
3311  return _IMP_kernel.TriggerKey_get_index(self)
3312 
3313  @staticmethod
3314  def show_all(out):
3315  r"""show_all(_ostream out)"""
3316  return _IMP_kernel.TriggerKey_show_all(out)
3317 
3318  @staticmethod
3319  def get_all_strings():
3320  r"""get_all_strings() -> IMP::Vector< std::string >"""
3321  return _IMP_kernel.TriggerKey_get_all_strings()
3322 
3323  @staticmethod
3324  def get_number_unique():
3325  r"""get_number_unique() -> unsigned int"""
3326  return _IMP_kernel.TriggerKey_get_number_unique()
3327 
3328  def __str__(self):
3329  r"""__str__(TriggerKey self) -> std::string"""
3330  return _IMP_kernel.TriggerKey___str__(self)
3331 
3332  def __repr__(self):
3333  r"""__repr__(TriggerKey self) -> std::string"""
3334  return _IMP_kernel.TriggerKey___repr__(self)
3335  __swig_destroy__ = _IMP_kernel.delete_TriggerKey
3336 
3337 # Register TriggerKey in _IMP_kernel:
3338 _IMP_kernel.TriggerKey_swigregister(TriggerKey)
3339 class ParticleIndex(object):
3340  r"""Proxy of C++ IMP::Index< IMP::ParticleIndexTag > class."""
3341 
3342  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3343 
3344  def __init__(self, *args):
3345  r"""
3346  __init__(ParticleIndex self, int i) -> ParticleIndex
3347  __init__(ParticleIndex self) -> ParticleIndex
3348  """
3349  _IMP_kernel.ParticleIndex_swiginit(self, _IMP_kernel.new_ParticleIndex(*args))
3350 
3351  def get_index(self):
3352  r"""get_index(ParticleIndex self) -> int"""
3353  return _IMP_kernel.ParticleIndex_get_index(self)
3354 
3355  def __cmp__(self, o):
3356  r"""__cmp__(ParticleIndex self, ParticleIndex o) -> int"""
3357  return _IMP_kernel.ParticleIndex___cmp__(self, o)
3358 
3359  def __eq__(self, o):
3360  r"""__eq__(ParticleIndex self, ParticleIndex o) -> bool"""
3361  return _IMP_kernel.ParticleIndex___eq__(self, o)
3362 
3363  def __ne__(self, o):
3364  r"""__ne__(ParticleIndex self, ParticleIndex o) -> bool"""
3365  return _IMP_kernel.ParticleIndex___ne__(self, o)
3366 
3367  def __lt__(self, o):
3368  r"""__lt__(ParticleIndex self, ParticleIndex o) -> bool"""
3369  return _IMP_kernel.ParticleIndex___lt__(self, o)
3370 
3371  def __gt__(self, o):
3372  r"""__gt__(ParticleIndex self, ParticleIndex o) -> bool"""
3373  return _IMP_kernel.ParticleIndex___gt__(self, o)
3374 
3375  def __ge__(self, o):
3376  r"""__ge__(ParticleIndex self, ParticleIndex o) -> bool"""
3377  return _IMP_kernel.ParticleIndex___ge__(self, o)
3378 
3379  def __le__(self, o):
3380  r"""__le__(ParticleIndex self, ParticleIndex o) -> bool"""
3381  return _IMP_kernel.ParticleIndex___le__(self, o)
3382 
3383  def show(self, *args):
3384  r"""show(ParticleIndex self, _ostream out=std::cout)"""
3385  return _IMP_kernel.ParticleIndex_show(self, *args)
3386 
3387  def __hash__(self):
3388  r"""__hash__(ParticleIndex self) -> std::size_t"""
3389  return _IMP_kernel.ParticleIndex___hash__(self)
3390 
3391  def __str__(self):
3392  r"""__str__(ParticleIndex self) -> std::string"""
3393  return _IMP_kernel.ParticleIndex___str__(self)
3394 
3395  def __repr__(self):
3396  r"""__repr__(ParticleIndex self) -> std::string"""
3397  return _IMP_kernel.ParticleIndex___repr__(self)
3398  __swig_destroy__ = _IMP_kernel.delete_ParticleIndex
3399 
3400 # Register ParticleIndex in _IMP_kernel:
3401 _IMP_kernel.ParticleIndex_swigregister(ParticleIndex)
3402 class FloatsKey(_Value):
3403  r"""Proxy of C++ IMP::Key< 10 > class."""
3404 
3405  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3406 
3407  def __init__(self, *args):
3408  r"""
3409  __init__(FloatsKey self) -> FloatsKey
3410  __init__(FloatsKey self, std::string const & c, bool is_implicit_add_permitted=True) -> FloatsKey
3411  __init__(FloatsKey self, unsigned int i) -> FloatsKey
3412  """
3413  _IMP_kernel.FloatsKey_swiginit(self, _IMP_kernel.new_FloatsKey(*args))
3414 
3415  @staticmethod
3416  def add_key(sc):
3417  r"""add_key(std::string sc) -> unsigned int"""
3418  return _IMP_kernel.FloatsKey_add_key(sc)
3419 
3420  @staticmethod
3421  def get_key_exists(sc):
3422  r"""get_key_exists(std::string sc) -> bool"""
3423  return _IMP_kernel.FloatsKey_get_key_exists(sc)
3424 
3425  def get_string(self):
3426  r"""get_string(FloatsKey self) -> std::string const"""
3427  return _IMP_kernel.FloatsKey_get_string(self)
3428 
3429  def __cmp__(self, o):
3430  r"""__cmp__(FloatsKey self, FloatsKey o) -> int"""
3431  return _IMP_kernel.FloatsKey___cmp__(self, o)
3432 
3433  def __eq__(self, o):
3434  r"""__eq__(FloatsKey self, FloatsKey o) -> bool"""
3435  return _IMP_kernel.FloatsKey___eq__(self, o)
3436 
3437  def __ne__(self, o):
3438  r"""__ne__(FloatsKey self, FloatsKey o) -> bool"""
3439  return _IMP_kernel.FloatsKey___ne__(self, o)
3440 
3441  def __lt__(self, o):
3442  r"""__lt__(FloatsKey self, FloatsKey o) -> bool"""
3443  return _IMP_kernel.FloatsKey___lt__(self, o)
3444 
3445  def __gt__(self, o):
3446  r"""__gt__(FloatsKey self, FloatsKey o) -> bool"""
3447  return _IMP_kernel.FloatsKey___gt__(self, o)
3448 
3449  def __ge__(self, o):
3450  r"""__ge__(FloatsKey self, FloatsKey o) -> bool"""
3451  return _IMP_kernel.FloatsKey___ge__(self, o)
3452 
3453  def __le__(self, o):
3454  r"""__le__(FloatsKey self, FloatsKey o) -> bool"""
3455  return _IMP_kernel.FloatsKey___le__(self, o)
3456 
3457  def __hash__(self):
3458  r"""__hash__(FloatsKey self) -> std::size_t"""
3459  return _IMP_kernel.FloatsKey___hash__(self)
3460 
3461  def show(self, *args):
3462  r"""show(FloatsKey self, _ostream out=std::cout)"""
3463  return _IMP_kernel.FloatsKey_show(self, *args)
3464 
3465  @staticmethod
3466  def add_alias(old_key, new_name):
3467  r"""add_alias(FloatsKey old_key, std::string new_name) -> FloatsKey"""
3468  return _IMP_kernel.FloatsKey_add_alias(old_key, new_name)
3469 
3470  @staticmethod
3471  def get_number_of_keys():
3472  r"""get_number_of_keys() -> unsigned int"""
3473  return _IMP_kernel.FloatsKey_get_number_of_keys()
3474 
3475  def get_index(self):
3476  r"""get_index(FloatsKey self) -> unsigned int"""
3477  return _IMP_kernel.FloatsKey_get_index(self)
3478 
3479  @staticmethod
3480  def show_all(out):
3481  r"""show_all(_ostream out)"""
3482  return _IMP_kernel.FloatsKey_show_all(out)
3483 
3484  @staticmethod
3485  def get_all_strings():
3486  r"""get_all_strings() -> IMP::Vector< std::string >"""
3487  return _IMP_kernel.FloatsKey_get_all_strings()
3488 
3489  @staticmethod
3490  def get_number_unique():
3491  r"""get_number_unique() -> unsigned int"""
3492  return _IMP_kernel.FloatsKey_get_number_unique()
3493 
3494  def __str__(self):
3495  r"""__str__(FloatsKey self) -> std::string"""
3496  return _IMP_kernel.FloatsKey___str__(self)
3497 
3498  def __repr__(self):
3499  r"""__repr__(FloatsKey self) -> std::string"""
3500  return _IMP_kernel.FloatsKey___repr__(self)
3501  __swig_destroy__ = _IMP_kernel.delete_FloatsKey
3502 
3503 # Register FloatsKey in _IMP_kernel:
3504 _IMP_kernel.FloatsKey_swigregister(FloatsKey)
3505 class SparseStringKey(_Value):
3506  r"""Proxy of C++ IMP::Key< 12 > class."""
3507 
3508  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3509 
3510  def __init__(self, *args):
3511  r"""
3512  __init__(SparseStringKey self) -> SparseStringKey
3513  __init__(SparseStringKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseStringKey
3514  __init__(SparseStringKey self, unsigned int i) -> SparseStringKey
3515  """
3516  _IMP_kernel.SparseStringKey_swiginit(self, _IMP_kernel.new_SparseStringKey(*args))
3517 
3518  @staticmethod
3519  def add_key(sc):
3520  r"""add_key(std::string sc) -> unsigned int"""
3521  return _IMP_kernel.SparseStringKey_add_key(sc)
3522 
3523  @staticmethod
3524  def get_key_exists(sc):
3525  r"""get_key_exists(std::string sc) -> bool"""
3526  return _IMP_kernel.SparseStringKey_get_key_exists(sc)
3527 
3528  def get_string(self):
3529  r"""get_string(SparseStringKey self) -> std::string const"""
3530  return _IMP_kernel.SparseStringKey_get_string(self)
3531 
3532  def __cmp__(self, o):
3533  r"""__cmp__(SparseStringKey self, SparseStringKey o) -> int"""
3534  return _IMP_kernel.SparseStringKey___cmp__(self, o)
3535 
3536  def __eq__(self, o):
3537  r"""__eq__(SparseStringKey self, SparseStringKey o) -> bool"""
3538  return _IMP_kernel.SparseStringKey___eq__(self, o)
3539 
3540  def __ne__(self, o):
3541  r"""__ne__(SparseStringKey self, SparseStringKey o) -> bool"""
3542  return _IMP_kernel.SparseStringKey___ne__(self, o)
3543 
3544  def __lt__(self, o):
3545  r"""__lt__(SparseStringKey self, SparseStringKey o) -> bool"""
3546  return _IMP_kernel.SparseStringKey___lt__(self, o)
3547 
3548  def __gt__(self, o):
3549  r"""__gt__(SparseStringKey self, SparseStringKey o) -> bool"""
3550  return _IMP_kernel.SparseStringKey___gt__(self, o)
3551 
3552  def __ge__(self, o):
3553  r"""__ge__(SparseStringKey self, SparseStringKey o) -> bool"""
3554  return _IMP_kernel.SparseStringKey___ge__(self, o)
3555 
3556  def __le__(self, o):
3557  r"""__le__(SparseStringKey self, SparseStringKey o) -> bool"""
3558  return _IMP_kernel.SparseStringKey___le__(self, o)
3559 
3560  def __hash__(self):
3561  r"""__hash__(SparseStringKey self) -> std::size_t"""
3562  return _IMP_kernel.SparseStringKey___hash__(self)
3563 
3564  def show(self, *args):
3565  r"""show(SparseStringKey self, _ostream out=std::cout)"""
3566  return _IMP_kernel.SparseStringKey_show(self, *args)
3567 
3568  @staticmethod
3569  def add_alias(old_key, new_name):
3570  r"""add_alias(SparseStringKey old_key, std::string new_name) -> SparseStringKey"""
3571  return _IMP_kernel.SparseStringKey_add_alias(old_key, new_name)
3572 
3573  @staticmethod
3574  def get_number_of_keys():
3575  r"""get_number_of_keys() -> unsigned int"""
3576  return _IMP_kernel.SparseStringKey_get_number_of_keys()
3577 
3578  def get_index(self):
3579  r"""get_index(SparseStringKey self) -> unsigned int"""
3580  return _IMP_kernel.SparseStringKey_get_index(self)
3581 
3582  @staticmethod
3583  def show_all(out):
3584  r"""show_all(_ostream out)"""
3585  return _IMP_kernel.SparseStringKey_show_all(out)
3586 
3587  @staticmethod
3588  def get_all_strings():
3589  r"""get_all_strings() -> IMP::Vector< std::string >"""
3590  return _IMP_kernel.SparseStringKey_get_all_strings()
3591 
3592  @staticmethod
3593  def get_number_unique():
3594  r"""get_number_unique() -> unsigned int"""
3595  return _IMP_kernel.SparseStringKey_get_number_unique()
3596 
3597  def __str__(self):
3598  r"""__str__(SparseStringKey self) -> std::string"""
3599  return _IMP_kernel.SparseStringKey___str__(self)
3600 
3601  def __repr__(self):
3602  r"""__repr__(SparseStringKey self) -> std::string"""
3603  return _IMP_kernel.SparseStringKey___repr__(self)
3604  __swig_destroy__ = _IMP_kernel.delete_SparseStringKey
3605 
3606 # Register SparseStringKey in _IMP_kernel:
3607 _IMP_kernel.SparseStringKey_swigregister(SparseStringKey)
3608 class SparseIntKey(_Value):
3609  r"""Proxy of C++ IMP::Key< 13 > class."""
3610 
3611  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3612 
3613  def __init__(self, *args):
3614  r"""
3615  __init__(SparseIntKey self) -> SparseIntKey
3616  __init__(SparseIntKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseIntKey
3617  __init__(SparseIntKey self, unsigned int i) -> SparseIntKey
3618  """
3619  _IMP_kernel.SparseIntKey_swiginit(self, _IMP_kernel.new_SparseIntKey(*args))
3620 
3621  @staticmethod
3622  def add_key(sc):
3623  r"""add_key(std::string sc) -> unsigned int"""
3624  return _IMP_kernel.SparseIntKey_add_key(sc)
3625 
3626  @staticmethod
3627  def get_key_exists(sc):
3628  r"""get_key_exists(std::string sc) -> bool"""
3629  return _IMP_kernel.SparseIntKey_get_key_exists(sc)
3630 
3631  def get_string(self):
3632  r"""get_string(SparseIntKey self) -> std::string const"""
3633  return _IMP_kernel.SparseIntKey_get_string(self)
3634 
3635  def __cmp__(self, o):
3636  r"""__cmp__(SparseIntKey self, SparseIntKey o) -> int"""
3637  return _IMP_kernel.SparseIntKey___cmp__(self, o)
3638 
3639  def __eq__(self, o):
3640  r"""__eq__(SparseIntKey self, SparseIntKey o) -> bool"""
3641  return _IMP_kernel.SparseIntKey___eq__(self, o)
3642 
3643  def __ne__(self, o):
3644  r"""__ne__(SparseIntKey self, SparseIntKey o) -> bool"""
3645  return _IMP_kernel.SparseIntKey___ne__(self, o)
3646 
3647  def __lt__(self, o):
3648  r"""__lt__(SparseIntKey self, SparseIntKey o) -> bool"""
3649  return _IMP_kernel.SparseIntKey___lt__(self, o)
3650 
3651  def __gt__(self, o):
3652  r"""__gt__(SparseIntKey self, SparseIntKey o) -> bool"""
3653  return _IMP_kernel.SparseIntKey___gt__(self, o)
3654 
3655  def __ge__(self, o):
3656  r"""__ge__(SparseIntKey self, SparseIntKey o) -> bool"""
3657  return _IMP_kernel.SparseIntKey___ge__(self, o)
3658 
3659  def __le__(self, o):
3660  r"""__le__(SparseIntKey self, SparseIntKey o) -> bool"""
3661  return _IMP_kernel.SparseIntKey___le__(self, o)
3662 
3663  def __hash__(self):
3664  r"""__hash__(SparseIntKey self) -> std::size_t"""
3665  return _IMP_kernel.SparseIntKey___hash__(self)
3666 
3667  def show(self, *args):
3668  r"""show(SparseIntKey self, _ostream out=std::cout)"""
3669  return _IMP_kernel.SparseIntKey_show(self, *args)
3670 
3671  @staticmethod
3672  def add_alias(old_key, new_name):
3673  r"""add_alias(SparseIntKey old_key, std::string new_name) -> SparseIntKey"""
3674  return _IMP_kernel.SparseIntKey_add_alias(old_key, new_name)
3675 
3676  @staticmethod
3677  def get_number_of_keys():
3678  r"""get_number_of_keys() -> unsigned int"""
3679  return _IMP_kernel.SparseIntKey_get_number_of_keys()
3680 
3681  def get_index(self):
3682  r"""get_index(SparseIntKey self) -> unsigned int"""
3683  return _IMP_kernel.SparseIntKey_get_index(self)
3684 
3685  @staticmethod
3686  def show_all(out):
3687  r"""show_all(_ostream out)"""
3688  return _IMP_kernel.SparseIntKey_show_all(out)
3689 
3690  @staticmethod
3691  def get_all_strings():
3692  r"""get_all_strings() -> IMP::Vector< std::string >"""
3693  return _IMP_kernel.SparseIntKey_get_all_strings()
3694 
3695  @staticmethod
3696  def get_number_unique():
3697  r"""get_number_unique() -> unsigned int"""
3698  return _IMP_kernel.SparseIntKey_get_number_unique()
3699 
3700  def __str__(self):
3701  r"""__str__(SparseIntKey self) -> std::string"""
3702  return _IMP_kernel.SparseIntKey___str__(self)
3703 
3704  def __repr__(self):
3705  r"""__repr__(SparseIntKey self) -> std::string"""
3706  return _IMP_kernel.SparseIntKey___repr__(self)
3707  __swig_destroy__ = _IMP_kernel.delete_SparseIntKey
3708 
3709 # Register SparseIntKey in _IMP_kernel:
3710 _IMP_kernel.SparseIntKey_swigregister(SparseIntKey)
3711 class SparseFloatKey(_Value):
3712  r"""Proxy of C++ IMP::Key< 14 > class."""
3713 
3714  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3715 
3716  def __init__(self, *args):
3717  r"""
3718  __init__(SparseFloatKey self) -> SparseFloatKey
3719  __init__(SparseFloatKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseFloatKey
3720  __init__(SparseFloatKey self, unsigned int i) -> SparseFloatKey
3721  """
3722  _IMP_kernel.SparseFloatKey_swiginit(self, _IMP_kernel.new_SparseFloatKey(*args))
3723 
3724  @staticmethod
3725  def add_key(sc):
3726  r"""add_key(std::string sc) -> unsigned int"""
3727  return _IMP_kernel.SparseFloatKey_add_key(sc)
3728 
3729  @staticmethod
3730  def get_key_exists(sc):
3731  r"""get_key_exists(std::string sc) -> bool"""
3732  return _IMP_kernel.SparseFloatKey_get_key_exists(sc)
3733 
3734  def get_string(self):
3735  r"""get_string(SparseFloatKey self) -> std::string const"""
3736  return _IMP_kernel.SparseFloatKey_get_string(self)
3737 
3738  def __cmp__(self, o):
3739  r"""__cmp__(SparseFloatKey self, SparseFloatKey o) -> int"""
3740  return _IMP_kernel.SparseFloatKey___cmp__(self, o)
3741 
3742  def __eq__(self, o):
3743  r"""__eq__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3744  return _IMP_kernel.SparseFloatKey___eq__(self, o)
3745 
3746  def __ne__(self, o):
3747  r"""__ne__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3748  return _IMP_kernel.SparseFloatKey___ne__(self, o)
3749 
3750  def __lt__(self, o):
3751  r"""__lt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3752  return _IMP_kernel.SparseFloatKey___lt__(self, o)
3753 
3754  def __gt__(self, o):
3755  r"""__gt__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3756  return _IMP_kernel.SparseFloatKey___gt__(self, o)
3757 
3758  def __ge__(self, o):
3759  r"""__ge__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3760  return _IMP_kernel.SparseFloatKey___ge__(self, o)
3761 
3762  def __le__(self, o):
3763  r"""__le__(SparseFloatKey self, SparseFloatKey o) -> bool"""
3764  return _IMP_kernel.SparseFloatKey___le__(self, o)
3765 
3766  def __hash__(self):
3767  r"""__hash__(SparseFloatKey self) -> std::size_t"""
3768  return _IMP_kernel.SparseFloatKey___hash__(self)
3769 
3770  def show(self, *args):
3771  r"""show(SparseFloatKey self, _ostream out=std::cout)"""
3772  return _IMP_kernel.SparseFloatKey_show(self, *args)
3773 
3774  @staticmethod
3775  def add_alias(old_key, new_name):
3776  r"""add_alias(SparseFloatKey old_key, std::string new_name) -> SparseFloatKey"""
3777  return _IMP_kernel.SparseFloatKey_add_alias(old_key, new_name)
3778 
3779  @staticmethod
3780  def get_number_of_keys():
3781  r"""get_number_of_keys() -> unsigned int"""
3782  return _IMP_kernel.SparseFloatKey_get_number_of_keys()
3783 
3784  def get_index(self):
3785  r"""get_index(SparseFloatKey self) -> unsigned int"""
3786  return _IMP_kernel.SparseFloatKey_get_index(self)
3787 
3788  @staticmethod
3789  def show_all(out):
3790  r"""show_all(_ostream out)"""
3791  return _IMP_kernel.SparseFloatKey_show_all(out)
3792 
3793  @staticmethod
3794  def get_all_strings():
3795  r"""get_all_strings() -> IMP::Vector< std::string >"""
3796  return _IMP_kernel.SparseFloatKey_get_all_strings()
3797 
3798  @staticmethod
3799  def get_number_unique():
3800  r"""get_number_unique() -> unsigned int"""
3801  return _IMP_kernel.SparseFloatKey_get_number_unique()
3802 
3803  def __str__(self):
3804  r"""__str__(SparseFloatKey self) -> std::string"""
3805  return _IMP_kernel.SparseFloatKey___str__(self)
3806 
3807  def __repr__(self):
3808  r"""__repr__(SparseFloatKey self) -> std::string"""
3809  return _IMP_kernel.SparseFloatKey___repr__(self)
3810  __swig_destroy__ = _IMP_kernel.delete_SparseFloatKey
3811 
3812 # Register SparseFloatKey in _IMP_kernel:
3813 _IMP_kernel.SparseFloatKey_swigregister(SparseFloatKey)
3814 class SparseParticleIndexKey(_Value):
3815  r"""Proxy of C++ IMP::Key< 15 > class."""
3816 
3817  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3818 
3819  def __init__(self, *args):
3820  r"""
3821  __init__(SparseParticleIndexKey self) -> SparseParticleIndexKey
3822  __init__(SparseParticleIndexKey self, std::string const & c, bool is_implicit_add_permitted=True) -> SparseParticleIndexKey
3823  __init__(SparseParticleIndexKey self, unsigned int i) -> SparseParticleIndexKey
3824  """
3825  _IMP_kernel.SparseParticleIndexKey_swiginit(self, _IMP_kernel.new_SparseParticleIndexKey(*args))
3826 
3827  @staticmethod
3828  def add_key(sc):
3829  r"""add_key(std::string sc) -> unsigned int"""
3830  return _IMP_kernel.SparseParticleIndexKey_add_key(sc)
3831 
3832  @staticmethod
3833  def get_key_exists(sc):
3834  r"""get_key_exists(std::string sc) -> bool"""
3835  return _IMP_kernel.SparseParticleIndexKey_get_key_exists(sc)
3836 
3837  def get_string(self):
3838  r"""get_string(SparseParticleIndexKey self) -> std::string const"""
3839  return _IMP_kernel.SparseParticleIndexKey_get_string(self)
3840 
3841  def __cmp__(self, o):
3842  r"""__cmp__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> int"""
3843  return _IMP_kernel.SparseParticleIndexKey___cmp__(self, o)
3844 
3845  def __eq__(self, o):
3846  r"""__eq__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3847  return _IMP_kernel.SparseParticleIndexKey___eq__(self, o)
3848 
3849  def __ne__(self, o):
3850  r"""__ne__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3851  return _IMP_kernel.SparseParticleIndexKey___ne__(self, o)
3852 
3853  def __lt__(self, o):
3854  r"""__lt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3855  return _IMP_kernel.SparseParticleIndexKey___lt__(self, o)
3856 
3857  def __gt__(self, o):
3858  r"""__gt__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3859  return _IMP_kernel.SparseParticleIndexKey___gt__(self, o)
3860 
3861  def __ge__(self, o):
3862  r"""__ge__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3863  return _IMP_kernel.SparseParticleIndexKey___ge__(self, o)
3864 
3865  def __le__(self, o):
3866  r"""__le__(SparseParticleIndexKey self, SparseParticleIndexKey o) -> bool"""
3867  return _IMP_kernel.SparseParticleIndexKey___le__(self, o)
3868 
3869  def __hash__(self):
3870  r"""__hash__(SparseParticleIndexKey self) -> std::size_t"""
3871  return _IMP_kernel.SparseParticleIndexKey___hash__(self)
3872 
3873  def show(self, *args):
3874  r"""show(SparseParticleIndexKey self, _ostream out=std::cout)"""
3875  return _IMP_kernel.SparseParticleIndexKey_show(self, *args)
3876 
3877  @staticmethod
3878  def add_alias(old_key, new_name):
3879  r"""add_alias(SparseParticleIndexKey old_key, std::string new_name) -> SparseParticleIndexKey"""
3880  return _IMP_kernel.SparseParticleIndexKey_add_alias(old_key, new_name)
3881 
3882  @staticmethod
3883  def get_number_of_keys():
3884  r"""get_number_of_keys() -> unsigned int"""
3885  return _IMP_kernel.SparseParticleIndexKey_get_number_of_keys()
3886 
3887  def get_index(self):
3888  r"""get_index(SparseParticleIndexKey self) -> unsigned int"""
3889  return _IMP_kernel.SparseParticleIndexKey_get_index(self)
3890 
3891  @staticmethod
3892  def show_all(out):
3893  r"""show_all(_ostream out)"""
3894  return _IMP_kernel.SparseParticleIndexKey_show_all(out)
3895 
3896  @staticmethod
3897  def get_all_strings():
3898  r"""get_all_strings() -> IMP::Vector< std::string >"""
3899  return _IMP_kernel.SparseParticleIndexKey_get_all_strings()
3900 
3901  @staticmethod
3902  def get_number_unique():
3903  r"""get_number_unique() -> unsigned int"""
3904  return _IMP_kernel.SparseParticleIndexKey_get_number_unique()
3905 
3906  def __str__(self):
3907  r"""__str__(SparseParticleIndexKey self) -> std::string"""
3908  return _IMP_kernel.SparseParticleIndexKey___str__(self)
3909 
3910  def __repr__(self):
3911  r"""__repr__(SparseParticleIndexKey self) -> std::string"""
3912  return _IMP_kernel.SparseParticleIndexKey___repr__(self)
3913  __swig_destroy__ = _IMP_kernel.delete_SparseParticleIndexKey
3914 
3915 # Register SparseParticleIndexKey in _IMP_kernel:
3916 _IMP_kernel.SparseParticleIndexKey_swigregister(SparseParticleIndexKey)
3917 class Vector3DKey(_Value):
3918  r"""Proxy of C++ IMP::Key< 16 > class."""
3919 
3920  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3921 
3922  def __init__(self, *args):
3923  r"""
3924  __init__(Vector3DKey self) -> Vector3DKey
3925  __init__(Vector3DKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector3DKey
3926  __init__(Vector3DKey self, unsigned int i) -> Vector3DKey
3927  """
3928  _IMP_kernel.Vector3DKey_swiginit(self, _IMP_kernel.new_Vector3DKey(*args))
3929 
3930  @staticmethod
3931  def add_key(sc):
3932  r"""add_key(std::string sc) -> unsigned int"""
3933  return _IMP_kernel.Vector3DKey_add_key(sc)
3934 
3935  @staticmethod
3936  def get_key_exists(sc):
3937  r"""get_key_exists(std::string sc) -> bool"""
3938  return _IMP_kernel.Vector3DKey_get_key_exists(sc)
3939 
3940  def get_string(self):
3941  r"""get_string(Vector3DKey self) -> std::string const"""
3942  return _IMP_kernel.Vector3DKey_get_string(self)
3943 
3944  def __cmp__(self, o):
3945  r"""__cmp__(Vector3DKey self, Vector3DKey o) -> int"""
3946  return _IMP_kernel.Vector3DKey___cmp__(self, o)
3947 
3948  def __eq__(self, o):
3949  r"""__eq__(Vector3DKey self, Vector3DKey o) -> bool"""
3950  return _IMP_kernel.Vector3DKey___eq__(self, o)
3951 
3952  def __ne__(self, o):
3953  r"""__ne__(Vector3DKey self, Vector3DKey o) -> bool"""
3954  return _IMP_kernel.Vector3DKey___ne__(self, o)
3955 
3956  def __lt__(self, o):
3957  r"""__lt__(Vector3DKey self, Vector3DKey o) -> bool"""
3958  return _IMP_kernel.Vector3DKey___lt__(self, o)
3959 
3960  def __gt__(self, o):
3961  r"""__gt__(Vector3DKey self, Vector3DKey o) -> bool"""
3962  return _IMP_kernel.Vector3DKey___gt__(self, o)
3963 
3964  def __ge__(self, o):
3965  r"""__ge__(Vector3DKey self, Vector3DKey o) -> bool"""
3966  return _IMP_kernel.Vector3DKey___ge__(self, o)
3967 
3968  def __le__(self, o):
3969  r"""__le__(Vector3DKey self, Vector3DKey o) -> bool"""
3970  return _IMP_kernel.Vector3DKey___le__(self, o)
3971 
3972  def __hash__(self):
3973  r"""__hash__(Vector3DKey self) -> std::size_t"""
3974  return _IMP_kernel.Vector3DKey___hash__(self)
3975 
3976  def show(self, *args):
3977  r"""show(Vector3DKey self, _ostream out=std::cout)"""
3978  return _IMP_kernel.Vector3DKey_show(self, *args)
3979 
3980  @staticmethod
3981  def add_alias(old_key, new_name):
3982  r"""add_alias(Vector3DKey old_key, std::string new_name) -> Vector3DKey"""
3983  return _IMP_kernel.Vector3DKey_add_alias(old_key, new_name)
3984 
3985  @staticmethod
3986  def get_number_of_keys():
3987  r"""get_number_of_keys() -> unsigned int"""
3988  return _IMP_kernel.Vector3DKey_get_number_of_keys()
3989 
3990  def get_index(self):
3991  r"""get_index(Vector3DKey self) -> unsigned int"""
3992  return _IMP_kernel.Vector3DKey_get_index(self)
3993 
3994  @staticmethod
3995  def show_all(out):
3996  r"""show_all(_ostream out)"""
3997  return _IMP_kernel.Vector3DKey_show_all(out)
3998 
3999  @staticmethod
4000  def get_all_strings():
4001  r"""get_all_strings() -> IMP::Vector< std::string >"""
4002  return _IMP_kernel.Vector3DKey_get_all_strings()
4003 
4004  @staticmethod
4005  def get_number_unique():
4006  r"""get_number_unique() -> unsigned int"""
4007  return _IMP_kernel.Vector3DKey_get_number_unique()
4008 
4009  def __str__(self):
4010  r"""__str__(Vector3DKey self) -> std::string"""
4011  return _IMP_kernel.Vector3DKey___str__(self)
4012 
4013  def __repr__(self):
4014  r"""__repr__(Vector3DKey self) -> std::string"""
4015  return _IMP_kernel.Vector3DKey___repr__(self)
4016  __swig_destroy__ = _IMP_kernel.delete_Vector3DKey
4017 
4018 # Register Vector3DKey in _IMP_kernel:
4019 _IMP_kernel.Vector3DKey_swigregister(Vector3DKey)
4020 class Vector3DDerivKey(_Value):
4021  r"""Proxy of C++ IMP::Key< 17 > class."""
4022 
4023  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4024 
4025  def __init__(self, *args):
4026  r"""
4027  __init__(Vector3DDerivKey self) -> Vector3DDerivKey
4028  __init__(Vector3DDerivKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector3DDerivKey
4029  __init__(Vector3DDerivKey self, unsigned int i) -> Vector3DDerivKey
4030  """
4031  _IMP_kernel.Vector3DDerivKey_swiginit(self, _IMP_kernel.new_Vector3DDerivKey(*args))
4032 
4033  @staticmethod
4034  def add_key(sc):
4035  r"""add_key(std::string sc) -> unsigned int"""
4036  return _IMP_kernel.Vector3DDerivKey_add_key(sc)
4037 
4038  @staticmethod
4039  def get_key_exists(sc):
4040  r"""get_key_exists(std::string sc) -> bool"""
4041  return _IMP_kernel.Vector3DDerivKey_get_key_exists(sc)
4042 
4043  def get_string(self):
4044  r"""get_string(Vector3DDerivKey self) -> std::string const"""
4045  return _IMP_kernel.Vector3DDerivKey_get_string(self)
4046 
4047  def __cmp__(self, o):
4048  r"""__cmp__(Vector3DDerivKey self, Vector3DDerivKey o) -> int"""
4049  return _IMP_kernel.Vector3DDerivKey___cmp__(self, o)
4050 
4051  def __eq__(self, o):
4052  r"""__eq__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4053  return _IMP_kernel.Vector3DDerivKey___eq__(self, o)
4054 
4055  def __ne__(self, o):
4056  r"""__ne__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4057  return _IMP_kernel.Vector3DDerivKey___ne__(self, o)
4058 
4059  def __lt__(self, o):
4060  r"""__lt__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4061  return _IMP_kernel.Vector3DDerivKey___lt__(self, o)
4062 
4063  def __gt__(self, o):
4064  r"""__gt__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4065  return _IMP_kernel.Vector3DDerivKey___gt__(self, o)
4066 
4067  def __ge__(self, o):
4068  r"""__ge__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4069  return _IMP_kernel.Vector3DDerivKey___ge__(self, o)
4070 
4071  def __le__(self, o):
4072  r"""__le__(Vector3DDerivKey self, Vector3DDerivKey o) -> bool"""
4073  return _IMP_kernel.Vector3DDerivKey___le__(self, o)
4074 
4075  def __hash__(self):
4076  r"""__hash__(Vector3DDerivKey self) -> std::size_t"""
4077  return _IMP_kernel.Vector3DDerivKey___hash__(self)
4078 
4079  def show(self, *args):
4080  r"""show(Vector3DDerivKey self, _ostream out=std::cout)"""
4081  return _IMP_kernel.Vector3DDerivKey_show(self, *args)
4082 
4083  @staticmethod
4084  def add_alias(old_key, new_name):
4085  r"""add_alias(Vector3DDerivKey old_key, std::string new_name) -> Vector3DDerivKey"""
4086  return _IMP_kernel.Vector3DDerivKey_add_alias(old_key, new_name)
4087 
4088  @staticmethod
4089  def get_number_of_keys():
4090  r"""get_number_of_keys() -> unsigned int"""
4091  return _IMP_kernel.Vector3DDerivKey_get_number_of_keys()
4092 
4093  def get_index(self):
4094  r"""get_index(Vector3DDerivKey self) -> unsigned int"""
4095  return _IMP_kernel.Vector3DDerivKey_get_index(self)
4096 
4097  @staticmethod
4098  def show_all(out):
4099  r"""show_all(_ostream out)"""
4100  return _IMP_kernel.Vector3DDerivKey_show_all(out)
4101 
4102  @staticmethod
4103  def get_all_strings():
4104  r"""get_all_strings() -> IMP::Vector< std::string >"""
4105  return _IMP_kernel.Vector3DDerivKey_get_all_strings()
4106 
4107  @staticmethod
4108  def get_number_unique():
4109  r"""get_number_unique() -> unsigned int"""
4110  return _IMP_kernel.Vector3DDerivKey_get_number_unique()
4111 
4112  def __str__(self):
4113  r"""__str__(Vector3DDerivKey self) -> std::string"""
4114  return _IMP_kernel.Vector3DDerivKey___str__(self)
4115 
4116  def __repr__(self):
4117  r"""__repr__(Vector3DDerivKey self) -> std::string"""
4118  return _IMP_kernel.Vector3DDerivKey___repr__(self)
4119  __swig_destroy__ = _IMP_kernel.delete_Vector3DDerivKey
4120 
4121 # Register Vector3DDerivKey in _IMP_kernel:
4122 _IMP_kernel.Vector3DDerivKey_swigregister(Vector3DDerivKey)
4123 class Vector4DKey(_Value):
4124  r"""Proxy of C++ IMP::Key< 18 > class."""
4125 
4126  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4127 
4128  def __init__(self, *args):
4129  r"""
4130  __init__(Vector4DKey self) -> Vector4DKey
4131  __init__(Vector4DKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector4DKey
4132  __init__(Vector4DKey self, unsigned int i) -> Vector4DKey
4133  """
4134  _IMP_kernel.Vector4DKey_swiginit(self, _IMP_kernel.new_Vector4DKey(*args))
4135 
4136  @staticmethod
4137  def add_key(sc):
4138  r"""add_key(std::string sc) -> unsigned int"""
4139  return _IMP_kernel.Vector4DKey_add_key(sc)
4140 
4141  @staticmethod
4142  def get_key_exists(sc):
4143  r"""get_key_exists(std::string sc) -> bool"""
4144  return _IMP_kernel.Vector4DKey_get_key_exists(sc)
4145 
4146  def get_string(self):
4147  r"""get_string(Vector4DKey self) -> std::string const"""
4148  return _IMP_kernel.Vector4DKey_get_string(self)
4149 
4150  def __cmp__(self, o):
4151  r"""__cmp__(Vector4DKey self, Vector4DKey o) -> int"""
4152  return _IMP_kernel.Vector4DKey___cmp__(self, o)
4153 
4154  def __eq__(self, o):
4155  r"""__eq__(Vector4DKey self, Vector4DKey o) -> bool"""
4156  return _IMP_kernel.Vector4DKey___eq__(self, o)
4157 
4158  def __ne__(self, o):
4159  r"""__ne__(Vector4DKey self, Vector4DKey o) -> bool"""
4160  return _IMP_kernel.Vector4DKey___ne__(self, o)
4161 
4162  def __lt__(self, o):
4163  r"""__lt__(Vector4DKey self, Vector4DKey o) -> bool"""
4164  return _IMP_kernel.Vector4DKey___lt__(self, o)
4165 
4166  def __gt__(self, o):
4167  r"""__gt__(Vector4DKey self, Vector4DKey o) -> bool"""
4168  return _IMP_kernel.Vector4DKey___gt__(self, o)
4169 
4170  def __ge__(self, o):
4171  r"""__ge__(Vector4DKey self, Vector4DKey o) -> bool"""
4172  return _IMP_kernel.Vector4DKey___ge__(self, o)
4173 
4174  def __le__(self, o):
4175  r"""__le__(Vector4DKey self, Vector4DKey o) -> bool"""
4176  return _IMP_kernel.Vector4DKey___le__(self, o)
4177 
4178  def __hash__(self):
4179  r"""__hash__(Vector4DKey self) -> std::size_t"""
4180  return _IMP_kernel.Vector4DKey___hash__(self)
4181 
4182  def show(self, *args):
4183  r"""show(Vector4DKey self, _ostream out=std::cout)"""
4184  return _IMP_kernel.Vector4DKey_show(self, *args)
4185 
4186  @staticmethod
4187  def add_alias(old_key, new_name):
4188  r"""add_alias(Vector4DKey old_key, std::string new_name) -> Vector4DKey"""
4189  return _IMP_kernel.Vector4DKey_add_alias(old_key, new_name)
4190 
4191  @staticmethod
4192  def get_number_of_keys():
4193  r"""get_number_of_keys() -> unsigned int"""
4194  return _IMP_kernel.Vector4DKey_get_number_of_keys()
4195 
4196  def get_index(self):
4197  r"""get_index(Vector4DKey self) -> unsigned int"""
4198  return _IMP_kernel.Vector4DKey_get_index(self)
4199 
4200  @staticmethod
4201  def show_all(out):
4202  r"""show_all(_ostream out)"""
4203  return _IMP_kernel.Vector4DKey_show_all(out)
4204 
4205  @staticmethod
4206  def get_all_strings():
4207  r"""get_all_strings() -> IMP::Vector< std::string >"""
4208  return _IMP_kernel.Vector4DKey_get_all_strings()
4209 
4210  @staticmethod
4211  def get_number_unique():
4212  r"""get_number_unique() -> unsigned int"""
4213  return _IMP_kernel.Vector4DKey_get_number_unique()
4214 
4215  def __str__(self):
4216  r"""__str__(Vector4DKey self) -> std::string"""
4217  return _IMP_kernel.Vector4DKey___str__(self)
4218 
4219  def __repr__(self):
4220  r"""__repr__(Vector4DKey self) -> std::string"""
4221  return _IMP_kernel.Vector4DKey___repr__(self)
4222  __swig_destroy__ = _IMP_kernel.delete_Vector4DKey
4223 
4224 # Register Vector4DKey in _IMP_kernel:
4225 _IMP_kernel.Vector4DKey_swigregister(Vector4DKey)
4226 class Vector4DDerivKey(_Value):
4227  r"""Proxy of C++ IMP::Key< 19 > class."""
4228 
4229  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4230 
4231  def __init__(self, *args):
4232  r"""
4233  __init__(Vector4DDerivKey self) -> Vector4DDerivKey
4234  __init__(Vector4DDerivKey self, std::string const & c, bool is_implicit_add_permitted=True) -> Vector4DDerivKey
4235  __init__(Vector4DDerivKey self, unsigned int i) -> Vector4DDerivKey
4236  """
4237  _IMP_kernel.Vector4DDerivKey_swiginit(self, _IMP_kernel.new_Vector4DDerivKey(*args))
4238 
4239  @staticmethod
4240  def add_key(sc):
4241  r"""add_key(std::string sc) -> unsigned int"""
4242  return _IMP_kernel.Vector4DDerivKey_add_key(sc)
4243 
4244  @staticmethod
4245  def get_key_exists(sc):
4246  r"""get_key_exists(std::string 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 __cmp__(self, o):
4254  r"""__cmp__(Vector4DDerivKey self, Vector4DDerivKey o) -> int"""
4255  return _IMP_kernel.Vector4DDerivKey___cmp__(self, o)
4256 
4257  def __eq__(self, o):
4258  r"""__eq__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4259  return _IMP_kernel.Vector4DDerivKey___eq__(self, o)
4260 
4261  def __ne__(self, o):
4262  r"""__ne__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4263  return _IMP_kernel.Vector4DDerivKey___ne__(self, o)
4264 
4265  def __lt__(self, o):
4266  r"""__lt__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4267  return _IMP_kernel.Vector4DDerivKey___lt__(self, o)
4268 
4269  def __gt__(self, o):
4270  r"""__gt__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4271  return _IMP_kernel.Vector4DDerivKey___gt__(self, o)
4272 
4273  def __ge__(self, o):
4274  r"""__ge__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4275  return _IMP_kernel.Vector4DDerivKey___ge__(self, o)
4276 
4277  def __le__(self, o):
4278  r"""__le__(Vector4DDerivKey self, Vector4DDerivKey o) -> bool"""
4279  return _IMP_kernel.Vector4DDerivKey___le__(self, o)
4280 
4281  def __hash__(self):
4282  r"""__hash__(Vector4DDerivKey self) -> std::size_t"""
4283  return _IMP_kernel.Vector4DDerivKey___hash__(self)
4284 
4285  def show(self, *args):
4286  r"""show(Vector4DDerivKey self, _ostream out=std::cout)"""
4287  return _IMP_kernel.Vector4DDerivKey_show(self, *args)
4288 
4289  @staticmethod
4290  def add_alias(old_key, new_name):
4291  r"""add_alias(Vector4DDerivKey old_key, std::string new_name) -> Vector4DDerivKey"""
4292  return _IMP_kernel.Vector4DDerivKey_add_alias(old_key, new_name)
4293 
4294  @staticmethod
4295  def get_number_of_keys():
4296  r"""get_number_of_keys() -> unsigned int"""
4297  return _IMP_kernel.Vector4DDerivKey_get_number_of_keys()
4298 
4299  def get_index(self):
4300  r"""get_index(Vector4DDerivKey self) -> unsigned int"""
4301  return _IMP_kernel.Vector4DDerivKey_get_index(self)
4302 
4303  @staticmethod
4304  def show_all(out):
4305  r"""show_all(_ostream out)"""
4306  return _IMP_kernel.Vector4DDerivKey_show_all(out)
4307 
4308  @staticmethod
4309  def get_all_strings():
4310  r"""get_all_strings() -> IMP::Vector< std::string >"""
4311  return _IMP_kernel.Vector4DDerivKey_get_all_strings()
4312 
4313  @staticmethod
4314  def get_number_unique():
4315  r"""get_number_unique() -> unsigned int"""
4316  return _IMP_kernel.Vector4DDerivKey_get_number_unique()
4317 
4318  def __str__(self):
4319  r"""__str__(Vector4DDerivKey self) -> std::string"""
4320  return _IMP_kernel.Vector4DDerivKey___str__(self)
4321 
4322  def __repr__(self):
4323  r"""__repr__(Vector4DDerivKey self) -> std::string"""
4324  return _IMP_kernel.Vector4DDerivKey___repr__(self)
4325  __swig_destroy__ = _IMP_kernel.delete_Vector4DDerivKey
4326 
4327 # Register Vector4DDerivKey in _IMP_kernel:
4328 _IMP_kernel.Vector4DDerivKey_swigregister(Vector4DDerivKey)
4329 
4330 def ParticlePair(a, b):
4331  return (a,b)
4332 def ParticleTriplet(a, b, c):
4333  return (a,b,c)
4334 def ParticleQuad(a, b, c, d):
4335  return (a,b,c,d)
4336 
4337 class FloatIndex(_Value):
4338  r"""Proxy of C++ IMP::FloatIndex class."""
4339 
4340  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4341 
4342  def __init__(self, *args):
4343  r"""
4344  __init__(FloatIndex self, ParticleIndex pi, FloatKey k) -> FloatIndex
4345  __init__(FloatIndex self, ParticleIndex pi, Vector3DDerivKey k, int index) -> FloatIndex
4346  __init__(FloatIndex self, ParticleIndex pi, Vector4DDerivKey k, int index) -> FloatIndex
4347  """
4348  _IMP_kernel.FloatIndex_swiginit(self, _IMP_kernel.new_FloatIndex(*args))
4349 
4350  def get_float_key(self):
4351  r"""get_float_key(FloatIndex self) -> FloatKey"""
4352  return _IMP_kernel.FloatIndex_get_float_key(self)
4353 
4354  def set_value(self, m, v):
4355  r"""set_value(FloatIndex self, Model m, IMP::Float v)"""
4356  return _IMP_kernel.FloatIndex_set_value(self, m, v)
4357 
4358  def get_value(self, m):
4359  r"""get_value(FloatIndex self, Model m) -> IMP::Float"""
4360  return _IMP_kernel.FloatIndex_get_value(self, m)
4361 
4362  def get_derivative(self, m):
4363  r"""get_derivative(FloatIndex self, Model m) -> IMP::Float"""
4364  return _IMP_kernel.FloatIndex_get_derivative(self, m)
4365 
4366  def show(self, *args):
4367  r"""show(FloatIndex self, _ostream out=std::cout)"""
4368  return _IMP_kernel.FloatIndex_show(self, *args)
4369 
4370  def __str__(self):
4371  r"""__str__(FloatIndex self) -> std::string"""
4372  return _IMP_kernel.FloatIndex___str__(self)
4373 
4374  def __repr__(self):
4375  r"""__repr__(FloatIndex self) -> std::string"""
4376  return _IMP_kernel.FloatIndex___repr__(self)
4377  __swig_destroy__ = _IMP_kernel.delete_FloatIndex
4378 
4379 # Register FloatIndex in _IMP_kernel:
4380 _IMP_kernel.FloatIndex_swigregister(FloatIndex)
4381 class _ParticleIndexTag(object):
4382  r"""Proxy of C++ IMP::ParticleIndexTag class."""
4383 
4384  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4385  __repr__ = _swig_repr
4386 
4387  def __init__(self):
4388  r"""__init__(_ParticleIndexTag self) -> _ParticleIndexTag"""
4389  _IMP_kernel._ParticleIndexTag_swiginit(self, _IMP_kernel.new__ParticleIndexTag())
4390  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexTag
4391 
4392 # Register _ParticleIndexTag in _IMP_kernel:
4393 _IMP_kernel._ParticleIndexTag_swigregister(_ParticleIndexTag)
4394 class ModelObject(Object):
4395  r"""Proxy of C++ IMP::ModelObject class."""
4396 
4397  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4398 
4399  def __init__(self, *args):
4400  r"""
4401  __init__(ModelObject self, Model m, std::string name) -> ModelObject
4402  __init__(ModelObject self) -> ModelObject
4403  """
4404  if self.__class__ == ModelObject:
4405  _self = None
4406  else:
4407  _self = self
4408  _IMP_kernel.ModelObject_swiginit(self, _IMP_kernel.new_ModelObject(_self, *args))
4409 
4410  if self.__class__ != ModelObject:
4411  _director_objects.register(self)
4412 
4413 
4414 
4415  __swig_destroy__ = _IMP_kernel.delete_ModelObject
4416 
4417  def get_model(self):
4418  m = _IMP_kernel.ModelObject_get_model(self)
4419  if m in _models_set:
4420  m = _models_set_get(m)
4421  return m
4422 
4423 
4424 
4425  def get_inputs(self):
4426  r"""get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4427  return _IMP_kernel.ModelObject_get_inputs(self)
4428 
4429  def get_outputs(self):
4430  r"""get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4431  return _IMP_kernel.ModelObject_get_outputs(self)
4432 
4433  def get_interactions(self):
4434  r"""get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
4435  return _IMP_kernel.ModelObject_get_interactions(self)
4436 
4437  def get_has_dependencies(self):
4438  r"""get_has_dependencies(ModelObject self) -> bool"""
4439  return _IMP_kernel.ModelObject_get_has_dependencies(self)
4440 
4441  def set_has_dependencies(self, tf):
4442  r"""set_has_dependencies(ModelObject self, bool tf)"""
4443  return _IMP_kernel.ModelObject_set_has_dependencies(self, tf)
4444 
4445  def set_has_required_score_states(self, tf):
4446  r"""set_has_required_score_states(ModelObject self, bool tf)"""
4447  return _IMP_kernel.ModelObject_set_has_required_score_states(self, tf)
4448 
4449  def get_has_required_score_states(self):
4450  r"""get_has_required_score_states(ModelObject self) -> bool"""
4451  return _IMP_kernel.ModelObject_get_has_required_score_states(self)
4452 
4453  def get_required_score_states(self):
4454  r"""get_required_score_states(ModelObject self) -> IMP::ScoreStatesTemp const &"""
4455  return _IMP_kernel.ModelObject_get_required_score_states(self)
4456 
4457  def handle_set_has_required_score_states(self, arg0):
4458  r"""handle_set_has_required_score_states(ModelObject self, bool arg0)"""
4459  return _IMP_kernel.ModelObject_handle_set_has_required_score_states(self, arg0)
4460 
4461  def do_get_inputs(self):
4462  r"""do_get_inputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4463  return _IMP_kernel.ModelObject_do_get_inputs(self)
4464 
4465  def do_get_outputs(self):
4466  r"""do_get_outputs(ModelObject self) -> IMP::ModelObjectsTemp"""
4467  return _IMP_kernel.ModelObject_do_get_outputs(self)
4468 
4469  def do_get_interactions(self):
4470  r"""do_get_interactions(ModelObject self) -> IMP::ModelObjectsTemps"""
4471  return _IMP_kernel.ModelObject_do_get_interactions(self)
4472 
4473  def __str__(self):
4474  r"""__str__(ModelObject self) -> std::string"""
4475  return _IMP_kernel.ModelObject___str__(self)
4476 
4477  def __repr__(self):
4478  r"""__repr__(ModelObject self) -> std::string"""
4479  return _IMP_kernel.ModelObject___repr__(self)
4480 
4481  @staticmethod
4482  def get_from(o):
4483  return _object_cast_to_ModelObject(o)
4484 
4485 
4486  def do_show(self, out):
4487  pass
4488 
4489  @staticmethod
4490  def get_from(o):
4491  return _object_cast_to_ModelObject(o)
4492 
4493  def __disown__(self):
4494  self.this.disown()
4495  _IMP_kernel.disown_ModelObject(self)
4496  return weakref.proxy(self)
4497 
4498  def do_destroy(self):
4499  r"""do_destroy(ModelObject self)"""
4500  return _IMP_kernel.ModelObject_do_destroy(self)
4501 
4502 # Register ModelObject in _IMP_kernel:
4503 _IMP_kernel.ModelObject_swigregister(ModelObject)
4504 cvar = _IMP_kernel.cvar
4505 NO_MAX = cvar.NO_MAX
4506 BAD_SCORE = cvar.BAD_SCORE
4507 
4508 class _ParticleInputs(object):
4509  r"""Proxy of C++ IMP::ParticleInputs class."""
4510 
4511  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4512 
4513  def __init__(self, *args, **kwargs):
4514  raise AttributeError("No constructor defined - class is abstract")
4515  __repr__ = _swig_repr
4516 
4517  def get_inputs(self, m, pis):
4518  r"""get_inputs(_ParticleInputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4519  return _IMP_kernel._ParticleInputs_get_inputs(self, m, pis)
4520 
4521 # Register _ParticleInputs in _IMP_kernel:
4522 _IMP_kernel._ParticleInputs_swigregister(_ParticleInputs)
4523 class _ParticleOutputs(object):
4524  r"""Proxy of C++ IMP::ParticleOutputs class."""
4525 
4526  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4527 
4528  def __init__(self, *args, **kwargs):
4529  raise AttributeError("No constructor defined - class is abstract")
4530  __repr__ = _swig_repr
4531 
4532  def get_outputs(self, m, pis):
4533  r"""get_outputs(_ParticleOutputs self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4534  return _IMP_kernel._ParticleOutputs_get_outputs(self, m, pis)
4535 
4536 # Register _ParticleOutputs in _IMP_kernel:
4537 _IMP_kernel._ParticleOutputs_swigregister(_ParticleOutputs)
4538 
4539 def get_input_particles(mos):
4540  r"""get_input_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
4541  return _IMP_kernel.get_input_particles(mos)
4542 
4543 def get_input_containers(mos):
4544  r"""get_input_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
4545  return _IMP_kernel.get_input_containers(mos)
4546 
4547 def get_output_particles(mos):
4548  r"""get_output_particles(IMP::ModelObjectsTemp const & mos) -> IMP::ParticlesTemp"""
4549  return _IMP_kernel.get_output_particles(mos)
4550 
4551 def get_output_containers(mos):
4552  r"""get_output_containers(IMP::ModelObjectsTemp const & mos) -> IMP::ContainersTemp"""
4553  return _IMP_kernel.get_output_containers(mos)
4554 
4555 Vector1Ds=list
4556 _plural_types.append("Vector1Ds")
4557 _value_types.append("Vector1D")
4558 
4559 
4560 Vector2Ds=list
4561 _plural_types.append("Vector2Ds")
4562 _value_types.append("Vector2D")
4563 
4564 
4565 Vector3Ds=list
4566 _plural_types.append("Vector3Ds")
4567 _value_types.append("Vector3D")
4568 
4569 
4570 Vector4Ds=list
4571 _plural_types.append("Vector4Ds")
4572 _value_types.append("Vector4D")
4573 
4574 
4575 Vector5Ds=list
4576 _plural_types.append("Vector5Ds")
4577 _value_types.append("Vector5D")
4578 
4579 
4580 Vector6Ds=list
4581 _plural_types.append("Vector6Ds")
4582 _value_types.append("Vector6D")
4583 
4584 
4585 Vector1Ds=list
4586 _plural_types.append("Vector1Ds")
4587 _value_types.append("VectorD<1>")
4588 
4589 
4590 Vector2Ds=list
4591 _plural_types.append("Vector2Ds")
4592 _value_types.append("VectorD<2>")
4593 
4594 
4595 Vector3Ds=list
4596 _plural_types.append("Vector3Ds")
4597 _value_types.append("VectorD<3>")
4598 
4599 
4600 Vector4Ds=list
4601 _plural_types.append("Vector4Ds")
4602 _value_types.append("VectorD<4>")
4603 
4604 
4605 Vector5Ds=list
4606 _plural_types.append("Vector5Ds")
4607 _value_types.append("VectorD<5>")
4608 
4609 
4610 Vector6Ds=list
4611 _plural_types.append("Vector6Ds")
4612 _value_types.append("VectorD<6>")
4613 
4614 
4615 VectorKDs=list
4616 _plural_types.append("VectorKDs")
4617 _value_types.append("VectorKD")
4618 
4619 
4620 VectorKDs=list
4621 _plural_types.append("VectorKDs")
4622 _value_types.append("VectorD<-1>")
4623 
4624 
4625 def get_basis_vector_kd(D, coordinate):
4626  r"""get_basis_vector_kd(int D, unsigned int coordinate) -> VectorKD"""
4627  return _IMP_kernel.get_basis_vector_kd(D, coordinate)
4628 
4629 def get_zero_vector_kd(D):
4630  r"""get_zero_vector_kd(int D) -> VectorKD"""
4631  return _IMP_kernel.get_zero_vector_kd(D)
4632 
4633 def get_ones_vector_kd(D, v=1):
4634  r"""get_ones_vector_kd(unsigned int D, double v=1) -> VectorKD"""
4635  return _IMP_kernel.get_ones_vector_kd(D, v)
4636 
4637 def get_vector_product(p1, p2):
4638  r"""get_vector_product(Vector3D p1, Vector3D p2) -> Vector3D"""
4639  return _IMP_kernel.get_vector_product(p1, p2)
4640 
4641 def get_orthogonal_vector(v):
4642  r"""get_orthogonal_vector(Vector3D v) -> Vector3D"""
4643  return _IMP_kernel.get_orthogonal_vector(v)
4644 
4645 def get_centroid(ps):
4646  r"""get_centroid(IMP::Vector3Ds const & ps) -> Vector3D"""
4647  return _IMP_kernel.get_centroid(ps)
4648 
4649 def get_radius_of_gyration(ps):
4650  r"""get_radius_of_gyration(IMP::Vector3Ds const & ps) -> double"""
4651  return _IMP_kernel.get_radius_of_gyration(ps)
4652 class DerivativeAccumulator(object):
4653  r"""Proxy of C++ IMP::DerivativeAccumulator class."""
4654 
4655  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4656  __repr__ = _swig_repr
4657 
4658  def __init__(self, *args):
4659  r"""
4660  __init__(DerivativeAccumulator self, DerivativeAccumulator arg2) -> DerivativeAccumulator
4661  __init__(DerivativeAccumulator self, double weight=1.0) -> DerivativeAccumulator
4662  __init__(DerivativeAccumulator self, DerivativeAccumulator copy, double weight) -> DerivativeAccumulator
4663  """
4664  _IMP_kernel.DerivativeAccumulator_swiginit(self, _IMP_kernel.new_DerivativeAccumulator(*args))
4665 
4666  def __call__(self, *args):
4667  r"""
4668  __call__(DerivativeAccumulator self, double const value) -> double
4669  __call__(DerivativeAccumulator self, Vector3D value) -> Vector3D
4670  __call__(DerivativeAccumulator self, Vector4D value) -> Vector4D
4671  """
4672  return _IMP_kernel.DerivativeAccumulator___call__(self, *args)
4673 
4674  def get_weight(self):
4675  r"""get_weight(DerivativeAccumulator self) -> double"""
4676  return _IMP_kernel.DerivativeAccumulator_get_weight(self)
4677 
4678  def show(self, *args):
4679  r"""show(DerivativeAccumulator self, _ostream out=std::cout)"""
4680  return _IMP_kernel.DerivativeAccumulator_show(self, *args)
4681  __swig_destroy__ = _IMP_kernel.delete_DerivativeAccumulator
4682 
4683 # Register DerivativeAccumulator in _IMP_kernel:
4684 _IMP_kernel.DerivativeAccumulator_swigregister(DerivativeAccumulator)
4685 class EvaluationState(object):
4686  r"""Proxy of C++ IMP::EvaluationState class."""
4687 
4688  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4689  score = property(_IMP_kernel.EvaluationState_score_get, _IMP_kernel.EvaluationState_score_set, doc=r"""score : double""")
4690  good = property(_IMP_kernel.EvaluationState_good_get, _IMP_kernel.EvaluationState_good_set, doc=r"""good : bool""")
4691 
4692  def __init__(self, *args):
4693  r"""
4694  __init__(EvaluationState self, double oscore, bool ogood) -> EvaluationState
4695  __init__(EvaluationState self) -> EvaluationState
4696  """
4697  _IMP_kernel.EvaluationState_swiginit(self, _IMP_kernel.new_EvaluationState(*args))
4698 
4699  def show(self, *args):
4700  r"""show(EvaluationState self, _ostream out=std::cout)"""
4701  return _IMP_kernel.EvaluationState_show(self, *args)
4702 
4703  def __str__(self):
4704  r"""__str__(EvaluationState self) -> std::string"""
4705  return _IMP_kernel.EvaluationState___str__(self)
4706 
4707  def __repr__(self):
4708  r"""__repr__(EvaluationState self) -> std::string"""
4709  return _IMP_kernel.EvaluationState___repr__(self)
4710  __swig_destroy__ = _IMP_kernel.delete_EvaluationState
4711 
4712 # Register EvaluationState in _IMP_kernel:
4713 _IMP_kernel.EvaluationState_swigregister(EvaluationState)
4714 class ScoreAccumulator(_Value):
4715  r"""Proxy of C++ IMP::ScoreAccumulator class."""
4716 
4717  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4718 
4719  def __init__(self, *args):
4720  r"""
4721  __init__(ScoreAccumulator self, ScoreAccumulator arg2) -> ScoreAccumulator
4722  __init__(ScoreAccumulator self) -> ScoreAccumulator
4723  __init__(ScoreAccumulator self, ScoreAccumulator o, Restraint r) -> ScoreAccumulator
4724  __init__(ScoreAccumulator self, ScoreAccumulator o, double weight, double local_max) -> ScoreAccumulator
4725  """
4726  _IMP_kernel.ScoreAccumulator_swiginit(self, _IMP_kernel.new_ScoreAccumulator(*args))
4727 
4728  def add_score(self, score):
4729  r"""add_score(ScoreAccumulator self, double score)"""
4730  return _IMP_kernel.ScoreAccumulator_add_score(self, score)
4731 
4732  def get_abort_evaluation(self):
4733  r"""get_abort_evaluation(ScoreAccumulator self) -> bool"""
4734  return _IMP_kernel.ScoreAccumulator_get_abort_evaluation(self)
4735 
4736  def get_is_evaluate_if_below(self):
4737  r"""get_is_evaluate_if_below(ScoreAccumulator self) -> bool"""
4738  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_below(self)
4739 
4740  def get_is_evaluate_if_good(self):
4741  r"""get_is_evaluate_if_good(ScoreAccumulator self) -> bool"""
4742  return _IMP_kernel.ScoreAccumulator_get_is_evaluate_if_good(self)
4743 
4744  def get_maximum(self):
4745  r"""get_maximum(ScoreAccumulator self) -> double"""
4746  return _IMP_kernel.ScoreAccumulator_get_maximum(self)
4747 
4748  def get_derivative_accumulator(self):
4749  r"""get_derivative_accumulator(ScoreAccumulator self) -> DerivativeAccumulator"""
4750  return _IMP_kernel.ScoreAccumulator_get_derivative_accumulator(self)
4751 
4752  def show(self, *args):
4753  r"""show(ScoreAccumulator self, _ostream out=std::cout)"""
4754  return _IMP_kernel.ScoreAccumulator_show(self, *args)
4755 
4756  def __str__(self):
4757  r"""__str__(ScoreAccumulator self) -> std::string"""
4758  return _IMP_kernel.ScoreAccumulator___str__(self)
4759 
4760  def __repr__(self):
4761  r"""__repr__(ScoreAccumulator self) -> std::string"""
4762  return _IMP_kernel.ScoreAccumulator___repr__(self)
4763  __swig_destroy__ = _IMP_kernel.delete_ScoreAccumulator
4764 
4765 # Register ScoreAccumulator in _IMP_kernel:
4766 _IMP_kernel.ScoreAccumulator_swigregister(ScoreAccumulator)
4767 class ScoreState(ModelObject):
4768  r"""Proxy of C++ IMP::ScoreState class."""
4769 
4770  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4771 
4772  def set_can_skip(self, can_skip):
4773  r"""set_can_skip(ScoreState self, bool can_skip)"""
4774  return _IMP_kernel.ScoreState_set_can_skip(self, can_skip)
4775 
4776  def __init__(self, *args):
4777  r"""
4778  __init__(ScoreState self, Model m, std::string name) -> ScoreState
4779  __init__(ScoreState self) -> ScoreState
4780  """
4781  if self.__class__ == ScoreState:
4782  _self = None
4783  else:
4784  _self = self
4785  _IMP_kernel.ScoreState_swiginit(self, _IMP_kernel.new_ScoreState(_self, *args))
4786 
4787  if self.__class__ != ScoreState:
4788  _director_objects.register(self)
4789 
4790 
4791 
4792 
4793  def before_evaluate(self):
4794  r"""before_evaluate(ScoreState self)"""
4795  return _IMP_kernel.ScoreState_before_evaluate(self)
4796 
4797  def after_evaluate(self, accpt):
4798  r"""after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
4799  return _IMP_kernel.ScoreState_after_evaluate(self, accpt)
4800 
4801  def get_can_skip(self):
4802  r"""get_can_skip(ScoreState self) -> bool"""
4803  return _IMP_kernel.ScoreState_get_can_skip(self)
4804 
4805  def get_has_update_order(self):
4806  r"""get_has_update_order(ScoreState self) -> bool"""
4807  return _IMP_kernel.ScoreState_get_has_update_order(self)
4808 
4809  def get_update_order(self):
4810  r"""get_update_order(ScoreState self) -> unsigned int"""
4811  return _IMP_kernel.ScoreState_get_update_order(self)
4812 
4813  def handle_set_has_required_score_states(self, tf):
4814  r"""handle_set_has_required_score_states(ScoreState self, bool tf)"""
4815  return _IMP_kernel.ScoreState_handle_set_has_required_score_states(self, tf)
4816 
4817  def do_before_evaluate(self):
4818  r"""do_before_evaluate(ScoreState self)"""
4819  return _IMP_kernel.ScoreState_do_before_evaluate(self)
4820 
4821  def do_after_evaluate(self, accpt):
4822  r"""do_after_evaluate(ScoreState self, DerivativeAccumulator accpt)"""
4823  return _IMP_kernel.ScoreState_do_after_evaluate(self, accpt)
4824  __swig_destroy__ = _IMP_kernel.delete_ScoreState
4825 
4826  def __str__(self):
4827  r"""__str__(ScoreState self) -> std::string"""
4828  return _IMP_kernel.ScoreState___str__(self)
4829 
4830  def __repr__(self):
4831  r"""__repr__(ScoreState self) -> std::string"""
4832  return _IMP_kernel.ScoreState___repr__(self)
4833 
4834  @staticmethod
4835  def get_from(o):
4836  return _object_cast_to_ScoreState(o)
4837 
4838 
4839  def do_show(self, out):
4840  pass
4841 
4842  @staticmethod
4843  def get_from(o):
4844  return _object_cast_to_ScoreState(o)
4845 
4846 
4847  def _wrap_jax(self, apply_func, keys=None):
4848  """Create the return value for _get_jax.
4849  Use this method in _get_jax() to wrap the JAX apply function
4850  with other model- and ScoreState-specific information.
4851 
4852  @param apply_func A function implemented using JAX that takes
4853  a single argument (the current JAX Model) and returns
4854  a new JAX Model with the ScoreState's transformation
4855  applied.
4856  @param keys If given, a set of IMP::Key objects describing Model
4857  attributes (other than xyz and radius) that the ScoreState
4858  uses.
4859  """
4860  from IMP._jax_util import JAXScoreStateInfo
4861  return JAXScoreStateInfo(m=self.get_model(), apply_func=apply_func,
4862  keys=keys)
4863 
4864  def _get_jax(self):
4865  """Return a JAX implementation of this ScoreState.
4866  Implement this method in a ScoreState subclass to provide
4867  an equivalent function using [JAX](https://docs.jax.dev/)
4868  that modifies the JAX Model. See also _wrap_jax.
4869  """
4870  raise NotImplementedError(
4871  f"No JAX implementation for {self} ({type(self)})")
4872 
4873  def __disown__(self):
4874  self.this.disown()
4875  _IMP_kernel.disown_ScoreState(self)
4876  return weakref.proxy(self)
4877 
4878  def do_destroy(self):
4879  r"""do_destroy(ScoreState self)"""
4880  return _IMP_kernel.ScoreState_do_destroy(self)
4881 
4882  def do_get_inputs(self):
4883  r"""do_get_inputs(ScoreState self) -> IMP::ModelObjectsTemp"""
4884  return _IMP_kernel.ScoreState_do_get_inputs(self)
4885 
4886  def do_get_outputs(self):
4887  r"""do_get_outputs(ScoreState self) -> IMP::ModelObjectsTemp"""
4888  return _IMP_kernel.ScoreState_do_get_outputs(self)
4889 
4890  def do_get_interactions(self):
4891  r"""do_get_interactions(ScoreState self) -> IMP::ModelObjectsTemps"""
4892  return _IMP_kernel.ScoreState_do_get_interactions(self)
4893 
4894 # Register ScoreState in _IMP_kernel:
4895 _IMP_kernel.ScoreState_swigregister(ScoreState)
4896 
4897 def get_update_order(input):
4898  r"""get_update_order(IMP::ScoreStatesTemp input) -> IMP::ScoreStatesTemp"""
4899  return _IMP_kernel.get_update_order(input)
4900 class Constraint(ScoreState):
4901  r"""Proxy of C++ IMP::Constraint class."""
4902 
4903  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4904 
4905  def __init__(self, *args):
4906  r"""
4907  __init__(Constraint self, Model m, std::string name="Constraint %1%") -> Constraint
4908  __init__(Constraint self) -> Constraint
4909  """
4910  if self.__class__ == Constraint:
4911  _self = None
4912  else:
4913  _self = self
4914  _IMP_kernel.Constraint_swiginit(self, _IMP_kernel.new_Constraint(_self, *args))
4915 
4916  if self.__class__ != Constraint:
4917  _director_objects.register(self)
4918 
4919 
4920 
4921 
4922  def do_update_attributes(self):
4923  r"""do_update_attributes(Constraint self)"""
4924  return _IMP_kernel.Constraint_do_update_attributes(self)
4925 
4926  def do_update_derivatives(self, da):
4927  r"""do_update_derivatives(Constraint self, DerivativeAccumulator da)"""
4928  return _IMP_kernel.Constraint_do_update_derivatives(self, da)
4929 
4930  def do_before_evaluate(self):
4931  r"""do_before_evaluate(Constraint self)"""
4932  return _IMP_kernel.Constraint_do_before_evaluate(self)
4933 
4934  def do_after_evaluate(self, da):
4935  r"""do_after_evaluate(Constraint self, DerivativeAccumulator da)"""
4936  return _IMP_kernel.Constraint_do_after_evaluate(self, da)
4937  __swig_destroy__ = _IMP_kernel.delete_Constraint
4938 
4939  def __str__(self):
4940  r"""__str__(Constraint self) -> std::string"""
4941  return _IMP_kernel.Constraint___str__(self)
4942 
4943  def __repr__(self):
4944  r"""__repr__(Constraint self) -> std::string"""
4945  return _IMP_kernel.Constraint___repr__(self)
4946 
4947  @staticmethod
4948  def get_from(o):
4949  return _object_cast_to_Constraint(o)
4950 
4951 
4952  def do_show(self, out):
4953  pass
4954 
4955  @staticmethod
4956  def get_from(o):
4957  return _object_cast_to_Constraint(o)
4958 
4959  def __disown__(self):
4960  self.this.disown()
4961  _IMP_kernel.disown_Constraint(self)
4962  return weakref.proxy(self)
4963 
4964  def do_destroy(self):
4965  r"""do_destroy(Constraint self)"""
4966  return _IMP_kernel.Constraint_do_destroy(self)
4967 
4968  def do_get_inputs(self):
4969  r"""do_get_inputs(Constraint self) -> IMP::ModelObjectsTemp"""
4970  return _IMP_kernel.Constraint_do_get_inputs(self)
4971 
4972  def do_get_outputs(self):
4973  r"""do_get_outputs(Constraint self) -> IMP::ModelObjectsTemp"""
4974  return _IMP_kernel.Constraint_do_get_outputs(self)
4975 
4976  def do_get_interactions(self):
4977  r"""do_get_interactions(Constraint self) -> IMP::ModelObjectsTemps"""
4978  return _IMP_kernel.Constraint_do_get_interactions(self)
4979 
4980 # Register Constraint in _IMP_kernel:
4981 _IMP_kernel.Constraint_swigregister(Constraint)
4982 class Container(ModelObject):
4983  r"""Proxy of C++ IMP::Container class."""
4984 
4985  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4986 
4987  def __init__(self, *args):
4988  r"""
4989  __init__(Container self, Model m, std::string name="Container %1%") -> Container
4990  __init__(Container self) -> Container
4991  """
4992  if self.__class__ == Container:
4993  _self = None
4994  else:
4995  _self = self
4996  _IMP_kernel.Container_swiginit(self, _IMP_kernel.new_Container(_self, *args))
4997 
4998  if self.__class__ != Container:
4999  _director_objects.register(self)
5000 
5001 
5002 
5003 
5004  def do_get_contents_hash(self):
5005  r"""do_get_contents_hash(Container self) -> std::size_t"""
5006  return _IMP_kernel.Container_do_get_contents_hash(self)
5007 
5008  def get_all_possible_indexes(self):
5009  r"""get_all_possible_indexes(Container self) -> IMP::ParticleIndexes"""
5010  return _IMP_kernel.Container_get_all_possible_indexes(self)
5011 
5012  def get_contents_hash(self):
5013  r"""get_contents_hash(Container self) -> std::size_t"""
5014  return _IMP_kernel.Container_get_contents_hash(self)
5015 
5016  def do_get_outputs(self):
5017  r"""do_get_outputs(Container self) -> IMP::ModelObjectsTemp"""
5018  return _IMP_kernel.Container_do_get_outputs(self)
5019 
5020  def get_is_decomposable(self):
5021  r"""get_is_decomposable(Container self) -> bool"""
5022  return _IMP_kernel.Container_get_is_decomposable(self)
5023 
5024  def validate_readable(self):
5025  r"""validate_readable(Container self)"""
5026  return _IMP_kernel.Container_validate_readable(self)
5027 
5028  def validate_writable(self):
5029  r"""validate_writable(Container self)"""
5030  return _IMP_kernel.Container_validate_writable(self)
5031 
5032  def set_is_readable(self, tf):
5033  r"""set_is_readable(Container self, bool tf)"""
5034  return _IMP_kernel.Container_set_is_readable(self, tf)
5035 
5036  def set_is_writable(self, tf):
5037  r"""set_is_writable(Container self, bool tf)"""
5038  return _IMP_kernel.Container_set_is_writable(self, tf)
5039  __swig_destroy__ = _IMP_kernel.delete_Container
5040 
5041  def __str__(self):
5042  r"""__str__(Container self) -> std::string"""
5043  return _IMP_kernel.Container___str__(self)
5044 
5045  def __repr__(self):
5046  r"""__repr__(Container self) -> std::string"""
5047  return _IMP_kernel.Container___repr__(self)
5048 
5049  @staticmethod
5050  def get_from(o):
5051  return _object_cast_to_Container(o)
5052 
5053 
5054  def do_show(self, out):
5055  pass
5056 
5057  @staticmethod
5058  def get_from(o):
5059  return _object_cast_to_Container(o)
5060 
5061  def __disown__(self):
5062  self.this.disown()
5063  _IMP_kernel.disown_Container(self)
5064  return weakref.proxy(self)
5065 
5066  def do_destroy(self):
5067  r"""do_destroy(Container self)"""
5068  return _IMP_kernel.Container_do_destroy(self)
5069 
5070  def handle_set_has_required_score_states(self, arg0):
5071  r"""handle_set_has_required_score_states(Container self, bool arg0)"""
5072  return _IMP_kernel.Container_handle_set_has_required_score_states(self, arg0)
5073 
5074  def do_get_inputs(self):
5075  r"""do_get_inputs(Container self) -> IMP::ModelObjectsTemp"""
5076  return _IMP_kernel.Container_do_get_inputs(self)
5077 
5078  def do_get_interactions(self):
5079  r"""do_get_interactions(Container self) -> IMP::ModelObjectsTemps"""
5080  return _IMP_kernel.Container_do_get_interactions(self)
5081 
5082 # Register Container in _IMP_kernel:
5083 _IMP_kernel.Container_swigregister(Container)
5084 class RestraintInfo(Object):
5085  r"""Proxy of C++ IMP::RestraintInfo class."""
5086 
5087  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5088 
5089  def __init__(self, *args):
5090  r"""__init__(RestraintInfo self, std::string name="RestraintInfo %1%") -> RestraintInfo"""
5091  _IMP_kernel.RestraintInfo_swiginit(self, _IMP_kernel.new_RestraintInfo(*args))
5092 
5093  def clear(self):
5094  r"""clear(RestraintInfo self)"""
5095  return _IMP_kernel.RestraintInfo_clear(self)
5096 
5097  def add_int(self, key, value):
5098  r"""add_int(RestraintInfo self, std::string key, int value)"""
5099  return _IMP_kernel.RestraintInfo_add_int(self, key, value)
5100 
5101  def get_number_of_int(self):
5102  r"""get_number_of_int(RestraintInfo self) -> unsigned int"""
5103  return _IMP_kernel.RestraintInfo_get_number_of_int(self)
5104 
5105  def get_int_key(self, i):
5106  r"""get_int_key(RestraintInfo self, unsigned int i) -> std::string"""
5107  return _IMP_kernel.RestraintInfo_get_int_key(self, i)
5108 
5109  def get_int_value(self, i):
5110  r"""get_int_value(RestraintInfo self, unsigned int i) -> int"""
5111  return _IMP_kernel.RestraintInfo_get_int_value(self, i)
5112 
5113  def add_float(self, key, value):
5114  r"""add_float(RestraintInfo self, std::string key, double value)"""
5115  return _IMP_kernel.RestraintInfo_add_float(self, key, value)
5116 
5117  def get_number_of_float(self):
5118  r"""get_number_of_float(RestraintInfo self) -> unsigned int"""
5119  return _IMP_kernel.RestraintInfo_get_number_of_float(self)
5120 
5121  def get_float_key(self, i):
5122  r"""get_float_key(RestraintInfo self, unsigned int i) -> std::string"""
5123  return _IMP_kernel.RestraintInfo_get_float_key(self, i)
5124 
5125  def get_float_value(self, i):
5126  r"""get_float_value(RestraintInfo self, unsigned int i) -> double"""
5127  return _IMP_kernel.RestraintInfo_get_float_value(self, i)
5128 
5129  def add_string(self, key, value):
5130  r"""add_string(RestraintInfo self, std::string key, std::string value)"""
5131  return _IMP_kernel.RestraintInfo_add_string(self, key, value)
5132 
5133  def get_number_of_string(self):
5134  r"""get_number_of_string(RestraintInfo self) -> unsigned int"""
5135  return _IMP_kernel.RestraintInfo_get_number_of_string(self)
5136 
5137  def get_string_key(self, i):
5138  r"""get_string_key(RestraintInfo self, unsigned int i) -> std::string"""
5139  return _IMP_kernel.RestraintInfo_get_string_key(self, i)
5140 
5141  def get_string_value(self, i):
5142  r"""get_string_value(RestraintInfo self, unsigned int i) -> std::string"""
5143  return _IMP_kernel.RestraintInfo_get_string_value(self, i)
5144 
5145  def add_filename(self, key, value):
5146  r"""add_filename(RestraintInfo self, std::string key, std::string value)"""
5147  return _IMP_kernel.RestraintInfo_add_filename(self, key, value)
5148 
5149  def get_number_of_filename(self):
5150  r"""get_number_of_filename(RestraintInfo self) -> unsigned int"""
5151  return _IMP_kernel.RestraintInfo_get_number_of_filename(self)
5152 
5153  def get_filename_key(self, i):
5154  r"""get_filename_key(RestraintInfo self, unsigned int i) -> std::string"""
5155  return _IMP_kernel.RestraintInfo_get_filename_key(self, i)
5156 
5157  def get_filename_value(self, i):
5158  r"""get_filename_value(RestraintInfo self, unsigned int i) -> std::string"""
5159  return _IMP_kernel.RestraintInfo_get_filename_value(self, i)
5160 
5161  def add_floats(self, key, value):
5162  r"""add_floats(RestraintInfo self, std::string key, IMP::Floats value)"""
5163  return _IMP_kernel.RestraintInfo_add_floats(self, key, value)
5164 
5165  def get_number_of_floats(self):
5166  r"""get_number_of_floats(RestraintInfo self) -> unsigned int"""
5167  return _IMP_kernel.RestraintInfo_get_number_of_floats(self)
5168 
5169  def get_floats_key(self, i):
5170  r"""get_floats_key(RestraintInfo self, unsigned int i) -> std::string"""
5171  return _IMP_kernel.RestraintInfo_get_floats_key(self, i)
5172 
5173  def get_floats_value(self, i):
5174  r"""get_floats_value(RestraintInfo self, unsigned int i) -> IMP::Floats"""
5175  return _IMP_kernel.RestraintInfo_get_floats_value(self, i)
5176 
5177  def add_ints(self, key, value):
5178  r"""add_ints(RestraintInfo self, std::string key, IMP::Ints value)"""
5179  return _IMP_kernel.RestraintInfo_add_ints(self, key, value)
5180 
5181  def get_number_of_ints(self):
5182  r"""get_number_of_ints(RestraintInfo self) -> unsigned int"""
5183  return _IMP_kernel.RestraintInfo_get_number_of_ints(self)
5184 
5185  def get_ints_key(self, i):
5186  r"""get_ints_key(RestraintInfo self, unsigned int i) -> std::string"""
5187  return _IMP_kernel.RestraintInfo_get_ints_key(self, i)
5188 
5189  def get_ints_value(self, i):
5190  r"""get_ints_value(RestraintInfo self, unsigned int i) -> IMP::Ints"""
5191  return _IMP_kernel.RestraintInfo_get_ints_value(self, i)
5192 
5193  def add_strings(self, key, value):
5194  r"""add_strings(RestraintInfo self, std::string key, IMP::Strings value)"""
5195  return _IMP_kernel.RestraintInfo_add_strings(self, key, value)
5196 
5197  def get_number_of_strings(self):
5198  r"""get_number_of_strings(RestraintInfo self) -> unsigned int"""
5199  return _IMP_kernel.RestraintInfo_get_number_of_strings(self)
5200 
5201  def get_strings_key(self, i):
5202  r"""get_strings_key(RestraintInfo self, unsigned int i) -> std::string"""
5203  return _IMP_kernel.RestraintInfo_get_strings_key(self, i)
5204 
5205  def get_strings_value(self, i):
5206  r"""get_strings_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
5207  return _IMP_kernel.RestraintInfo_get_strings_value(self, i)
5208 
5209  def add_filenames(self, key, value):
5210  r"""add_filenames(RestraintInfo self, std::string key, IMP::Strings value)"""
5211  return _IMP_kernel.RestraintInfo_add_filenames(self, key, value)
5212 
5213  def get_number_of_filenames(self):
5214  r"""get_number_of_filenames(RestraintInfo self) -> unsigned int"""
5215  return _IMP_kernel.RestraintInfo_get_number_of_filenames(self)
5216 
5217  def get_filenames_key(self, i):
5218  r"""get_filenames_key(RestraintInfo self, unsigned int i) -> std::string"""
5219  return _IMP_kernel.RestraintInfo_get_filenames_key(self, i)
5220 
5221  def get_filenames_value(self, i):
5222  r"""get_filenames_value(RestraintInfo self, unsigned int i) -> IMP::Strings"""
5223  return _IMP_kernel.RestraintInfo_get_filenames_value(self, i)
5224 
5225  def add_particle_indexes(self, key, value):
5226  r"""add_particle_indexes(RestraintInfo self, std::string key, IMP::ParticleIndexes value)"""
5227  return _IMP_kernel.RestraintInfo_add_particle_indexes(self, key, value)
5228 
5229  def get_number_of_particle_indexes(self):
5230  r"""get_number_of_particle_indexes(RestraintInfo self) -> unsigned int"""
5231  return _IMP_kernel.RestraintInfo_get_number_of_particle_indexes(self)
5232 
5233  def get_particle_indexes_key(self, i):
5234  r"""get_particle_indexes_key(RestraintInfo self, unsigned int i) -> std::string"""
5235  return _IMP_kernel.RestraintInfo_get_particle_indexes_key(self, i)
5236 
5237  def get_particle_indexes_value(self, i):
5238  r"""get_particle_indexes_value(RestraintInfo self, unsigned int i) -> IMP::ParticleIndexes"""
5239  return _IMP_kernel.RestraintInfo_get_particle_indexes_value(self, i)
5240 
5241  def get_version_info(self):
5242  r"""get_version_info(RestraintInfo self) -> VersionInfo"""
5243  return _IMP_kernel.RestraintInfo_get_version_info(self)
5244  __swig_destroy__ = _IMP_kernel.delete_RestraintInfo
5245 
5246  def __str__(self):
5247  r"""__str__(RestraintInfo self) -> std::string"""
5248  return _IMP_kernel.RestraintInfo___str__(self)
5249 
5250  def __repr__(self):
5251  r"""__repr__(RestraintInfo self) -> std::string"""
5252  return _IMP_kernel.RestraintInfo___repr__(self)
5253 
5254  @staticmethod
5255  def get_from(o):
5256  return _object_cast_to_RestraintInfo(o)
5257 
5258 
5259 # Register RestraintInfo in _IMP_kernel:
5260 _IMP_kernel.RestraintInfo_swigregister(RestraintInfo)
5261 class Restraint(ModelObject):
5262  r"""Proxy of C++ IMP::Restraint class."""
5263 
5264  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5265 
5266  def __init__(self, *args):
5267  r"""
5268  __init__(Restraint self, Model m, std::string name) -> Restraint
5269  __init__(Restraint self) -> Restraint
5270  """
5271  if self.__class__ == Restraint:
5272  _self = None
5273  else:
5274  _self = self
5275  _IMP_kernel.Restraint_swiginit(self, _IMP_kernel.new_Restraint(_self, *args))
5276 
5277  if self.__class__ != Restraint:
5278  _director_objects.register(self)
5279 
5280 
5281 
5282 
5283  def get_score(self):
5284  r"""get_score(Restraint self) -> double"""
5285  return _IMP_kernel.Restraint_get_score(self)
5286 
5287  def evaluate(self, calc_derivs):
5288  r"""evaluate(Restraint self, bool calc_derivs) -> double"""
5289  return _IMP_kernel.Restraint_evaluate(self, calc_derivs)
5290 
5291  def evaluate_moved(self, calc_derivs, moved_pis, reset_pis):
5292  r"""evaluate_moved(Restraint self, bool calc_derivs, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5293  return _IMP_kernel.Restraint_evaluate_moved(self, calc_derivs, moved_pis, reset_pis)
5294 
5295  def evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max):
5296  r"""evaluate_moved_if_below(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5297  return _IMP_kernel.Restraint_evaluate_moved_if_below(self, calc_derivatives, moved_pis, reset_pis, max)
5298 
5299  def evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis):
5300  r"""evaluate_moved_if_good(Restraint self, bool calc_derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5301  return _IMP_kernel.Restraint_evaluate_moved_if_good(self, calc_derivatives, moved_pis, reset_pis)
5302 
5303  def evaluate_if_good(self, calc_derivatives):
5304  r"""evaluate_if_good(Restraint self, bool calc_derivatives) -> double"""
5305  return _IMP_kernel.Restraint_evaluate_if_good(self, calc_derivatives)
5306 
5307  def evaluate_if_below(self, calc_derivatives, max):
5308  r"""evaluate_if_below(Restraint self, bool calc_derivatives, double max) -> double"""
5309  return _IMP_kernel.Restraint_evaluate_if_below(self, calc_derivatives, max)
5310 
5311  def unprotected_evaluate(self, da):
5312  r"""unprotected_evaluate(Restraint self, DerivativeAccumulator da) -> double"""
5313  return _IMP_kernel.Restraint_unprotected_evaluate(self, da)
5314 
5315  def unprotected_evaluate_moved(self, da, moved_pis, reset_pis):
5316  r"""unprotected_evaluate_moved(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
5317  return _IMP_kernel.Restraint_unprotected_evaluate_moved(self, da, moved_pis, reset_pis)
5318 
5319  def unprotected_evaluate_if_good(self, da, max):
5320  r"""unprotected_evaluate_if_good(Restraint self, DerivativeAccumulator da, double max) -> double"""
5321  return _IMP_kernel.Restraint_unprotected_evaluate_if_good(self, da, max)
5322 
5323  def unprotected_evaluate_if_below(self, da, max):
5324  r"""unprotected_evaluate_if_below(Restraint self, DerivativeAccumulator da, double max) -> double"""
5325  return _IMP_kernel.Restraint_unprotected_evaluate_if_below(self, da, max)
5326 
5327  def unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max):
5328  r"""unprotected_evaluate_moved_if_below(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5329  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_below(self, da, moved_pis, reset_pis, max)
5330 
5331  def unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max):
5332  r"""unprotected_evaluate_moved_if_good(Restraint self, DerivativeAccumulator da, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
5333  return _IMP_kernel.Restraint_unprotected_evaluate_moved_if_good(self, da, moved_pis, reset_pis, max)
5334 
5335  def get_static_info(self):
5336  r"""get_static_info(Restraint self) -> RestraintInfo"""
5337  return _IMP_kernel.Restraint_get_static_info(self)
5338 
5339  def get_dynamic_info(self):
5340  r"""get_dynamic_info(Restraint self) -> RestraintInfo"""
5341  return _IMP_kernel.Restraint_get_dynamic_info(self)
5342 
5343  def add_score_and_derivatives(self, sa):
5344  r"""add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
5345  return _IMP_kernel.Restraint_add_score_and_derivatives(self, sa)
5346 
5347  def add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5348  r"""add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5349  return _IMP_kernel.Restraint_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5350 
5351  def create_decomposition(self):
5352  r"""create_decomposition(Restraint self) -> Restraint"""
5353  return _IMP_kernel.Restraint_create_decomposition(self)
5354 
5355  def create_current_decomposition(self):
5356  r"""create_current_decomposition(Restraint self) -> Restraint"""
5357  return _IMP_kernel.Restraint_create_current_decomposition(self)
5358 
5359  def set_weight(self, weight):
5360  r"""set_weight(Restraint self, IMP::Float weight)"""
5361  return _IMP_kernel.Restraint_set_weight(self, weight)
5362 
5363  def get_weight(self):
5364  r"""get_weight(Restraint self) -> IMP::Float"""
5365  return _IMP_kernel.Restraint_get_weight(self)
5366 
5367  def get_maximum_score(self):
5368  r"""get_maximum_score(Restraint self) -> double"""
5369  return _IMP_kernel.Restraint_get_maximum_score(self)
5370 
5371  def set_maximum_score(self, s):
5372  r"""set_maximum_score(Restraint self, double s)"""
5373  return _IMP_kernel.Restraint_set_maximum_score(self, s)
5374 
5375  def create_scoring_function(self, *args):
5376  r"""create_scoring_function(Restraint self, double weight=1.0, double max=NO_MAX) -> ScoringFunction"""
5377  return _IMP_kernel.Restraint_create_scoring_function(self, *args)
5378 
5379  def set_last_score(self, s):
5380  r"""set_last_score(Restraint self, double s)"""
5381  return _IMP_kernel.Restraint_set_last_score(self, s)
5382 
5383  def set_last_last_score(self, s):
5384  r"""set_last_last_score(Restraint self, double s)"""
5385  return _IMP_kernel.Restraint_set_last_last_score(self, s)
5386 
5387  def get_last_score(self):
5388  r"""get_last_score(Restraint self) -> double"""
5389  return _IMP_kernel.Restraint_get_last_score(self)
5390 
5391  def get_last_last_score(self):
5392  r"""get_last_last_score(Restraint self) -> double"""
5393  return _IMP_kernel.Restraint_get_last_last_score(self)
5394 
5395  def get_is_aggregate(self):
5396  r"""get_is_aggregate(Restraint self) -> bool"""
5397  return _IMP_kernel.Restraint_get_is_aggregate(self)
5398 
5399  def get_was_good(self):
5400  r"""get_was_good(Restraint self) -> bool"""
5401  return _IMP_kernel.Restraint_get_was_good(self)
5402  __swig_destroy__ = _IMP_kernel.delete_Restraint
5403 
5404  def do_create_decomposition(self):
5405  r"""do_create_decomposition(Restraint self) -> IMP::Restraints"""
5406  return _IMP_kernel.Restraint_do_create_decomposition(self)
5407 
5408  def do_create_current_decomposition(self):
5409  r"""do_create_current_decomposition(Restraint self) -> IMP::Restraints"""
5410  return _IMP_kernel.Restraint_do_create_current_decomposition(self)
5411 
5412  def do_add_score_and_derivatives(self, sa):
5413  r"""do_add_score_and_derivatives(Restraint self, ScoreAccumulator sa)"""
5414  return _IMP_kernel.Restraint_do_add_score_and_derivatives(self, sa)
5415 
5416  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5417  r"""do_add_score_and_derivatives_moved(Restraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5418  return _IMP_kernel.Restraint_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5419 
5420  def do_get_outputs(self):
5421  r"""do_get_outputs(Restraint self) -> IMP::ModelObjectsTemp"""
5422  return _IMP_kernel.Restraint_do_get_outputs(self)
5423  is_aggregate_ = property(_IMP_kernel.Restraint_is_aggregate__get, _IMP_kernel.Restraint_is_aggregate__set, doc=r"""is_aggregate_ : bool""")
5424 
5425  def __str__(self):
5426  r"""__str__(Restraint self) -> std::string"""
5427  return _IMP_kernel.Restraint___str__(self)
5428 
5429  def __repr__(self):
5430  r"""__repr__(Restraint self) -> std::string"""
5431  return _IMP_kernel.Restraint___repr__(self)
5432 
5433  @staticmethod
5434  def get_from(o):
5435  return _object_cast_to_Restraint(o)
5436 
5437 
5438  def do_show(self, out):
5439  pass
5440 
5441  @staticmethod
5442  def get_from(o):
5443  return _object_cast_to_Restraint(o)
5444 
5445 
5446  def _wrap_jax(self, score_func, keys=None):
5447  """Create the return value for _get_jax.
5448  Use this method in _get_jax() to wrap the JAX scoring function
5449  with other model- and restraint-specific information.
5450 
5451  @param score_func A function implemented using JAX that takes
5452  a single argument (the current JAX Model) and returns
5453  the score of the restraint.
5454  @param keys If given, a set of IMP::Key objects describing Model
5455  attributes (other than xyz and radius) that the restraint
5456  uses. For example, a restraint that uses electrostatic charge
5457  would pass IMP::atom::Charged::get_charge_key() here.
5458  """
5459  from IMP._jax_util import JAXRestraintInfo
5460  return JAXRestraintInfo(m=self.get_model(), score_func=score_func,
5461  weight=self.get_weight(), keys=keys)
5462 
5463  def _get_jax(self):
5464  """Return a JAX implementation of this Restraint.
5465  Implement this method in a Restraint subclass to provide
5466  an equivalent function using [JAX](https://docs.jax.dev/)
5467  that scores the current JAX Model. See also _wrap_jax.
5468  """
5469  raise NotImplementedError(
5470  f"No JAX implementation for {self} ({type(self)})")
5471 
5472  def _evaluate_jax(self):
5473  """Similar to evaluate(False), but using JAX.
5474  This is intended to be useful for testing purposes. It will likely
5475  not be particularly fast as it will copy the IMP Model and
5476  jax.jit-compile the scoring function each time."""
5477  import jax
5478  ji = self._get_jax()
5479  jm = ji.get_jax_model()
5480  j = jax.jit(ji.score_func)
5481  return j(jm)
5482 
5483  def __disown__(self):
5484  self.this.disown()
5485  _IMP_kernel.disown_Restraint(self)
5486  return weakref.proxy(self)
5487 
5488  def do_destroy(self):
5489  r"""do_destroy(Restraint self)"""
5490  return _IMP_kernel.Restraint_do_destroy(self)
5491 
5492  def handle_set_has_required_score_states(self, arg0):
5493  r"""handle_set_has_required_score_states(Restraint self, bool arg0)"""
5494  return _IMP_kernel.Restraint_handle_set_has_required_score_states(self, arg0)
5495 
5496  def do_get_inputs(self):
5497  r"""do_get_inputs(Restraint self) -> IMP::ModelObjectsTemp"""
5498  return _IMP_kernel.Restraint_do_get_inputs(self)
5499 
5500  def do_get_interactions(self):
5501  r"""do_get_interactions(Restraint self) -> IMP::ModelObjectsTemps"""
5502  return _IMP_kernel.Restraint_do_get_interactions(self)
5503 
5504 # Register Restraint in _IMP_kernel:
5505 _IMP_kernel.Restraint_swigregister(Restraint)
5506 class _RestraintsAdaptor(_InputAdaptor):
5507  r"""Proxy of C++ IMP::RestraintsAdaptor class."""
5508 
5509  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5510  __repr__ = _swig_repr
5511 
5512  def __init__(self, *args):
5513  r"""
5514  __init__(_RestraintsAdaptor self) -> _RestraintsAdaptor
5515  __init__(_RestraintsAdaptor self, IMP::Restraints const & sf) -> _RestraintsAdaptor
5516  __init__(_RestraintsAdaptor self, IMP::RestraintsTemp const & sf) -> _RestraintsAdaptor
5517  __init__(_RestraintsAdaptor self, Restraint sf) -> _RestraintsAdaptor
5518  """
5519  _IMP_kernel._RestraintsAdaptor_swiginit(self, _IMP_kernel.new__RestraintsAdaptor(*args))
5520  __swig_destroy__ = _IMP_kernel.delete__RestraintsAdaptor
5521 
5522 # Register _RestraintsAdaptor in _IMP_kernel:
5523 _IMP_kernel._RestraintsAdaptor_swigregister(_RestraintsAdaptor)
5524 class RestraintSet(Restraint):
5525  r"""Proxy of C++ IMP::RestraintSet class."""
5526 
5527  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5528 
5529  def __init__(self, *args):
5530  r"""
5531  __init__(RestraintSet self, Model m, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5532  __init__(RestraintSet self, Model m, std::string const & name="RestraintSet %1%") -> RestraintSet
5533  __init__(RestraintSet self, IMP::RestraintsTemp const & rs, double weight, std::string const & name="RestraintSet %1%") -> RestraintSet
5534  __init__(RestraintSet self) -> RestraintSet
5535  """
5536  if self.__class__ == RestraintSet:
5537  _self = None
5538  else:
5539  _self = self
5540  _IMP_kernel.RestraintSet_swiginit(self, _IMP_kernel.new_RestraintSet(_self, *args))
5541 
5542  if self.__class__ != RestraintSet:
5543  _director_objects.register(self)
5544 
5545 
5546 
5547 
5548  def unprotected_evaluate(self, da):
5549  r"""unprotected_evaluate(RestraintSet self, DerivativeAccumulator da) -> double"""
5550  return _IMP_kernel.RestraintSet_unprotected_evaluate(self, da)
5551 
5552  def get_type_name(self):
5553  r"""get_type_name(RestraintSet self) -> std::string"""
5554  return _IMP_kernel.RestraintSet_get_type_name(self)
5555 
5556  def get_version_info(self):
5557  r"""get_version_info(RestraintSet self) -> VersionInfo"""
5558  return _IMP_kernel.RestraintSet_get_version_info(self)
5559  __swig_destroy__ = _IMP_kernel.delete_RestraintSet
5560  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)
5561  def __set_restraints(self, obj): _list_util.set_varlist(self.restraints, obj)
5562  def __del_restraints(self): _list_util.del_varlist(self.restraints)
5563  restraints = property(__get_restraints, __set_restraints, __del_restraints, doc="List of ##ucnames")
5564 
5565  def remove_restraint(self, d):
5566  r"""remove_restraint(RestraintSet self, Restraint d)"""
5567  return _IMP_kernel.RestraintSet_remove_restraint(self, d)
5568 
5569  def _python_index_restraint(self, d, start, stop):
5570  r"""_python_index_restraint(RestraintSet self, Restraint d, unsigned int start, unsigned int stop) -> unsigned int"""
5571  return _IMP_kernel.RestraintSet__python_index_restraint(self, d, start, stop)
5572 
5573  def remove_restraints(self, d):
5574  r"""remove_restraints(RestraintSet self, IMP::Restraints const & d)"""
5575  return _IMP_kernel.RestraintSet_remove_restraints(self, d)
5576 
5577  def set_restraints(self, ps):
5578  r"""set_restraints(RestraintSet self, IMP::Restraints const & ps)"""
5579  return _IMP_kernel.RestraintSet_set_restraints(self, ps)
5580 
5581  def set_restraints_order(self, objs):
5582  r"""set_restraints_order(RestraintSet self, IMP::Restraints const & objs)"""
5583  return _IMP_kernel.RestraintSet_set_restraints_order(self, objs)
5584 
5585  def add_restraint(self, obj):
5586  r"""add_restraint(RestraintSet self, Restraint obj) -> unsigned int"""
5587  return _IMP_kernel.RestraintSet_add_restraint(self, obj)
5588 
5589  def add_restraints(self, objs):
5590  r"""add_restraints(RestraintSet self, IMP::Restraints const & objs)"""
5591  return _IMP_kernel.RestraintSet_add_restraints(self, objs)
5592 
5593  def clear_restraints(self):
5594  r"""clear_restraints(RestraintSet self)"""
5595  return _IMP_kernel.RestraintSet_clear_restraints(self)
5596 
5597  def get_number_of_restraints(self):
5598  r"""get_number_of_restraints(RestraintSet self) -> unsigned int"""
5599  return _IMP_kernel.RestraintSet_get_number_of_restraints(self)
5600 
5601  def get_has_restraints(self):
5602  r"""get_has_restraints(RestraintSet self) -> bool"""
5603  return _IMP_kernel.RestraintSet_get_has_restraints(self)
5604 
5605  def get_restraint(self, i):
5606  r"""get_restraint(RestraintSet self, unsigned int i) -> Restraint"""
5607  return _IMP_kernel.RestraintSet_get_restraint(self, i)
5608 
5609  def get_restraints(self):
5610  r"""get_restraints(RestraintSet self) -> IMP::Restraints"""
5611  return _IMP_kernel.RestraintSet_get_restraints(self)
5612 
5613  def erase_restraint(self, i):
5614  r"""erase_restraint(RestraintSet self, unsigned int i)"""
5615  return _IMP_kernel.RestraintSet_erase_restraint(self, i)
5616 
5617  def reserve_restraints(self, sz):
5618  r"""reserve_restraints(RestraintSet self, unsigned int sz)"""
5619  return _IMP_kernel.RestraintSet_reserve_restraints(self, sz)
5620 
5621  def get_non_sets_and_sets(self):
5622  r"""get_non_sets_and_sets(RestraintSet self) -> std::pair< IMP::RestraintsTemp,IMP::RestraintSetsTemp >"""
5623  return _IMP_kernel.RestraintSet_get_non_sets_and_sets(self)
5624 
5625  def do_get_inputs(self):
5626  r"""do_get_inputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5627  return _IMP_kernel.RestraintSet_do_get_inputs(self)
5628 
5629  def create_scoring_function(self, *args):
5630  r"""create_scoring_function(RestraintSet self, double weight=1.0, double max=std::numeric_limits< double >::max()) -> ScoringFunction"""
5631  return _IMP_kernel.RestraintSet_create_scoring_function(self, *args)
5632 
5633  def get_last_score(self):
5634  r"""get_last_score(RestraintSet self) -> double"""
5635  return _IMP_kernel.RestraintSet_get_last_score(self)
5636 
5637  def __str__(self):
5638  r"""__str__(RestraintSet self) -> std::string"""
5639  return _IMP_kernel.RestraintSet___str__(self)
5640 
5641  def __repr__(self):
5642  r"""__repr__(RestraintSet self) -> std::string"""
5643  return _IMP_kernel.RestraintSet___repr__(self)
5644 
5645  @staticmethod
5646  def get_from(o):
5647  return _object_cast_to_RestraintSet(o)
5648 
5649 
5650  def do_show(self, out):
5651  pass
5652 
5653  @staticmethod
5654  def get_from(o):
5655  return _object_cast_to_RestraintSet(o)
5656 
5657 
5658  def _get_as_binary(self):
5659  r"""_get_as_binary(RestraintSet self) -> PyObject *"""
5660  return _IMP_kernel.RestraintSet__get_as_binary(self)
5661 
5662  def _set_from_binary(self, p):
5663  r"""_set_from_binary(RestraintSet self, PyObject * p)"""
5664  return _IMP_kernel.RestraintSet__set_from_binary(self, p)
5665 
5666  def __getstate__(self):
5667  p = self._get_as_binary()
5668  if len(self.__dict__) > 1:
5669  d = self.__dict__.copy()
5670  del d['this']
5671  p = (d, p)
5672  return p
5673 
5674  def __setstate__(self, p):
5675  if not hasattr(self, 'this'):
5676  self.__init__()
5677  if isinstance(p, tuple):
5678  d, p = p
5679  self.__dict__.update(d)
5680  return self._set_from_binary(p)
5681 
5682 
5683  def _get_jax(self):
5684  jis = [r.get_derived_object()._get_jax() for r in self.restraints]
5685  funcs = [j.score_func for j in jis]
5686  keys = frozenset(x for j in jis for x in j._keys)
5687  def jax_sf(jm):
5688  if funcs:
5689  return sum(f(jm) for f in funcs)
5690  else:
5691  # sum([]) returns int, but we must return float
5692  return 0.
5693  return self._wrap_jax(jax_sf, keys=keys)
5694 
5695  def __disown__(self):
5696  self.this.disown()
5697  _IMP_kernel.disown_RestraintSet(self)
5698  return weakref.proxy(self)
5699 
5700  def do_destroy(self):
5701  r"""do_destroy(RestraintSet self)"""
5702  return _IMP_kernel.RestraintSet_do_destroy(self)
5703 
5704  def handle_set_has_required_score_states(self, arg0):
5705  r"""handle_set_has_required_score_states(RestraintSet self, bool arg0)"""
5706  return _IMP_kernel.RestraintSet_handle_set_has_required_score_states(self, arg0)
5707 
5708  def do_get_outputs(self):
5709  r"""do_get_outputs(RestraintSet self) -> IMP::ModelObjectsTemp"""
5710  return _IMP_kernel.RestraintSet_do_get_outputs(self)
5711 
5712  def do_get_interactions(self):
5713  r"""do_get_interactions(RestraintSet self) -> IMP::ModelObjectsTemps"""
5714  return _IMP_kernel.RestraintSet_do_get_interactions(self)
5715 
5716  def do_create_decomposition(self):
5717  r"""do_create_decomposition(RestraintSet self) -> IMP::Restraints"""
5718  return _IMP_kernel.RestraintSet_do_create_decomposition(self)
5719 
5720  def do_create_current_decomposition(self):
5721  r"""do_create_current_decomposition(RestraintSet self) -> IMP::Restraints"""
5722  return _IMP_kernel.RestraintSet_do_create_current_decomposition(self)
5723 
5724  def do_add_score_and_derivatives(self, sa):
5725  r"""do_add_score_and_derivatives(RestraintSet self, ScoreAccumulator sa)"""
5726  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives(self, sa)
5727 
5728  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
5729  r"""do_add_score_and_derivatives_moved(RestraintSet self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
5730  return _IMP_kernel.RestraintSet_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
5731 
5732 # Register RestraintSet in _IMP_kernel:
5733 _IMP_kernel.RestraintSet_swigregister(RestraintSet)
5734 
5735 def get_restraints(rs):
5736  r"""get_restraints(IMP::RestraintsTemp const & rs) -> IMP::RestraintsTemp"""
5737  return _IMP_kernel.get_restraints(rs)
5738 
5739 def _check_particle(p, a):
5740  if (not p.get_is_active()):
5741  raise ValueError("Inactive Particle")
5742  if (type(a)() == a):
5743  raise IndexError("Cannot use default Index")
5744  if (not p.has_attribute(a)):
5745  raise IndexError("Particle does not have attribute")
5746 
5747 class Particle(ModelObject):
5748  r"""Proxy of C++ IMP::Particle class."""
5749 
5750  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5751 
5752  def get_version_info(self):
5753  r"""get_version_info(Particle self) -> VersionInfo"""
5754  return _IMP_kernel.Particle_get_version_info(self)
5755  __swig_destroy__ = _IMP_kernel.delete_Particle
5756 
5757  def __init__(self, *args):
5758  r"""
5759  __init__(Particle self, Model m, std::string name) -> Particle
5760  __init__(Particle self, Model m) -> Particle
5761  __init__(Particle self) -> Particle
5762  """
5763  _IMP_kernel.Particle_swiginit(self, _IMP_kernel.new_Particle(*args))
5764 
5765  def get_float_keys(self):
5766  r"""get_float_keys(Particle self) -> IMP::FloatKeys"""
5767  return _IMP_kernel.Particle_get_float_keys(self)
5768 
5769  def get_floats_keys(self):
5770  r"""get_floats_keys(Particle self) -> IMP::FloatsKeys"""
5771  return _IMP_kernel.Particle_get_floats_keys(self)
5772 
5773  def get_int_keys(self):
5774  r"""get_int_keys(Particle self) -> IMP::IntKeys"""
5775  return _IMP_kernel.Particle_get_int_keys(self)
5776 
5777  def get_ints_keys(self):
5778  r"""get_ints_keys(Particle self) -> IMP::IntsKeys"""
5779  return _IMP_kernel.Particle_get_ints_keys(self)
5780 
5781  def get_string_keys(self):
5782  r"""get_string_keys(Particle self) -> IMP::StringKeys"""
5783  return _IMP_kernel.Particle_get_string_keys(self)
5784 
5785  def get_object_keys(self):
5786  r"""get_object_keys(Particle self) -> IMP::ObjectKeys"""
5787  return _IMP_kernel.Particle_get_object_keys(self)
5788 
5789  def add_cache_attribute(self, *args):
5790  r"""
5791  add_cache_attribute(Particle self, FloatKey name, IMP::Float value)
5792  add_cache_attribute(Particle self, FloatsKey name, IMP::Floats value)
5793  add_cache_attribute(Particle self, IntKey name, IMP::Int value)
5794  add_cache_attribute(Particle self, IntsKey name, IMP::Ints value)
5795  add_cache_attribute(Particle self, StringKey name, IMP::String value)
5796  add_cache_attribute(Particle self, ObjectKey name, Object value)
5797  add_cache_attribute(Particle self, IMP::WeakObjectKey name, Object value)
5798  """
5799  return _IMP_kernel.Particle_add_cache_attribute(self, *args)
5800 
5801  def get_weak_object_keys(self):
5802  r"""get_weak_object_keys(Particle self) -> IMP::WeakObjectKeys"""
5803  return _IMP_kernel.Particle_get_weak_object_keys(self)
5804 
5805  def add_to_derivative(self, *args):
5806  r"""
5807  add_to_derivative(Particle self, FloatKey key, IMP::Float value, DerivativeAccumulator da)
5808  add_to_derivative(Particle self, Vector3DDerivKey key, Vector3D value, DerivativeAccumulator da)
5809  add_to_derivative(Particle self, Vector4DDerivKey key, Vector4D value, DerivativeAccumulator da)
5810  """
5811  return _IMP_kernel.Particle_add_to_derivative(self, *args)
5812 
5813  def set_is_optimized(self, *args):
5814  r"""
5815  set_is_optimized(Particle self, FloatKey k, bool tf)
5816  set_is_optimized(Particle self, Vector3DDerivKey k, bool tf)
5817  set_is_optimized(Particle self, Vector4DDerivKey k, bool tf)
5818  """
5819  return _IMP_kernel.Particle_set_is_optimized(self, *args)
5820 
5821  def get_is_optimized(self, *args):
5822  r"""
5823  get_is_optimized(Particle self, FloatKey k) -> bool
5824  get_is_optimized(Particle self, Vector3DDerivKey k) -> bool
5825  get_is_optimized(Particle self, Vector4DDerivKey k) -> bool
5826  """
5827  return _IMP_kernel.Particle_get_is_optimized(self, *args)
5828 
5829  def get_derivative(self, *args):
5830  r"""
5831  get_derivative(Particle self, FloatKey k) -> IMP::Float
5832  get_derivative(Particle self, Vector3DDerivKey k) -> Vector3D
5833  get_derivative(Particle self, Vector4DDerivKey k) -> Vector4D
5834  """
5835  return _IMP_kernel.Particle_get_derivative(self, *args)
5836 
5837  def add_attribute(self, *args):
5838  r"""
5839  add_attribute(Particle self, FloatKey name, IMP::Float initial_value)
5840  add_attribute(Particle self, FloatsKey name, IMP::Floats initial_value)
5841  add_attribute(Particle self, IntKey name, IMP::Int initial_value)
5842  add_attribute(Particle self, IntsKey name, IMP::Ints initial_value)
5843  add_attribute(Particle self, StringKey name, IMP::String initial_value)
5844  add_attribute(Particle self, ObjectKey name, Object initial_value)
5845  add_attribute(Particle self, IMP::WeakObjectKey name, Object initial_value)
5846  add_attribute(Particle self, SparseStringKey name, IMP::String initial_value)
5847  add_attribute(Particle self, SparseIntKey name, IMP::Int initial_value)
5848  add_attribute(Particle self, SparseFloatKey name, IMP::Float initial_value)
5849  add_attribute(Particle self, SparseParticleIndexKey name, ParticleIndex initial_value)
5850  add_attribute(Particle self, FloatKey name, IMP::Float const initial_value, bool optimized)
5851  add_attribute(Particle self, ParticleIndexKey k, Particle v)
5852  """
5853  return _IMP_kernel.Particle_add_attribute(self, *args)
5854 
5855  def has_attribute(self, *args):
5856  r"""
5857  has_attribute(Particle self, FloatKey name) -> bool
5858  has_attribute(Particle self, FloatsKey name) -> bool
5859  has_attribute(Particle self, IntKey name) -> bool
5860  has_attribute(Particle self, IntsKey name) -> bool
5861  has_attribute(Particle self, StringKey name) -> bool
5862  has_attribute(Particle self, ObjectKey name) -> bool
5863  has_attribute(Particle self, IMP::WeakObjectKey name) -> bool
5864  has_attribute(Particle self, SparseStringKey name) -> bool
5865  has_attribute(Particle self, SparseIntKey name) -> bool
5866  has_attribute(Particle self, SparseFloatKey name) -> bool
5867  has_attribute(Particle self, SparseParticleIndexKey name) -> bool
5868  has_attribute(Particle self, ParticleIndexKey k) -> bool
5869  """
5870  return _IMP_kernel.Particle_has_attribute(self, *args)
5871 
5872  def set_value(self, *args):
5873  r"""
5874  set_value(Particle self, FloatKey name, IMP::Float value)
5875  set_value(Particle self, FloatsKey name, IMP::Floats value)
5876  set_value(Particle self, IntKey name, IMP::Int value)
5877  set_value(Particle self, IntsKey name, IMP::Ints value)
5878  set_value(Particle self, StringKey name, IMP::String value)
5879  set_value(Particle self, ObjectKey name, Object value)
5880  set_value(Particle self, IMP::WeakObjectKey name, Object value)
5881  set_value(Particle self, SparseStringKey name, IMP::String value)
5882  set_value(Particle self, SparseIntKey name, IMP::Int value)
5883  set_value(Particle self, SparseFloatKey name, IMP::Float value)
5884  set_value(Particle self, SparseParticleIndexKey name, ParticleIndex value)
5885  set_value(Particle self, ParticleIndexKey k, Particle v)
5886  """
5887  return _IMP_kernel.Particle_set_value(self, *args)
5888 
5889  def get_value(self, *args):
5890  r"""
5891  get_value(Particle self, FloatKey name) -> IMP::Float
5892  get_value(Particle self, FloatsKey name) -> IMP::Floats
5893  get_value(Particle self, IntKey name) -> IMP::Int
5894  get_value(Particle self, IntsKey name) -> IMP::Ints
5895  get_value(Particle self, StringKey name) -> IMP::String
5896  get_value(Particle self, ObjectKey name) -> Object
5897  get_value(Particle self, IMP::WeakObjectKey name) -> Object
5898  get_value(Particle self, SparseStringKey name) -> IMP::String
5899  get_value(Particle self, SparseIntKey name) -> IMP::Int
5900  get_value(Particle self, SparseFloatKey name) -> IMP::Float
5901  get_value(Particle self, SparseParticleIndexKey name) -> ParticleIndex
5902  get_value(Particle self, ParticleIndexKey k) -> Particle
5903  """
5904  return _IMP_kernel.Particle_get_value(self, *args)
5905 
5906  def remove_attribute(self, *args):
5907  r"""
5908  remove_attribute(Particle self, FloatKey name)
5909  remove_attribute(Particle self, FloatsKey name)
5910  remove_attribute(Particle self, IntKey name)
5911  remove_attribute(Particle self, IntsKey name)
5912  remove_attribute(Particle self, StringKey name)
5913  remove_attribute(Particle self, ObjectKey name)
5914  remove_attribute(Particle self, IMP::WeakObjectKey name)
5915  remove_attribute(Particle self, SparseStringKey name)
5916  remove_attribute(Particle self, SparseIntKey name)
5917  remove_attribute(Particle self, SparseFloatKey name)
5918  remove_attribute(Particle self, SparseParticleIndexKey name)
5919  remove_attribute(Particle self, ParticleIndexKey k)
5920  """
5921  return _IMP_kernel.Particle_remove_attribute(self, *args)
5922 
5923  def get_particle_keys(self):
5924  r"""get_particle_keys(Particle self) -> IMP::ParticleIndexKeys"""
5925  return _IMP_kernel.Particle_get_particle_keys(self)
5926 
5927  def show(self, *args):
5928  r"""show(Particle self, _ostream out=std::cout)"""
5929  return _IMP_kernel.Particle_show(self, *args)
5930 
5931  def get_is_active(self):
5932  r"""get_is_active(Particle self) -> bool"""
5933  return _IMP_kernel.Particle_get_is_active(self)
5934 
5935  def get_index(self):
5936  r"""get_index(Particle self) -> ParticleIndex"""
5937  return _IMP_kernel.Particle_get_index(self)
5938 
5939  def __eq__(self, *args):
5940  r"""
5941  __eq__(Particle self, Particle o) -> bool
5942  __eq__(Particle self, Decorator d) -> bool
5943  """
5944  return _IMP_kernel.Particle___eq__(self, *args)
5945 
5946  def __ne__(self, *args):
5947  r"""
5948  __ne__(Particle self, Particle o) -> bool
5949  __ne__(Particle self, Decorator d) -> bool
5950  """
5951  return _IMP_kernel.Particle___ne__(self, *args)
5952 
5953  def __le__(self, *args):
5954  r"""
5955  __le__(Particle self, Particle o) -> bool
5956  __le__(Particle self, Decorator d) -> bool
5957  """
5958  return _IMP_kernel.Particle___le__(self, *args)
5959 
5960  def __lt__(self, *args):
5961  r"""
5962  __lt__(Particle self, Particle o) -> bool
5963  __lt__(Particle self, Decorator d) -> bool
5964  """
5965  return _IMP_kernel.Particle___lt__(self, *args)
5966 
5967  def __ge__(self, *args):
5968  r"""
5969  __ge__(Particle self, Particle o) -> bool
5970  __ge__(Particle self, Decorator d) -> bool
5971  """
5972  return _IMP_kernel.Particle___ge__(self, *args)
5973 
5974  def __gt__(self, *args):
5975  r"""
5976  __gt__(Particle self, Particle o) -> bool
5977  __gt__(Particle self, Decorator d) -> bool
5978  """
5979  return _IMP_kernel.Particle___gt__(self, *args)
5980 
5981  __hash__ = ModelObject.__hash__
5982 
5983 
5984  def __str__(self):
5985  r"""__str__(Particle self) -> std::string"""
5986  return _IMP_kernel.Particle___str__(self)
5987 
5988  def __repr__(self):
5989  r"""__repr__(Particle self) -> std::string"""
5990  return _IMP_kernel.Particle___repr__(self)
5991 
5992  @staticmethod
5993  def get_from(o):
5994  return _object_cast_to_Particle(o)
5995 
5996 
5997  def _get_as_binary(self):
5998  r"""_get_as_binary(Particle self) -> PyObject *"""
5999  return _IMP_kernel.Particle__get_as_binary(self)
6000 
6001  def _set_from_binary(self, p):
6002  r"""_set_from_binary(Particle self, PyObject * p)"""
6003  return _IMP_kernel.Particle__set_from_binary(self, p)
6004 
6005  def __getstate__(self):
6006  p = self._get_as_binary()
6007  if len(self.__dict__) > 1:
6008  d = self.__dict__.copy()
6009  del d['this']
6010  p = (d, p)
6011  return p
6012 
6013  def __setstate__(self, p):
6014  if not hasattr(self, 'this'):
6015  self.__init__()
6016  if isinstance(p, tuple):
6017  d, p = p
6018  self.__dict__.update(d)
6019  return self._set_from_binary(p)
6020 
6021 
6022 # Register Particle in _IMP_kernel:
6023 _IMP_kernel.Particle_swigregister(Particle)
6024 class _ParticleAdaptor(_InputAdaptor):
6025  r"""Proxy of C++ IMP::ParticleAdaptor class."""
6026 
6027  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6028  __repr__ = _swig_repr
6029 
6030  def __init__(self, *args):
6031  r"""
6032  __init__(_ParticleAdaptor self) -> _ParticleAdaptor
6033  __init__(_ParticleAdaptor self, Particle p) -> _ParticleAdaptor
6034  __init__(_ParticleAdaptor self, Decorator d) -> _ParticleAdaptor
6035  """
6036  _IMP_kernel._ParticleAdaptor_swiginit(self, _IMP_kernel.new__ParticleAdaptor(*args))
6037 
6038  def get_model(self):
6039  r"""get_model(_ParticleAdaptor self) -> Model"""
6040  return _IMP_kernel._ParticleAdaptor_get_model(self)
6041 
6042  def get_particle_index(self):
6043  r"""get_particle_index(_ParticleAdaptor self) -> ParticleIndex"""
6044  return _IMP_kernel._ParticleAdaptor_get_particle_index(self)
6045  __swig_destroy__ = _IMP_kernel.delete__ParticleAdaptor
6046 
6047 # Register _ParticleAdaptor in _IMP_kernel:
6048 _IMP_kernel._ParticleAdaptor_swigregister(_ParticleAdaptor)
6049 class _DependencyGraphVertexIndex(object):
6050  r"""Proxy of C++ IMP::DependencyGraphVertexIndex class."""
6051 
6052  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6053  __repr__ = _swig_repr
6054 
6055  def __init__(self):
6056  r"""__init__(_DependencyGraphVertexIndex self) -> _DependencyGraphVertexIndex"""
6057  _IMP_kernel._DependencyGraphVertexIndex_swiginit(self, _IMP_kernel.new__DependencyGraphVertexIndex())
6058  __swig_destroy__ = _IMP_kernel.delete__DependencyGraphVertexIndex
6059 
6060 # Register _DependencyGraphVertexIndex in _IMP_kernel:
6061 _IMP_kernel._DependencyGraphVertexIndex_swigregister(_DependencyGraphVertexIndex)
6062 
6063 def show_as_graphviz(name, out):
6064  r"""show_as_graphviz(IMP::DependencyGraph const & name, TextOutput out)"""
6065  return _IMP_kernel.show_as_graphviz(name, out)
6066 
6067 def get_vertex_index(g):
6068  r"""get_vertex_index(IMP::DependencyGraph const & g) -> _DependencyGraphVertexIndex"""
6069  return _IMP_kernel.get_vertex_index(g)
6070 
6071 def get_dependency_graph(m):
6072  r"""get_dependency_graph(Model m) -> IMP::DependencyGraph"""
6073  return _IMP_kernel.get_dependency_graph(m)
6074 
6076  r"""get_pruned_dependency_graph(Model m) -> IMP::DependencyGraph"""
6077  return _IMP_kernel.get_pruned_dependency_graph(m)
6078 
6079 def get_dependent_particles(p, all, dg, index):
6080  r"""get_dependent_particles(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ParticlesTemp"""
6081  return _IMP_kernel.get_dependent_particles(p, all, dg, index)
6082 
6083 def get_required_score_states(*args):
6084  r"""
6085  get_required_score_states(IMP::ModelObjectsTemp const & mos, IMP::ScoreStatesTemp exclude=IMP::ScoreStatesTemp()) -> IMP::ScoreStatesTemp
6086  get_required_score_states(ModelObject p, IMP::ModelObjectsTemp const & all, IMP::DependencyGraph const & dg, _DependencyGraphVertexIndex index) -> IMP::ScoreStatesTemp
6087  get_required_score_states(Model m, ParticleIndex pi) -> IMP::ScoreStatesTemp
6088  """
6089  return _IMP_kernel.get_required_score_states(*args)
6090 class ScoringFunction(ModelObject):
6091  r"""Proxy of C++ IMP::ScoringFunction class."""
6092 
6093  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6094 
6095  def do_add_score_and_derivatives(self, sa, ss):
6096  r"""do_add_score_and_derivatives(ScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
6097  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives(self, sa, ss)
6098 
6099  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
6100  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)"""
6101  return _IMP_kernel.ScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
6102 
6103  def get_score_accumulator_if_below(self, deriv, max):
6104  r"""get_score_accumulator_if_below(ScoringFunction self, bool deriv, double max) -> ScoreAccumulator"""
6105  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_below(self, deriv, max)
6106 
6107  def get_score_accumulator_if_good(self, deriv):
6108  r"""get_score_accumulator_if_good(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6109  return _IMP_kernel.ScoringFunction_get_score_accumulator_if_good(self, deriv)
6110 
6111  def get_score_accumulator(self, deriv):
6112  r"""get_score_accumulator(ScoringFunction self, bool deriv) -> ScoreAccumulator"""
6113  return _IMP_kernel.ScoringFunction_get_score_accumulator(self, deriv)
6114 
6115  def __init__(self, *args):
6116  r"""
6117  __init__(ScoringFunction self, Model m, std::string name) -> ScoringFunction
6118  __init__(ScoringFunction self) -> ScoringFunction
6119  """
6120  if self.__class__ == ScoringFunction:
6121  _self = None
6122  else:
6123  _self = self
6124  _IMP_kernel.ScoringFunction_swiginit(self, _IMP_kernel.new_ScoringFunction(_self, *args))
6125 
6126  if self.__class__ != ScoringFunction:
6127  _director_objects.register(self)
6128 
6129 
6130 
6131 
6132  def do_get_outputs(self):
6133  r"""do_get_outputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6134  return _IMP_kernel.ScoringFunction_do_get_outputs(self)
6135 
6136  def evaluate(self, derivatives):
6137  r"""evaluate(ScoringFunction self, bool derivatives) -> double"""
6138  return _IMP_kernel.ScoringFunction_evaluate(self, derivatives)
6139 
6140  def evaluate_if_good(self, derivatives):
6141  r"""evaluate_if_good(ScoringFunction self, bool derivatives) -> double"""
6142  return _IMP_kernel.ScoringFunction_evaluate_if_good(self, derivatives)
6143 
6144  def evaluate_if_below(self, derivatives, max):
6145  r"""evaluate_if_below(ScoringFunction self, bool derivatives, double max) -> double"""
6146  return _IMP_kernel.ScoringFunction_evaluate_if_below(self, derivatives, max)
6147 
6148  def evaluate_moved(self, derivatives, moved_pis, reset_pis):
6149  r"""evaluate_moved(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6150  return _IMP_kernel.ScoringFunction_evaluate_moved(self, derivatives, moved_pis, reset_pis)
6151 
6152  def evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max):
6153  r"""evaluate_moved_if_below(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis, double max) -> double"""
6154  return _IMP_kernel.ScoringFunction_evaluate_moved_if_below(self, derivatives, moved_pis, reset_pis, max)
6155 
6156  def evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis):
6157  r"""evaluate_moved_if_good(ScoringFunction self, bool derivatives, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis) -> double"""
6158  return _IMP_kernel.ScoringFunction_evaluate_moved_if_good(self, derivatives, moved_pis, reset_pis)
6159 
6160  def get_had_good_score(self):
6161  r"""get_had_good_score(ScoringFunction self) -> bool"""
6162  return _IMP_kernel.ScoringFunction_get_had_good_score(self)
6163 
6164  def get_last_score(self):
6165  r"""get_last_score(ScoringFunction self) -> double"""
6166  return _IMP_kernel.ScoringFunction_get_last_score(self)
6167 
6168  def create_restraints(self):
6169  r"""create_restraints(ScoringFunction self) -> IMP::Restraints"""
6170  return _IMP_kernel.ScoringFunction_create_restraints(self)
6171 
6172  def get_single_restraint(self):
6173  r"""get_single_restraint(ScoringFunction self) -> Restraint"""
6174  return _IMP_kernel.ScoringFunction_get_single_restraint(self)
6175 
6176  def __str__(self):
6177  r"""__str__(ScoringFunction self) -> std::string"""
6178  return _IMP_kernel.ScoringFunction___str__(self)
6179 
6180  def __repr__(self):
6181  r"""__repr__(ScoringFunction self) -> std::string"""
6182  return _IMP_kernel.ScoringFunction___repr__(self)
6183 
6184  @staticmethod
6185  def get_from(o):
6186  return _object_cast_to_ScoringFunction(o)
6187 
6188 
6189  def do_show(self, out):
6190  pass
6191 
6192  @staticmethod
6193  def get_from(o):
6194  return _object_cast_to_ScoringFunction(o)
6195 
6196 
6197  def _get_jax(self):
6198  r = self.get_single_restraint()
6199  if r is None:
6200  raise NotImplementedError(
6201  f"No JAX implementation for {self} ({type(self)})")
6202  else:
6203  return r.get_derived_object()._get_jax()
6204 
6205  def _evaluate_jax(self):
6206  """Similar to evaluate(False), but using JAX.
6207  This is intended to be useful for testing purposes. It will likely
6208  not be particularly fast as it will copy the IMP Model and
6209  jax.jit-compile the scoring function each time."""
6210  import jax
6211  ji = self._get_jax()
6212  jm = ji.get_jax_model()
6213  j = jax.jit(ji.score_func)
6214  return j(jm)
6215 
6216  __swig_destroy__ = _IMP_kernel.delete_ScoringFunction
6217  def __disown__(self):
6218  self.this.disown()
6219  _IMP_kernel.disown_ScoringFunction(self)
6220  return weakref.proxy(self)
6221 
6222  def do_destroy(self):
6223  r"""do_destroy(ScoringFunction self)"""
6224  return _IMP_kernel.ScoringFunction_do_destroy(self)
6225 
6226  def handle_set_has_required_score_states(self, arg0):
6227  r"""handle_set_has_required_score_states(ScoringFunction self, bool arg0)"""
6228  return _IMP_kernel.ScoringFunction_handle_set_has_required_score_states(self, arg0)
6229 
6230  def do_get_inputs(self):
6231  r"""do_get_inputs(ScoringFunction self) -> IMP::ModelObjectsTemp"""
6232  return _IMP_kernel.ScoringFunction_do_get_inputs(self)
6233 
6234  def do_get_interactions(self):
6235  r"""do_get_interactions(ScoringFunction self) -> IMP::ModelObjectsTemps"""
6236  return _IMP_kernel.ScoringFunction_do_get_interactions(self)
6237 
6238 # Register ScoringFunction in _IMP_kernel:
6239 _IMP_kernel.ScoringFunction_swigregister(ScoringFunction)
6240 
6241 def create_decomposition(*args):
6242  r"""
6243  create_decomposition(IMP::RestraintsTemp const & rs) -> IMP::Restraints
6244  create_decomposition(ScoringFunction sf) -> IMP::ScoringFunctions
6245  """
6246  return _IMP_kernel.create_decomposition(*args)
6247 class _ScoringFunctionAdaptor(_InputAdaptor):
6248  r"""Proxy of C++ IMP::ScoringFunctionAdaptor class."""
6249 
6250  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6251  __repr__ = _swig_repr
6252 
6253  def __init__(self, *args):
6254  r"""
6255  __init__(_ScoringFunctionAdaptor self) -> _ScoringFunctionAdaptor
6256  __init__(_ScoringFunctionAdaptor self, ScoringFunction sf) -> _ScoringFunctionAdaptor
6257  __init__(_ScoringFunctionAdaptor self, IMP::RestraintsTemp const & sf) -> _ScoringFunctionAdaptor
6258  __init__(_ScoringFunctionAdaptor self, IMP::Restraints const & sf) -> _ScoringFunctionAdaptor
6259  __init__(_ScoringFunctionAdaptor self, Restraint sf) -> _ScoringFunctionAdaptor
6260  """
6261  _IMP_kernel._ScoringFunctionAdaptor_swiginit(self, _IMP_kernel.new__ScoringFunctionAdaptor(*args))
6262  __swig_destroy__ = _IMP_kernel.delete__ScoringFunctionAdaptor
6263 
6264 # Register _ScoringFunctionAdaptor in _IMP_kernel:
6265 _IMP_kernel._ScoringFunctionAdaptor_swigregister(_ScoringFunctionAdaptor)
6266 
6267 def show_restraint_hierarchy(*args):
6268  r"""show_restraint_hierarchy(_ScoringFunctionAdaptor rs, _ostream out=std::cout)"""
6269  return _IMP_kernel.show_restraint_hierarchy(*args)
6270 class Undecorator(Object):
6271  r"""Proxy of C++ IMP::Undecorator class."""
6272 
6273  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6274 
6275  def __init__(self, m, name):
6276  r"""__init__(Undecorator self, Model m, std::string name) -> Undecorator"""
6277  if self.__class__ == Undecorator:
6278  _self = None
6279  else:
6280  _self = self
6281  _IMP_kernel.Undecorator_swiginit(self, _IMP_kernel.new_Undecorator(_self, m, name))
6282 
6283  if self.__class__ != Undecorator:
6284  _director_objects.register(self)
6285 
6286 
6287 
6288 
6289  def teardown(self, pi):
6290  r"""teardown(Undecorator self, ParticleIndex pi)"""
6291  return _IMP_kernel.Undecorator_teardown(self, pi)
6292 
6293  def __str__(self):
6294  r"""__str__(Undecorator self) -> std::string"""
6295  return _IMP_kernel.Undecorator___str__(self)
6296 
6297  def __repr__(self):
6298  r"""__repr__(Undecorator self) -> std::string"""
6299  return _IMP_kernel.Undecorator___repr__(self)
6300 
6301  @staticmethod
6302  def get_from(o):
6303  return _object_cast_to_Undecorator(o)
6304 
6305 
6306  def do_show(self, out):
6307  pass
6308 
6309  @staticmethod
6310  def get_from(o):
6311  return _object_cast_to_Undecorator(o)
6312 
6313  __swig_destroy__ = _IMP_kernel.delete_Undecorator
6314  def __disown__(self):
6315  self.this.disown()
6316  _IMP_kernel.disown_Undecorator(self)
6317  return weakref.proxy(self)
6318 
6319  def do_destroy(self):
6320  r"""do_destroy(Undecorator self)"""
6321  return _IMP_kernel.Undecorator_do_destroy(self)
6322 
6323 # Register Undecorator in _IMP_kernel:
6324 _IMP_kernel.Undecorator_swigregister(Undecorator)
6325 class Model(Object):
6326  r"""Proxy of C++ IMP::Model class."""
6327 
6328  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6329 
6330  def __init__(self, *args):
6331  r"""__init__(Model self, std::string name="Model %1%") -> Model"""
6332  _IMP_kernel.Model_swiginit(self, _IMP_kernel.new_Model(*args))
6333 
6334  if self not in _models_set:
6335  _models_set.add(self)
6336 
6337 
6338 
6339 
6340  def clear_particle_caches(self, pi):
6341  r"""clear_particle_caches(Model self, ParticleIndex pi)"""
6342  return _IMP_kernel.Model_clear_particle_caches(self, pi)
6343 
6344  def add_particle(self, name):
6345  r"""add_particle(Model self, std::string name) -> ParticleIndex"""
6346  return _IMP_kernel.Model_add_particle(self, name)
6347 
6348  def get_particle_name(self, pi):
6349  r"""get_particle_name(Model self, ParticleIndex pi) -> std::string"""
6350  return _IMP_kernel.Model_get_particle_name(self, pi)
6351 
6352  def add_undecorator(self, pi, d):
6353  r"""add_undecorator(Model self, ParticleIndex pi, Undecorator d)"""
6354  return _IMP_kernel.Model_add_undecorator(self, pi, d)
6355 
6356  def get_dependent_restraints_uncached(self, pi):
6357  r"""get_dependent_restraints_uncached(Model self, ParticleIndex pi) -> IMP::RestraintsTemp"""
6358  return _IMP_kernel.Model_get_dependent_restraints_uncached(self, pi)
6359 
6360  def get_dependent_particles_uncached(self, pi):
6361  r"""get_dependent_particles_uncached(Model self, ParticleIndex pi) -> IMP::ParticlesTemp"""
6362  return _IMP_kernel.Model_get_dependent_particles_uncached(self, pi)
6363 
6364  def get_dependent_score_states_uncached(self, pi):
6365  r"""get_dependent_score_states_uncached(Model self, ParticleIndex pi) -> IMP::ScoreStatesTemp"""
6366  return _IMP_kernel.Model_get_dependent_score_states_uncached(self, pi)
6367  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)
6368  def __set_score_states(self, obj): _list_util.set_varlist(self.score_states, obj)
6369  def __del_score_states(self): _list_util.del_varlist(self.score_states)
6370  score_states = property(__get_score_states, __set_score_states, __del_score_states, doc="List of ##ucnames")
6371 
6372  def remove_score_state(self, d):
6373  r"""remove_score_state(Model self, ScoreState d)"""
6374  return _IMP_kernel.Model_remove_score_state(self, d)
6375 
6376  def _python_index_score_state(self, d, start, stop):
6377  r"""_python_index_score_state(Model self, ScoreState d, unsigned int start, unsigned int stop) -> unsigned int"""
6378  return _IMP_kernel.Model__python_index_score_state(self, d, start, stop)
6379 
6380  def remove_score_states(self, d):
6381  r"""remove_score_states(Model self, IMP::ScoreStates const & d)"""
6382  return _IMP_kernel.Model_remove_score_states(self, d)
6383 
6384  def set_score_states(self, ps):
6385  r"""set_score_states(Model self, IMP::ScoreStates const & ps)"""
6386  return _IMP_kernel.Model_set_score_states(self, ps)
6387 
6388  def set_score_states_order(self, objs):
6389  r"""set_score_states_order(Model self, IMP::ScoreStates const & objs)"""
6390  return _IMP_kernel.Model_set_score_states_order(self, objs)
6391 
6392  def add_score_state(self, obj):
6393  r"""add_score_state(Model self, ScoreState obj) -> unsigned int"""
6394  return _IMP_kernel.Model_add_score_state(self, obj)
6395 
6396  def add_score_states(self, objs):
6397  r"""add_score_states(Model self, IMP::ScoreStates const & objs)"""
6398  return _IMP_kernel.Model_add_score_states(self, objs)
6399 
6400  def clear_score_states(self):
6401  r"""clear_score_states(Model self)"""
6402  return _IMP_kernel.Model_clear_score_states(self)
6403 
6404  def get_number_of_score_states(self):
6405  r"""get_number_of_score_states(Model self) -> unsigned int"""
6406  return _IMP_kernel.Model_get_number_of_score_states(self)
6407 
6408  def get_has_score_states(self):
6409  r"""get_has_score_states(Model self) -> bool"""
6410  return _IMP_kernel.Model_get_has_score_states(self)
6411 
6412  def get_score_state(self, i):
6413  r"""get_score_state(Model self, unsigned int i) -> ScoreState"""
6414  return _IMP_kernel.Model_get_score_state(self, i)
6415 
6416  def get_score_states(self):
6417  r"""get_score_states(Model self) -> IMP::ScoreStates"""
6418  return _IMP_kernel.Model_get_score_states(self)
6419 
6420  def erase_score_state(self, i):
6421  r"""erase_score_state(Model self, unsigned int i)"""
6422  return _IMP_kernel.Model_erase_score_state(self, i)
6423 
6424  def reserve_score_states(self, sz):
6425  r"""reserve_score_states(Model self, unsigned int sz)"""
6426  return _IMP_kernel.Model_reserve_score_states(self, sz)
6427 
6428  def update(self):
6429  r"""update(Model self)"""
6430  return _IMP_kernel.Model_update(self)
6431 
6432  def get_ordered_score_states(self):
6433  r"""get_ordered_score_states(Model self) -> IMP::ScoreStatesTemp"""
6434  return _IMP_kernel.Model_get_ordered_score_states(self)
6435 
6436  def add_cache_attribute(self, *args):
6437  r"""
6438  add_cache_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6439  add_cache_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6440  add_cache_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6441  add_cache_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6442  add_cache_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6443  add_cache_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6444  add_cache_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6445  add_cache_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6446  add_cache_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6447  add_cache_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6448  add_cache_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6449  add_cache_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6450  add_cache_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6451  """
6452  return _IMP_kernel.Model_add_cache_attribute(self, *args)
6453 
6454  def add_attribute(self, *args):
6455  r"""
6456  add_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6457  add_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6458  add_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6459  add_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6460  add_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6461  add_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6462  add_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6463  add_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6464  add_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6465  add_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6466  add_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6467  add_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6468  add_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6469  add_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6470  add_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6471  add_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6472  add_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6473  """
6474  return _IMP_kernel.Model_add_attribute(self, *args)
6475 
6476  def remove_attribute(self, *args):
6477  r"""
6478  remove_attribute(Model self, FloatKey attribute_key, ParticleIndex particle)
6479  remove_attribute(Model self, IntKey attribute_key, ParticleIndex particle)
6480  remove_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle)
6481  remove_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle)
6482  remove_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle)
6483  remove_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle)
6484  remove_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle)
6485  remove_attribute(Model self, IntsKey attribute_key, ParticleIndex particle)
6486  remove_attribute(Model self, StringKey attribute_key, ParticleIndex particle)
6487  remove_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle)
6488  remove_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle)
6489  remove_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle)
6490  remove_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle)
6491  remove_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle)
6492  remove_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle)
6493  remove_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle)
6494  remove_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle)
6495  """
6496  return _IMP_kernel.Model_remove_attribute(self, *args)
6497 
6498  def get_has_attribute(self, *args):
6499  r"""
6500  get_has_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> bool
6501  get_has_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> bool
6502  get_has_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> bool
6503  get_has_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> bool
6504  get_has_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> bool
6505  get_has_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> bool
6506  get_has_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> bool
6507  get_has_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> bool
6508  get_has_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> bool
6509  get_has_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> bool
6510  get_has_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6511  get_has_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> bool
6512  get_has_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> bool
6513  get_has_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> bool
6514  get_has_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> bool
6515  get_has_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> bool
6516  get_has_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> bool
6517  """
6518  return _IMP_kernel.Model_get_has_attribute(self, *args)
6519 
6520  def set_attribute(self, *args):
6521  r"""
6522  set_attribute(Model self, FloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6523  set_attribute(Model self, IntKey attribute_key, ParticleIndex particle, IMP::Int value)
6524  set_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle, IMP::Floats value)
6525  set_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle, Vector3D value)
6526  set_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle, Vector4D value)
6527  set_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D value)
6528  set_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D value)
6529  set_attribute(Model self, IntsKey attribute_key, ParticleIndex particle, IMP::Ints value)
6530  set_attribute(Model self, StringKey attribute_key, ParticleIndex particle, IMP::String value)
6531  set_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle, IMP::ParticleIndexes value)
6532  set_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6533  set_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle, Object value)
6534  set_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle, Object value)
6535  set_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle, IMP::String value)
6536  set_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle, IMP::Int value)
6537  set_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle, IMP::Float value)
6538  set_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle, ParticleIndex value)
6539  """
6540  return _IMP_kernel.Model_set_attribute(self, *args)
6541 
6542  def get_attribute(self, *args):
6543  r"""
6544  get_attribute(Model self, FloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6545  get_attribute(Model self, IntKey attribute_key, ParticleIndex particle) -> IMP::Int
6546  get_attribute(Model self, FloatsKey attribute_key, ParticleIndex particle) -> IMP::Floats
6547  get_attribute(Model self, Vector3DKey attribute_key, ParticleIndex particle) -> Vector3D
6548  get_attribute(Model self, Vector4DKey attribute_key, ParticleIndex particle) -> Vector4D
6549  get_attribute(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle) -> Vector3D
6550  get_attribute(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle) -> Vector4D
6551  get_attribute(Model self, IntsKey attribute_key, ParticleIndex particle) -> IMP::Ints
6552  get_attribute(Model self, StringKey attribute_key, ParticleIndex particle) -> IMP::String
6553  get_attribute(Model self, ParticleIndexesKey attribute_key, ParticleIndex particle) -> IMP::ParticleIndexes
6554  get_attribute(Model self, ParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6555  get_attribute(Model self, ObjectKey attribute_key, ParticleIndex particle) -> Object
6556  get_attribute(Model self, IMP::WeakObjectKey attribute_key, ParticleIndex particle) -> Object
6557  get_attribute(Model self, SparseStringKey attribute_key, ParticleIndex particle) -> IMP::String
6558  get_attribute(Model self, SparseIntKey attribute_key, ParticleIndex particle) -> IMP::Int
6559  get_attribute(Model self, SparseFloatKey attribute_key, ParticleIndex particle) -> IMP::Float
6560  get_attribute(Model self, SparseParticleIndexKey attribute_key, ParticleIndex particle) -> ParticleIndex
6561  """
6562  return _IMP_kernel.Model_get_attribute(self, *args)
6563 
6564  def set_is_optimized(self, *args):
6565  r"""
6566  set_is_optimized(Model self, Vector3DDerivKey arg2, ParticleIndex arg3, bool arg4)
6567  set_is_optimized(Model self, Vector4DDerivKey arg2, ParticleIndex arg3, bool arg4)
6568  set_is_optimized(Model self, FloatKey arg2, ParticleIndex arg3, bool arg4)
6569  """
6570  return _IMP_kernel.Model_set_is_optimized(self, *args)
6571 
6572  def add_to_derivative(self, *args):
6573  r"""
6574  add_to_derivative(Model self, Vector3DDerivKey attribute_key, ParticleIndex particle, Vector3D v, DerivativeAccumulator da)
6575  add_to_derivative(Model self, Vector4DDerivKey attribute_key, ParticleIndex particle, Vector4D v, DerivativeAccumulator da)
6576  add_to_derivative(Model self, FloatKey k, ParticleIndex particle, double v, DerivativeAccumulator da)
6577  """
6578  return _IMP_kernel.Model_add_to_derivative(self, *args)
6579 
6580  def get_particle(self, p):
6581  r"""get_particle(Model self, ParticleIndex p) -> Particle"""
6582  return _IMP_kernel.Model_get_particle(self, p)
6583 
6584  def get_has_particle(self, p):
6585  r"""get_has_particle(Model self, ParticleIndex p) -> bool"""
6586  return _IMP_kernel.Model_get_has_particle(self, p)
6587 
6588  def get_particle_indexes(self):
6589  r"""get_particle_indexes(Model self) -> IMP::ParticleIndexes"""
6590  return _IMP_kernel.Model_get_particle_indexes(self)
6591 
6592  def get_model_objects(self):
6593  r"""get_model_objects(Model self) -> IMP::ModelObjectsTemp"""
6594  return _IMP_kernel.Model_get_model_objects(self)
6595 
6596  def remove_particle(self, pi):
6597  r"""remove_particle(Model self, ParticleIndex pi)"""
6598  return _IMP_kernel.Model_remove_particle(self, pi)
6599 
6600  def add_data(self, mk, o):
6601  r"""add_data(Model self, ModelKey mk, Object o)"""
6602  return _IMP_kernel.Model_add_data(self, mk, o)
6603 
6604  def get_data(self, mk):
6605  r"""get_data(Model self, ModelKey mk) -> Object"""
6606  return _IMP_kernel.Model_get_data(self, mk)
6607 
6608  def remove_data(self, mk):
6609  r"""remove_data(Model self, ModelKey mk)"""
6610  return _IMP_kernel.Model_remove_data(self, mk)
6611 
6612  def get_has_data(self, mk):
6613  r"""get_has_data(Model self, ModelKey mk) -> bool"""
6614  return _IMP_kernel.Model_get_has_data(self, mk)
6615 
6616  def get_age(self):
6617  r"""get_age(Model self) -> unsigned int"""
6618  return _IMP_kernel.Model_get_age(self)
6619 
6620  def get_trigger_last_updated(self, tk):
6621  r"""get_trigger_last_updated(Model self, TriggerKey tk) -> unsigned int"""
6622  return _IMP_kernel.Model_get_trigger_last_updated(self, tk)
6623 
6624  def set_trigger_updated(self, tk):
6625  r"""set_trigger_updated(Model self, TriggerKey tk)"""
6626  return _IMP_kernel.Model_set_trigger_updated(self, tk)
6627 
6628  def get_dependencies_updated(self):
6629  r"""get_dependencies_updated(Model self) -> unsigned int"""
6630  return _IMP_kernel.Model_get_dependencies_updated(self)
6631 
6632  def get_removed_particles_attributes_age(self):
6633  r"""get_removed_particles_attributes_age(Model self) -> unsigned int"""
6634  return _IMP_kernel.Model_get_removed_particles_attributes_age(self)
6635 
6636  def save_dependencies(self):
6637  r"""save_dependencies(Model self)"""
6638  return _IMP_kernel.Model_save_dependencies(self)
6639 
6640  def restore_dependencies(self):
6641  r"""restore_dependencies(Model self)"""
6642  return _IMP_kernel.Model_restore_dependencies(self)
6643 
6644  def get_particles_size(self):
6645  r"""get_particles_size(Model self) -> unsigned int"""
6646  return _IMP_kernel.Model_get_particles_size(self)
6647 
6648  def get_unique_id(self):
6649  r"""get_unique_id(Model self) -> uint32_t"""
6650  return _IMP_kernel.Model_get_unique_id(self)
6651 
6652  @staticmethod
6653  def get_by_unique_id(id):
6654  r"""get_by_unique_id(uint32_t id) -> Model"""
6655  return _IMP_kernel.Model_get_by_unique_id(id)
6656 
6657  def get_version_info(self):
6658  r"""get_version_info(Model self) -> VersionInfo"""
6659  return _IMP_kernel.Model_get_version_info(self)
6660  __swig_destroy__ = _IMP_kernel.delete_Model
6661  def __del__(self):
6662  r"""__del__(Model self)"""
6663 
6664  _director_objects.cleanup()
6665 
6666 
6667  pass
6668 
6669 
6670  def do_destroy(self):
6671  r"""do_destroy(Model self)"""
6672  return _IMP_kernel.Model_do_destroy(self)
6673 
6674  def __str__(self):
6675  r"""__str__(Model self) -> std::string"""
6676  return _IMP_kernel.Model___str__(self)
6677 
6678  def __repr__(self):
6679  r"""__repr__(Model self) -> std::string"""
6680  return _IMP_kernel.Model___repr__(self)
6681 
6682  @staticmethod
6683  def get_from(o):
6684  return _object_cast_to_Model(o)
6685 
6686 
6687  def _get_as_binary(self):
6688  r"""_get_as_binary(Model self) -> PyObject *"""
6689  return _IMP_kernel.Model__get_as_binary(self)
6690 
6691  def _set_from_binary(self, p):
6692  r"""_set_from_binary(Model self, PyObject * p)"""
6693  return _IMP_kernel.Model__set_from_binary(self, p)
6694 
6695  def __getstate__(self):
6696  p = self._get_as_binary()
6697  if len(self.__dict__) > 1:
6698  d = self.__dict__.copy()
6699  del d['this']
6700  p = (d, p)
6701  return p
6702 
6703  def __setstate__(self, p):
6704  if not hasattr(self, 'this'):
6705  self.__init__()
6706  if isinstance(p, tuple):
6707  d, p = p
6708  self.__dict__.update(d)
6709  return self._set_from_binary(p)
6710 
6711 
6712  def get_ints_numpy(self, k, read_only=False):
6713  """Get the model's attribute array for IntKey k as a NumPy array.
6714  The array is indexed by ParticleIndex; particles that don't have
6715  this attribute will either be off the end of the array or will have
6716  the value INT_MAX.
6717  This is a NumPy view that shares memory with the Model. Thus,
6718  any changes to values in this list will be reflected in the Model.
6719  Also, if the Model attribute array moves in memory (e.g. if particles
6720  or attributes are added) this array will be invalidated, so it is
6721  unsafe to keep it around long term.
6722  If read_only is set True, values in the array cannot be changed.
6723  """
6724  return _get_ints_numpy(self, k, self, read_only)
6725 
6726  def get_numpy(self, k, read_only=False):
6727  """Get the model's attribute array for any type of Key
6728  k as a NumPy array. See Model::get_ints_numpy() for more details."""
6729  _numpy_meth_map = {IntKey: _get_ints_numpy,
6730  FloatKey: _get_floats_numpy,
6731  Vector3DKey: _get_vector3ds_numpy,
6732  Vector3DDerivKey: _get_vector3dderiv_numpy,
6733  Vector4DKey: _get_vector4ds_numpy,
6734  Vector4DDerivKey: _get_vector4dderiv_numpy}
6735  return _numpy_meth_map[type(k)](self, k, self, read_only)
6736 
6737  def get_floats_numpy(self, k, read_only=False):
6738  """Get the model's attribute array for FloatKey k as a NumPy array.
6739  See Model::get_ints_numpy() for more details."""
6740  return _get_floats_numpy(self, k, self, read_only)
6741 
6742  def get_derivatives_numpy(self, k, read_only=False):
6743  """Get the model's attribute derivatives array for key k
6744  as a NumPy array. See Model::get_ints_numpy() for more details."""
6745  _numpy_meth_map = {
6746  FloatKey: _get_derivatives_numpy,
6747  Vector3DDerivKey: _get_vector3dderiv_derivatives_numpy,
6748  Vector4DDerivKey: _get_vector4dderiv_derivatives_numpy}
6749  return _numpy_meth_map[type(k)](self, k, self, read_only)
6750 
6751  def get_vector3ds_numpy(self, k, read_only=False):
6752  """Get the model's attribute array for Vector3DKey k as a NumPy array.
6753  See Model::get_ints_numpy() for more details."""
6754  return _get_vector3ds_numpy(self, k, self, read_only)
6755 
6756  def get_spheres_numpy(self, read_only=False):
6757  """Get the model's XYZR attribute arrays as NumPy arrays.
6758  The attribute arrays for Cartesian coordinates and radii are
6759  stored separately from those for other FloatKeys. This function
6760  returns a tuple of two NumPy arrays, the first of coordinates and
6761  the second of radii. See Model::get_ints_numpy() for more details."""
6762  return _get_spheres_numpy(self, self, read_only)
6763 
6764  def get_sphere_derivatives_numpy(self, read_only=False):
6765  """Get the model's XYZR attribute derivatives arrays as NumPy arrays.
6766  See Model::get_ints_numpy() for more details."""
6767  return _get_sphere_derivatives_numpy(self, self, read_only)
6768 
6769  def get_internal_coordinates_numpy(self, read_only=False):
6770  """Get the model's internal coordinate array as a NumPy array.
6771  The attribute arrays for rigid body internal coordinates are
6772  stored separately from those for other FloatKeys.
6773  See Model::get_ints_numpy() for more details."""
6774  return _get_internal_coordinates_numpy(self, self, read_only)
6775 
6776  def get_internal_coordinate_derivatives_numpy(self, read_only=False):
6777  """Get the model's internal coordinate derivative array as a
6778  NumPy array.
6779  See Model::get_ints_numpy() for more details."""
6780  return _get_internal_coordinate_derivatives_numpy(
6781  self, self, read_only)
6782 
6783 
6784 # Register Model in _IMP_kernel:
6785 _IMP_kernel.Model_swigregister(Model)
6786 class Decorator(_Value):
6787  r"""Proxy of C++ IMP::Decorator class."""
6788 
6789  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6790  __repr__ = _swig_repr
6791 
6792  def __init__(self, p):
6793  r"""__init__(Decorator self, _ParticleAdaptor p) -> Decorator"""
6794  _IMP_kernel.Decorator_swiginit(self, _IMP_kernel.new_Decorator(p))
6795 
6796  def __ne__(self, o):
6797  r"""__ne__(Decorator self, Object o) -> bool"""
6798  return _IMP_kernel.Decorator___ne__(self, o)
6799 
6800  def __lt__(self, o):
6801  r"""__lt__(Decorator self, Object o) -> bool"""
6802  return _IMP_kernel.Decorator___lt__(self, o)
6803 
6804  def __gt__(self, o):
6805  r"""__gt__(Decorator self, Object o) -> bool"""
6806  return _IMP_kernel.Decorator___gt__(self, o)
6807 
6808  def __ge__(self, o):
6809  r"""__ge__(Decorator self, Object o) -> bool"""
6810  return _IMP_kernel.Decorator___ge__(self, o)
6811 
6812  def __le__(self, o):
6813  r"""__le__(Decorator self, Object o) -> bool"""
6814  return _IMP_kernel.Decorator___le__(self, o)
6815 
6816  def get_particle(self):
6817  r"""get_particle(Decorator self) -> Particle"""
6818  return _IMP_kernel.Decorator_get_particle(self)
6819 
6820  def get_particle_index(self):
6821  r"""get_particle_index(Decorator self) -> ParticleIndex"""
6822  return _IMP_kernel.Decorator_get_particle_index(self)
6823 
6824  def get_model(self):
6825  m = _IMP_kernel.Decorator_get_model(self)
6826  if m in _models_set:
6827  m = _models_set_get(m)
6828  return m
6829 
6830 
6831 
6832  def get_is_valid(self):
6833  r"""get_is_valid(Decorator self) -> bool"""
6834  return _IMP_kernel.Decorator_get_is_valid(self)
6835 
6836  def __hash__(self):
6837  r"""__hash__(Decorator self) -> std::size_t"""
6838  return _IMP_kernel.Decorator___hash__(self)
6839 
6840  def __eq__(self, *args):
6841  r"""
6842  __eq__(Decorator self, Object o) -> bool
6843  __eq__(Decorator self, Decorator o) -> bool
6844  __eq__(Decorator self, Particle o) -> bool
6845  """
6846  return _IMP_kernel.Decorator___eq__(self, *args)
6847 
6848  def __bool__(self):
6849  r"""__bool__(Decorator self) -> bool"""
6850  return _IMP_kernel.Decorator___bool__(self)
6851  __swig_destroy__ = _IMP_kernel.delete_Decorator
6852 
6853 # Register Decorator in _IMP_kernel:
6854 _IMP_kernel.Decorator_swigregister(Decorator)
6855 
6856 def check_particle(m, pi):
6857  r"""check_particle(Model m, ParticleIndex pi)"""
6858  return _IMP_kernel.check_particle(m, pi)
6859 class UnaryFunction(Object):
6860  r"""Proxy of C++ IMP::UnaryFunction class."""
6861 
6862  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6863 
6864  def __init__(self, *args):
6865  r"""__init__(UnaryFunction self, std::string name="UnaryFunction%1%") -> UnaryFunction"""
6866  if self.__class__ == UnaryFunction:
6867  _self = None
6868  else:
6869  _self = self
6870  _IMP_kernel.UnaryFunction_swiginit(self, _IMP_kernel.new_UnaryFunction(_self, *args))
6871 
6872  if self.__class__ != UnaryFunction:
6873  _director_objects.register(self)
6874 
6875 
6876 
6877 
6878  def evaluate(self, feature):
6879  r"""evaluate(UnaryFunction self, double feature) -> double"""
6880  return _IMP_kernel.UnaryFunction_evaluate(self, feature)
6881 
6882  def evaluate_with_derivative(self, feature):
6883  r"""evaluate_with_derivative(UnaryFunction self, double feature) -> IMP::DerivativePair"""
6884  return _IMP_kernel.UnaryFunction_evaluate_with_derivative(self, feature)
6885  __swig_destroy__ = _IMP_kernel.delete_UnaryFunction
6886 
6887  def __str__(self):
6888  r"""__str__(UnaryFunction self) -> std::string"""
6889  return _IMP_kernel.UnaryFunction___str__(self)
6890 
6891  def __repr__(self):
6892  r"""__repr__(UnaryFunction self) -> std::string"""
6893  return _IMP_kernel.UnaryFunction___repr__(self)
6894 
6895  @staticmethod
6896  def get_from(o):
6897  return _object_cast_to_UnaryFunction(o)
6898 
6899 
6900  def do_show(self, out):
6901  pass
6902 
6903  @staticmethod
6904  def get_from(o):
6905  return _object_cast_to_UnaryFunction(o)
6906 
6907 
6908  def _get_jax(self):
6909  """Return a JAX implementation of this UnaryFunction.
6910  Implement this method in a UnaryFunction subclass to provide
6911  an equivalent function using [JAX](https://docs.jax.dev/)
6912  that scores the provided feature value.
6913  """
6914  raise NotImplementedError(
6915  f"No JAX implementation for {self} ({type(self)})")
6916 
6917  def __disown__(self):
6918  self.this.disown()
6919  _IMP_kernel.disown_UnaryFunction(self)
6920  return weakref.proxy(self)
6921 
6922  def do_destroy(self):
6923  r"""do_destroy(UnaryFunction self)"""
6924  return _IMP_kernel.UnaryFunction_do_destroy(self)
6925 
6926 # Register UnaryFunction in _IMP_kernel:
6927 _IMP_kernel.UnaryFunction_swigregister(UnaryFunction)
6929  r"""Proxy of C++ IMP::OptimizerState class."""
6930 
6931  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
6932 
6933  def __init__(self, *args):
6934  r"""
6935  __init__(OptimizerState self, Model m, std::string name) -> OptimizerState
6936  __init__(OptimizerState self) -> OptimizerState
6937  """
6938  if self.__class__ == OptimizerState:
6939  _self = None
6940  else:
6941  _self = self
6942  _IMP_kernel.OptimizerState_swiginit(self, _IMP_kernel.new_OptimizerState(_self, *args))
6943 
6944  if self.__class__ != OptimizerState:
6945  _director_objects.register(self)
6946 
6947 
6948 
6949 
6950  def update(self):
6951  r"""update(OptimizerState self)"""
6952  return _IMP_kernel.OptimizerState_update(self)
6953 
6954  def set_is_optimizing(self, arg0):
6955  r"""set_is_optimizing(OptimizerState self, bool arg0)"""
6956  return _IMP_kernel.OptimizerState_set_is_optimizing(self, arg0)
6957 
6958  def get_optimizer(self):
6959  r"""get_optimizer(OptimizerState self) -> Optimizer"""
6960  return _IMP_kernel.OptimizerState_get_optimizer(self)
6961 
6962  def set_period(self, p):
6963  r"""set_period(OptimizerState self, unsigned int p)"""
6964  return _IMP_kernel.OptimizerState_set_period(self, p)
6965 
6966  def get_period(self):
6967  r"""get_period(OptimizerState self) -> unsigned int"""
6968  return _IMP_kernel.OptimizerState_get_period(self)
6969 
6970  def reset(self):
6971  r"""reset(OptimizerState self)"""
6972  return _IMP_kernel.OptimizerState_reset(self)
6973 
6974  def update_always(self):
6975  r"""update_always(OptimizerState self)"""
6976  return _IMP_kernel.OptimizerState_update_always(self)
6977 
6978  def get_number_of_updates(self):
6979  r"""get_number_of_updates(OptimizerState self) -> unsigned int"""
6980  return _IMP_kernel.OptimizerState_get_number_of_updates(self)
6981 
6982  def set_number_of_updates(self, n):
6983  r"""set_number_of_updates(OptimizerState self, unsigned int n)"""
6984  return _IMP_kernel.OptimizerState_set_number_of_updates(self, n)
6985  __swig_destroy__ = _IMP_kernel.delete_OptimizerState
6986 
6987  def do_update(self, arg0):
6988  r"""do_update(OptimizerState self, unsigned int arg0)"""
6989  return _IMP_kernel.OptimizerState_do_update(self, arg0)
6990 
6991  def do_set_is_optimizing(self, arg0):
6992  r"""do_set_is_optimizing(OptimizerState self, bool arg0)"""
6993  return _IMP_kernel.OptimizerState_do_set_is_optimizing(self, arg0)
6994 
6995  def do_get_inputs(self):
6996  r"""do_get_inputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
6997  return _IMP_kernel.OptimizerState_do_get_inputs(self)
6998 
6999  def do_get_outputs(self):
7000  r"""do_get_outputs(OptimizerState self) -> IMP::ModelObjectsTemp"""
7001  return _IMP_kernel.OptimizerState_do_get_outputs(self)
7002 
7003  def __str__(self):
7004  r"""__str__(OptimizerState self) -> std::string"""
7005  return _IMP_kernel.OptimizerState___str__(self)
7006 
7007  def __repr__(self):
7008  r"""__repr__(OptimizerState self) -> std::string"""
7009  return _IMP_kernel.OptimizerState___repr__(self)
7010 
7011  @staticmethod
7012  def get_from(o):
7013  return _object_cast_to_OptimizerState(o)
7014 
7015 
7016  def do_show(self, out):
7017  pass
7018 
7019  @staticmethod
7020  def get_from(o):
7021  return _object_cast_to_OptimizerState(o)
7022 
7023 
7024  def _get_jax(self, state_index):
7025  """Add JAX support for this OptimizerState.
7026 
7027  Each OptimizerState must explicitly support how it is going to
7028  be called when the Optimizer is run via JAX.
7029 
7030  OptimizerStates can run as traditional IMP CPU code
7031  on the IMP Model object, in which case None should be returned here.
7032  The Optimizer will sync any necessary information from JAX back
7033  with the IMP Model before calling the OptimizerState. However,
7034  the OptimizerState is not permitted to modify the Model; any
7035  changes will not be propagated back to the Optimizer.
7036  (For example, a thermostat which tries to change particle
7037  velocities will not function correctly.)
7038 
7039  Alternatively, a pure JAX implementation can be provided.
7040  See _wrap_jax for more information.
7041  """
7042  raise NotImplementedError(
7043  f"No JAX implementation for {self} ({type(self)})")
7044 
7045  def _wrap_jax(self, init_func, apply_func):
7046  """Create the return value for _get_jax.
7047  Use this method in _get_jax() to wrap the JAX function
7048  with other OptimizerState-specific information.
7049 
7050  @param init_func a JAX function which, given a JAX Optimizer,
7051  does any necessary setup and returns a (possibly modified)
7052  JAX Optimizer. If any OptimizerState-specific
7053  persistent state is needed, it can be stored in
7054  `opt.optimizer_states[state_index]` and later retrieved or
7055  modified in apply_func.
7056  @param apply_func a JAX function which, given a JAX Optimizer,
7057  does the JAX equivalent of do_update() and returns a new
7058  JAX Optimizer.
7059  """
7060  from IMP._jax_util import JAXOptimizerStateInfo
7061  return JAXOptimizerStateInfo(self, init_func, apply_func)
7062 
7063  def __disown__(self):
7064  self.this.disown()
7065  _IMP_kernel.disown_OptimizerState(self)
7066  return weakref.proxy(self)
7067 
7068  def do_destroy(self):
7069  r"""do_destroy(OptimizerState self)"""
7070  return _IMP_kernel.OptimizerState_do_destroy(self)
7071 
7072  def handle_set_has_required_score_states(self, arg0):
7073  r"""handle_set_has_required_score_states(OptimizerState self, bool arg0)"""
7074  return _IMP_kernel.OptimizerState_handle_set_has_required_score_states(self, arg0)
7075 
7076  def do_get_interactions(self):
7077  r"""do_get_interactions(OptimizerState self) -> IMP::ModelObjectsTemps"""
7078  return _IMP_kernel.OptimizerState_do_get_interactions(self)
7079 
7080 # Register OptimizerState in _IMP_kernel:
7081 _IMP_kernel.OptimizerState_swigregister(OptimizerState)
7082 class Refiner(_ParticleInputs, Object):
7083  r"""Proxy of C++ IMP::Refiner class."""
7084 
7085  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7086 
7087  def __init__(self, *args):
7088  r"""__init__(Refiner self, std::string name="Refiner %1%", bool is_by_ref=False) -> Refiner"""
7089  if self.__class__ == Refiner:
7090  _self = None
7091  else:
7092  _self = self
7093  _IMP_kernel.Refiner_swiginit(self, _IMP_kernel.new_Refiner(_self, *args))
7094 
7095  if self.__class__ != Refiner:
7096  _director_objects.register(self)
7097 
7098 
7099 
7100 
7101  def get_can_refine(self, arg0):
7102  r"""get_can_refine(Refiner self, Particle arg0) -> bool"""
7103  return _IMP_kernel.Refiner_get_can_refine(self, arg0)
7104 
7105  def get_refined_indexes(self, m, pi):
7106  r"""get_refined_indexes(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes"""
7107  return _IMP_kernel.Refiner_get_refined_indexes(self, m, pi)
7108 
7109  def get_refined_indexes_by_ref(self, m, pi):
7110  r"""get_refined_indexes_by_ref(Refiner self, Model m, ParticleIndex pi) -> IMP::ParticleIndexes const &"""
7111  return _IMP_kernel.Refiner_get_refined_indexes_by_ref(self, m, pi)
7112 
7113  def get_is_by_ref_supported(self):
7114  r"""get_is_by_ref_supported(Refiner self) -> bool"""
7115  return _IMP_kernel.Refiner_get_is_by_ref_supported(self)
7116 
7117  def get_refined(self, *args):
7118  r"""
7119  get_refined(Refiner self, Particle a) -> IMP::ParticlesTemp const
7120  get_refined(Refiner self, Particle a, unsigned int i) -> Particle
7121  """
7122  return _IMP_kernel.Refiner_get_refined(self, *args)
7123 
7124  def get_number_of_refined(self, a):
7125  r"""get_number_of_refined(Refiner self, Particle a) -> unsigned int"""
7126  return _IMP_kernel.Refiner_get_number_of_refined(self, a)
7127 
7128  def __str__(self):
7129  r"""__str__(Refiner self) -> std::string"""
7130  return _IMP_kernel.Refiner___str__(self)
7131 
7132  def __repr__(self):
7133  r"""__repr__(Refiner self) -> std::string"""
7134  return _IMP_kernel.Refiner___repr__(self)
7135 
7136  @staticmethod
7137  def get_from(o):
7138  return _object_cast_to_Refiner(o)
7139 
7140 
7141  def do_show(self, out):
7142  pass
7143 
7144  @staticmethod
7145  def get_from(o):
7146  return _object_cast_to_Refiner(o)
7147 
7148  __swig_destroy__ = _IMP_kernel.delete_Refiner
7149  def __disown__(self):
7150  self.this.disown()
7151  _IMP_kernel.disown_Refiner(self)
7152  return weakref.proxy(self)
7153 
7154  def do_get_inputs(self, m, pis):
7155  r"""do_get_inputs(Refiner self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7156  return _IMP_kernel.Refiner_do_get_inputs(self, m, pis)
7157 
7158  def do_destroy(self):
7159  r"""do_destroy(Refiner self)"""
7160  return _IMP_kernel.Refiner_do_destroy(self)
7161 
7162 # Register Refiner in _IMP_kernel:
7163 _IMP_kernel.Refiner_swigregister(Refiner)
7164 class Optimizer(ModelObject):
7165  r"""Proxy of C++ IMP::Optimizer class."""
7166 
7167  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7168 
7169  def set_is_optimizing_states(self, tf):
7170  r"""set_is_optimizing_states(Optimizer self, bool tf)"""
7171  return _IMP_kernel.Optimizer_set_is_optimizing_states(self, tf)
7172 
7173  def get_optimizer_state_inputs(self):
7174  r"""get_optimizer_state_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7175  return _IMP_kernel.Optimizer_get_optimizer_state_inputs(self)
7176 
7177  def do_get_inputs(self):
7178  r"""do_get_inputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7179  return _IMP_kernel.Optimizer_do_get_inputs(self)
7180 
7181  def do_get_outputs(self):
7182  r"""do_get_outputs(Optimizer self) -> IMP::ModelObjectsTemp"""
7183  return _IMP_kernel.Optimizer_do_get_outputs(self)
7184 
7185  def __init__(self, *args):
7186  r"""
7187  __init__(Optimizer self, Model m, std::string name="Optimizer %1%") -> Optimizer
7188  __init__(Optimizer self) -> Optimizer
7189  """
7190  if self.__class__ == Optimizer:
7191  _self = None
7192  else:
7193  _self = self
7194  _IMP_kernel.Optimizer_swiginit(self, _IMP_kernel.new_Optimizer(_self, *args))
7195 
7196  if self.__class__ != Optimizer:
7197  _director_objects.register(self)
7198 
7199 
7200 
7201 
7202  def optimize(self, max_steps):
7203  r"""optimize(Optimizer self, unsigned int max_steps) -> double"""
7204  return _IMP_kernel.Optimizer_optimize(self, max_steps)
7205 
7206  def set_stop_on_good_score(self, tf):
7207  r"""set_stop_on_good_score(Optimizer self, bool tf)"""
7208  return _IMP_kernel.Optimizer_set_stop_on_good_score(self, tf)
7209 
7210  def get_stop_on_good_score(self):
7211  r"""get_stop_on_good_score(Optimizer self) -> bool"""
7212  return _IMP_kernel.Optimizer_get_stop_on_good_score(self)
7213 
7214  def get_last_score(self):
7215  r"""get_last_score(Optimizer self) -> double"""
7216  return _IMP_kernel.Optimizer_get_last_score(self)
7217 
7218  def get_scoring_function(self):
7219  r"""get_scoring_function(Optimizer self) -> ScoringFunction"""
7220  return _IMP_kernel.Optimizer_get_scoring_function(self)
7221  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)
7222  def __set_optimizer_states(self, obj): _list_util.set_varlist(self.optimizer_states, obj)
7223  def __del_optimizer_states(self): _list_util.del_varlist(self.optimizer_states)
7224  optimizer_states = property(__get_optimizer_states, __set_optimizer_states, __del_optimizer_states, doc="List of ##ucnames")
7225 
7226  def remove_optimizer_state(self, d):
7227  r"""remove_optimizer_state(Optimizer self, OptimizerState d)"""
7228  return _IMP_kernel.Optimizer_remove_optimizer_state(self, d)
7229 
7230  def _python_index_optimizer_state(self, d, start, stop):
7231  r"""_python_index_optimizer_state(Optimizer self, OptimizerState d, unsigned int start, unsigned int stop) -> unsigned int"""
7232  return _IMP_kernel.Optimizer__python_index_optimizer_state(self, d, start, stop)
7233 
7234  def remove_optimizer_states(self, d):
7235  r"""remove_optimizer_states(Optimizer self, IMP::OptimizerStates const & d)"""
7236  return _IMP_kernel.Optimizer_remove_optimizer_states(self, d)
7237 
7238  def set_optimizer_states(self, ps):
7239  r"""set_optimizer_states(Optimizer self, IMP::OptimizerStates const & ps)"""
7240  return _IMP_kernel.Optimizer_set_optimizer_states(self, ps)
7241 
7242  def set_optimizer_states_order(self, objs):
7243  r"""set_optimizer_states_order(Optimizer self, IMP::OptimizerStates const & objs)"""
7244  return _IMP_kernel.Optimizer_set_optimizer_states_order(self, objs)
7245 
7246  def add_optimizer_state(self, obj):
7247  r"""add_optimizer_state(Optimizer self, OptimizerState obj) -> unsigned int"""
7248  return _IMP_kernel.Optimizer_add_optimizer_state(self, obj)
7249 
7250  def add_optimizer_states(self, objs):
7251  r"""add_optimizer_states(Optimizer self, IMP::OptimizerStates const & objs)"""
7252  return _IMP_kernel.Optimizer_add_optimizer_states(self, objs)
7253 
7254  def clear_optimizer_states(self):
7255  r"""clear_optimizer_states(Optimizer self)"""
7256  return _IMP_kernel.Optimizer_clear_optimizer_states(self)
7257 
7258  def get_number_of_optimizer_states(self):
7259  r"""get_number_of_optimizer_states(Optimizer self) -> unsigned int"""
7260  return _IMP_kernel.Optimizer_get_number_of_optimizer_states(self)
7261 
7262  def get_has_optimizer_states(self):
7263  r"""get_has_optimizer_states(Optimizer self) -> bool"""
7264  return _IMP_kernel.Optimizer_get_has_optimizer_states(self)
7265 
7266  def get_optimizer_state(self, i):
7267  r"""get_optimizer_state(Optimizer self, unsigned int i) -> OptimizerState"""
7268  return _IMP_kernel.Optimizer_get_optimizer_state(self, i)
7269 
7270  def get_optimizer_states(self):
7271  r"""get_optimizer_states(Optimizer self) -> IMP::OptimizerStates"""
7272  return _IMP_kernel.Optimizer_get_optimizer_states(self)
7273 
7274  def erase_optimizer_state(self, i):
7275  r"""erase_optimizer_state(Optimizer self, unsigned int i)"""
7276  return _IMP_kernel.Optimizer_erase_optimizer_state(self, i)
7277 
7278  def reserve_optimizer_states(self, sz):
7279  r"""reserve_optimizer_states(Optimizer self, unsigned int sz)"""
7280  return _IMP_kernel.Optimizer_reserve_optimizer_states(self, sz)
7281 
7282  def set_scoring_function(self, sf):
7283  r"""set_scoring_function(Optimizer self, _ScoringFunctionAdaptor sf)"""
7284  return _IMP_kernel.Optimizer_set_scoring_function(self, sf)
7285  __swig_destroy__ = _IMP_kernel.delete_Optimizer
7286  def __del__(self):
7287  r"""__del__(Optimizer self)"""
7288 
7289  _director_objects.cleanup()
7290 
7291 
7292  pass
7293 
7294 
7295  def do_optimize(self, ns):
7296  r"""do_optimize(Optimizer self, unsigned int ns) -> double"""
7297  return _IMP_kernel.Optimizer_do_optimize(self, ns)
7298 
7299  def update_states(self):
7300  r"""update_states(Optimizer self)"""
7301  return _IMP_kernel.Optimizer_update_states(self)
7302 
7303  def __str__(self):
7304  r"""__str__(Optimizer self) -> std::string"""
7305  return _IMP_kernel.Optimizer___str__(self)
7306 
7307  def __repr__(self):
7308  r"""__repr__(Optimizer self) -> std::string"""
7309  return _IMP_kernel.Optimizer___repr__(self)
7310 
7311  @staticmethod
7312  def get_from(o):
7313  return _object_cast_to_Optimizer(o)
7314 
7315 
7316  def do_show(self, out):
7317  pass
7318 
7319  @staticmethod
7320  def get_from(o):
7321  return _object_cast_to_Optimizer(o)
7322 
7323  def __disown__(self):
7324  self.this.disown()
7325  _IMP_kernel.disown_Optimizer(self)
7326  return weakref.proxy(self)
7327 
7328  def do_destroy(self):
7329  r"""do_destroy(Optimizer self)"""
7330  return _IMP_kernel.Optimizer_do_destroy(self)
7331 
7332  def handle_set_has_required_score_states(self, arg0):
7333  r"""handle_set_has_required_score_states(Optimizer self, bool arg0)"""
7334  return _IMP_kernel.Optimizer_handle_set_has_required_score_states(self, arg0)
7335 
7336  def do_get_interactions(self):
7337  r"""do_get_interactions(Optimizer self) -> IMP::ModelObjectsTemps"""
7338  return _IMP_kernel.Optimizer_do_get_interactions(self)
7339 
7340 # Register Optimizer in _IMP_kernel:
7341 _IMP_kernel.Optimizer_swigregister(Optimizer)
7343  r"""Proxy of C++ IMP::AttributeOptimizer class."""
7344 
7345  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7346 
7347  def __init__(self, *args):
7348  r"""
7349  __init__(AttributeOptimizer self, Model m, std::string name="Optimizer %1%") -> AttributeOptimizer
7350  __init__(AttributeOptimizer self) -> AttributeOptimizer
7351  """
7352  if self.__class__ == AttributeOptimizer:
7353  _self = None
7354  else:
7355  _self = self
7356  _IMP_kernel.AttributeOptimizer_swiginit(self, _IMP_kernel.new_AttributeOptimizer(_self, *args))
7357 
7358  if self.__class__ != AttributeOptimizer:
7359  _director_objects.register(self)
7360 
7361 
7362 
7363 
7364  def get_optimized_attributes(self):
7365  r"""get_optimized_attributes(AttributeOptimizer self) -> IMP::FloatIndexes"""
7366  return _IMP_kernel.AttributeOptimizer_get_optimized_attributes(self)
7367 
7368  def set_value(self, fi, v):
7369  r"""set_value(AttributeOptimizer self, FloatIndex fi, double v)"""
7370  return _IMP_kernel.AttributeOptimizer_set_value(self, fi, v)
7371 
7372  def get_value(self, fi):
7373  r"""get_value(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7374  return _IMP_kernel.AttributeOptimizer_get_value(self, fi)
7375 
7376  def get_derivative(self, fi):
7377  r"""get_derivative(AttributeOptimizer self, FloatIndex fi) -> IMP::Float"""
7378  return _IMP_kernel.AttributeOptimizer_get_derivative(self, fi)
7379 
7380  def get_width(self, k):
7381  r"""get_width(AttributeOptimizer self, FloatKey k) -> double"""
7382  return _IMP_kernel.AttributeOptimizer_get_width(self, k)
7383 
7384  def set_scaled_value(self, fi, v):
7385  r"""set_scaled_value(AttributeOptimizer self, FloatIndex fi, IMP::Float v)"""
7386  return _IMP_kernel.AttributeOptimizer_set_scaled_value(self, fi, v)
7387 
7388  def get_scaled_value(self, fi):
7389  r"""get_scaled_value(AttributeOptimizer self, FloatIndex fi) -> double"""
7390  return _IMP_kernel.AttributeOptimizer_get_scaled_value(self, fi)
7391 
7392  def get_scaled_derivative(self, fi):
7393  r"""get_scaled_derivative(AttributeOptimizer self, FloatIndex fi) -> double"""
7394  return _IMP_kernel.AttributeOptimizer_get_scaled_derivative(self, fi)
7395 
7396  def clear_range_cache(self):
7397  r"""clear_range_cache(AttributeOptimizer self)"""
7398  return _IMP_kernel.AttributeOptimizer_clear_range_cache(self)
7399 
7400  def __str__(self):
7401  r"""__str__(AttributeOptimizer self) -> std::string"""
7402  return _IMP_kernel.AttributeOptimizer___str__(self)
7403 
7404  def __repr__(self):
7405  r"""__repr__(AttributeOptimizer self) -> std::string"""
7406  return _IMP_kernel.AttributeOptimizer___repr__(self)
7407 
7408  @staticmethod
7409  def get_from(o):
7410  return _object_cast_to_AttributeOptimizer(o)
7411 
7412 
7413  def do_show(self, out):
7414  pass
7415 
7416  @staticmethod
7417  def get_from(o):
7418  return _object_cast_to_AttributeOptimizer(o)
7419 
7420  __swig_destroy__ = _IMP_kernel.delete_AttributeOptimizer
7421  def __disown__(self):
7422  self.this.disown()
7423  _IMP_kernel.disown_AttributeOptimizer(self)
7424  return weakref.proxy(self)
7425 
7426  def do_destroy(self):
7427  r"""do_destroy(AttributeOptimizer self)"""
7428  return _IMP_kernel.AttributeOptimizer_do_destroy(self)
7429 
7430  def handle_set_has_required_score_states(self, arg0):
7431  r"""handle_set_has_required_score_states(AttributeOptimizer self, bool arg0)"""
7432  return _IMP_kernel.AttributeOptimizer_handle_set_has_required_score_states(self, arg0)
7433 
7434  def do_get_inputs(self):
7435  r"""do_get_inputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7436  return _IMP_kernel.AttributeOptimizer_do_get_inputs(self)
7437 
7438  def do_get_outputs(self):
7439  r"""do_get_outputs(AttributeOptimizer self) -> IMP::ModelObjectsTemp"""
7440  return _IMP_kernel.AttributeOptimizer_do_get_outputs(self)
7441 
7442  def do_get_interactions(self):
7443  r"""do_get_interactions(AttributeOptimizer self) -> IMP::ModelObjectsTemps"""
7444  return _IMP_kernel.AttributeOptimizer_do_get_interactions(self)
7445 
7446  def do_optimize(self, ns):
7447  r"""do_optimize(AttributeOptimizer self, unsigned int ns) -> double"""
7448  return _IMP_kernel.AttributeOptimizer_do_optimize(self, ns)
7449 
7450 # Register AttributeOptimizer in _IMP_kernel:
7451 _IMP_kernel.AttributeOptimizer_swigregister(AttributeOptimizer)
7452 class ConfigurationSet(Object):
7453  r"""Proxy of C++ IMP::ConfigurationSet class."""
7454 
7455  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7456 
7457  def __init__(self, *args):
7458  r"""__init__(ConfigurationSet self, Model m, std::string name="ConfigurationSet %1%") -> ConfigurationSet"""
7459  _IMP_kernel.ConfigurationSet_swiginit(self, _IMP_kernel.new_ConfigurationSet(*args))
7460 
7461  def save_configuration(self):
7462  r"""save_configuration(ConfigurationSet self)"""
7463  return _IMP_kernel.ConfigurationSet_save_configuration(self)
7464 
7465  def get_number_of_configurations(self):
7466  r"""get_number_of_configurations(ConfigurationSet self) -> unsigned int"""
7467  return _IMP_kernel.ConfigurationSet_get_number_of_configurations(self)
7468 
7469  def load_configuration(self, i):
7470  r"""load_configuration(ConfigurationSet self, int i)"""
7471  return _IMP_kernel.ConfigurationSet_load_configuration(self, i)
7472 
7473  def remove_configuration(self, i):
7474  r"""remove_configuration(ConfigurationSet self, unsigned int i)"""
7475  return _IMP_kernel.ConfigurationSet_remove_configuration(self, i)
7476 
7477  def get_model(self):
7478  r"""get_model(ConfigurationSet self) -> Model"""
7479  return _IMP_kernel.ConfigurationSet_get_model(self)
7480 
7481  def get_version_info(self):
7482  r"""get_version_info(ConfigurationSet self) -> VersionInfo"""
7483  return _IMP_kernel.ConfigurationSet_get_version_info(self)
7484  __swig_destroy__ = _IMP_kernel.delete_ConfigurationSet
7485 
7486  def __str__(self):
7487  r"""__str__(ConfigurationSet self) -> std::string"""
7488  return _IMP_kernel.ConfigurationSet___str__(self)
7489 
7490  def __repr__(self):
7491  r"""__repr__(ConfigurationSet self) -> std::string"""
7492  return _IMP_kernel.ConfigurationSet___repr__(self)
7493 
7494  @staticmethod
7495  def get_from(o):
7496  return _object_cast_to_ConfigurationSet(o)
7497 
7498 
7499 # Register ConfigurationSet in _IMP_kernel:
7500 _IMP_kernel.ConfigurationSet_swigregister(ConfigurationSet)
7502  r"""Proxy of C++ IMP::SaveToConfigurationSetOptimizerState class."""
7503 
7504  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7505 
7506  def __init__(self, cs):
7507  r"""__init__(SaveToConfigurationSetOptimizerState self, ConfigurationSet cs) -> SaveToConfigurationSetOptimizerState"""
7508  _IMP_kernel.SaveToConfigurationSetOptimizerState_swiginit(self, _IMP_kernel.new_SaveToConfigurationSetOptimizerState(cs))
7509 
7510  def get_version_info(self):
7511  r"""get_version_info(SaveToConfigurationSetOptimizerState self) -> VersionInfo"""
7512  return _IMP_kernel.SaveToConfigurationSetOptimizerState_get_version_info(self)
7513  __swig_destroy__ = _IMP_kernel.delete_SaveToConfigurationSetOptimizerState
7514 
7515  def __str__(self):
7516  r"""__str__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7517  return _IMP_kernel.SaveToConfigurationSetOptimizerState___str__(self)
7518 
7519  def __repr__(self):
7520  r"""__repr__(SaveToConfigurationSetOptimizerState self) -> std::string"""
7521  return _IMP_kernel.SaveToConfigurationSetOptimizerState___repr__(self)
7522 
7523  @staticmethod
7524  def get_from(o):
7525  return _object_cast_to_SaveToConfigurationSetOptimizerState(o)
7526 
7527 
7528 # Register SaveToConfigurationSetOptimizerState in _IMP_kernel:
7529 _IMP_kernel.SaveToConfigurationSetOptimizerState_swigregister(SaveToConfigurationSetOptimizerState)
7530 class Configuration(Object):
7531  r"""Proxy of C++ IMP::Configuration class."""
7532 
7533  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7534 
7535  def __init__(self, *args):
7536  r"""
7537  __init__(Configuration self, Model m, std::string name="Configuration %1%") -> Configuration
7538  __init__(Configuration self, Model m, Configuration base, std::string name="Configuration %1%") -> Configuration
7539  __init__(Configuration self) -> Configuration
7540  """
7541  _IMP_kernel.Configuration_swiginit(self, _IMP_kernel.new_Configuration(*args))
7542 
7543  def load_configuration(self):
7544  r"""load_configuration(Configuration self)"""
7545  return _IMP_kernel.Configuration_load_configuration(self)
7546 
7547  def swap_configuration(self):
7548  r"""swap_configuration(Configuration self)"""
7549  return _IMP_kernel.Configuration_swap_configuration(self)
7550 
7551  def get_version_info(self):
7552  r"""get_version_info(Configuration self) -> VersionInfo"""
7553  return _IMP_kernel.Configuration_get_version_info(self)
7554  __swig_destroy__ = _IMP_kernel.delete_Configuration
7555 
7556  def __str__(self):
7557  r"""__str__(Configuration self) -> std::string"""
7558  return _IMP_kernel.Configuration___str__(self)
7559 
7560  def __repr__(self):
7561  r"""__repr__(Configuration self) -> std::string"""
7562  return _IMP_kernel.Configuration___repr__(self)
7563 
7564  @staticmethod
7565  def get_from(o):
7566  return _object_cast_to_Configuration(o)
7567 
7568 
7569  def _get_as_binary(self):
7570  r"""_get_as_binary(Configuration self) -> PyObject *"""
7571  return _IMP_kernel.Configuration__get_as_binary(self)
7572 
7573  def _set_from_binary(self, p):
7574  r"""_set_from_binary(Configuration self, PyObject * p)"""
7575  return _IMP_kernel.Configuration__set_from_binary(self, p)
7576 
7577  def __getstate__(self):
7578  p = self._get_as_binary()
7579  if len(self.__dict__) > 1:
7580  d = self.__dict__.copy()
7581  del d['this']
7582  p = (d, p)
7583  return p
7584 
7585  def __setstate__(self, p):
7586  if not hasattr(self, 'this'):
7587  self.__init__()
7588  if isinstance(p, tuple):
7589  d, p = p
7590  self.__dict__.update(d)
7591  return self._set_from_binary(p)
7592 
7593 
7594 # Register Configuration in _IMP_kernel:
7595 _IMP_kernel.Configuration_swigregister(Configuration)
7596 class Sampler(Object):
7597  r"""Proxy of C++ IMP::Sampler class."""
7598 
7599  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7600 
7601  def __init__(self, *args):
7602  r"""__init__(Sampler self, Model m, std::string name="Sampler %1%") -> Sampler"""
7603  if self.__class__ == Sampler:
7604  _self = None
7605  else:
7606  _self = self
7607  _IMP_kernel.Sampler_swiginit(self, _IMP_kernel.new_Sampler(_self, *args))
7608 
7609  if self.__class__ != Sampler:
7610  _director_objects.register(self)
7611 
7612 
7613 
7614 
7615  def create_sample(self):
7616  r"""create_sample(Sampler self) -> ConfigurationSet"""
7617  return _IMP_kernel.Sampler_create_sample(self)
7618 
7619  def get_scoring_function(self):
7620  r"""get_scoring_function(Sampler self) -> ScoringFunction"""
7621  return _IMP_kernel.Sampler_get_scoring_function(self)
7622 
7623  def set_scoring_function(self, sf):
7624  r"""set_scoring_function(Sampler self, _ScoringFunctionAdaptor sf)"""
7625  return _IMP_kernel.Sampler_set_scoring_function(self, sf)
7626 
7627  def get_model(self):
7628  r"""get_model(Sampler self) -> Model"""
7629  return _IMP_kernel.Sampler_get_model(self)
7630 
7631  def do_sample(self):
7632  r"""do_sample(Sampler self) -> ConfigurationSet"""
7633  return _IMP_kernel.Sampler_do_sample(self)
7634  __swig_destroy__ = _IMP_kernel.delete_Sampler
7635 
7636  def __str__(self):
7637  r"""__str__(Sampler self) -> std::string"""
7638  return _IMP_kernel.Sampler___str__(self)
7639 
7640  def __repr__(self):
7641  r"""__repr__(Sampler self) -> std::string"""
7642  return _IMP_kernel.Sampler___repr__(self)
7643 
7644  @staticmethod
7645  def get_from(o):
7646  return _object_cast_to_Sampler(o)
7647 
7648 
7649  def do_show(self, out):
7650  pass
7651 
7652  @staticmethod
7653  def get_from(o):
7654  return _object_cast_to_Sampler(o)
7655 
7656  def __disown__(self):
7657  self.this.disown()
7658  _IMP_kernel.disown_Sampler(self)
7659  return weakref.proxy(self)
7660 
7661  def do_destroy(self):
7662  r"""do_destroy(Sampler self)"""
7663  return _IMP_kernel.Sampler_do_destroy(self)
7664 
7665 # Register Sampler in _IMP_kernel:
7666 _IMP_kernel.Sampler_swigregister(Sampler)
7667 class PairModifier(_ParticleInputs, _ParticleOutputs, Object):
7668  r"""Proxy of C++ IMP::PairModifier class."""
7669 
7670  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7671 
7672  def __init__(self, *args):
7673  r"""__init__(PairModifier self, std::string name="PairModifier %1%") -> PairModifier"""
7674  if self.__class__ == PairModifier:
7675  _self = None
7676  else:
7677  _self = self
7678  _IMP_kernel.PairModifier_swiginit(self, _IMP_kernel.new_PairModifier(_self, *args))
7679 
7680  if self.__class__ != PairModifier:
7681  _director_objects.register(self)
7682 
7683 
7684 
7685 
7686  def apply_index(self, m, v):
7687  r"""apply_index(PairModifier self, Model m, IMP::ParticleIndexPair const & v)"""
7688  return _IMP_kernel.PairModifier_apply_index(self, m, v)
7689 
7690  def apply_indexes(self, m, o, lower_bound, upper_bound):
7691  r"""apply_indexes(PairModifier self, Model m, IMP::ParticleIndexPairs const & o, unsigned int lower_bound, unsigned int upper_bound)"""
7692  return _IMP_kernel.PairModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
7693 
7694  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
7695  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)"""
7696  return _IMP_kernel.PairModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
7697 
7698  def __str__(self):
7699  r"""__str__(PairModifier self) -> std::string"""
7700  return _IMP_kernel.PairModifier___str__(self)
7701 
7702  def __repr__(self):
7703  r"""__repr__(PairModifier self) -> std::string"""
7704  return _IMP_kernel.PairModifier___repr__(self)
7705 
7706  @staticmethod
7707  def get_from(o):
7708  return _object_cast_to_PairModifier(o)
7709 
7710 
7711  def do_show(self, out):
7712  pass
7713 
7714  @staticmethod
7715  def get_from(o):
7716  return _object_cast_to_PairModifier(o)
7717 
7718  __swig_destroy__ = _IMP_kernel.delete_PairModifier
7719  def __disown__(self):
7720  self.this.disown()
7721  _IMP_kernel.disown_PairModifier(self)
7722  return weakref.proxy(self)
7723 
7724  def do_get_inputs(self, m, pis):
7725  r"""do_get_inputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7726  return _IMP_kernel.PairModifier_do_get_inputs(self, m, pis)
7727 
7728  def do_get_outputs(self, m, pis):
7729  r"""do_get_outputs(PairModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7730  return _IMP_kernel.PairModifier_do_get_outputs(self, m, pis)
7731 
7732  def do_destroy(self):
7733  r"""do_destroy(PairModifier self)"""
7734  return _IMP_kernel.PairModifier_do_destroy(self)
7735 
7736 # Register PairModifier in _IMP_kernel:
7737 _IMP_kernel.PairModifier_swigregister(PairModifier)
7738 class PairScore(_ParticleInputs, Object):
7739  r"""Proxy of C++ IMP::PairScore class."""
7740 
7741  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7742 
7743  def __init__(self, *args):
7744  r"""__init__(PairScore self, std::string name="PairScore %1%") -> PairScore"""
7745  if self.__class__ == PairScore:
7746  _self = None
7747  else:
7748  _self = self
7749  _IMP_kernel.PairScore_swiginit(self, _IMP_kernel.new_PairScore(_self, *args))
7750 
7751  if self.__class__ != PairScore:
7752  _director_objects.register(self)
7753 
7754 
7755 
7756 
7757  def evaluate_index(self, m, vt, da):
7758  r"""evaluate_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da) -> double"""
7759  return _IMP_kernel.PairScore_evaluate_index(self, m, vt, da)
7760 
7761  def check_indexes(self, m, pis):
7762  r"""check_indexes(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
7763  return _IMP_kernel.PairScore_check_indexes(self, m, pis)
7764 
7765  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
7766  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"""
7767  return _IMP_kernel.PairScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
7768 
7769  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
7770  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"""
7771  return _IMP_kernel.PairScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
7772 
7773  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
7774  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"""
7775  return _IMP_kernel.PairScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
7776 
7777  def evaluate_if_good_index(self, m, vt, da, max):
7778  r"""evaluate_if_good_index(PairScore self, Model m, IMP::ParticleIndexPair const & vt, DerivativeAccumulator da, double max) -> double"""
7779  return _IMP_kernel.PairScore_evaluate_if_good_index(self, m, vt, da, max)
7780 
7781  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
7782  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"""
7783  return _IMP_kernel.PairScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
7784 
7785  def create_current_decomposition(self, m, vt):
7786  r"""create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7787  return _IMP_kernel.PairScore_create_current_decomposition(self, m, vt)
7788 
7789  def do_create_current_decomposition(self, m, vt):
7790  r"""do_create_current_decomposition(PairScore self, Model m, IMP::ParticleIndexPair const & vt) -> IMP::Restraints"""
7791  return _IMP_kernel.PairScore_do_create_current_decomposition(self, m, vt)
7792  __swig_destroy__ = _IMP_kernel.delete_PairScore
7793 
7794  def __str__(self):
7795  r"""__str__(PairScore self) -> std::string"""
7796  return _IMP_kernel.PairScore___str__(self)
7797 
7798  def __repr__(self):
7799  r"""__repr__(PairScore self) -> std::string"""
7800  return _IMP_kernel.PairScore___repr__(self)
7801 
7802  @staticmethod
7803  def get_from(o):
7804  return _object_cast_to_PairScore(o)
7805 
7806 
7807  def do_show(self, out):
7808  pass
7809 
7810  @staticmethod
7811  def get_from(o):
7812  return _object_cast_to_PairScore(o)
7813 
7814 
7815  def _wrap_jax(self, m, score_func, keys=None):
7816  """Create the return value for _get_jax.
7817  Use this method in _get_jax() to wrap the JAX scoring function
7818  with other score-specific information.
7819 
7820  @param m The IMP.Model that the score will act on.
7821  @param score_func A function implemented using JAX that takes
7822  one argument (the current JAX Model) and returns the total
7823  score.
7824  @param keys Model attributes used by the PairScore.
7825  See IMP::Restraint::_wrap_jax.
7826  """
7827  from IMP._jax_util import JAXScoreInfo
7828  return JAXScoreInfo(m, score_func=score_func, keys=keys)
7829 
7830  def _get_jax(self, m, indexes):
7831  """Return a JAX implementation of this PairScore.
7832  Implement this method in a PairScore subclass to provide
7833  an equivalent function using [JAX](https://docs.jax.dev/)
7834  that scores the current JAX Model with a given set of
7835  ParticlePairIndexes. See also _wrap_jax.
7836 
7837  @param m The IMP.Model that the score will act on.
7838  @param indexes The ParticlePairIndexes that the score will act on.
7839  """
7840  raise NotImplementedError(
7841  f"No JAX implementation for {self} ({type(self)})")
7842 
7843  def __disown__(self):
7844  self.this.disown()
7845  _IMP_kernel.disown_PairScore(self)
7846  return weakref.proxy(self)
7847 
7848  def do_get_inputs(self, m, pis):
7849  r"""do_get_inputs(PairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7850  return _IMP_kernel.PairScore_do_get_inputs(self, m, pis)
7851 
7852  def do_destroy(self):
7853  r"""do_destroy(PairScore self)"""
7854  return _IMP_kernel.PairScore_do_destroy(self)
7855 
7856 # Register PairScore in _IMP_kernel:
7857 _IMP_kernel.PairScore_swigregister(PairScore)
7858 class PairPredicate(_ParticleInputs, Object):
7859  r"""Proxy of C++ IMP::PairPredicate class."""
7860 
7861  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7862 
7863  def __init__(self, *args):
7864  r"""__init__(PairPredicate self, std::string name="PairPredicate %1%") -> PairPredicate"""
7865  if self.__class__ == PairPredicate:
7866  _self = None
7867  else:
7868  _self = self
7869  _IMP_kernel.PairPredicate_swiginit(self, _IMP_kernel.new_PairPredicate(_self, *args))
7870 
7871  if self.__class__ != PairPredicate:
7872  _director_objects.register(self)
7873 
7874 
7875 
7876 
7877  def setup_for_get_value_index_in_batch(self, arg0):
7878  r"""setup_for_get_value_index_in_batch(PairPredicate self, Model arg0)"""
7879  return _IMP_kernel.PairPredicate_setup_for_get_value_index_in_batch(self, arg0)
7880 
7881  def get_value_index_in_batch(self, m, vt):
7882  r"""get_value_index_in_batch(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
7883  return _IMP_kernel.PairPredicate_get_value_index_in_batch(self, m, vt)
7884 
7885  def __call__(self, m, vt):
7886  r"""__call__(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int"""
7887  return _IMP_kernel.PairPredicate___call__(self, m, vt)
7888 
7889  def get_value_index(self, *args):
7890  r"""
7891  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPair const & vt) -> int
7892  get_value_index(PairPredicate self, Model m, IMP::ParticleIndexPairs const & o) -> IMP::Ints
7893  """
7894  return _IMP_kernel.PairPredicate_get_value_index(self, *args)
7895  __swig_destroy__ = _IMP_kernel.delete_PairPredicate
7896 
7897  def __str__(self):
7898  r"""__str__(PairPredicate self) -> std::string"""
7899  return _IMP_kernel.PairPredicate___str__(self)
7900 
7901  def __repr__(self):
7902  r"""__repr__(PairPredicate self) -> std::string"""
7903  return _IMP_kernel.PairPredicate___repr__(self)
7904 
7905  @staticmethod
7906  def get_from(o):
7907  return _object_cast_to_PairPredicate(o)
7908 
7909 
7910  def do_show(self, out):
7911  pass
7912 
7913  @staticmethod
7914  def get_from(o):
7915  return _object_cast_to_PairPredicate(o)
7916 
7917  def __disown__(self):
7918  self.this.disown()
7919  _IMP_kernel.disown_PairPredicate(self)
7920  return weakref.proxy(self)
7921 
7922  def do_get_inputs(self, m, pis):
7923  r"""do_get_inputs(PairPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
7924  return _IMP_kernel.PairPredicate_do_get_inputs(self, m, pis)
7925 
7926  def do_destroy(self):
7927  r"""do_destroy(PairPredicate self)"""
7928  return _IMP_kernel.PairPredicate_do_destroy(self)
7929 
7930 # Register PairPredicate in _IMP_kernel:
7931 _IMP_kernel.PairPredicate_swigregister(PairPredicate)
7932 class PairContainer(Container):
7933  r"""Proxy of C++ IMP::PairContainer class."""
7934 
7935  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
7936 
7937  def apply_generic(self, m):
7938  r"""apply_generic(PairContainer self, PairModifier m)"""
7939  return _IMP_kernel.PairContainer_apply_generic(self, m)
7940 
7941  def apply_generic_moved(self, m, moved_pis, reset_pis):
7942  r"""apply_generic_moved(PairContainer self, PairModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7943  return _IMP_kernel.PairContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
7944 
7945  def apply(self, sm):
7946  r"""apply(PairContainer self, PairModifier sm)"""
7947  return _IMP_kernel.PairContainer_apply(self, sm)
7948 
7949  def apply_moved(self, sm, moved_pis, reset_pis):
7950  r"""apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7951  return _IMP_kernel.PairContainer_apply_moved(self, sm, moved_pis, reset_pis)
7952 
7953  def get_range_indexes(self):
7954  r"""get_range_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
7955  return _IMP_kernel.PairContainer_get_range_indexes(self)
7956 
7957  def get_contents(self):
7958  r"""get_contents(PairContainer self) -> IMP::ParticleIndexPairs const &"""
7959  return _IMP_kernel.PairContainer_get_contents(self)
7960 
7961  def get_indexes(self):
7962  r"""get_indexes(PairContainer self) -> IMP::ParticleIndexPairs"""
7963  return _IMP_kernel.PairContainer_get_indexes(self)
7964 
7965  def get(self, *args):
7966  r"""
7967  get(PairContainer self) -> IMP::ParticlePairsTemp
7968  get(PairContainer self, unsigned int i) -> IMP::ParticlePair
7969  """
7970  return _IMP_kernel.PairContainer_get(self, *args)
7971 
7972  def get_number(self):
7973  r"""get_number(PairContainer self) -> unsigned int"""
7974  return _IMP_kernel.PairContainer_get_number(self)
7975 
7976  def __init__(self, *args):
7977  r"""
7978  __init__(PairContainer self, Model m, std::string name="PairContainer %1%") -> PairContainer
7979  __init__(PairContainer self) -> PairContainer
7980  """
7981  if self.__class__ == PairContainer:
7982  _self = None
7983  else:
7984  _self = self
7985  _IMP_kernel.PairContainer_swiginit(self, _IMP_kernel.new_PairContainer(_self, *args))
7986 
7987  if self.__class__ != PairContainer:
7988  _director_objects.register(self)
7989 
7990 
7991 
7992 
7993  def do_apply(self, sm):
7994  r"""do_apply(PairContainer self, PairModifier sm)"""
7995  return _IMP_kernel.PairContainer_do_apply(self, sm)
7996 
7997  def do_apply_moved(self, sm, moved_pis, reset_pis):
7998  r"""do_apply_moved(PairContainer self, PairModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
7999  return _IMP_kernel.PairContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8000 
8001  def do_get_provides_access(self):
8002  r"""do_get_provides_access(PairContainer self) -> bool"""
8003  return _IMP_kernel.PairContainer_do_get_provides_access(self)
8004  __swig_destroy__ = _IMP_kernel.delete_PairContainer
8005 
8006  def __str__(self):
8007  r"""__str__(PairContainer self) -> std::string"""
8008  return _IMP_kernel.PairContainer___str__(self)
8009 
8010  def __repr__(self):
8011  r"""__repr__(PairContainer self) -> std::string"""
8012  return _IMP_kernel.PairContainer___repr__(self)
8013 
8014  @staticmethod
8015  def get_from(o):
8016  return _object_cast_to_PairContainer(o)
8017 
8018 
8019  def do_show(self, out):
8020  pass
8021 
8022  @staticmethod
8023  def get_from(o):
8024  return _object_cast_to_PairContainer(o)
8025 
8026  def __disown__(self):
8027  self.this.disown()
8028  _IMP_kernel.disown_PairContainer(self)
8029  return weakref.proxy(self)
8030 
8031  def do_destroy(self):
8032  r"""do_destroy(PairContainer self)"""
8033  return _IMP_kernel.PairContainer_do_destroy(self)
8034 
8035  def handle_set_has_required_score_states(self, arg0):
8036  r"""handle_set_has_required_score_states(PairContainer self, bool arg0)"""
8037  return _IMP_kernel.PairContainer_handle_set_has_required_score_states(self, arg0)
8038 
8039  def do_get_inputs(self):
8040  r"""do_get_inputs(PairContainer self) -> IMP::ModelObjectsTemp"""
8041  return _IMP_kernel.PairContainer_do_get_inputs(self)
8042 
8043  def do_get_interactions(self):
8044  r"""do_get_interactions(PairContainer self) -> IMP::ModelObjectsTemps"""
8045  return _IMP_kernel.PairContainer_do_get_interactions(self)
8046 
8047  def do_get_contents_hash(self):
8048  r"""do_get_contents_hash(PairContainer self) -> std::size_t"""
8049  return _IMP_kernel.PairContainer_do_get_contents_hash(self)
8050 
8051 # Register PairContainer in _IMP_kernel:
8052 _IMP_kernel.PairContainer_swigregister(PairContainer)
8053 class _PairContainerAdaptor(_InputAdaptor):
8054  r"""Proxy of C++ IMP::PairContainerAdaptor class."""
8055 
8056  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8057  __repr__ = _swig_repr
8058 
8059  def __init__(self, *args):
8060  r"""
8061  __init__(_PairContainerAdaptor self) -> _PairContainerAdaptor
8062  __init__(_PairContainerAdaptor self, PairContainer c) -> _PairContainerAdaptor
8063  __init__(_PairContainerAdaptor self, IMP::ParticlePairsTemp const & t) -> _PairContainerAdaptor
8064  """
8065  _IMP_kernel._PairContainerAdaptor_swiginit(self, _IMP_kernel.new__PairContainerAdaptor(*args))
8066 
8067  def set_name_if_default(self, name):
8068  r"""set_name_if_default(_PairContainerAdaptor self, std::string name)"""
8069  return _IMP_kernel._PairContainerAdaptor_set_name_if_default(self, name)
8070  __swig_destroy__ = _IMP_kernel.delete__PairContainerAdaptor
8071 
8072 # Register _PairContainerAdaptor in _IMP_kernel:
8073 _IMP_kernel._PairContainerAdaptor_swigregister(_PairContainerAdaptor)
8074 class QuadModifier(_ParticleInputs, _ParticleOutputs, Object):
8075  r"""Proxy of C++ IMP::QuadModifier class."""
8076 
8077  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8078 
8079  def __init__(self, *args):
8080  r"""__init__(QuadModifier self, std::string name="QuadModifier %1%") -> QuadModifier"""
8081  if self.__class__ == QuadModifier:
8082  _self = None
8083  else:
8084  _self = self
8085  _IMP_kernel.QuadModifier_swiginit(self, _IMP_kernel.new_QuadModifier(_self, *args))
8086 
8087  if self.__class__ != QuadModifier:
8088  _director_objects.register(self)
8089 
8090 
8091 
8092 
8093  def apply_index(self, m, v):
8094  r"""apply_index(QuadModifier self, Model m, IMP::ParticleIndexQuad const & v)"""
8095  return _IMP_kernel.QuadModifier_apply_index(self, m, v)
8096 
8097  def apply_indexes(self, m, o, lower_bound, upper_bound):
8098  r"""apply_indexes(QuadModifier self, Model m, IMP::ParticleIndexQuads const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8099  return _IMP_kernel.QuadModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8100 
8101  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8102  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)"""
8103  return _IMP_kernel.QuadModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8104 
8105  def __str__(self):
8106  r"""__str__(QuadModifier self) -> std::string"""
8107  return _IMP_kernel.QuadModifier___str__(self)
8108 
8109  def __repr__(self):
8110  r"""__repr__(QuadModifier self) -> std::string"""
8111  return _IMP_kernel.QuadModifier___repr__(self)
8112 
8113  @staticmethod
8114  def get_from(o):
8115  return _object_cast_to_QuadModifier(o)
8116 
8117 
8118  def do_show(self, out):
8119  pass
8120 
8121  @staticmethod
8122  def get_from(o):
8123  return _object_cast_to_QuadModifier(o)
8124 
8125  __swig_destroy__ = _IMP_kernel.delete_QuadModifier
8126  def __disown__(self):
8127  self.this.disown()
8128  _IMP_kernel.disown_QuadModifier(self)
8129  return weakref.proxy(self)
8130 
8131  def do_get_inputs(self, m, pis):
8132  r"""do_get_inputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8133  return _IMP_kernel.QuadModifier_do_get_inputs(self, m, pis)
8134 
8135  def do_get_outputs(self, m, pis):
8136  r"""do_get_outputs(QuadModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8137  return _IMP_kernel.QuadModifier_do_get_outputs(self, m, pis)
8138 
8139  def do_destroy(self):
8140  r"""do_destroy(QuadModifier self)"""
8141  return _IMP_kernel.QuadModifier_do_destroy(self)
8142 
8143 # Register QuadModifier in _IMP_kernel:
8144 _IMP_kernel.QuadModifier_swigregister(QuadModifier)
8145 class QuadScore(_ParticleInputs, Object):
8146  r"""Proxy of C++ IMP::QuadScore class."""
8147 
8148  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8149 
8150  def __init__(self, *args):
8151  r"""__init__(QuadScore self, std::string name="QuadScore %1%") -> QuadScore"""
8152  if self.__class__ == QuadScore:
8153  _self = None
8154  else:
8155  _self = self
8156  _IMP_kernel.QuadScore_swiginit(self, _IMP_kernel.new_QuadScore(_self, *args))
8157 
8158  if self.__class__ != QuadScore:
8159  _director_objects.register(self)
8160 
8161 
8162 
8163 
8164  def evaluate_index(self, m, vt, da):
8165  r"""evaluate_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da) -> double"""
8166  return _IMP_kernel.QuadScore_evaluate_index(self, m, vt, da)
8167 
8168  def check_indexes(self, m, pis):
8169  r"""check_indexes(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8170  return _IMP_kernel.QuadScore_check_indexes(self, m, pis)
8171 
8172  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8173  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"""
8174  return _IMP_kernel.QuadScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8175 
8176  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8177  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"""
8178  return _IMP_kernel.QuadScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8179 
8180  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8181  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"""
8182  return _IMP_kernel.QuadScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8183 
8184  def evaluate_if_good_index(self, m, vt, da, max):
8185  r"""evaluate_if_good_index(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt, DerivativeAccumulator da, double max) -> double"""
8186  return _IMP_kernel.QuadScore_evaluate_if_good_index(self, m, vt, da, max)
8187 
8188  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8189  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"""
8190  return _IMP_kernel.QuadScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8191 
8192  def create_current_decomposition(self, m, vt):
8193  r"""create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8194  return _IMP_kernel.QuadScore_create_current_decomposition(self, m, vt)
8195 
8196  def do_create_current_decomposition(self, m, vt):
8197  r"""do_create_current_decomposition(QuadScore self, Model m, IMP::ParticleIndexQuad const & vt) -> IMP::Restraints"""
8198  return _IMP_kernel.QuadScore_do_create_current_decomposition(self, m, vt)
8199  __swig_destroy__ = _IMP_kernel.delete_QuadScore
8200 
8201  def __str__(self):
8202  r"""__str__(QuadScore self) -> std::string"""
8203  return _IMP_kernel.QuadScore___str__(self)
8204 
8205  def __repr__(self):
8206  r"""__repr__(QuadScore self) -> std::string"""
8207  return _IMP_kernel.QuadScore___repr__(self)
8208 
8209  @staticmethod
8210  def get_from(o):
8211  return _object_cast_to_QuadScore(o)
8212 
8213 
8214  def do_show(self, out):
8215  pass
8216 
8217  @staticmethod
8218  def get_from(o):
8219  return _object_cast_to_QuadScore(o)
8220 
8221  def __disown__(self):
8222  self.this.disown()
8223  _IMP_kernel.disown_QuadScore(self)
8224  return weakref.proxy(self)
8225 
8226  def do_get_inputs(self, m, pis):
8227  r"""do_get_inputs(QuadScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8228  return _IMP_kernel.QuadScore_do_get_inputs(self, m, pis)
8229 
8230  def do_destroy(self):
8231  r"""do_destroy(QuadScore self)"""
8232  return _IMP_kernel.QuadScore_do_destroy(self)
8233 
8234 # Register QuadScore in _IMP_kernel:
8235 _IMP_kernel.QuadScore_swigregister(QuadScore)
8236 class QuadPredicate(_ParticleInputs, Object):
8237  r"""Proxy of C++ IMP::QuadPredicate class."""
8238 
8239  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8240 
8241  def __init__(self, *args):
8242  r"""__init__(QuadPredicate self, std::string name="QuadPredicate %1%") -> QuadPredicate"""
8243  if self.__class__ == QuadPredicate:
8244  _self = None
8245  else:
8246  _self = self
8247  _IMP_kernel.QuadPredicate_swiginit(self, _IMP_kernel.new_QuadPredicate(_self, *args))
8248 
8249  if self.__class__ != QuadPredicate:
8250  _director_objects.register(self)
8251 
8252 
8253 
8254 
8255  def setup_for_get_value_index_in_batch(self, arg0):
8256  r"""setup_for_get_value_index_in_batch(QuadPredicate self, Model arg0)"""
8257  return _IMP_kernel.QuadPredicate_setup_for_get_value_index_in_batch(self, arg0)
8258 
8259  def get_value_index_in_batch(self, m, vt):
8260  r"""get_value_index_in_batch(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8261  return _IMP_kernel.QuadPredicate_get_value_index_in_batch(self, m, vt)
8262 
8263  def __call__(self, m, vt):
8264  r"""__call__(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int"""
8265  return _IMP_kernel.QuadPredicate___call__(self, m, vt)
8266 
8267  def get_value_index(self, *args):
8268  r"""
8269  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuad const & vt) -> int
8270  get_value_index(QuadPredicate self, Model m, IMP::ParticleIndexQuads const & o) -> IMP::Ints
8271  """
8272  return _IMP_kernel.QuadPredicate_get_value_index(self, *args)
8273  __swig_destroy__ = _IMP_kernel.delete_QuadPredicate
8274 
8275  def __str__(self):
8276  r"""__str__(QuadPredicate self) -> std::string"""
8277  return _IMP_kernel.QuadPredicate___str__(self)
8278 
8279  def __repr__(self):
8280  r"""__repr__(QuadPredicate self) -> std::string"""
8281  return _IMP_kernel.QuadPredicate___repr__(self)
8282 
8283  @staticmethod
8284  def get_from(o):
8285  return _object_cast_to_QuadPredicate(o)
8286 
8287 
8288  def do_show(self, out):
8289  pass
8290 
8291  @staticmethod
8292  def get_from(o):
8293  return _object_cast_to_QuadPredicate(o)
8294 
8295  def __disown__(self):
8296  self.this.disown()
8297  _IMP_kernel.disown_QuadPredicate(self)
8298  return weakref.proxy(self)
8299 
8300  def do_get_inputs(self, m, pis):
8301  r"""do_get_inputs(QuadPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8302  return _IMP_kernel.QuadPredicate_do_get_inputs(self, m, pis)
8303 
8304  def do_destroy(self):
8305  r"""do_destroy(QuadPredicate self)"""
8306  return _IMP_kernel.QuadPredicate_do_destroy(self)
8307 
8308 # Register QuadPredicate in _IMP_kernel:
8309 _IMP_kernel.QuadPredicate_swigregister(QuadPredicate)
8310 class QuadContainer(Container):
8311  r"""Proxy of C++ IMP::QuadContainer class."""
8312 
8313  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8314 
8315  def apply_generic(self, m):
8316  r"""apply_generic(QuadContainer self, QuadModifier m)"""
8317  return _IMP_kernel.QuadContainer_apply_generic(self, m)
8318 
8319  def apply_generic_moved(self, m, moved_pis, reset_pis):
8320  r"""apply_generic_moved(QuadContainer self, QuadModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8321  return _IMP_kernel.QuadContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8322 
8323  def apply(self, sm):
8324  r"""apply(QuadContainer self, QuadModifier sm)"""
8325  return _IMP_kernel.QuadContainer_apply(self, sm)
8326 
8327  def apply_moved(self, sm, moved_pis, reset_pis):
8328  r"""apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8329  return _IMP_kernel.QuadContainer_apply_moved(self, sm, moved_pis, reset_pis)
8330 
8331  def get_range_indexes(self):
8332  r"""get_range_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8333  return _IMP_kernel.QuadContainer_get_range_indexes(self)
8334 
8335  def get_contents(self):
8336  r"""get_contents(QuadContainer self) -> IMP::ParticleIndexQuads const &"""
8337  return _IMP_kernel.QuadContainer_get_contents(self)
8338 
8339  def get_indexes(self):
8340  r"""get_indexes(QuadContainer self) -> IMP::ParticleIndexQuads"""
8341  return _IMP_kernel.QuadContainer_get_indexes(self)
8342 
8343  def get(self, *args):
8344  r"""
8345  get(QuadContainer self) -> IMP::ParticleQuadsTemp
8346  get(QuadContainer self, unsigned int i) -> IMP::ParticleQuad
8347  """
8348  return _IMP_kernel.QuadContainer_get(self, *args)
8349 
8350  def get_number(self):
8351  r"""get_number(QuadContainer self) -> unsigned int"""
8352  return _IMP_kernel.QuadContainer_get_number(self)
8353 
8354  def __init__(self, *args):
8355  r"""
8356  __init__(QuadContainer self, Model m, std::string name="QuadContainer %1%") -> QuadContainer
8357  __init__(QuadContainer self) -> QuadContainer
8358  """
8359  if self.__class__ == QuadContainer:
8360  _self = None
8361  else:
8362  _self = self
8363  _IMP_kernel.QuadContainer_swiginit(self, _IMP_kernel.new_QuadContainer(_self, *args))
8364 
8365  if self.__class__ != QuadContainer:
8366  _director_objects.register(self)
8367 
8368 
8369 
8370 
8371  def do_apply(self, sm):
8372  r"""do_apply(QuadContainer self, QuadModifier sm)"""
8373  return _IMP_kernel.QuadContainer_do_apply(self, sm)
8374 
8375  def do_apply_moved(self, sm, moved_pis, reset_pis):
8376  r"""do_apply_moved(QuadContainer self, QuadModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8377  return _IMP_kernel.QuadContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8378 
8379  def do_get_provides_access(self):
8380  r"""do_get_provides_access(QuadContainer self) -> bool"""
8381  return _IMP_kernel.QuadContainer_do_get_provides_access(self)
8382  __swig_destroy__ = _IMP_kernel.delete_QuadContainer
8383 
8384  def __str__(self):
8385  r"""__str__(QuadContainer self) -> std::string"""
8386  return _IMP_kernel.QuadContainer___str__(self)
8387 
8388  def __repr__(self):
8389  r"""__repr__(QuadContainer self) -> std::string"""
8390  return _IMP_kernel.QuadContainer___repr__(self)
8391 
8392  @staticmethod
8393  def get_from(o):
8394  return _object_cast_to_QuadContainer(o)
8395 
8396 
8397  def do_show(self, out):
8398  pass
8399 
8400  @staticmethod
8401  def get_from(o):
8402  return _object_cast_to_QuadContainer(o)
8403 
8404  def __disown__(self):
8405  self.this.disown()
8406  _IMP_kernel.disown_QuadContainer(self)
8407  return weakref.proxy(self)
8408 
8409  def do_destroy(self):
8410  r"""do_destroy(QuadContainer self)"""
8411  return _IMP_kernel.QuadContainer_do_destroy(self)
8412 
8413  def handle_set_has_required_score_states(self, arg0):
8414  r"""handle_set_has_required_score_states(QuadContainer self, bool arg0)"""
8415  return _IMP_kernel.QuadContainer_handle_set_has_required_score_states(self, arg0)
8416 
8417  def do_get_inputs(self):
8418  r"""do_get_inputs(QuadContainer self) -> IMP::ModelObjectsTemp"""
8419  return _IMP_kernel.QuadContainer_do_get_inputs(self)
8420 
8421  def do_get_interactions(self):
8422  r"""do_get_interactions(QuadContainer self) -> IMP::ModelObjectsTemps"""
8423  return _IMP_kernel.QuadContainer_do_get_interactions(self)
8424 
8425  def do_get_contents_hash(self):
8426  r"""do_get_contents_hash(QuadContainer self) -> std::size_t"""
8427  return _IMP_kernel.QuadContainer_do_get_contents_hash(self)
8428 
8429 # Register QuadContainer in _IMP_kernel:
8430 _IMP_kernel.QuadContainer_swigregister(QuadContainer)
8431 class _QuadContainerAdaptor(_InputAdaptor):
8432  r"""Proxy of C++ IMP::QuadContainerAdaptor class."""
8433 
8434  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8435  __repr__ = _swig_repr
8436 
8437  def __init__(self, *args):
8438  r"""
8439  __init__(_QuadContainerAdaptor self) -> _QuadContainerAdaptor
8440  __init__(_QuadContainerAdaptor self, QuadContainer c) -> _QuadContainerAdaptor
8441  __init__(_QuadContainerAdaptor self, IMP::ParticleQuadsTemp const & t) -> _QuadContainerAdaptor
8442  """
8443  _IMP_kernel._QuadContainerAdaptor_swiginit(self, _IMP_kernel.new__QuadContainerAdaptor(*args))
8444 
8445  def set_name_if_default(self, name):
8446  r"""set_name_if_default(_QuadContainerAdaptor self, std::string name)"""
8447  return _IMP_kernel._QuadContainerAdaptor_set_name_if_default(self, name)
8448  __swig_destroy__ = _IMP_kernel.delete__QuadContainerAdaptor
8449 
8450 # Register _QuadContainerAdaptor in _IMP_kernel:
8451 _IMP_kernel._QuadContainerAdaptor_swigregister(_QuadContainerAdaptor)
8452 class SingletonModifier(_ParticleInputs, _ParticleOutputs, Object):
8453  r"""Proxy of C++ IMP::SingletonModifier class."""
8454 
8455  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8456 
8457  def __init__(self, *args):
8458  r"""__init__(SingletonModifier self, std::string name="SingletonModifier %1%") -> SingletonModifier"""
8459  if self.__class__ == SingletonModifier:
8460  _self = None
8461  else:
8462  _self = self
8463  _IMP_kernel.SingletonModifier_swiginit(self, _IMP_kernel.new_SingletonModifier(_self, *args))
8464 
8465  if self.__class__ != SingletonModifier:
8466  _director_objects.register(self)
8467 
8468 
8469 
8470 
8471  def apply_index(self, m, v):
8472  r"""apply_index(SingletonModifier self, Model m, ParticleIndex v)"""
8473  return _IMP_kernel.SingletonModifier_apply_index(self, m, v)
8474 
8475  def apply_indexes(self, m, o, lower_bound, upper_bound):
8476  r"""apply_indexes(SingletonModifier self, Model m, IMP::ParticleIndexes const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8477  return _IMP_kernel.SingletonModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8478 
8479  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8480  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)"""
8481  return _IMP_kernel.SingletonModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8482 
8483  def __str__(self):
8484  r"""__str__(SingletonModifier self) -> std::string"""
8485  return _IMP_kernel.SingletonModifier___str__(self)
8486 
8487  def __repr__(self):
8488  r"""__repr__(SingletonModifier self) -> std::string"""
8489  return _IMP_kernel.SingletonModifier___repr__(self)
8490 
8491  @staticmethod
8492  def get_from(o):
8493  return _object_cast_to_SingletonModifier(o)
8494 
8495 
8496  def do_show(self, out):
8497  pass
8498 
8499  @staticmethod
8500  def get_from(o):
8501  return _object_cast_to_SingletonModifier(o)
8502 
8503 
8504  def _wrap_jax(self, apply_func, keys=None):
8505  """Create the return value for _get_jax.
8506  Use this method in _get_jax() to wrap the JAX function
8507  with other modifier-specific information.
8508 
8509  @param apply_func A function implemented using JAX that takes
8510  one argument (the current JAX Model) and returns a new
8511  modified JAX Model.
8512  @param keys Model attributes used by the SingletonModifier.
8513  See IMP::Restraint::_wrap_jax.
8514  """
8515  from IMP._jax_util import JAXModifierInfo
8516  return JAXModifierInfo(apply_func=apply_func, keys=keys)
8517 
8518  def _get_jax(self, m, indexes):
8519  """Return a JAX implementation of this SingletonModifier.
8520  Implement this method in a SingletonModifier subclass to provide
8521  an equivalent function using [JAX](https://docs.jax.dev/)
8522  that modifies the current JAX Model. See also _wrap_jax.
8523 
8524  @param m The IMP.Model that the modifier will act on.
8525  @param indexes The ParticleIndexes that the modifier will act on.
8526  """
8527  raise NotImplementedError(
8528  f"No JAX implementation for {self} ({type(self)})")
8529 
8530  __swig_destroy__ = _IMP_kernel.delete_SingletonModifier
8531  def __disown__(self):
8532  self.this.disown()
8533  _IMP_kernel.disown_SingletonModifier(self)
8534  return weakref.proxy(self)
8535 
8536  def do_get_inputs(self, m, pis):
8537  r"""do_get_inputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8538  return _IMP_kernel.SingletonModifier_do_get_inputs(self, m, pis)
8539 
8540  def do_get_outputs(self, m, pis):
8541  r"""do_get_outputs(SingletonModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8542  return _IMP_kernel.SingletonModifier_do_get_outputs(self, m, pis)
8543 
8544  def do_destroy(self):
8545  r"""do_destroy(SingletonModifier self)"""
8546  return _IMP_kernel.SingletonModifier_do_destroy(self)
8547 
8548 # Register SingletonModifier in _IMP_kernel:
8549 _IMP_kernel.SingletonModifier_swigregister(SingletonModifier)
8550 class SingletonScore(_ParticleInputs, Object):
8551  r"""Proxy of C++ IMP::SingletonScore class."""
8552 
8553  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8554 
8555  def __init__(self, *args):
8556  r"""__init__(SingletonScore self, std::string name="SingletonScore %1%") -> SingletonScore"""
8557  if self.__class__ == SingletonScore:
8558  _self = None
8559  else:
8560  _self = self
8561  _IMP_kernel.SingletonScore_swiginit(self, _IMP_kernel.new_SingletonScore(_self, *args))
8562 
8563  if self.__class__ != SingletonScore:
8564  _director_objects.register(self)
8565 
8566 
8567 
8568 
8569  def evaluate_index(self, m, vt, da):
8570  r"""evaluate_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da) -> double"""
8571  return _IMP_kernel.SingletonScore_evaluate_index(self, m, vt, da)
8572 
8573  def check_indexes(self, m, pis):
8574  r"""check_indexes(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8575  return _IMP_kernel.SingletonScore_check_indexes(self, m, pis)
8576 
8577  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8578  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"""
8579  return _IMP_kernel.SingletonScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8580 
8581  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8582  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"""
8583  return _IMP_kernel.SingletonScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8584 
8585  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8586  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"""
8587  return _IMP_kernel.SingletonScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8588 
8589  def evaluate_if_good_index(self, m, vt, da, max):
8590  r"""evaluate_if_good_index(SingletonScore self, Model m, ParticleIndex vt, DerivativeAccumulator da, double max) -> double"""
8591  return _IMP_kernel.SingletonScore_evaluate_if_good_index(self, m, vt, da, max)
8592 
8593  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8594  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"""
8595  return _IMP_kernel.SingletonScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8596 
8597  def create_current_decomposition(self, m, vt):
8598  r"""create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8599  return _IMP_kernel.SingletonScore_create_current_decomposition(self, m, vt)
8600 
8601  def do_create_current_decomposition(self, m, vt):
8602  r"""do_create_current_decomposition(SingletonScore self, Model m, ParticleIndex vt) -> IMP::Restraints"""
8603  return _IMP_kernel.SingletonScore_do_create_current_decomposition(self, m, vt)
8604  __swig_destroy__ = _IMP_kernel.delete_SingletonScore
8605 
8606  def __str__(self):
8607  r"""__str__(SingletonScore self) -> std::string"""
8608  return _IMP_kernel.SingletonScore___str__(self)
8609 
8610  def __repr__(self):
8611  r"""__repr__(SingletonScore self) -> std::string"""
8612  return _IMP_kernel.SingletonScore___repr__(self)
8613 
8614  @staticmethod
8615  def get_from(o):
8616  return _object_cast_to_SingletonScore(o)
8617 
8618 
8619  def do_show(self, out):
8620  pass
8621 
8622  @staticmethod
8623  def get_from(o):
8624  return _object_cast_to_SingletonScore(o)
8625 
8626 
8627  def _wrap_jax(self, m, score_func, keys=None):
8628  """See IMP::PairScore::_wrap_jax"""
8629  from IMP._jax_util import JAXScoreInfo
8630  return JAXScoreInfo(m, score_func=score_func, keys=keys)
8631 
8632  def _get_jax(self, m, indexes):
8633  """See IMP::PairScore::_get_jax"""
8634  raise NotImplementedError(
8635  f"No JAX implementation for {self} ({type(self)})")
8636 
8637  def __disown__(self):
8638  self.this.disown()
8639  _IMP_kernel.disown_SingletonScore(self)
8640  return weakref.proxy(self)
8641 
8642  def do_get_inputs(self, m, pis):
8643  r"""do_get_inputs(SingletonScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8644  return _IMP_kernel.SingletonScore_do_get_inputs(self, m, pis)
8645 
8646  def do_destroy(self):
8647  r"""do_destroy(SingletonScore self)"""
8648  return _IMP_kernel.SingletonScore_do_destroy(self)
8649 
8650 # Register SingletonScore in _IMP_kernel:
8651 _IMP_kernel.SingletonScore_swigregister(SingletonScore)
8652 class SingletonPredicate(_ParticleInputs, Object):
8653  r"""Proxy of C++ IMP::SingletonPredicate class."""
8654 
8655  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8656 
8657  def __init__(self, *args):
8658  r"""__init__(SingletonPredicate self, std::string name="SingletonPredicate %1%") -> SingletonPredicate"""
8659  if self.__class__ == SingletonPredicate:
8660  _self = None
8661  else:
8662  _self = self
8663  _IMP_kernel.SingletonPredicate_swiginit(self, _IMP_kernel.new_SingletonPredicate(_self, *args))
8664 
8665  if self.__class__ != SingletonPredicate:
8666  _director_objects.register(self)
8667 
8668 
8669 
8670 
8671  def setup_for_get_value_index_in_batch(self, arg0):
8672  r"""setup_for_get_value_index_in_batch(SingletonPredicate self, Model arg0)"""
8673  return _IMP_kernel.SingletonPredicate_setup_for_get_value_index_in_batch(self, arg0)
8674 
8675  def get_value_index_in_batch(self, m, vt):
8676  r"""get_value_index_in_batch(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8677  return _IMP_kernel.SingletonPredicate_get_value_index_in_batch(self, m, vt)
8678 
8679  def __call__(self, m, vt):
8680  r"""__call__(SingletonPredicate self, Model m, ParticleIndex vt) -> int"""
8681  return _IMP_kernel.SingletonPredicate___call__(self, m, vt)
8682 
8683  def get_value_index(self, *args):
8684  r"""
8685  get_value_index(SingletonPredicate self, Model m, ParticleIndex vt) -> int
8686  get_value_index(SingletonPredicate self, Model m, IMP::ParticleIndexes const & o) -> IMP::Ints
8687  """
8688  return _IMP_kernel.SingletonPredicate_get_value_index(self, *args)
8689  __swig_destroy__ = _IMP_kernel.delete_SingletonPredicate
8690 
8691  def __str__(self):
8692  r"""__str__(SingletonPredicate self) -> std::string"""
8693  return _IMP_kernel.SingletonPredicate___str__(self)
8694 
8695  def __repr__(self):
8696  r"""__repr__(SingletonPredicate self) -> std::string"""
8697  return _IMP_kernel.SingletonPredicate___repr__(self)
8698 
8699  @staticmethod
8700  def get_from(o):
8701  return _object_cast_to_SingletonPredicate(o)
8702 
8703 
8704  def do_show(self, out):
8705  pass
8706 
8707  @staticmethod
8708  def get_from(o):
8709  return _object_cast_to_SingletonPredicate(o)
8710 
8711  def __disown__(self):
8712  self.this.disown()
8713  _IMP_kernel.disown_SingletonPredicate(self)
8714  return weakref.proxy(self)
8715 
8716  def do_get_inputs(self, m, pis):
8717  r"""do_get_inputs(SingletonPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8718  return _IMP_kernel.SingletonPredicate_do_get_inputs(self, m, pis)
8719 
8720  def do_destroy(self):
8721  r"""do_destroy(SingletonPredicate self)"""
8722  return _IMP_kernel.SingletonPredicate_do_destroy(self)
8723 
8724 # Register SingletonPredicate in _IMP_kernel:
8725 _IMP_kernel.SingletonPredicate_swigregister(SingletonPredicate)
8727  r"""Proxy of C++ IMP::SingletonContainer class."""
8728 
8729  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8730 
8731  def apply_generic(self, m):
8732  r"""apply_generic(SingletonContainer self, SingletonModifier m)"""
8733  return _IMP_kernel.SingletonContainer_apply_generic(self, m)
8734 
8735  def apply_generic_moved(self, m, moved_pis, reset_pis):
8736  r"""apply_generic_moved(SingletonContainer self, SingletonModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8737  return _IMP_kernel.SingletonContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
8738 
8739  def apply(self, sm):
8740  r"""apply(SingletonContainer self, SingletonModifier sm)"""
8741  return _IMP_kernel.SingletonContainer_apply(self, sm)
8742 
8743  def apply_moved(self, sm, moved_pis, reset_pis):
8744  r"""apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8745  return _IMP_kernel.SingletonContainer_apply_moved(self, sm, moved_pis, reset_pis)
8746 
8747  def get_range_indexes(self):
8748  r"""get_range_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8749  return _IMP_kernel.SingletonContainer_get_range_indexes(self)
8750 
8751  def get_contents(self):
8752  r"""get_contents(SingletonContainer self) -> IMP::ParticleIndexes const &"""
8753  return _IMP_kernel.SingletonContainer_get_contents(self)
8754 
8755  def get_indexes(self):
8756  r"""get_indexes(SingletonContainer self) -> IMP::ParticleIndexes"""
8757  return _IMP_kernel.SingletonContainer_get_indexes(self)
8758 
8759  def get(self, *args):
8760  r"""
8761  get(SingletonContainer self) -> IMP::ParticlesTemp
8762  get(SingletonContainer self, unsigned int i) -> Particle
8763  """
8764  return _IMP_kernel.SingletonContainer_get(self, *args)
8765 
8766  def get_number(self):
8767  r"""get_number(SingletonContainer self) -> unsigned int"""
8768  return _IMP_kernel.SingletonContainer_get_number(self)
8769 
8770  def __init__(self, *args):
8771  r"""
8772  __init__(SingletonContainer self, Model m, std::string name="SingletonContainer %1%") -> SingletonContainer
8773  __init__(SingletonContainer self) -> SingletonContainer
8774  """
8775  if self.__class__ == SingletonContainer:
8776  _self = None
8777  else:
8778  _self = self
8779  _IMP_kernel.SingletonContainer_swiginit(self, _IMP_kernel.new_SingletonContainer(_self, *args))
8780 
8781  if self.__class__ != SingletonContainer:
8782  _director_objects.register(self)
8783 
8784 
8785 
8786 
8787  def do_apply(self, sm):
8788  r"""do_apply(SingletonContainer self, SingletonModifier sm)"""
8789  return _IMP_kernel.SingletonContainer_do_apply(self, sm)
8790 
8791  def do_apply_moved(self, sm, moved_pis, reset_pis):
8792  r"""do_apply_moved(SingletonContainer self, SingletonModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
8793  return _IMP_kernel.SingletonContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
8794 
8795  def do_get_provides_access(self):
8796  r"""do_get_provides_access(SingletonContainer self) -> bool"""
8797  return _IMP_kernel.SingletonContainer_do_get_provides_access(self)
8798  __swig_destroy__ = _IMP_kernel.delete_SingletonContainer
8799 
8800  def __str__(self):
8801  r"""__str__(SingletonContainer self) -> std::string"""
8802  return _IMP_kernel.SingletonContainer___str__(self)
8803 
8804  def __repr__(self):
8805  r"""__repr__(SingletonContainer self) -> std::string"""
8806  return _IMP_kernel.SingletonContainer___repr__(self)
8807 
8808  @staticmethod
8809  def get_from(o):
8810  return _object_cast_to_SingletonContainer(o)
8811 
8812 
8813  def do_show(self, out):
8814  pass
8815 
8816  @staticmethod
8817  def get_from(o):
8818  return _object_cast_to_SingletonContainer(o)
8819 
8820  def __disown__(self):
8821  self.this.disown()
8822  _IMP_kernel.disown_SingletonContainer(self)
8823  return weakref.proxy(self)
8824 
8825  def do_destroy(self):
8826  r"""do_destroy(SingletonContainer self)"""
8827  return _IMP_kernel.SingletonContainer_do_destroy(self)
8828 
8829  def handle_set_has_required_score_states(self, arg0):
8830  r"""handle_set_has_required_score_states(SingletonContainer self, bool arg0)"""
8831  return _IMP_kernel.SingletonContainer_handle_set_has_required_score_states(self, arg0)
8832 
8833  def do_get_inputs(self):
8834  r"""do_get_inputs(SingletonContainer self) -> IMP::ModelObjectsTemp"""
8835  return _IMP_kernel.SingletonContainer_do_get_inputs(self)
8836 
8837  def do_get_interactions(self):
8838  r"""do_get_interactions(SingletonContainer self) -> IMP::ModelObjectsTemps"""
8839  return _IMP_kernel.SingletonContainer_do_get_interactions(self)
8840 
8841  def do_get_contents_hash(self):
8842  r"""do_get_contents_hash(SingletonContainer self) -> std::size_t"""
8843  return _IMP_kernel.SingletonContainer_do_get_contents_hash(self)
8844 
8845 # Register SingletonContainer in _IMP_kernel:
8846 _IMP_kernel.SingletonContainer_swigregister(SingletonContainer)
8847 class _SingletonContainerAdaptor(_InputAdaptor):
8848  r"""Proxy of C++ IMP::SingletonContainerAdaptor class."""
8849 
8850  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8851  __repr__ = _swig_repr
8852 
8853  def __init__(self, *args):
8854  r"""
8855  __init__(_SingletonContainerAdaptor self) -> _SingletonContainerAdaptor
8856  __init__(_SingletonContainerAdaptor self, SingletonContainer c) -> _SingletonContainerAdaptor
8857  __init__(_SingletonContainerAdaptor self, IMP::ParticlesTemp const & t) -> _SingletonContainerAdaptor
8858  """
8859  _IMP_kernel._SingletonContainerAdaptor_swiginit(self, _IMP_kernel.new__SingletonContainerAdaptor(*args))
8860 
8861  def set_name_if_default(self, name):
8862  r"""set_name_if_default(_SingletonContainerAdaptor self, std::string name)"""
8863  return _IMP_kernel._SingletonContainerAdaptor_set_name_if_default(self, name)
8864  __swig_destroy__ = _IMP_kernel.delete__SingletonContainerAdaptor
8865 
8866 # Register _SingletonContainerAdaptor in _IMP_kernel:
8867 _IMP_kernel._SingletonContainerAdaptor_swigregister(_SingletonContainerAdaptor)
8868 class TripletModifier(_ParticleInputs, _ParticleOutputs, Object):
8869  r"""Proxy of C++ IMP::TripletModifier class."""
8870 
8871  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8872 
8873  def __init__(self, *args):
8874  r"""__init__(TripletModifier self, std::string name="TripletModifier %1%") -> TripletModifier"""
8875  if self.__class__ == TripletModifier:
8876  _self = None
8877  else:
8878  _self = self
8879  _IMP_kernel.TripletModifier_swiginit(self, _IMP_kernel.new_TripletModifier(_self, *args))
8880 
8881  if self.__class__ != TripletModifier:
8882  _director_objects.register(self)
8883 
8884 
8885 
8886 
8887  def apply_index(self, m, v):
8888  r"""apply_index(TripletModifier self, Model m, IMP::ParticleIndexTriplet const & v)"""
8889  return _IMP_kernel.TripletModifier_apply_index(self, m, v)
8890 
8891  def apply_indexes(self, m, o, lower_bound, upper_bound):
8892  r"""apply_indexes(TripletModifier self, Model m, IMP::ParticleIndexTriplets const & o, unsigned int lower_bound, unsigned int upper_bound)"""
8893  return _IMP_kernel.TripletModifier_apply_indexes(self, m, o, lower_bound, upper_bound)
8894 
8895  def apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis):
8896  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)"""
8897  return _IMP_kernel.TripletModifier_apply_indexes_moved(self, m, o, lower_bound, upper_bound, moved_pis, reset_pis)
8898 
8899  def __str__(self):
8900  r"""__str__(TripletModifier self) -> std::string"""
8901  return _IMP_kernel.TripletModifier___str__(self)
8902 
8903  def __repr__(self):
8904  r"""__repr__(TripletModifier self) -> std::string"""
8905  return _IMP_kernel.TripletModifier___repr__(self)
8906 
8907  @staticmethod
8908  def get_from(o):
8909  return _object_cast_to_TripletModifier(o)
8910 
8911 
8912  def do_show(self, out):
8913  pass
8914 
8915  @staticmethod
8916  def get_from(o):
8917  return _object_cast_to_TripletModifier(o)
8918 
8919  __swig_destroy__ = _IMP_kernel.delete_TripletModifier
8920  def __disown__(self):
8921  self.this.disown()
8922  _IMP_kernel.disown_TripletModifier(self)
8923  return weakref.proxy(self)
8924 
8925  def do_get_inputs(self, m, pis):
8926  r"""do_get_inputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8927  return _IMP_kernel.TripletModifier_do_get_inputs(self, m, pis)
8928 
8929  def do_get_outputs(self, m, pis):
8930  r"""do_get_outputs(TripletModifier self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
8931  return _IMP_kernel.TripletModifier_do_get_outputs(self, m, pis)
8932 
8933  def do_destroy(self):
8934  r"""do_destroy(TripletModifier self)"""
8935  return _IMP_kernel.TripletModifier_do_destroy(self)
8936 
8937 # Register TripletModifier in _IMP_kernel:
8938 _IMP_kernel.TripletModifier_swigregister(TripletModifier)
8939 class TripletScore(_ParticleInputs, Object):
8940  r"""Proxy of C++ IMP::TripletScore class."""
8941 
8942  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
8943 
8944  def __init__(self, *args):
8945  r"""__init__(TripletScore self, std::string name="TripletScore %1%") -> TripletScore"""
8946  if self.__class__ == TripletScore:
8947  _self = None
8948  else:
8949  _self = self
8950  _IMP_kernel.TripletScore_swiginit(self, _IMP_kernel.new_TripletScore(_self, *args))
8951 
8952  if self.__class__ != TripletScore:
8953  _director_objects.register(self)
8954 
8955 
8956 
8957 
8958  def evaluate_index(self, m, vt, da):
8959  r"""evaluate_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da) -> double"""
8960  return _IMP_kernel.TripletScore_evaluate_index(self, m, vt, da)
8961 
8962  def check_indexes(self, m, pis):
8963  r"""check_indexes(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> bool"""
8964  return _IMP_kernel.TripletScore_check_indexes(self, m, pis)
8965 
8966  def evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked=False):
8967  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"""
8968  return _IMP_kernel.TripletScore_evaluate_indexes(self, m, o, da, lower_bound, upper_bound, all_indexes_checked)
8969 
8970  def evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked=False):
8971  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"""
8972  return _IMP_kernel.TripletScore_evaluate_indexes_scores(self, m, o, da, lower_bound, upper_bound, score, all_indexes_checked)
8973 
8974  def evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked=False):
8975  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"""
8976  return _IMP_kernel.TripletScore_evaluate_indexes_delta(self, m, o, da, indexes, score, all_indexes_checked)
8977 
8978  def evaluate_if_good_index(self, m, vt, da, max):
8979  r"""evaluate_if_good_index(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt, DerivativeAccumulator da, double max) -> double"""
8980  return _IMP_kernel.TripletScore_evaluate_if_good_index(self, m, vt, da, max)
8981 
8982  def evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked=False):
8983  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"""
8984  return _IMP_kernel.TripletScore_evaluate_if_good_indexes(self, m, o, da, max, lower_bound, upper_bound, all_indexes_checked)
8985 
8986  def create_current_decomposition(self, m, vt):
8987  r"""create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
8988  return _IMP_kernel.TripletScore_create_current_decomposition(self, m, vt)
8989 
8990  def do_create_current_decomposition(self, m, vt):
8991  r"""do_create_current_decomposition(TripletScore self, Model m, IMP::ParticleIndexTriplet const & vt) -> IMP::Restraints"""
8992  return _IMP_kernel.TripletScore_do_create_current_decomposition(self, m, vt)
8993  __swig_destroy__ = _IMP_kernel.delete_TripletScore
8994 
8995  def __str__(self):
8996  r"""__str__(TripletScore self) -> std::string"""
8997  return _IMP_kernel.TripletScore___str__(self)
8998 
8999  def __repr__(self):
9000  r"""__repr__(TripletScore self) -> std::string"""
9001  return _IMP_kernel.TripletScore___repr__(self)
9002 
9003  @staticmethod
9004  def get_from(o):
9005  return _object_cast_to_TripletScore(o)
9006 
9007 
9008  def do_show(self, out):
9009  pass
9010 
9011  @staticmethod
9012  def get_from(o):
9013  return _object_cast_to_TripletScore(o)
9014 
9015  def __disown__(self):
9016  self.this.disown()
9017  _IMP_kernel.disown_TripletScore(self)
9018  return weakref.proxy(self)
9019 
9020  def do_get_inputs(self, m, pis):
9021  r"""do_get_inputs(TripletScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9022  return _IMP_kernel.TripletScore_do_get_inputs(self, m, pis)
9023 
9024  def do_destroy(self):
9025  r"""do_destroy(TripletScore self)"""
9026  return _IMP_kernel.TripletScore_do_destroy(self)
9027 
9028 # Register TripletScore in _IMP_kernel:
9029 _IMP_kernel.TripletScore_swigregister(TripletScore)
9030 class TripletPredicate(_ParticleInputs, Object):
9031  r"""Proxy of C++ IMP::TripletPredicate class."""
9032 
9033  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9034 
9035  def __init__(self, *args):
9036  r"""__init__(TripletPredicate self, std::string name="TripletPredicate %1%") -> TripletPredicate"""
9037  if self.__class__ == TripletPredicate:
9038  _self = None
9039  else:
9040  _self = self
9041  _IMP_kernel.TripletPredicate_swiginit(self, _IMP_kernel.new_TripletPredicate(_self, *args))
9042 
9043  if self.__class__ != TripletPredicate:
9044  _director_objects.register(self)
9045 
9046 
9047 
9048 
9049  def setup_for_get_value_index_in_batch(self, arg0):
9050  r"""setup_for_get_value_index_in_batch(TripletPredicate self, Model arg0)"""
9051  return _IMP_kernel.TripletPredicate_setup_for_get_value_index_in_batch(self, arg0)
9052 
9053  def get_value_index_in_batch(self, m, vt):
9054  r"""get_value_index_in_batch(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9055  return _IMP_kernel.TripletPredicate_get_value_index_in_batch(self, m, vt)
9056 
9057  def __call__(self, m, vt):
9058  r"""__call__(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int"""
9059  return _IMP_kernel.TripletPredicate___call__(self, m, vt)
9060 
9061  def get_value_index(self, *args):
9062  r"""
9063  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplet const & vt) -> int
9064  get_value_index(TripletPredicate self, Model m, IMP::ParticleIndexTriplets const & o) -> IMP::Ints
9065  """
9066  return _IMP_kernel.TripletPredicate_get_value_index(self, *args)
9067  __swig_destroy__ = _IMP_kernel.delete_TripletPredicate
9068 
9069  def __str__(self):
9070  r"""__str__(TripletPredicate self) -> std::string"""
9071  return _IMP_kernel.TripletPredicate___str__(self)
9072 
9073  def __repr__(self):
9074  r"""__repr__(TripletPredicate self) -> std::string"""
9075  return _IMP_kernel.TripletPredicate___repr__(self)
9076 
9077  @staticmethod
9078  def get_from(o):
9079  return _object_cast_to_TripletPredicate(o)
9080 
9081 
9082  def do_show(self, out):
9083  pass
9084 
9085  @staticmethod
9086  def get_from(o):
9087  return _object_cast_to_TripletPredicate(o)
9088 
9089  def __disown__(self):
9090  self.this.disown()
9091  _IMP_kernel.disown_TripletPredicate(self)
9092  return weakref.proxy(self)
9093 
9094  def do_get_inputs(self, m, pis):
9095  r"""do_get_inputs(TripletPredicate self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
9096  return _IMP_kernel.TripletPredicate_do_get_inputs(self, m, pis)
9097 
9098  def do_destroy(self):
9099  r"""do_destroy(TripletPredicate self)"""
9100  return _IMP_kernel.TripletPredicate_do_destroy(self)
9101 
9102 # Register TripletPredicate in _IMP_kernel:
9103 _IMP_kernel.TripletPredicate_swigregister(TripletPredicate)
9105  r"""Proxy of C++ IMP::TripletContainer class."""
9106 
9107  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9108 
9109  def apply_generic(self, m):
9110  r"""apply_generic(TripletContainer self, TripletModifier m)"""
9111  return _IMP_kernel.TripletContainer_apply_generic(self, m)
9112 
9113  def apply_generic_moved(self, m, moved_pis, reset_pis):
9114  r"""apply_generic_moved(TripletContainer self, TripletModifier m, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9115  return _IMP_kernel.TripletContainer_apply_generic_moved(self, m, moved_pis, reset_pis)
9116 
9117  def apply(self, sm):
9118  r"""apply(TripletContainer self, TripletModifier sm)"""
9119  return _IMP_kernel.TripletContainer_apply(self, sm)
9120 
9121  def apply_moved(self, sm, moved_pis, reset_pis):
9122  r"""apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9123  return _IMP_kernel.TripletContainer_apply_moved(self, sm, moved_pis, reset_pis)
9124 
9125  def get_range_indexes(self):
9126  r"""get_range_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9127  return _IMP_kernel.TripletContainer_get_range_indexes(self)
9128 
9129  def get_contents(self):
9130  r"""get_contents(TripletContainer self) -> IMP::ParticleIndexTriplets const &"""
9131  return _IMP_kernel.TripletContainer_get_contents(self)
9132 
9133  def get_indexes(self):
9134  r"""get_indexes(TripletContainer self) -> IMP::ParticleIndexTriplets"""
9135  return _IMP_kernel.TripletContainer_get_indexes(self)
9136 
9137  def get(self, *args):
9138  r"""
9139  get(TripletContainer self) -> IMP::ParticleTripletsTemp
9140  get(TripletContainer self, unsigned int i) -> IMP::ParticleTriplet
9141  """
9142  return _IMP_kernel.TripletContainer_get(self, *args)
9143 
9144  def get_number(self):
9145  r"""get_number(TripletContainer self) -> unsigned int"""
9146  return _IMP_kernel.TripletContainer_get_number(self)
9147 
9148  def __init__(self, *args):
9149  r"""
9150  __init__(TripletContainer self, Model m, std::string name="TripletContainer %1%") -> TripletContainer
9151  __init__(TripletContainer self) -> TripletContainer
9152  """
9153  if self.__class__ == TripletContainer:
9154  _self = None
9155  else:
9156  _self = self
9157  _IMP_kernel.TripletContainer_swiginit(self, _IMP_kernel.new_TripletContainer(_self, *args))
9158 
9159  if self.__class__ != TripletContainer:
9160  _director_objects.register(self)
9161 
9162 
9163 
9164 
9165  def do_apply(self, sm):
9166  r"""do_apply(TripletContainer self, TripletModifier sm)"""
9167  return _IMP_kernel.TripletContainer_do_apply(self, sm)
9168 
9169  def do_apply_moved(self, sm, moved_pis, reset_pis):
9170  r"""do_apply_moved(TripletContainer self, TripletModifier sm, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
9171  return _IMP_kernel.TripletContainer_do_apply_moved(self, sm, moved_pis, reset_pis)
9172 
9173  def do_get_provides_access(self):
9174  r"""do_get_provides_access(TripletContainer self) -> bool"""
9175  return _IMP_kernel.TripletContainer_do_get_provides_access(self)
9176  __swig_destroy__ = _IMP_kernel.delete_TripletContainer
9177 
9178  def __str__(self):
9179  r"""__str__(TripletContainer self) -> std::string"""
9180  return _IMP_kernel.TripletContainer___str__(self)
9181 
9182  def __repr__(self):
9183  r"""__repr__(TripletContainer self) -> std::string"""
9184  return _IMP_kernel.TripletContainer___repr__(self)
9185 
9186  @staticmethod
9187  def get_from(o):
9188  return _object_cast_to_TripletContainer(o)
9189 
9190 
9191  def do_show(self, out):
9192  pass
9193 
9194  @staticmethod
9195  def get_from(o):
9196  return _object_cast_to_TripletContainer(o)
9197 
9198  def __disown__(self):
9199  self.this.disown()
9200  _IMP_kernel.disown_TripletContainer(self)
9201  return weakref.proxy(self)
9202 
9203  def do_destroy(self):
9204  r"""do_destroy(TripletContainer self)"""
9205  return _IMP_kernel.TripletContainer_do_destroy(self)
9206 
9207  def handle_set_has_required_score_states(self, arg0):
9208  r"""handle_set_has_required_score_states(TripletContainer self, bool arg0)"""
9209  return _IMP_kernel.TripletContainer_handle_set_has_required_score_states(self, arg0)
9210 
9211  def do_get_inputs(self):
9212  r"""do_get_inputs(TripletContainer self) -> IMP::ModelObjectsTemp"""
9213  return _IMP_kernel.TripletContainer_do_get_inputs(self)
9214 
9215  def do_get_interactions(self):
9216  r"""do_get_interactions(TripletContainer self) -> IMP::ModelObjectsTemps"""
9217  return _IMP_kernel.TripletContainer_do_get_interactions(self)
9218 
9219  def do_get_contents_hash(self):
9220  r"""do_get_contents_hash(TripletContainer self) -> std::size_t"""
9221  return _IMP_kernel.TripletContainer_do_get_contents_hash(self)
9222 
9223 # Register TripletContainer in _IMP_kernel:
9224 _IMP_kernel.TripletContainer_swigregister(TripletContainer)
9225 class _TripletContainerAdaptor(_InputAdaptor):
9226  r"""Proxy of C++ IMP::TripletContainerAdaptor class."""
9227 
9228  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9229  __repr__ = _swig_repr
9230 
9231  def __init__(self, *args):
9232  r"""
9233  __init__(_TripletContainerAdaptor self) -> _TripletContainerAdaptor
9234  __init__(_TripletContainerAdaptor self, TripletContainer c) -> _TripletContainerAdaptor
9235  __init__(_TripletContainerAdaptor self, IMP::ParticleTripletsTemp const & t) -> _TripletContainerAdaptor
9236  """
9237  _IMP_kernel._TripletContainerAdaptor_swiginit(self, _IMP_kernel.new__TripletContainerAdaptor(*args))
9238 
9239  def set_name_if_default(self, name):
9240  r"""set_name_if_default(_TripletContainerAdaptor self, std::string name)"""
9241  return _IMP_kernel._TripletContainerAdaptor_set_name_if_default(self, name)
9242  __swig_destroy__ = _IMP_kernel.delete__TripletContainerAdaptor
9243 
9244 # Register _TripletContainerAdaptor in _IMP_kernel:
9245 _IMP_kernel._TripletContainerAdaptor_swigregister(_TripletContainerAdaptor)
9246 
9247 def write_particles_to_buffer(particles, keys):
9248  r"""write_particles_to_buffer(IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys) -> IMP::Vector< char,std::allocator< char > >"""
9249  return _IMP_kernel.write_particles_to_buffer(particles, keys)
9250 
9251 def read_particles_from_buffer(buffer, particles, keys):
9252  r"""read_particles_from_buffer(IMP::Vector< char,std::allocator< char > > const & buffer, IMP::ParticlesTemp const & particles, IMP::FloatKeys const & keys)"""
9253  return _IMP_kernel.read_particles_from_buffer(buffer, particles, keys)
9254 
9255 def get_particles(m, ps):
9256  r"""get_particles(Model m, IMP::ParticleIndexes const & ps) -> IMP::ParticlesTemp"""
9257  return _IMP_kernel.get_particles(m, ps)
9258 
9259 def get_indexes(*args):
9260  r"""
9261  get_indexes(IMP::ParticlesTemp const & ps) -> IMP::ParticleIndexes
9262  get_indexes(IMP::ParticlePairsTemp const & ps) -> IMP::ParticleIndexPairs
9263  """
9264  return _IMP_kernel.get_indexes(*args)
9265 class _ParticleIndexAdaptor(object):
9266  r"""Proxy of C++ IMP::ParticleIndexAdaptor class."""
9267 
9268  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9269  __repr__ = _swig_repr
9270 
9271  def __init__(self, *args):
9272  r"""
9273  __init__(_ParticleIndexAdaptor self, Particle p) -> _ParticleIndexAdaptor
9274  __init__(_ParticleIndexAdaptor self, ParticleIndex pi) -> _ParticleIndexAdaptor
9275  __init__(_ParticleIndexAdaptor self, Decorator d) -> _ParticleIndexAdaptor
9276  """
9277  _IMP_kernel._ParticleIndexAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexAdaptor(*args))
9278  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexAdaptor
9279 
9280 # Register _ParticleIndexAdaptor in _IMP_kernel:
9281 _IMP_kernel._ParticleIndexAdaptor_swigregister(_ParticleIndexAdaptor)
9282 class _ParticleIndexesAdaptor(_InputAdaptor):
9283  r"""Proxy of C++ IMP::ParticleIndexesAdaptor class."""
9284 
9285  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9286  __repr__ = _swig_repr
9287 
9288  def __init__(self, *args):
9289  r"""
9290  __init__(_ParticleIndexesAdaptor self, IMP::ParticlesTemp const & ps) -> _ParticleIndexesAdaptor
9291  __init__(_ParticleIndexesAdaptor self, IMP::ParticleIndexes const & pi) -> _ParticleIndexesAdaptor
9292  __init__(_ParticleIndexesAdaptor self) -> _ParticleIndexesAdaptor
9293  """
9294  _IMP_kernel._ParticleIndexesAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexesAdaptor(*args))
9295  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexesAdaptor
9296 
9297 # Register _ParticleIndexesAdaptor in _IMP_kernel:
9298 _IMP_kernel._ParticleIndexesAdaptor_swigregister(_ParticleIndexesAdaptor)
9299 class _ParticleIndexPairsAdaptor(object):
9300  r"""Proxy of C++ IMP::ParticleIndexPairsAdaptor class."""
9301 
9302  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9303  __repr__ = _swig_repr
9304 
9305  def __init__(self, *args):
9306  r"""
9307  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticlePairsTemp const & ps) -> _ParticleIndexPairsAdaptor
9308  __init__(_ParticleIndexPairsAdaptor self, IMP::ParticleIndexPairs const & pi) -> _ParticleIndexPairsAdaptor
9309  __init__(_ParticleIndexPairsAdaptor self) -> _ParticleIndexPairsAdaptor
9310  """
9311  _IMP_kernel._ParticleIndexPairsAdaptor_swiginit(self, _IMP_kernel.new__ParticleIndexPairsAdaptor(*args))
9312  __swig_destroy__ = _IMP_kernel.delete__ParticleIndexPairsAdaptor
9313 
9314 # Register _ParticleIndexPairsAdaptor in _IMP_kernel:
9315 _IMP_kernel._ParticleIndexPairsAdaptor_swigregister(_ParticleIndexPairsAdaptor)
9316 class _ConstRestraint(Restraint):
9317  r"""Proxy of C++ IMP::internal::_ConstRestraint class."""
9318 
9319  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9320 
9321  def __init__(self, *args):
9322  r"""
9323  __init__(_ConstRestraint self, Model m, IMP::ParticleIndexes const & pis, double v) -> _ConstRestraint
9324  __init__(_ConstRestraint self) -> _ConstRestraint
9325  """
9326  _IMP_kernel._ConstRestraint_swiginit(self, _IMP_kernel.new__ConstRestraint(*args))
9327 
9328  def get_value(self):
9329  r"""get_value(_ConstRestraint self) -> double"""
9330  return _IMP_kernel._ConstRestraint_get_value(self)
9331 
9332  def do_create_decomposition(self):
9333  r"""do_create_decomposition(_ConstRestraint self) -> IMP::Restraints"""
9334  return _IMP_kernel._ConstRestraint_do_create_decomposition(self)
9335 
9336  def do_get_inputs(self):
9337  r"""do_get_inputs(_ConstRestraint self) -> IMP::ModelObjectsTemp"""
9338  return _IMP_kernel._ConstRestraint_do_get_inputs(self)
9339 
9340  def get_version_info(self):
9341  r"""get_version_info(_ConstRestraint self) -> VersionInfo"""
9342  return _IMP_kernel._ConstRestraint_get_version_info(self)
9343  __swig_destroy__ = _IMP_kernel.delete__ConstRestraint
9344 
9345  def __str__(self):
9346  r"""__str__(_ConstRestraint self) -> std::string"""
9347  return _IMP_kernel._ConstRestraint___str__(self)
9348 
9349  def __repr__(self):
9350  r"""__repr__(_ConstRestraint self) -> std::string"""
9351  return _IMP_kernel._ConstRestraint___repr__(self)
9352 
9353  @staticmethod
9354  def get_from(o):
9355  return _object_cast_to__ConstRestraint(o)
9356 
9357 
9358  def _get_as_binary(self):
9359  r"""_get_as_binary(_ConstRestraint self) -> PyObject *"""
9360  return _IMP_kernel._ConstRestraint__get_as_binary(self)
9361 
9362  def _set_from_binary(self, p):
9363  r"""_set_from_binary(_ConstRestraint self, PyObject * p)"""
9364  return _IMP_kernel._ConstRestraint__set_from_binary(self, p)
9365 
9366  def __getstate__(self):
9367  p = self._get_as_binary()
9368  if len(self.__dict__) > 1:
9369  d = self.__dict__.copy()
9370  del d['this']
9371  p = (d, p)
9372  return p
9373 
9374  def __setstate__(self, p):
9375  if not hasattr(self, 'this'):
9376  self.__init__()
9377  if isinstance(p, tuple):
9378  d, p = p
9379  self.__dict__.update(d)
9380  return self._set_from_binary(p)
9381 
9382 
9383  def _get_jax(self):
9384  value = self.get_value()
9385  # We always return `value` regardless of the JAX Model
9386  return self._wrap_jax(lambda jm: value)
9387 
9388 
9389 # Register _ConstRestraint in _IMP_kernel:
9390 _IMP_kernel._ConstRestraint_swigregister(_ConstRestraint)
9391 class _ConstSingletonScore(SingletonScore):
9392  r"""Proxy of C++ IMP::internal::_ConstSingletonScore class."""
9393 
9394  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9395 
9396  def __init__(self, *args):
9397  r"""
9398  __init__(_ConstSingletonScore self, double v) -> _ConstSingletonScore
9399  __init__(_ConstSingletonScore self) -> _ConstSingletonScore
9400  """
9401  _IMP_kernel._ConstSingletonScore_swiginit(self, _IMP_kernel.new__ConstSingletonScore(*args))
9402 
9403  def get_value(self):
9404  r"""get_value(_ConstSingletonScore self) -> double"""
9405  return _IMP_kernel._ConstSingletonScore_get_value(self)
9406 
9407  def do_get_inputs(self, arg2, arg3):
9408  r"""do_get_inputs(_ConstSingletonScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9409  return _IMP_kernel._ConstSingletonScore_do_get_inputs(self, arg2, arg3)
9410 
9411  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9412  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"""
9413  return _IMP_kernel._ConstSingletonScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9414 
9415  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9416  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"""
9417  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9418 
9419  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9420  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"""
9421  return _IMP_kernel._ConstSingletonScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9422 
9423  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9424  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"""
9425  return _IMP_kernel._ConstSingletonScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9426 
9427  def get_version_info(self):
9428  r"""get_version_info(_ConstSingletonScore self) -> VersionInfo"""
9429  return _IMP_kernel._ConstSingletonScore_get_version_info(self)
9430  __swig_destroy__ = _IMP_kernel.delete__ConstSingletonScore
9431 
9432  def __str__(self):
9433  r"""__str__(_ConstSingletonScore self) -> std::string"""
9434  return _IMP_kernel._ConstSingletonScore___str__(self)
9435 
9436  def __repr__(self):
9437  r"""__repr__(_ConstSingletonScore self) -> std::string"""
9438  return _IMP_kernel._ConstSingletonScore___repr__(self)
9439 
9440  @staticmethod
9441  def get_from(o):
9442  return _object_cast_to__ConstSingletonScore(o)
9443 
9444 
9445  def _get_as_binary(self):
9446  r"""_get_as_binary(_ConstSingletonScore self) -> PyObject *"""
9447  return _IMP_kernel._ConstSingletonScore__get_as_binary(self)
9448 
9449  def _set_from_binary(self, p):
9450  r"""_set_from_binary(_ConstSingletonScore self, PyObject * p)"""
9451  return _IMP_kernel._ConstSingletonScore__set_from_binary(self, p)
9452 
9453  def __getstate__(self):
9454  p = self._get_as_binary()
9455  if len(self.__dict__) > 1:
9456  d = self.__dict__.copy()
9457  del d['this']
9458  p = (d, p)
9459  return p
9460 
9461  def __setstate__(self, p):
9462  if not hasattr(self, 'this'):
9463  self.__init__()
9464  if isinstance(p, tuple):
9465  d, p = p
9466  self.__dict__.update(d)
9467  return self._set_from_binary(p)
9468 
9469 
9470  def _get_jax(self, m, indexes):
9471  value = self.get_value()
9472  # We always return `value` regardless of the JAX Model or indexes
9473  return self._wrap_jax(m, lambda jm: value)
9474 
9475 
9476 # Register _ConstSingletonScore in _IMP_kernel:
9477 _IMP_kernel._ConstSingletonScore_swigregister(_ConstSingletonScore)
9478 class _ConstPairScore(PairScore):
9479  r"""Proxy of C++ IMP::internal::_ConstPairScore class."""
9480 
9481  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9482 
9483  def __init__(self, *args):
9484  r"""
9485  __init__(_ConstPairScore self, double v) -> _ConstPairScore
9486  __init__(_ConstPairScore self) -> _ConstPairScore
9487  """
9488  _IMP_kernel._ConstPairScore_swiginit(self, _IMP_kernel.new__ConstPairScore(*args))
9489 
9490  def get_value(self):
9491  r"""get_value(_ConstPairScore self) -> double"""
9492  return _IMP_kernel._ConstPairScore_get_value(self)
9493 
9494  def do_get_inputs(self, arg2, arg3):
9495  r"""do_get_inputs(_ConstPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
9496  return _IMP_kernel._ConstPairScore_do_get_inputs(self, arg2, arg3)
9497 
9498  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
9499  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"""
9500  return _IMP_kernel._ConstPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
9501 
9502  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
9503  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"""
9504  return _IMP_kernel._ConstPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
9505 
9506  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
9507  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"""
9508  return _IMP_kernel._ConstPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
9509 
9510  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
9511  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"""
9512  return _IMP_kernel._ConstPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
9513 
9514  def get_version_info(self):
9515  r"""get_version_info(_ConstPairScore self) -> VersionInfo"""
9516  return _IMP_kernel._ConstPairScore_get_version_info(self)
9517  __swig_destroy__ = _IMP_kernel.delete__ConstPairScore
9518 
9519  def __str__(self):
9520  r"""__str__(_ConstPairScore self) -> std::string"""
9521  return _IMP_kernel._ConstPairScore___str__(self)
9522 
9523  def __repr__(self):
9524  r"""__repr__(_ConstPairScore self) -> std::string"""
9525  return _IMP_kernel._ConstPairScore___repr__(self)
9526 
9527  @staticmethod
9528  def get_from(o):
9529  return _object_cast_to__ConstPairScore(o)
9530 
9531 
9532  def _get_as_binary(self):
9533  r"""_get_as_binary(_ConstPairScore self) -> PyObject *"""
9534  return _IMP_kernel._ConstPairScore__get_as_binary(self)
9535 
9536  def _set_from_binary(self, p):
9537  r"""_set_from_binary(_ConstPairScore self, PyObject * p)"""
9538  return _IMP_kernel._ConstPairScore__set_from_binary(self, p)
9539 
9540  def __getstate__(self):
9541  p = self._get_as_binary()
9542  if len(self.__dict__) > 1:
9543  d = self.__dict__.copy()
9544  del d['this']
9545  p = (d, p)
9546  return p
9547 
9548  def __setstate__(self, p):
9549  if not hasattr(self, 'this'):
9550  self.__init__()
9551  if isinstance(p, tuple):
9552  d, p = p
9553  self.__dict__.update(d)
9554  return self._set_from_binary(p)
9555 
9556 
9557  def _get_jax(self, m, indexes):
9558  value = self.get_value()
9559  # We always return `value` regardless of the JAX Model or indexes
9560  return self._wrap_jax(m, lambda jm: value)
9561 
9562 
9563 # Register _ConstPairScore in _IMP_kernel:
9564 _IMP_kernel._ConstPairScore_swigregister(_ConstPairScore)
9565 class _TrivialDecorator(Decorator):
9566  r"""Proxy of C++ IMP::internal::_TrivialDecorator class."""
9567 
9568  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9569 
9570  def __init__(self, *args):
9571  r"""
9572  __init__(_TrivialDecorator self) -> _TrivialDecorator
9573  __init__(_TrivialDecorator self, Model m, ParticleIndex id) -> _TrivialDecorator
9574  __init__(_TrivialDecorator self, _ParticleAdaptor d) -> _TrivialDecorator
9575  """
9576  _IMP_kernel._TrivialDecorator_swiginit(self, _IMP_kernel.new__TrivialDecorator(*args))
9577 
9578  def show(self, *args):
9579  r"""show(_TrivialDecorator self, _ostream out=std::cout)"""
9580  return _IMP_kernel._TrivialDecorator_show(self, *args)
9581 
9582  @staticmethod
9583  def setup_particle(*args):
9584  r"""
9585  setup_particle(Model m, ParticleIndex pi) -> _TrivialDecorator
9586  setup_particle(_ParticleAdaptor pa) -> _TrivialDecorator
9587  """
9588  return _IMP_kernel._TrivialDecorator_setup_particle(*args)
9589 
9590  @staticmethod
9591  def get_is_setup(*args):
9592  r"""
9593  get_is_setup(_ParticleAdaptor p) -> bool
9594  get_is_setup(Model m, ParticleIndex pi) -> bool
9595  """
9596  return _IMP_kernel._TrivialDecorator_get_is_setup(*args)
9597 
9598  def add_attribute(self, *args):
9599  r"""
9600  add_attribute(_TrivialDecorator self, FloatKey k, IMP::Float v, bool opt)
9601  add_attribute(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9602  add_attribute(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9603  add_attribute(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9604  add_attribute(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9605  add_attribute(_TrivialDecorator self, StringKey a0, IMP::String a1)
9606  add_attribute(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9607  add_attribute(_TrivialDecorator self, ObjectKey a0, Object a1)
9608  add_attribute(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9609  add_attribute(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9610  add_attribute(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9611  add_attribute(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9612  """
9613  return _IMP_kernel._TrivialDecorator_add_attribute(self, *args)
9614 
9615  def get_value(self, *args):
9616  r"""
9617  get_value(_TrivialDecorator self, FloatKey a0) -> IMP::Float
9618  get_value(_TrivialDecorator self, IntKey a0) -> IMP::Int
9619  get_value(_TrivialDecorator self, FloatsKey a0) -> IMP::Floats
9620  get_value(_TrivialDecorator self, IntsKey a0) -> IMP::Ints
9621  get_value(_TrivialDecorator self, StringKey a0) -> IMP::String
9622  get_value(_TrivialDecorator self, ParticleIndexKey a0) -> Particle
9623  get_value(_TrivialDecorator self, ObjectKey a0) -> Object
9624  get_value(_TrivialDecorator self, SparseFloatKey a0) -> IMP::Float
9625  get_value(_TrivialDecorator self, SparseIntKey a0) -> IMP::Int
9626  get_value(_TrivialDecorator self, SparseStringKey a0) -> IMP::String
9627  get_value(_TrivialDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9628  """
9629  return _IMP_kernel._TrivialDecorator_get_value(self, *args)
9630 
9631  def set_value(self, *args):
9632  r"""
9633  set_value(_TrivialDecorator self, FloatKey a0, IMP::Float a1)
9634  set_value(_TrivialDecorator self, IntKey a0, IMP::Int a1)
9635  set_value(_TrivialDecorator self, FloatsKey a0, IMP::Floats a1)
9636  set_value(_TrivialDecorator self, IntsKey a0, IMP::Ints a1)
9637  set_value(_TrivialDecorator self, StringKey a0, IMP::String a1)
9638  set_value(_TrivialDecorator self, ParticleIndexKey a0, Particle a1)
9639  set_value(_TrivialDecorator self, ObjectKey a0, Object a1)
9640  set_value(_TrivialDecorator self, SparseFloatKey a0, IMP::Float a1)
9641  set_value(_TrivialDecorator self, SparseIntKey a0, IMP::Int a1)
9642  set_value(_TrivialDecorator self, SparseStringKey a0, IMP::String a1)
9643  set_value(_TrivialDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9644  """
9645  return _IMP_kernel._TrivialDecorator_set_value(self, *args)
9646 
9647  def remove_attribute(self, *args):
9648  r"""
9649  remove_attribute(_TrivialDecorator self, FloatKey a0)
9650  remove_attribute(_TrivialDecorator self, IntKey a0)
9651  remove_attribute(_TrivialDecorator self, FloatsKey a0)
9652  remove_attribute(_TrivialDecorator self, IntsKey a0)
9653  remove_attribute(_TrivialDecorator self, StringKey a0)
9654  remove_attribute(_TrivialDecorator self, ParticleIndexKey a0)
9655  remove_attribute(_TrivialDecorator self, ObjectKey a0)
9656  remove_attribute(_TrivialDecorator self, SparseFloatKey a0)
9657  remove_attribute(_TrivialDecorator self, SparseIntKey a0)
9658  remove_attribute(_TrivialDecorator self, SparseStringKey a0)
9659  remove_attribute(_TrivialDecorator self, SparseParticleIndexKey a0)
9660  """
9661  return _IMP_kernel._TrivialDecorator_remove_attribute(self, *args)
9662 
9663  def has_attribute(self, *args):
9664  r"""
9665  has_attribute(_TrivialDecorator self, FloatKey a0) -> bool
9666  has_attribute(_TrivialDecorator self, IntKey a0) -> bool
9667  has_attribute(_TrivialDecorator self, FloatsKey a0) -> bool
9668  has_attribute(_TrivialDecorator self, IntsKey a0) -> bool
9669  has_attribute(_TrivialDecorator self, StringKey a0) -> bool
9670  has_attribute(_TrivialDecorator self, ParticleIndexKey a0) -> bool
9671  has_attribute(_TrivialDecorator self, ObjectKey a0) -> bool
9672  has_attribute(_TrivialDecorator self, SparseFloatKey a0) -> bool
9673  has_attribute(_TrivialDecorator self, SparseIntKey a0) -> bool
9674  has_attribute(_TrivialDecorator self, SparseStringKey a0) -> bool
9675  has_attribute(_TrivialDecorator self, SparseParticleIndexKey a0) -> bool
9676  """
9677  return _IMP_kernel._TrivialDecorator_has_attribute(self, *args)
9678 
9679  def get_derivative(self, a0):
9680  r"""get_derivative(_TrivialDecorator self, FloatKey a0) -> double"""
9681  return _IMP_kernel._TrivialDecorator_get_derivative(self, a0)
9682 
9683  def get_name(self):
9684  r"""get_name(_TrivialDecorator self) -> std::string"""
9685  return _IMP_kernel._TrivialDecorator_get_name(self)
9686 
9687  def clear_caches(self):
9688  r"""clear_caches(_TrivialDecorator self)"""
9689  return _IMP_kernel._TrivialDecorator_clear_caches(self)
9690 
9691  def set_name(self, a0):
9692  r"""set_name(_TrivialDecorator self, std::string a0)"""
9693  return _IMP_kernel._TrivialDecorator_set_name(self, a0)
9694 
9695  def set_check_level(self, a0):
9696  r"""set_check_level(_TrivialDecorator self, IMP::CheckLevel a0)"""
9697  return _IMP_kernel._TrivialDecorator_set_check_level(self, a0)
9698 
9699  def add_to_derivative(self, a0, a1, a2):
9700  r"""add_to_derivative(_TrivialDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9701  return _IMP_kernel._TrivialDecorator_add_to_derivative(self, a0, a1, a2)
9702 
9703  def set_is_optimized(self, a0, a1):
9704  r"""set_is_optimized(_TrivialDecorator self, FloatKey a0, bool a1)"""
9705  return _IMP_kernel._TrivialDecorator_set_is_optimized(self, a0, a1)
9706 
9707  def get_is_optimized(self, a0):
9708  r"""get_is_optimized(_TrivialDecorator self, FloatKey a0) -> bool"""
9709  return _IMP_kernel._TrivialDecorator_get_is_optimized(self, a0)
9710 
9711  def get_check_level(self):
9712  r"""get_check_level(_TrivialDecorator self) -> IMP::CheckLevel"""
9713  return _IMP_kernel._TrivialDecorator_get_check_level(self)
9714 
9715  def __eq__(self, *args):
9716  r"""
9717  __eq__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9718  __eq__(_TrivialDecorator self, Particle d) -> bool
9719  """
9720  return _IMP_kernel._TrivialDecorator___eq__(self, *args)
9721 
9722  def __ne__(self, *args):
9723  r"""
9724  __ne__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9725  __ne__(_TrivialDecorator self, Particle d) -> bool
9726  """
9727  return _IMP_kernel._TrivialDecorator___ne__(self, *args)
9728 
9729  def __le__(self, *args):
9730  r"""
9731  __le__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9732  __le__(_TrivialDecorator self, Particle d) -> bool
9733  """
9734  return _IMP_kernel._TrivialDecorator___le__(self, *args)
9735 
9736  def __lt__(self, *args):
9737  r"""
9738  __lt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9739  __lt__(_TrivialDecorator self, Particle d) -> bool
9740  """
9741  return _IMP_kernel._TrivialDecorator___lt__(self, *args)
9742 
9743  def __ge__(self, *args):
9744  r"""
9745  __ge__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9746  __ge__(_TrivialDecorator self, Particle d) -> bool
9747  """
9748  return _IMP_kernel._TrivialDecorator___ge__(self, *args)
9749 
9750  def __gt__(self, *args):
9751  r"""
9752  __gt__(_TrivialDecorator self, _TrivialDecorator o) -> bool
9753  __gt__(_TrivialDecorator self, Particle d) -> bool
9754  """
9755  return _IMP_kernel._TrivialDecorator___gt__(self, *args)
9756 
9757  def __hash__(self):
9758  r"""__hash__(_TrivialDecorator self) -> std::size_t"""
9759  return _IMP_kernel._TrivialDecorator___hash__(self)
9760 
9761  def __str__(self):
9762  r"""__str__(_TrivialDecorator self) -> std::string"""
9763  return _IMP_kernel._TrivialDecorator___str__(self)
9764 
9765  def __repr__(self):
9766  r"""__repr__(_TrivialDecorator self) -> std::string"""
9767  return _IMP_kernel._TrivialDecorator___repr__(self)
9768 
9769  def _get_as_binary(self):
9770  r"""_get_as_binary(_TrivialDecorator self) -> PyObject *"""
9771  return _IMP_kernel._TrivialDecorator__get_as_binary(self)
9772 
9773  def _set_from_binary(self, p):
9774  r"""_set_from_binary(_TrivialDecorator self, PyObject * p)"""
9775  return _IMP_kernel._TrivialDecorator__set_from_binary(self, p)
9776 
9777  def __getstate__(self):
9778  p = self._get_as_binary()
9779  if len(self.__dict__) > 1:
9780  d = self.__dict__.copy()
9781  del d['this']
9782  p = (d, p)
9783  return p
9784 
9785  def __setstate__(self, p):
9786  if not hasattr(self, 'this'):
9787  self.__init__()
9788  if isinstance(p, tuple):
9789  d, p = p
9790  self.__dict__.update(d)
9791  return self._set_from_binary(p)
9792 
9793  __swig_destroy__ = _IMP_kernel.delete__TrivialDecorator
9794 
9795 # Register _TrivialDecorator in _IMP_kernel:
9796 _IMP_kernel._TrivialDecorator_swigregister(_TrivialDecorator)
9797 class _TrivialDerivedDecorator(_TrivialDecorator):
9798  r"""Proxy of C++ IMP::internal::_TrivialDerivedDecorator class."""
9799 
9800  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
9801 
9802  def __init__(self, *args):
9803  r"""
9804  __init__(_TrivialDerivedDecorator self) -> _TrivialDerivedDecorator
9805  __init__(_TrivialDerivedDecorator self, Model m, ParticleIndex id) -> _TrivialDerivedDecorator
9806  __init__(_TrivialDerivedDecorator self, _ParticleAdaptor d) -> _TrivialDerivedDecorator
9807  """
9808  _IMP_kernel._TrivialDerivedDecorator_swiginit(self, _IMP_kernel.new__TrivialDerivedDecorator(*args))
9809 
9810  def show(self, *args):
9811  r"""show(_TrivialDerivedDecorator self, _ostream out=std::cout)"""
9812  return _IMP_kernel._TrivialDerivedDecorator_show(self, *args)
9813 
9814  @staticmethod
9815  def setup_particle(*args):
9816  r"""
9817  setup_particle(Model m, ParticleIndex pi) -> _TrivialDerivedDecorator
9818  setup_particle(_ParticleAdaptor pa) -> _TrivialDerivedDecorator
9819  """
9820  return _IMP_kernel._TrivialDerivedDecorator_setup_particle(*args)
9821 
9822  @staticmethod
9823  def get_is_setup(*args):
9824  r"""
9825  get_is_setup(_ParticleAdaptor p) -> bool
9826  get_is_setup(Model m, ParticleIndex pi) -> bool
9827  """
9828  return _IMP_kernel._TrivialDerivedDecorator_get_is_setup(*args)
9829 
9830  def add_attribute(self, *args):
9831  r"""
9832  add_attribute(_TrivialDerivedDecorator self, FloatKey k, IMP::Float v, bool opt)
9833  add_attribute(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
9834  add_attribute(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
9835  add_attribute(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
9836  add_attribute(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
9837  add_attribute(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
9838  add_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
9839  add_attribute(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
9840  add_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
9841  add_attribute(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
9842  add_attribute(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
9843  add_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9844  """
9845  return _IMP_kernel._TrivialDerivedDecorator_add_attribute(self, *args)
9846 
9847  def get_value(self, *args):
9848  r"""
9849  get_value(_TrivialDerivedDecorator self, FloatKey a0) -> IMP::Float
9850  get_value(_TrivialDerivedDecorator self, IntKey a0) -> IMP::Int
9851  get_value(_TrivialDerivedDecorator self, FloatsKey a0) -> IMP::Floats
9852  get_value(_TrivialDerivedDecorator self, IntsKey a0) -> IMP::Ints
9853  get_value(_TrivialDerivedDecorator self, StringKey a0) -> IMP::String
9854  get_value(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> Particle
9855  get_value(_TrivialDerivedDecorator self, ObjectKey a0) -> Object
9856  get_value(_TrivialDerivedDecorator self, SparseFloatKey a0) -> IMP::Float
9857  get_value(_TrivialDerivedDecorator self, SparseIntKey a0) -> IMP::Int
9858  get_value(_TrivialDerivedDecorator self, SparseStringKey a0) -> IMP::String
9859  get_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
9860  """
9861  return _IMP_kernel._TrivialDerivedDecorator_get_value(self, *args)
9862 
9863  def set_value(self, *args):
9864  r"""
9865  set_value(_TrivialDerivedDecorator self, FloatKey a0, IMP::Float a1)
9866  set_value(_TrivialDerivedDecorator self, IntKey a0, IMP::Int a1)
9867  set_value(_TrivialDerivedDecorator self, FloatsKey a0, IMP::Floats a1)
9868  set_value(_TrivialDerivedDecorator self, IntsKey a0, IMP::Ints a1)
9869  set_value(_TrivialDerivedDecorator self, StringKey a0, IMP::String a1)
9870  set_value(_TrivialDerivedDecorator self, ParticleIndexKey a0, Particle a1)
9871  set_value(_TrivialDerivedDecorator self, ObjectKey a0, Object a1)
9872  set_value(_TrivialDerivedDecorator self, SparseFloatKey a0, IMP::Float a1)
9873  set_value(_TrivialDerivedDecorator self, SparseIntKey a0, IMP::Int a1)
9874  set_value(_TrivialDerivedDecorator self, SparseStringKey a0, IMP::String a1)
9875  set_value(_TrivialDerivedDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
9876  """
9877  return _IMP_kernel._TrivialDerivedDecorator_set_value(self, *args)
9878 
9879  def remove_attribute(self, *args):
9880  r"""
9881  remove_attribute(_TrivialDerivedDecorator self, FloatKey a0)
9882  remove_attribute(_TrivialDerivedDecorator self, IntKey a0)
9883  remove_attribute(_TrivialDerivedDecorator self, FloatsKey a0)
9884  remove_attribute(_TrivialDerivedDecorator self, IntsKey a0)
9885  remove_attribute(_TrivialDerivedDecorator self, StringKey a0)
9886  remove_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0)
9887  remove_attribute(_TrivialDerivedDecorator self, ObjectKey a0)
9888  remove_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0)
9889  remove_attribute(_TrivialDerivedDecorator self, SparseIntKey a0)
9890  remove_attribute(_TrivialDerivedDecorator self, SparseStringKey a0)
9891  remove_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0)
9892  """
9893  return _IMP_kernel._TrivialDerivedDecorator_remove_attribute(self, *args)
9894 
9895  def has_attribute(self, *args):
9896  r"""
9897  has_attribute(_TrivialDerivedDecorator self, FloatKey a0) -> bool
9898  has_attribute(_TrivialDerivedDecorator self, IntKey a0) -> bool
9899  has_attribute(_TrivialDerivedDecorator self, FloatsKey a0) -> bool
9900  has_attribute(_TrivialDerivedDecorator self, IntsKey a0) -> bool
9901  has_attribute(_TrivialDerivedDecorator self, StringKey a0) -> bool
9902  has_attribute(_TrivialDerivedDecorator self, ParticleIndexKey a0) -> bool
9903  has_attribute(_TrivialDerivedDecorator self, ObjectKey a0) -> bool
9904  has_attribute(_TrivialDerivedDecorator self, SparseFloatKey a0) -> bool
9905  has_attribute(_TrivialDerivedDecorator self, SparseIntKey a0) -> bool
9906  has_attribute(_TrivialDerivedDecorator self, SparseStringKey a0) -> bool
9907  has_attribute(_TrivialDerivedDecorator self, SparseParticleIndexKey a0) -> bool
9908  """
9909  return _IMP_kernel._TrivialDerivedDecorator_has_attribute(self, *args)
9910 
9911  def get_derivative(self, a0):
9912  r"""get_derivative(_TrivialDerivedDecorator self, FloatKey a0) -> double"""
9913  return _IMP_kernel._TrivialDerivedDecorator_get_derivative(self, a0)
9914 
9915  def get_name(self):
9916  r"""get_name(_TrivialDerivedDecorator self) -> std::string"""
9917  return _IMP_kernel._TrivialDerivedDecorator_get_name(self)
9918 
9919  def clear_caches(self):
9920  r"""clear_caches(_TrivialDerivedDecorator self)"""
9921  return _IMP_kernel._TrivialDerivedDecorator_clear_caches(self)
9922 
9923  def set_name(self, a0):
9924  r"""set_name(_TrivialDerivedDecorator self, std::string a0)"""
9925  return _IMP_kernel._TrivialDerivedDecorator_set_name(self, a0)
9926 
9927  def set_check_level(self, a0):
9928  r"""set_check_level(_TrivialDerivedDecorator self, IMP::CheckLevel a0)"""
9929  return _IMP_kernel._TrivialDerivedDecorator_set_check_level(self, a0)
9930 
9931  def add_to_derivative(self, a0, a1, a2):
9932  r"""add_to_derivative(_TrivialDerivedDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
9933  return _IMP_kernel._TrivialDerivedDecorator_add_to_derivative(self, a0, a1, a2)
9934 
9935  def set_is_optimized(self, a0, a1):
9936  r"""set_is_optimized(_TrivialDerivedDecorator self, FloatKey a0, bool a1)"""
9937  return _IMP_kernel._TrivialDerivedDecorator_set_is_optimized(self, a0, a1)
9938 
9939  def get_is_optimized(self, a0):
9940  r"""get_is_optimized(_TrivialDerivedDecorator self, FloatKey a0) -> bool"""
9941  return _IMP_kernel._TrivialDerivedDecorator_get_is_optimized(self, a0)
9942 
9943  def get_check_level(self):
9944  r"""get_check_level(_TrivialDerivedDecorator self) -> IMP::CheckLevel"""
9945  return _IMP_kernel._TrivialDerivedDecorator_get_check_level(self)
9946 
9947  def __eq__(self, *args):
9948  r"""
9949  __eq__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9950  __eq__(_TrivialDerivedDecorator self, Particle d) -> bool
9951  """
9952  return _IMP_kernel._TrivialDerivedDecorator___eq__(self, *args)
9953 
9954  def __ne__(self, *args):
9955  r"""
9956  __ne__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9957  __ne__(_TrivialDerivedDecorator self, Particle d) -> bool
9958  """
9959  return _IMP_kernel._TrivialDerivedDecorator___ne__(self, *args)
9960 
9961  def __le__(self, *args):
9962  r"""
9963  __le__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9964  __le__(_TrivialDerivedDecorator self, Particle d) -> bool
9965  """
9966  return _IMP_kernel._TrivialDerivedDecorator___le__(self, *args)
9967 
9968  def __lt__(self, *args):
9969  r"""
9970  __lt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9971  __lt__(_TrivialDerivedDecorator self, Particle d) -> bool
9972  """
9973  return _IMP_kernel._TrivialDerivedDecorator___lt__(self, *args)
9974 
9975  def __ge__(self, *args):
9976  r"""
9977  __ge__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9978  __ge__(_TrivialDerivedDecorator self, Particle d) -> bool
9979  """
9980  return _IMP_kernel._TrivialDerivedDecorator___ge__(self, *args)
9981 
9982  def __gt__(self, *args):
9983  r"""
9984  __gt__(_TrivialDerivedDecorator self, _TrivialDerivedDecorator o) -> bool
9985  __gt__(_TrivialDerivedDecorator self, Particle d) -> bool
9986  """
9987  return _IMP_kernel._TrivialDerivedDecorator___gt__(self, *args)
9988 
9989  def __hash__(self):
9990  r"""__hash__(_TrivialDerivedDecorator self) -> std::size_t"""
9991  return _IMP_kernel._TrivialDerivedDecorator___hash__(self)
9992 
9993  def __str__(self):
9994  r"""__str__(_TrivialDerivedDecorator self) -> std::string"""
9995  return _IMP_kernel._TrivialDerivedDecorator___str__(self)
9996 
9997  def __repr__(self):
9998  r"""__repr__(_TrivialDerivedDecorator self) -> std::string"""
9999  return _IMP_kernel._TrivialDerivedDecorator___repr__(self)
10000 
10001  def _get_as_binary(self):
10002  r"""_get_as_binary(_TrivialDerivedDecorator self) -> PyObject *"""
10003  return _IMP_kernel._TrivialDerivedDecorator__get_as_binary(self)
10004 
10005  def _set_from_binary(self, p):
10006  r"""_set_from_binary(_TrivialDerivedDecorator self, PyObject * p)"""
10007  return _IMP_kernel._TrivialDerivedDecorator__set_from_binary(self, p)
10008 
10009  def __getstate__(self):
10010  p = self._get_as_binary()
10011  if len(self.__dict__) > 1:
10012  d = self.__dict__.copy()
10013  del d['this']
10014  p = (d, p)
10015  return p
10016 
10017  def __setstate__(self, p):
10018  if not hasattr(self, 'this'):
10019  self.__init__()
10020  if isinstance(p, tuple):
10021  d, p = p
10022  self.__dict__.update(d)
10023  return self._set_from_binary(p)
10024 
10025  __swig_destroy__ = _IMP_kernel.delete__TrivialDerivedDecorator
10026 
10027 # Register _TrivialDerivedDecorator in _IMP_kernel:
10028 _IMP_kernel._TrivialDerivedDecorator_swigregister(_TrivialDerivedDecorator)
10029 class _TrivialTraitsDecorator(Decorator):
10030  r"""Proxy of C++ IMP::internal::_TrivialTraitsDecorator class."""
10031 
10032  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10033 
10034  def get_decorator_traits(self):
10035  r"""get_decorator_traits(_TrivialTraitsDecorator self) -> StringKey"""
10036  return _IMP_kernel._TrivialTraitsDecorator_get_decorator_traits(self)
10037 
10038  @staticmethod
10039  def get_default_decorator_traits():
10040  r"""get_default_decorator_traits() -> StringKey"""
10041  return _IMP_kernel._TrivialTraitsDecorator_get_default_decorator_traits()
10042 
10043  def __init__(self, *args):
10044  r"""
10045  __init__(_TrivialTraitsDecorator self) -> _TrivialTraitsDecorator
10046  __init__(_TrivialTraitsDecorator self, Model m, ParticleIndex id, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10047  __init__(_TrivialTraitsDecorator self, _ParticleAdaptor d, StringKey tr=get_default_key()) -> _TrivialTraitsDecorator
10048  """
10049  _IMP_kernel._TrivialTraitsDecorator_swiginit(self, _IMP_kernel.new__TrivialTraitsDecorator(*args))
10050 
10051  def show(self, *args):
10052  r"""show(_TrivialTraitsDecorator self, _ostream out=std::cout)"""
10053  return _IMP_kernel._TrivialTraitsDecorator_show(self, *args)
10054 
10055  @staticmethod
10056  def setup_particle(*args):
10057  r"""
10058  setup_particle(Model m, ParticleIndex pi, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10059  setup_particle(_ParticleAdaptor d, StringKey tr=IMP::internal::_TrivialTraitsDecorator::get_default_decorator_traits()) -> _TrivialTraitsDecorator
10060  """
10061  return _IMP_kernel._TrivialTraitsDecorator_setup_particle(*args)
10062 
10063  @staticmethod
10064  def get_is_setup(*args):
10065  r"""
10066  get_is_setup(_ParticleAdaptor p, StringKey tr=get_default_key()) -> bool
10067  get_is_setup(Model m, ParticleIndex pi, StringKey k=get_default_key()) -> bool
10068  """
10069  return _IMP_kernel._TrivialTraitsDecorator_get_is_setup(*args)
10070 
10071  @staticmethod
10072  def get_default_key():
10073  r"""get_default_key() -> StringKey"""
10074  return _IMP_kernel._TrivialTraitsDecorator_get_default_key()
10075 
10076  def add_attribute(self, *args):
10077  r"""
10078  add_attribute(_TrivialTraitsDecorator self, FloatKey k, IMP::Float v, bool opt)
10079  add_attribute(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10080  add_attribute(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10081  add_attribute(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10082  add_attribute(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10083  add_attribute(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10084  add_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10085  add_attribute(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10086  add_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10087  add_attribute(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10088  add_attribute(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10089  add_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10090  """
10091  return _IMP_kernel._TrivialTraitsDecorator_add_attribute(self, *args)
10092 
10093  def get_value(self, *args):
10094  r"""
10095  get_value(_TrivialTraitsDecorator self, FloatKey a0) -> IMP::Float
10096  get_value(_TrivialTraitsDecorator self, IntKey a0) -> IMP::Int
10097  get_value(_TrivialTraitsDecorator self, FloatsKey a0) -> IMP::Floats
10098  get_value(_TrivialTraitsDecorator self, IntsKey a0) -> IMP::Ints
10099  get_value(_TrivialTraitsDecorator self, StringKey a0) -> IMP::String
10100  get_value(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> Particle
10101  get_value(_TrivialTraitsDecorator self, ObjectKey a0) -> Object
10102  get_value(_TrivialTraitsDecorator self, SparseFloatKey a0) -> IMP::Float
10103  get_value(_TrivialTraitsDecorator self, SparseIntKey a0) -> IMP::Int
10104  get_value(_TrivialTraitsDecorator self, SparseStringKey a0) -> IMP::String
10105  get_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> ParticleIndex
10106  """
10107  return _IMP_kernel._TrivialTraitsDecorator_get_value(self, *args)
10108 
10109  def set_value(self, *args):
10110  r"""
10111  set_value(_TrivialTraitsDecorator self, FloatKey a0, IMP::Float a1)
10112  set_value(_TrivialTraitsDecorator self, IntKey a0, IMP::Int a1)
10113  set_value(_TrivialTraitsDecorator self, FloatsKey a0, IMP::Floats a1)
10114  set_value(_TrivialTraitsDecorator self, IntsKey a0, IMP::Ints a1)
10115  set_value(_TrivialTraitsDecorator self, StringKey a0, IMP::String a1)
10116  set_value(_TrivialTraitsDecorator self, ParticleIndexKey a0, Particle a1)
10117  set_value(_TrivialTraitsDecorator self, ObjectKey a0, Object a1)
10118  set_value(_TrivialTraitsDecorator self, SparseFloatKey a0, IMP::Float a1)
10119  set_value(_TrivialTraitsDecorator self, SparseIntKey a0, IMP::Int a1)
10120  set_value(_TrivialTraitsDecorator self, SparseStringKey a0, IMP::String a1)
10121  set_value(_TrivialTraitsDecorator self, SparseParticleIndexKey a0, ParticleIndex a1)
10122  """
10123  return _IMP_kernel._TrivialTraitsDecorator_set_value(self, *args)
10124 
10125  def remove_attribute(self, *args):
10126  r"""
10127  remove_attribute(_TrivialTraitsDecorator self, FloatKey a0)
10128  remove_attribute(_TrivialTraitsDecorator self, IntKey a0)
10129  remove_attribute(_TrivialTraitsDecorator self, FloatsKey a0)
10130  remove_attribute(_TrivialTraitsDecorator self, IntsKey a0)
10131  remove_attribute(_TrivialTraitsDecorator self, StringKey a0)
10132  remove_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0)
10133  remove_attribute(_TrivialTraitsDecorator self, ObjectKey a0)
10134  remove_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0)
10135  remove_attribute(_TrivialTraitsDecorator self, SparseIntKey a0)
10136  remove_attribute(_TrivialTraitsDecorator self, SparseStringKey a0)
10137  remove_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0)
10138  """
10139  return _IMP_kernel._TrivialTraitsDecorator_remove_attribute(self, *args)
10140 
10141  def has_attribute(self, *args):
10142  r"""
10143  has_attribute(_TrivialTraitsDecorator self, FloatKey a0) -> bool
10144  has_attribute(_TrivialTraitsDecorator self, IntKey a0) -> bool
10145  has_attribute(_TrivialTraitsDecorator self, FloatsKey a0) -> bool
10146  has_attribute(_TrivialTraitsDecorator self, IntsKey a0) -> bool
10147  has_attribute(_TrivialTraitsDecorator self, StringKey a0) -> bool
10148  has_attribute(_TrivialTraitsDecorator self, ParticleIndexKey a0) -> bool
10149  has_attribute(_TrivialTraitsDecorator self, ObjectKey a0) -> bool
10150  has_attribute(_TrivialTraitsDecorator self, SparseFloatKey a0) -> bool
10151  has_attribute(_TrivialTraitsDecorator self, SparseIntKey a0) -> bool
10152  has_attribute(_TrivialTraitsDecorator self, SparseStringKey a0) -> bool
10153  has_attribute(_TrivialTraitsDecorator self, SparseParticleIndexKey a0) -> bool
10154  """
10155  return _IMP_kernel._TrivialTraitsDecorator_has_attribute(self, *args)
10156 
10157  def get_derivative(self, a0):
10158  r"""get_derivative(_TrivialTraitsDecorator self, FloatKey a0) -> double"""
10159  return _IMP_kernel._TrivialTraitsDecorator_get_derivative(self, a0)
10160 
10161  def get_name(self):
10162  r"""get_name(_TrivialTraitsDecorator self) -> std::string"""
10163  return _IMP_kernel._TrivialTraitsDecorator_get_name(self)
10164 
10165  def clear_caches(self):
10166  r"""clear_caches(_TrivialTraitsDecorator self)"""
10167  return _IMP_kernel._TrivialTraitsDecorator_clear_caches(self)
10168 
10169  def set_name(self, a0):
10170  r"""set_name(_TrivialTraitsDecorator self, std::string a0)"""
10171  return _IMP_kernel._TrivialTraitsDecorator_set_name(self, a0)
10172 
10173  def set_check_level(self, a0):
10174  r"""set_check_level(_TrivialTraitsDecorator self, IMP::CheckLevel a0)"""
10175  return _IMP_kernel._TrivialTraitsDecorator_set_check_level(self, a0)
10176 
10177  def add_to_derivative(self, a0, a1, a2):
10178  r"""add_to_derivative(_TrivialTraitsDecorator self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
10179  return _IMP_kernel._TrivialTraitsDecorator_add_to_derivative(self, a0, a1, a2)
10180 
10181  def set_is_optimized(self, a0, a1):
10182  r"""set_is_optimized(_TrivialTraitsDecorator self, FloatKey a0, bool a1)"""
10183  return _IMP_kernel._TrivialTraitsDecorator_set_is_optimized(self, a0, a1)
10184 
10185  def get_is_optimized(self, a0):
10186  r"""get_is_optimized(_TrivialTraitsDecorator self, FloatKey a0) -> bool"""
10187  return _IMP_kernel._TrivialTraitsDecorator_get_is_optimized(self, a0)
10188 
10189  def get_check_level(self):
10190  r"""get_check_level(_TrivialTraitsDecorator self) -> IMP::CheckLevel"""
10191  return _IMP_kernel._TrivialTraitsDecorator_get_check_level(self)
10192 
10193  def __eq__(self, *args):
10194  r"""
10195  __eq__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10196  __eq__(_TrivialTraitsDecorator self, Particle d) -> bool
10197  """
10198  return _IMP_kernel._TrivialTraitsDecorator___eq__(self, *args)
10199 
10200  def __ne__(self, *args):
10201  r"""
10202  __ne__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10203  __ne__(_TrivialTraitsDecorator self, Particle d) -> bool
10204  """
10205  return _IMP_kernel._TrivialTraitsDecorator___ne__(self, *args)
10206 
10207  def __le__(self, *args):
10208  r"""
10209  __le__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10210  __le__(_TrivialTraitsDecorator self, Particle d) -> bool
10211  """
10212  return _IMP_kernel._TrivialTraitsDecorator___le__(self, *args)
10213 
10214  def __lt__(self, *args):
10215  r"""
10216  __lt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10217  __lt__(_TrivialTraitsDecorator self, Particle d) -> bool
10218  """
10219  return _IMP_kernel._TrivialTraitsDecorator___lt__(self, *args)
10220 
10221  def __ge__(self, *args):
10222  r"""
10223  __ge__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10224  __ge__(_TrivialTraitsDecorator self, Particle d) -> bool
10225  """
10226  return _IMP_kernel._TrivialTraitsDecorator___ge__(self, *args)
10227 
10228  def __gt__(self, *args):
10229  r"""
10230  __gt__(_TrivialTraitsDecorator self, _TrivialTraitsDecorator o) -> bool
10231  __gt__(_TrivialTraitsDecorator self, Particle d) -> bool
10232  """
10233  return _IMP_kernel._TrivialTraitsDecorator___gt__(self, *args)
10234 
10235  def __hash__(self):
10236  r"""__hash__(_TrivialTraitsDecorator self) -> std::size_t"""
10237  return _IMP_kernel._TrivialTraitsDecorator___hash__(self)
10238 
10239  def __str__(self):
10240  r"""__str__(_TrivialTraitsDecorator self) -> std::string"""
10241  return _IMP_kernel._TrivialTraitsDecorator___str__(self)
10242 
10243  def __repr__(self):
10244  r"""__repr__(_TrivialTraitsDecorator self) -> std::string"""
10245  return _IMP_kernel._TrivialTraitsDecorator___repr__(self)
10246  __swig_destroy__ = _IMP_kernel.delete__TrivialTraitsDecorator
10247 
10248 # Register _TrivialTraitsDecorator in _IMP_kernel:
10249 _IMP_kernel._TrivialTraitsDecorator_swigregister(_TrivialTraitsDecorator)
10250 
10251 def __lshift__(*args):
10252  r"""
10253  __lshift__(_ostream out, _TrivialDecorator n) -> _ostream
10254  __lshift__(_ostream out, _TrivialDerivedDecorator n) -> _ostream
10255  __lshift__(_ostream out, _TrivialTraitsDecorator n) -> _ostream
10256  """
10257  return _IMP_kernel.__lshift__(*args)
10258 class _ConstOptimizer(Optimizer):
10259  r"""Proxy of C++ IMP::internal::_ConstOptimizer class."""
10260 
10261  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10262 
10263  def __init__(self, *args):
10264  r"""
10265  __init__(_ConstOptimizer self, Model m) -> _ConstOptimizer
10266  __init__(_ConstOptimizer self) -> _ConstOptimizer
10267  """
10268  _IMP_kernel._ConstOptimizer_swiginit(self, _IMP_kernel.new__ConstOptimizer(*args))
10269 
10270  def do_optimize(self, max_steps):
10271  r"""do_optimize(_ConstOptimizer self, unsigned int max_steps) -> IMP::Float"""
10272  return _IMP_kernel._ConstOptimizer_do_optimize(self, max_steps)
10273 
10274  def get_version_info(self):
10275  r"""get_version_info(_ConstOptimizer self) -> VersionInfo"""
10276  return _IMP_kernel._ConstOptimizer_get_version_info(self)
10277  __swig_destroy__ = _IMP_kernel.delete__ConstOptimizer
10278 
10279  def __str__(self):
10280  r"""__str__(_ConstOptimizer self) -> std::string"""
10281  return _IMP_kernel._ConstOptimizer___str__(self)
10282 
10283  def __repr__(self):
10284  r"""__repr__(_ConstOptimizer self) -> std::string"""
10285  return _IMP_kernel._ConstOptimizer___repr__(self)
10286 
10287  @staticmethod
10288  def get_from(o):
10289  return _object_cast_to__ConstOptimizer(o)
10290 
10291 
10292  def _get_as_binary(self):
10293  r"""_get_as_binary(_ConstOptimizer self) -> PyObject *"""
10294  return _IMP_kernel._ConstOptimizer__get_as_binary(self)
10295 
10296  def _set_from_binary(self, p):
10297  r"""_set_from_binary(_ConstOptimizer self, PyObject * p)"""
10298  return _IMP_kernel._ConstOptimizer__set_from_binary(self, p)
10299 
10300  def __getstate__(self):
10301  p = self._get_as_binary()
10302  if len(self.__dict__) > 1:
10303  d = self.__dict__.copy()
10304  del d['this']
10305  p = (d, p)
10306  return p
10307 
10308  def __setstate__(self, p):
10309  if not hasattr(self, 'this'):
10310  self.__init__()
10311  if isinstance(p, tuple):
10312  d, p = p
10313  self.__dict__.update(d)
10314  return self._set_from_binary(p)
10315 
10316 
10317 # Register _ConstOptimizer in _IMP_kernel:
10318 _IMP_kernel._ConstOptimizer_swigregister(_ConstOptimizer)
10319 
10320 def get_particle(p):
10321  r"""get_particle(Particle p) -> Particle"""
10322  return _IMP_kernel.get_particle(p)
10323 
10324 def _decorator_test(p):
10325  r"""_decorator_test(Particle p)"""
10326  return _IMP_kernel._decorator_test(p)
10327 
10328 def _overloaded_decorator(*args):
10329  r"""
10330  _overloaded_decorator(_TrivialDecorator a) -> int
10331  _overloaded_decorator(_TrivialDerivedDecorator a) -> int
10332  """
10333  return _IMP_kernel._overloaded_decorator(*args)
10334 
10335 def _take_particles(*args):
10336  r"""
10337  _take_particles(IMP::Particles const & ps) -> unsigned int
10338  _take_particles(Model m, IMP::Particles const & ps) -> unsigned int
10339  _take_particles(Model m, IMP::Particles const & ps, TextOutput out) -> unsigned int
10340  """
10341  return _IMP_kernel._take_particles(*args)
10342 
10343 def _give_particles(m):
10344  r"""_give_particles(Model m) -> IMP::Particles const &"""
10345  return _IMP_kernel._give_particles(m)
10346 
10347 def _pass_particles(ps):
10348  r"""_pass_particles(IMP::Particles const & ps) -> IMP::Particles const &"""
10349  return _IMP_kernel._pass_particles(ps)
10350 
10351 def _pass_particle(ps):
10352  r"""_pass_particle(Particle ps) -> Particle"""
10353  return _IMP_kernel._pass_particle(ps)
10354 
10355 def _pass_particle_pair(pp):
10356  r"""_pass_particle_pair(IMP::ParticlePair const & pp) -> IMP::ParticlePair const &"""
10357  return _IMP_kernel._pass_particle_pair(pp)
10358 
10359 def _give_particles_copy(m):
10360  r"""_give_particles_copy(Model m) -> IMP::Particles"""
10361  return _IMP_kernel._give_particles_copy(m)
10362 
10363 def _pass_float_keys(input):
10364  r"""_pass_float_keys(IMP::FloatKeys const & input) -> IMP::FloatKeys"""
10365  return _IMP_kernel._pass_float_keys(input)
10366 
10367 def _pass(*args):
10368  r"""
10369  _pass(IMP::Particles const & p) -> IMP::Particles const
10370  _pass(IMP::Restraints const & p) -> IMP::Restraints const &
10371  """
10372  return _IMP_kernel._pass(*args)
10373 
10374 def _pass_decorators(p):
10375  r"""_pass_decorators(IMP::internal::_TrivialDecorators const & p) -> IMP::internal::_TrivialDecorators const &"""
10376  return _IMP_kernel._pass_decorators(p)
10377 
10378 def _pass_decorator_traits(p):
10379  r"""_pass_decorator_traits(IMP::internal::_TrivialTraitsDecorators const & p) -> IMP::internal::_TrivialTraitsDecorators const &"""
10380  return _IMP_kernel._pass_decorator_traits(p)
10381 
10382 def _pass_particle_pairs(p):
10383  r"""_pass_particle_pairs(IMP::ParticlePairsTemp const & p) -> IMP::ParticlePairsTemp"""
10384  return _IMP_kernel._pass_particle_pairs(p)
10385 
10386 def _pass_particle_index_pairs(p):
10387  r"""_pass_particle_index_pairs(IMP::ParticleIndexPairs const & p) -> IMP::ParticleIndexPairs"""
10388  return _IMP_kernel._pass_particle_index_pairs(p)
10389 
10390 def _pass_model_objects(p):
10391  r"""_pass_model_objects(IMP::ModelObjectsTemp const & p) -> IMP::ModelObjectsTemp"""
10392  return _IMP_kernel._pass_model_objects(p)
10393 
10394 def _pass_particles_temps(ps):
10395  r"""_pass_particles_temps(IMP::ParticlesTemps const & ps) -> IMP::ParticlesTemps"""
10396  return _IMP_kernel._pass_particles_temps(ps)
10397 
10398 def _test_overload(*args):
10399  r"""
10400  _test_overload(IMP::Particles const & ps) -> int
10401  _test_overload(IMP::Restraints const & ps) -> int
10402  """
10403  return _IMP_kernel._test_overload(*args)
10404 
10405 def _get_range(m, k):
10406  r"""_get_range(Model m, FloatKey k) -> IMP::FloatRange"""
10407  return _IMP_kernel._get_range(m, k)
10408 
10409 def _create_particles_from_pdb(name, m):
10410  r"""_create_particles_from_pdb(std::string name, Model m) -> IMP::ParticleIndexes"""
10411  return _IMP_kernel._create_particles_from_pdb(name, m)
10412 class _LogPairScore(PairScore):
10413  r"""Proxy of C++ IMP::internal::_LogPairScore class."""
10414 
10415  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10416  __repr__ = _swig_repr
10417 
10418  def __init__(self):
10419  r"""__init__(_LogPairScore self) -> _LogPairScore"""
10420  _IMP_kernel._LogPairScore_swiginit(self, _IMP_kernel.new__LogPairScore())
10421 
10422  def do_get_inputs(self, arg2, arg3):
10423  r"""do_get_inputs(_LogPairScore self, Model arg2, IMP::ParticleIndexes const & arg3) -> IMP::ModelObjectsTemp"""
10424  return _IMP_kernel._LogPairScore_do_get_inputs(self, arg2, arg3)
10425 
10426  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
10427  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"""
10428  return _IMP_kernel._LogPairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
10429 
10430  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
10431  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"""
10432  return _IMP_kernel._LogPairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
10433 
10434  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
10435  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"""
10436  return _IMP_kernel._LogPairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
10437 
10438  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
10439  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"""
10440  return _IMP_kernel._LogPairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
10441 
10442  def get_version_info(self):
10443  r"""get_version_info(_LogPairScore self) -> VersionInfo"""
10444  return _IMP_kernel._LogPairScore_get_version_info(self)
10445  __swig_destroy__ = _IMP_kernel.delete__LogPairScore
10446 
10447  def get_particle_pairs(self):
10448  r"""get_particle_pairs(_LogPairScore self) -> IMP::ParticlePairsTemp"""
10449  return _IMP_kernel._LogPairScore_get_particle_pairs(self)
10450 
10451  def clear(self):
10452  r"""clear(_LogPairScore self)"""
10453  return _IMP_kernel._LogPairScore_clear(self)
10454 
10455  def get_contains(self, pp):
10456  r"""get_contains(_LogPairScore self, IMP::ParticlePair const & pp) -> bool"""
10457  return _IMP_kernel._LogPairScore_get_contains(self, pp)
10458 
10459 # Register _LogPairScore in _IMP_kernel:
10460 _IMP_kernel._LogPairScore_swigregister(_LogPairScore)
10461 
10462 def _overloaded_particles(*args):
10463  r"""
10464  _overloaded_particles(Particle arg1)
10465  _overloaded_particles(IMP::Particles const & arg1)
10466  _overloaded_particles(IMP::ParticlesTemp const & arg1)
10467  _overloaded_particles(Model arg1, IMP::ParticleIndexes const & arg2)
10468  _overloaded_particles(IMP::internal::_TrivialDecorators const & arg1)
10469  _overloaded_particles(_TrivialDecorator arg1)
10470  """
10471  return _IMP_kernel._overloaded_particles(*args)
10472 class _ImplicitParticles(object):
10473  r"""Proxy of C++ IMP::internal::_ImplicitParticles class."""
10474 
10475  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10476  __repr__ = _swig_repr
10477 
10478  def __init__(self, *args):
10479  r"""
10480  __init__(_ImplicitParticles self, Particle arg2) -> _ImplicitParticles
10481  __init__(_ImplicitParticles self, IMP::Particles const & arg2) -> _ImplicitParticles
10482  __init__(_ImplicitParticles self, IMP::ParticlesTemp const & arg2) -> _ImplicitParticles
10483  __init__(_ImplicitParticles self, Model arg2, IMP::ParticleIndexes const & arg3) -> _ImplicitParticles
10484  __init__(_ImplicitParticles self, IMP::internal::_TrivialDecorators const & arg2) -> _ImplicitParticles
10485  __init__(_ImplicitParticles self, _TrivialDecorator arg2) -> _ImplicitParticles
10486  """
10487  _IMP_kernel._ImplicitParticles_swiginit(self, _IMP_kernel.new__ImplicitParticles(*args))
10488  __swig_destroy__ = _IMP_kernel.delete__ImplicitParticles
10489 
10490 # Register _ImplicitParticles in _IMP_kernel:
10491 _IMP_kernel._ImplicitParticles_swigregister(_ImplicitParticles)
10492 
10493 def _implicit_particles(arg1):
10494  r"""_implicit_particles(_ImplicitParticles arg1)"""
10495  return _IMP_kernel._implicit_particles(arg1)
10496 
10497 def _take_particle_adaptor(pa):
10498  r"""_take_particle_adaptor(_ParticleAdaptor pa) -> ParticleIndex"""
10499  return _IMP_kernel._take_particle_adaptor(pa)
10500 
10501 def _take_particle_indexes_adaptor(pa):
10502  r"""_take_particle_indexes_adaptor(_ParticleIndexesAdaptor pa) -> IMP::ParticleIndexes"""
10503  return _IMP_kernel._take_particle_indexes_adaptor(pa)
10504 class Vector1D(_VectorBase1D):
10505  r"""Proxy of C++ IMP::VectorD< 1 > class."""
10506 
10507  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10508 
10509  def get_unit_vector(self):
10510  r"""get_unit_vector(Vector1D self) -> Vector1D"""
10511  return _IMP_kernel.Vector1D_get_unit_vector(self)
10512 
10513  def __truediv__(self, *args):
10514  return _IMP_kernel.Vector1D___truediv__(self, *args)
10515  __div__ = __truediv__
10516 
10517 
10518 
10519  def __neg__(self):
10520  r"""__neg__(Vector1D self) -> Vector1D"""
10521  return _IMP_kernel.Vector1D___neg__(self)
10522 
10523  def __sub__(self, o):
10524  r"""__sub__(Vector1D self, Vector1D o) -> Vector1D"""
10525  return _IMP_kernel.Vector1D___sub__(self, o)
10526 
10527  def __add__(self, ret):
10528  r"""__add__(Vector1D self, Vector1D ret) -> Vector1D"""
10529  return _IMP_kernel.Vector1D___add__(self, ret)
10530 
10531  def __mul__(self, *args):
10532  r"""
10533  __mul__(Vector1D self, double s) -> Vector1D
10534  __mul__(Vector1D self, Vector1D o) -> double
10535  """
10536  return _IMP_kernel.Vector1D___mul__(self, *args)
10537 
10538  def __init__(self, *args):
10539  r"""
10540  __init__(Vector1D self, IMP::Floats const & f) -> Vector1D
10541  __init__(Vector1D self) -> Vector1D
10542  __init__(Vector1D self, double x) -> Vector1D
10543  """
10544  _IMP_kernel.Vector1D_swiginit(self, _IMP_kernel.new_Vector1D(*args))
10545 
10546  def __iadd__(self, *args):
10547  _IMP_kernel.Vector1D___iadd__(self, *args)
10548  return self
10549 
10550 
10551 
10552  def __imul__(self, *args):
10553  _IMP_kernel.Vector1D___imul__(self, *args)
10554  return self
10555 
10556 
10557 
10558  def __idiv__(self, *args):
10559  _IMP_kernel.Vector1D___idiv__(self, *args)
10560  return self
10561 
10562 
10563 
10564  def __isub__(self, *args):
10565  _IMP_kernel.Vector1D___isub__(self, *args)
10566  return self
10567 
10568 
10569 
10570  def __len__(self):
10571  r"""__len__(Vector1D self) -> unsigned int"""
10572  return _IMP_kernel.Vector1D___len__(self)
10573 
10574  def __rmul__(self, f):
10575  r"""__rmul__(Vector1D self, double f) -> Vector1D"""
10576  return _IMP_kernel.Vector1D___rmul__(self, f)
10577 
10578  def __str__(self):
10579  r"""__str__(Vector1D self) -> std::string"""
10580  return _IMP_kernel.Vector1D___str__(self)
10581 
10582  def __repr__(self):
10583  r"""__repr__(Vector1D self) -> std::string"""
10584  return _IMP_kernel.Vector1D___repr__(self)
10585 
10586  def __cmp__(self, arg2):
10587  r"""__cmp__(Vector1D self, Vector1D arg2) -> int"""
10588  return _IMP_kernel.Vector1D___cmp__(self, arg2)
10589 
10590  def __eq__(self, arg2):
10591  r"""__eq__(Vector1D self, Vector1D arg2) -> bool"""
10592  return _IMP_kernel.Vector1D___eq__(self, arg2)
10593 
10594  __truediv__ = __div__
10595  __itruediv__ = __idiv__
10596 
10597 
10598  def _get_as_binary(self):
10599  r"""_get_as_binary(Vector1D self) -> PyObject *"""
10600  return _IMP_kernel.Vector1D__get_as_binary(self)
10601 
10602  def _set_from_binary(self, p):
10603  r"""_set_from_binary(Vector1D self, PyObject * p)"""
10604  return _IMP_kernel.Vector1D__set_from_binary(self, p)
10605 
10606  def __getstate__(self):
10607  p = self._get_as_binary()
10608  if len(self.__dict__) > 1:
10609  d = self.__dict__.copy()
10610  del d['this']
10611  p = (d, p)
10612  return p
10613 
10614  def __setstate__(self, p):
10615  if not hasattr(self, 'this'):
10616  self.__init__()
10617  if isinstance(p, tuple):
10618  d, p = p
10619  self.__dict__.update(d)
10620  return self._set_from_binary(p)
10621 
10622 
10623  def __getitem__(self, index):
10624  if isinstance(index, slice):
10625  return [self[i] for i in range(*index.indices(len(self)))]
10626  else:
10627  return _IMP_kernel.Vector1D___getitem__(self, index)
10628 
10629 
10630 
10631  def __setitem__(self, index, val):
10632  if isinstance(index, slice):
10633  if not hasattr(val, '__iter__'):
10634  raise TypeError("must assign iterable to extended slice")
10635  inds = range(*index.indices(len(self)))
10636  if len(inds) != len(val):
10637  raise ValueError(
10638  "attempt to assign sequence of size %d "
10639  "to extended slice of size %d" % (len(val), len(inds)))
10640  for ind, v in zip(inds, val):
10641  self[ind] = v
10642  else:
10643  return _IMP_kernel.Vector1D___setitem__(self, index, val)
10644 
10645 
10646  __swig_destroy__ = _IMP_kernel.delete_Vector1D
10647 
10648 # Register Vector1D in _IMP_kernel:
10649 _IMP_kernel.Vector1D_swigregister(Vector1D)
10650 class Vector2D(_VectorBase2D):
10651  r"""Proxy of C++ IMP::VectorD< 2 > class."""
10652 
10653  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10654 
10655  def get_unit_vector(self):
10656  r"""get_unit_vector(Vector2D self) -> Vector2D"""
10657  return _IMP_kernel.Vector2D_get_unit_vector(self)
10658 
10659  def __truediv__(self, *args):
10660  return _IMP_kernel.Vector2D___truediv__(self, *args)
10661  __div__ = __truediv__
10662 
10663 
10664 
10665  def __neg__(self):
10666  r"""__neg__(Vector2D self) -> Vector2D"""
10667  return _IMP_kernel.Vector2D___neg__(self)
10668 
10669  def __sub__(self, o):
10670  r"""__sub__(Vector2D self, Vector2D o) -> Vector2D"""
10671  return _IMP_kernel.Vector2D___sub__(self, o)
10672 
10673  def __add__(self, ret):
10674  r"""__add__(Vector2D self, Vector2D ret) -> Vector2D"""
10675  return _IMP_kernel.Vector2D___add__(self, ret)
10676 
10677  def __mul__(self, *args):
10678  r"""
10679  __mul__(Vector2D self, double s) -> Vector2D
10680  __mul__(Vector2D self, Vector2D o) -> double
10681  """
10682  return _IMP_kernel.Vector2D___mul__(self, *args)
10683 
10684  def __init__(self, *args):
10685  r"""
10686  __init__(Vector2D self, IMP::Floats const & f) -> Vector2D
10687  __init__(Vector2D self) -> Vector2D
10688  __init__(Vector2D self, double x, double y) -> Vector2D
10689  """
10690  _IMP_kernel.Vector2D_swiginit(self, _IMP_kernel.new_Vector2D(*args))
10691 
10692  def __iadd__(self, *args):
10693  _IMP_kernel.Vector2D___iadd__(self, *args)
10694  return self
10695 
10696 
10697 
10698  def __imul__(self, *args):
10699  _IMP_kernel.Vector2D___imul__(self, *args)
10700  return self
10701 
10702 
10703 
10704  def __idiv__(self, *args):
10705  _IMP_kernel.Vector2D___idiv__(self, *args)
10706  return self
10707 
10708 
10709 
10710  def __isub__(self, *args):
10711  _IMP_kernel.Vector2D___isub__(self, *args)
10712  return self
10713 
10714 
10715 
10716  def __len__(self):
10717  r"""__len__(Vector2D self) -> unsigned int"""
10718  return _IMP_kernel.Vector2D___len__(self)
10719 
10720  def __rmul__(self, f):
10721  r"""__rmul__(Vector2D self, double f) -> Vector2D"""
10722  return _IMP_kernel.Vector2D___rmul__(self, f)
10723 
10724  def __str__(self):
10725  r"""__str__(Vector2D self) -> std::string"""
10726  return _IMP_kernel.Vector2D___str__(self)
10727 
10728  def __repr__(self):
10729  r"""__repr__(Vector2D self) -> std::string"""
10730  return _IMP_kernel.Vector2D___repr__(self)
10731 
10732  def __cmp__(self, arg2):
10733  r"""__cmp__(Vector2D self, Vector2D arg2) -> int"""
10734  return _IMP_kernel.Vector2D___cmp__(self, arg2)
10735 
10736  def __eq__(self, arg2):
10737  r"""__eq__(Vector2D self, Vector2D arg2) -> bool"""
10738  return _IMP_kernel.Vector2D___eq__(self, arg2)
10739 
10740  __truediv__ = __div__
10741  __itruediv__ = __idiv__
10742 
10743 
10744  def _get_as_binary(self):
10745  r"""_get_as_binary(Vector2D self) -> PyObject *"""
10746  return _IMP_kernel.Vector2D__get_as_binary(self)
10747 
10748  def _set_from_binary(self, p):
10749  r"""_set_from_binary(Vector2D self, PyObject * p)"""
10750  return _IMP_kernel.Vector2D__set_from_binary(self, p)
10751 
10752  def __getstate__(self):
10753  p = self._get_as_binary()
10754  if len(self.__dict__) > 1:
10755  d = self.__dict__.copy()
10756  del d['this']
10757  p = (d, p)
10758  return p
10759 
10760  def __setstate__(self, p):
10761  if not hasattr(self, 'this'):
10762  self.__init__()
10763  if isinstance(p, tuple):
10764  d, p = p
10765  self.__dict__.update(d)
10766  return self._set_from_binary(p)
10767 
10768 
10769  def __getitem__(self, index):
10770  if isinstance(index, slice):
10771  return [self[i] for i in range(*index.indices(len(self)))]
10772  else:
10773  return _IMP_kernel.Vector2D___getitem__(self, index)
10774 
10775 
10776 
10777  def __setitem__(self, index, val):
10778  if isinstance(index, slice):
10779  if not hasattr(val, '__iter__'):
10780  raise TypeError("must assign iterable to extended slice")
10781  inds = range(*index.indices(len(self)))
10782  if len(inds) != len(val):
10783  raise ValueError(
10784  "attempt to assign sequence of size %d "
10785  "to extended slice of size %d" % (len(val), len(inds)))
10786  for ind, v in zip(inds, val):
10787  self[ind] = v
10788  else:
10789  return _IMP_kernel.Vector2D___setitem__(self, index, val)
10790 
10791 
10792  __swig_destroy__ = _IMP_kernel.delete_Vector2D
10793 
10794 # Register Vector2D in _IMP_kernel:
10795 _IMP_kernel.Vector2D_swigregister(Vector2D)
10796 class Vector3D(_VectorBase3D):
10797  r"""Proxy of C++ IMP::VectorD< 3 > class."""
10798 
10799  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10800 
10801  def get_unit_vector(self):
10802  r"""get_unit_vector(Vector3D self) -> Vector3D"""
10803  return _IMP_kernel.Vector3D_get_unit_vector(self)
10804 
10805  def __truediv__(self, *args):
10806  return _IMP_kernel.Vector3D___truediv__(self, *args)
10807  __div__ = __truediv__
10808 
10809 
10810 
10811  def __neg__(self):
10812  r"""__neg__(Vector3D self) -> Vector3D"""
10813  return _IMP_kernel.Vector3D___neg__(self)
10814 
10815  def __sub__(self, o):
10816  r"""__sub__(Vector3D self, Vector3D o) -> Vector3D"""
10817  return _IMP_kernel.Vector3D___sub__(self, o)
10818 
10819  def __add__(self, ret):
10820  r"""__add__(Vector3D self, Vector3D ret) -> Vector3D"""
10821  return _IMP_kernel.Vector3D___add__(self, ret)
10822 
10823  def __mul__(self, *args):
10824  r"""
10825  __mul__(Vector3D self, double s) -> Vector3D
10826  __mul__(Vector3D self, Vector3D o) -> double
10827  """
10828  return _IMP_kernel.Vector3D___mul__(self, *args)
10829 
10830  def __init__(self, *args):
10831  r"""
10832  __init__(Vector3D self, IMP::Floats const & f) -> Vector3D
10833  __init__(Vector3D self) -> Vector3D
10834  __init__(Vector3D self, double x, double y, double z) -> Vector3D
10835  """
10836  _IMP_kernel.Vector3D_swiginit(self, _IMP_kernel.new_Vector3D(*args))
10837 
10838  def __iadd__(self, *args):
10839  _IMP_kernel.Vector3D___iadd__(self, *args)
10840  return self
10841 
10842 
10843 
10844  def __imul__(self, *args):
10845  _IMP_kernel.Vector3D___imul__(self, *args)
10846  return self
10847 
10848 
10849 
10850  def __idiv__(self, *args):
10851  _IMP_kernel.Vector3D___idiv__(self, *args)
10852  return self
10853 
10854 
10855 
10856  def __isub__(self, *args):
10857  _IMP_kernel.Vector3D___isub__(self, *args)
10858  return self
10859 
10860 
10861 
10862  def __len__(self):
10863  r"""__len__(Vector3D self) -> unsigned int"""
10864  return _IMP_kernel.Vector3D___len__(self)
10865 
10866  def __rmul__(self, f):
10867  r"""__rmul__(Vector3D self, double f) -> Vector3D"""
10868  return _IMP_kernel.Vector3D___rmul__(self, f)
10869 
10870  def __str__(self):
10871  r"""__str__(Vector3D self) -> std::string"""
10872  return _IMP_kernel.Vector3D___str__(self)
10873 
10874  def __repr__(self):
10875  r"""__repr__(Vector3D self) -> std::string"""
10876  return _IMP_kernel.Vector3D___repr__(self)
10877 
10878  def __cmp__(self, arg2):
10879  r"""__cmp__(Vector3D self, Vector3D arg2) -> int"""
10880  return _IMP_kernel.Vector3D___cmp__(self, arg2)
10881 
10882  def __eq__(self, arg2):
10883  r"""__eq__(Vector3D self, Vector3D arg2) -> bool"""
10884  return _IMP_kernel.Vector3D___eq__(self, arg2)
10885 
10886  __truediv__ = __div__
10887  __itruediv__ = __idiv__
10888 
10889 
10890  def _get_as_binary(self):
10891  r"""_get_as_binary(Vector3D self) -> PyObject *"""
10892  return _IMP_kernel.Vector3D__get_as_binary(self)
10893 
10894  def _set_from_binary(self, p):
10895  r"""_set_from_binary(Vector3D self, PyObject * p)"""
10896  return _IMP_kernel.Vector3D__set_from_binary(self, p)
10897 
10898  def __getstate__(self):
10899  p = self._get_as_binary()
10900  if len(self.__dict__) > 1:
10901  d = self.__dict__.copy()
10902  del d['this']
10903  p = (d, p)
10904  return p
10905 
10906  def __setstate__(self, p):
10907  if not hasattr(self, 'this'):
10908  self.__init__()
10909  if isinstance(p, tuple):
10910  d, p = p
10911  self.__dict__.update(d)
10912  return self._set_from_binary(p)
10913 
10914 
10915  def __getitem__(self, index):
10916  if isinstance(index, slice):
10917  return [self[i] for i in range(*index.indices(len(self)))]
10918  else:
10919  return _IMP_kernel.Vector3D___getitem__(self, index)
10920 
10921 
10922 
10923  def __setitem__(self, index, val):
10924  if isinstance(index, slice):
10925  if not hasattr(val, '__iter__'):
10926  raise TypeError("must assign iterable to extended slice")
10927  inds = range(*index.indices(len(self)))
10928  if len(inds) != len(val):
10929  raise ValueError(
10930  "attempt to assign sequence of size %d "
10931  "to extended slice of size %d" % (len(val), len(inds)))
10932  for ind, v in zip(inds, val):
10933  self[ind] = v
10934  else:
10935  return _IMP_kernel.Vector3D___setitem__(self, index, val)
10936 
10937 
10938  __swig_destroy__ = _IMP_kernel.delete_Vector3D
10939 
10940 # Register Vector3D in _IMP_kernel:
10941 _IMP_kernel.Vector3D_swigregister(Vector3D)
10942 class Vector4D(_VectorBase4D):
10943  r"""Proxy of C++ IMP::VectorD< 4 > class."""
10944 
10945  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
10946 
10947  def get_unit_vector(self):
10948  r"""get_unit_vector(Vector4D self) -> Vector4D"""
10949  return _IMP_kernel.Vector4D_get_unit_vector(self)
10950 
10951  def __truediv__(self, *args):
10952  return _IMP_kernel.Vector4D___truediv__(self, *args)
10953  __div__ = __truediv__
10954 
10955 
10956 
10957  def __neg__(self):
10958  r"""__neg__(Vector4D self) -> Vector4D"""
10959  return _IMP_kernel.Vector4D___neg__(self)
10960 
10961  def __sub__(self, o):
10962  r"""__sub__(Vector4D self, Vector4D o) -> Vector4D"""
10963  return _IMP_kernel.Vector4D___sub__(self, o)
10964 
10965  def __add__(self, ret):
10966  r"""__add__(Vector4D self, Vector4D ret) -> Vector4D"""
10967  return _IMP_kernel.Vector4D___add__(self, ret)
10968 
10969  def __mul__(self, *args):
10970  r"""
10971  __mul__(Vector4D self, double s) -> Vector4D
10972  __mul__(Vector4D self, Vector4D o) -> double
10973  """
10974  return _IMP_kernel.Vector4D___mul__(self, *args)
10975 
10976  def __init__(self, *args):
10977  r"""
10978  __init__(Vector4D self, IMP::Floats const & f) -> Vector4D
10979  __init__(Vector4D self) -> Vector4D
10980  __init__(Vector4D self, double x0, double x1, double x2, double x3) -> Vector4D
10981  """
10982  _IMP_kernel.Vector4D_swiginit(self, _IMP_kernel.new_Vector4D(*args))
10983 
10984  def __iadd__(self, *args):
10985  _IMP_kernel.Vector4D___iadd__(self, *args)
10986  return self
10987 
10988 
10989 
10990  def __imul__(self, *args):
10991  _IMP_kernel.Vector4D___imul__(self, *args)
10992  return self
10993 
10994 
10995 
10996  def __idiv__(self, *args):
10997  _IMP_kernel.Vector4D___idiv__(self, *args)
10998  return self
10999 
11000 
11001 
11002  def __isub__(self, *args):
11003  _IMP_kernel.Vector4D___isub__(self, *args)
11004  return self
11005 
11006 
11007 
11008  def __len__(self):
11009  r"""__len__(Vector4D self) -> unsigned int"""
11010  return _IMP_kernel.Vector4D___len__(self)
11011 
11012  def __rmul__(self, f):
11013  r"""__rmul__(Vector4D self, double f) -> Vector4D"""
11014  return _IMP_kernel.Vector4D___rmul__(self, f)
11015 
11016  def __str__(self):
11017  r"""__str__(Vector4D self) -> std::string"""
11018  return _IMP_kernel.Vector4D___str__(self)
11019 
11020  def __repr__(self):
11021  r"""__repr__(Vector4D self) -> std::string"""
11022  return _IMP_kernel.Vector4D___repr__(self)
11023 
11024  def __cmp__(self, arg2):
11025  r"""__cmp__(Vector4D self, Vector4D arg2) -> int"""
11026  return _IMP_kernel.Vector4D___cmp__(self, arg2)
11027 
11028  def __eq__(self, arg2):
11029  r"""__eq__(Vector4D self, Vector4D arg2) -> bool"""
11030  return _IMP_kernel.Vector4D___eq__(self, arg2)
11031 
11032  __truediv__ = __div__
11033  __itruediv__ = __idiv__
11034 
11035 
11036  def _get_as_binary(self):
11037  r"""_get_as_binary(Vector4D self) -> PyObject *"""
11038  return _IMP_kernel.Vector4D__get_as_binary(self)
11039 
11040  def _set_from_binary(self, p):
11041  r"""_set_from_binary(Vector4D self, PyObject * p)"""
11042  return _IMP_kernel.Vector4D__set_from_binary(self, p)
11043 
11044  def __getstate__(self):
11045  p = self._get_as_binary()
11046  if len(self.__dict__) > 1:
11047  d = self.__dict__.copy()
11048  del d['this']
11049  p = (d, p)
11050  return p
11051 
11052  def __setstate__(self, p):
11053  if not hasattr(self, 'this'):
11054  self.__init__()
11055  if isinstance(p, tuple):
11056  d, p = p
11057  self.__dict__.update(d)
11058  return self._set_from_binary(p)
11059 
11060 
11061  def __getitem__(self, index):
11062  if isinstance(index, slice):
11063  return [self[i] for i in range(*index.indices(len(self)))]
11064  else:
11065  return _IMP_kernel.Vector4D___getitem__(self, index)
11066 
11067 
11068 
11069  def __setitem__(self, index, val):
11070  if isinstance(index, slice):
11071  if not hasattr(val, '__iter__'):
11072  raise TypeError("must assign iterable to extended slice")
11073  inds = range(*index.indices(len(self)))
11074  if len(inds) != len(val):
11075  raise ValueError(
11076  "attempt to assign sequence of size %d "
11077  "to extended slice of size %d" % (len(val), len(inds)))
11078  for ind, v in zip(inds, val):
11079  self[ind] = v
11080  else:
11081  return _IMP_kernel.Vector4D___setitem__(self, index, val)
11082 
11083 
11084  __swig_destroy__ = _IMP_kernel.delete_Vector4D
11085 
11086 # Register Vector4D in _IMP_kernel:
11087 _IMP_kernel.Vector4D_swigregister(Vector4D)
11088 class Vector5D(_VectorBase5D):
11089  r"""Proxy of C++ IMP::VectorD< 5 > class."""
11090 
11091  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11092 
11093  def get_unit_vector(self):
11094  r"""get_unit_vector(Vector5D self) -> Vector5D"""
11095  return _IMP_kernel.Vector5D_get_unit_vector(self)
11096 
11097  def __truediv__(self, *args):
11098  return _IMP_kernel.Vector5D___truediv__(self, *args)
11099  __div__ = __truediv__
11100 
11101 
11102 
11103  def __neg__(self):
11104  r"""__neg__(Vector5D self) -> Vector5D"""
11105  return _IMP_kernel.Vector5D___neg__(self)
11106 
11107  def __sub__(self, o):
11108  r"""__sub__(Vector5D self, Vector5D o) -> Vector5D"""
11109  return _IMP_kernel.Vector5D___sub__(self, o)
11110 
11111  def __add__(self, ret):
11112  r"""__add__(Vector5D self, Vector5D ret) -> Vector5D"""
11113  return _IMP_kernel.Vector5D___add__(self, ret)
11114 
11115  def __mul__(self, *args):
11116  r"""
11117  __mul__(Vector5D self, double s) -> Vector5D
11118  __mul__(Vector5D self, Vector5D o) -> double
11119  """
11120  return _IMP_kernel.Vector5D___mul__(self, *args)
11121 
11122  def __init__(self, *args):
11123  r"""
11124  __init__(Vector5D self, IMP::Floats const & f) -> Vector5D
11125  __init__(Vector5D self) -> Vector5D
11126  __init__(Vector5D self, double x0, double x1, double x2, double x3, double x4) -> Vector5D
11127  """
11128  _IMP_kernel.Vector5D_swiginit(self, _IMP_kernel.new_Vector5D(*args))
11129 
11130  def __iadd__(self, *args):
11131  _IMP_kernel.Vector5D___iadd__(self, *args)
11132  return self
11133 
11134 
11135 
11136  def __imul__(self, *args):
11137  _IMP_kernel.Vector5D___imul__(self, *args)
11138  return self
11139 
11140 
11141 
11142  def __idiv__(self, *args):
11143  _IMP_kernel.Vector5D___idiv__(self, *args)
11144  return self
11145 
11146 
11147 
11148  def __isub__(self, *args):
11149  _IMP_kernel.Vector5D___isub__(self, *args)
11150  return self
11151 
11152 
11153 
11154  def __len__(self):
11155  r"""__len__(Vector5D self) -> unsigned int"""
11156  return _IMP_kernel.Vector5D___len__(self)
11157 
11158  def __rmul__(self, f):
11159  r"""__rmul__(Vector5D self, double f) -> Vector5D"""
11160  return _IMP_kernel.Vector5D___rmul__(self, f)
11161 
11162  def __str__(self):
11163  r"""__str__(Vector5D self) -> std::string"""
11164  return _IMP_kernel.Vector5D___str__(self)
11165 
11166  def __repr__(self):
11167  r"""__repr__(Vector5D self) -> std::string"""
11168  return _IMP_kernel.Vector5D___repr__(self)
11169 
11170  def __cmp__(self, arg2):
11171  r"""__cmp__(Vector5D self, Vector5D arg2) -> int"""
11172  return _IMP_kernel.Vector5D___cmp__(self, arg2)
11173 
11174  def __eq__(self, arg2):
11175  r"""__eq__(Vector5D self, Vector5D arg2) -> bool"""
11176  return _IMP_kernel.Vector5D___eq__(self, arg2)
11177 
11178  __truediv__ = __div__
11179  __itruediv__ = __idiv__
11180 
11181 
11182  def _get_as_binary(self):
11183  r"""_get_as_binary(Vector5D self) -> PyObject *"""
11184  return _IMP_kernel.Vector5D__get_as_binary(self)
11185 
11186  def _set_from_binary(self, p):
11187  r"""_set_from_binary(Vector5D self, PyObject * p)"""
11188  return _IMP_kernel.Vector5D__set_from_binary(self, p)
11189 
11190  def __getstate__(self):
11191  p = self._get_as_binary()
11192  if len(self.__dict__) > 1:
11193  d = self.__dict__.copy()
11194  del d['this']
11195  p = (d, p)
11196  return p
11197 
11198  def __setstate__(self, p):
11199  if not hasattr(self, 'this'):
11200  self.__init__()
11201  if isinstance(p, tuple):
11202  d, p = p
11203  self.__dict__.update(d)
11204  return self._set_from_binary(p)
11205 
11206 
11207  def __getitem__(self, index):
11208  if isinstance(index, slice):
11209  return [self[i] for i in range(*index.indices(len(self)))]
11210  else:
11211  return _IMP_kernel.Vector5D___getitem__(self, index)
11212 
11213 
11214 
11215  def __setitem__(self, index, val):
11216  if isinstance(index, slice):
11217  if not hasattr(val, '__iter__'):
11218  raise TypeError("must assign iterable to extended slice")
11219  inds = range(*index.indices(len(self)))
11220  if len(inds) != len(val):
11221  raise ValueError(
11222  "attempt to assign sequence of size %d "
11223  "to extended slice of size %d" % (len(val), len(inds)))
11224  for ind, v in zip(inds, val):
11225  self[ind] = v
11226  else:
11227  return _IMP_kernel.Vector5D___setitem__(self, index, val)
11228 
11229 
11230  __swig_destroy__ = _IMP_kernel.delete_Vector5D
11231 
11232 # Register Vector5D in _IMP_kernel:
11233 _IMP_kernel.Vector5D_swigregister(Vector5D)
11234 class Vector6D(_VectorBase6D):
11235  r"""Proxy of C++ IMP::VectorD< 6 > class."""
11236 
11237  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11238 
11239  def get_unit_vector(self):
11240  r"""get_unit_vector(Vector6D self) -> Vector6D"""
11241  return _IMP_kernel.Vector6D_get_unit_vector(self)
11242 
11243  def __truediv__(self, *args):
11244  return _IMP_kernel.Vector6D___truediv__(self, *args)
11245  __div__ = __truediv__
11246 
11247 
11248 
11249  def __neg__(self):
11250  r"""__neg__(Vector6D self) -> Vector6D"""
11251  return _IMP_kernel.Vector6D___neg__(self)
11252 
11253  def __sub__(self, o):
11254  r"""__sub__(Vector6D self, Vector6D o) -> Vector6D"""
11255  return _IMP_kernel.Vector6D___sub__(self, o)
11256 
11257  def __add__(self, ret):
11258  r"""__add__(Vector6D self, Vector6D ret) -> Vector6D"""
11259  return _IMP_kernel.Vector6D___add__(self, ret)
11260 
11261  def __mul__(self, *args):
11262  r"""
11263  __mul__(Vector6D self, double s) -> Vector6D
11264  __mul__(Vector6D self, Vector6D o) -> double
11265  """
11266  return _IMP_kernel.Vector6D___mul__(self, *args)
11267 
11268  def __init__(self, *args):
11269  r"""
11270  __init__(Vector6D self, IMP::Floats const & f) -> Vector6D
11271  __init__(Vector6D self) -> Vector6D
11272  __init__(Vector6D self, double x0, double x1, double x2, double x3, double x4, double x5) -> Vector6D
11273  """
11274  _IMP_kernel.Vector6D_swiginit(self, _IMP_kernel.new_Vector6D(*args))
11275 
11276  def __iadd__(self, *args):
11277  _IMP_kernel.Vector6D___iadd__(self, *args)
11278  return self
11279 
11280 
11281 
11282  def __imul__(self, *args):
11283  _IMP_kernel.Vector6D___imul__(self, *args)
11284  return self
11285 
11286 
11287 
11288  def __idiv__(self, *args):
11289  _IMP_kernel.Vector6D___idiv__(self, *args)
11290  return self
11291 
11292 
11293 
11294  def __isub__(self, *args):
11295  _IMP_kernel.Vector6D___isub__(self, *args)
11296  return self
11297 
11298 
11299 
11300  def __len__(self):
11301  r"""__len__(Vector6D self) -> unsigned int"""
11302  return _IMP_kernel.Vector6D___len__(self)
11303 
11304  def __rmul__(self, f):
11305  r"""__rmul__(Vector6D self, double f) -> Vector6D"""
11306  return _IMP_kernel.Vector6D___rmul__(self, f)
11307 
11308  def __str__(self):
11309  r"""__str__(Vector6D self) -> std::string"""
11310  return _IMP_kernel.Vector6D___str__(self)
11311 
11312  def __repr__(self):
11313  r"""__repr__(Vector6D self) -> std::string"""
11314  return _IMP_kernel.Vector6D___repr__(self)
11315 
11316  def __cmp__(self, arg2):
11317  r"""__cmp__(Vector6D self, Vector6D arg2) -> int"""
11318  return _IMP_kernel.Vector6D___cmp__(self, arg2)
11319 
11320  def __eq__(self, arg2):
11321  r"""__eq__(Vector6D self, Vector6D arg2) -> bool"""
11322  return _IMP_kernel.Vector6D___eq__(self, arg2)
11323 
11324  __truediv__ = __div__
11325  __itruediv__ = __idiv__
11326 
11327 
11328  def _get_as_binary(self):
11329  r"""_get_as_binary(Vector6D self) -> PyObject *"""
11330  return _IMP_kernel.Vector6D__get_as_binary(self)
11331 
11332  def _set_from_binary(self, p):
11333  r"""_set_from_binary(Vector6D self, PyObject * p)"""
11334  return _IMP_kernel.Vector6D__set_from_binary(self, p)
11335 
11336  def __getstate__(self):
11337  p = self._get_as_binary()
11338  if len(self.__dict__) > 1:
11339  d = self.__dict__.copy()
11340  del d['this']
11341  p = (d, p)
11342  return p
11343 
11344  def __setstate__(self, p):
11345  if not hasattr(self, 'this'):
11346  self.__init__()
11347  if isinstance(p, tuple):
11348  d, p = p
11349  self.__dict__.update(d)
11350  return self._set_from_binary(p)
11351 
11352 
11353  def __getitem__(self, index):
11354  if isinstance(index, slice):
11355  return [self[i] for i in range(*index.indices(len(self)))]
11356  else:
11357  return _IMP_kernel.Vector6D___getitem__(self, index)
11358 
11359 
11360 
11361  def __setitem__(self, index, val):
11362  if isinstance(index, slice):
11363  if not hasattr(val, '__iter__'):
11364  raise TypeError("must assign iterable to extended slice")
11365  inds = range(*index.indices(len(self)))
11366  if len(inds) != len(val):
11367  raise ValueError(
11368  "attempt to assign sequence of size %d "
11369  "to extended slice of size %d" % (len(val), len(inds)))
11370  for ind, v in zip(inds, val):
11371  self[ind] = v
11372  else:
11373  return _IMP_kernel.Vector6D___setitem__(self, index, val)
11374 
11375 
11376  __swig_destroy__ = _IMP_kernel.delete_Vector6D
11377 
11378 # Register Vector6D in _IMP_kernel:
11379 _IMP_kernel.Vector6D_swigregister(Vector6D)
11380 class VectorKD(_VectorBaseKD):
11381  r"""Proxy of C++ IMP::VectorD< -1 > class."""
11382 
11383  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11384 
11385  def get_unit_vector(self):
11386  r"""get_unit_vector(VectorKD self) -> VectorKD"""
11387  return _IMP_kernel.VectorKD_get_unit_vector(self)
11388 
11389  def __truediv__(self, *args):
11390  return _IMP_kernel.VectorKD___truediv__(self, *args)
11391  __div__ = __truediv__
11392 
11393 
11394 
11395  def __neg__(self):
11396  r"""__neg__(VectorKD self) -> VectorKD"""
11397  return _IMP_kernel.VectorKD___neg__(self)
11398 
11399  def __sub__(self, o):
11400  r"""__sub__(VectorKD self, VectorKD o) -> VectorKD"""
11401  return _IMP_kernel.VectorKD___sub__(self, o)
11402 
11403  def __add__(self, ret):
11404  r"""__add__(VectorKD self, VectorKD ret) -> VectorKD"""
11405  return _IMP_kernel.VectorKD___add__(self, ret)
11406 
11407  def __mul__(self, *args):
11408  r"""
11409  __mul__(VectorKD self, double s) -> VectorKD
11410  __mul__(VectorKD self, VectorKD o) -> double
11411  """
11412  return _IMP_kernel.VectorKD___mul__(self, *args)
11413 
11414  def __init__(self, *args):
11415  r"""
11416  __init__(VectorKD self, IMP::Floats const & f) -> VectorKD
11417  __init__(VectorKD self) -> VectorKD
11418  __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
11419  """
11420  _IMP_kernel.VectorKD_swiginit(self, _IMP_kernel.new_VectorKD(*args))
11421 
11422  def __iadd__(self, *args):
11423  _IMP_kernel.VectorKD___iadd__(self, *args)
11424  return self
11425 
11426 
11427 
11428  def __imul__(self, *args):
11429  _IMP_kernel.VectorKD___imul__(self, *args)
11430  return self
11431 
11432 
11433 
11434  def __idiv__(self, *args):
11435  _IMP_kernel.VectorKD___idiv__(self, *args)
11436  return self
11437 
11438 
11439 
11440  def __isub__(self, *args):
11441  _IMP_kernel.VectorKD___isub__(self, *args)
11442  return self
11443 
11444 
11445 
11446  def __len__(self):
11447  r"""__len__(VectorKD self) -> unsigned int"""
11448  return _IMP_kernel.VectorKD___len__(self)
11449 
11450  def __rmul__(self, f):
11451  r"""__rmul__(VectorKD self, double f) -> VectorKD"""
11452  return _IMP_kernel.VectorKD___rmul__(self, f)
11453 
11454  def __str__(self):
11455  r"""__str__(VectorKD self) -> std::string"""
11456  return _IMP_kernel.VectorKD___str__(self)
11457 
11458  def __repr__(self):
11459  r"""__repr__(VectorKD self) -> std::string"""
11460  return _IMP_kernel.VectorKD___repr__(self)
11461 
11462  def __cmp__(self, arg2):
11463  r"""__cmp__(VectorKD self, VectorKD arg2) -> int"""
11464  return _IMP_kernel.VectorKD___cmp__(self, arg2)
11465 
11466  def __eq__(self, arg2):
11467  r"""__eq__(VectorKD self, VectorKD arg2) -> bool"""
11468  return _IMP_kernel.VectorKD___eq__(self, arg2)
11469 
11470  __truediv__ = __div__
11471  __itruediv__ = __idiv__
11472 
11473 
11474  def _get_as_binary(self):
11475  r"""_get_as_binary(VectorKD self) -> PyObject *"""
11476  return _IMP_kernel.VectorKD__get_as_binary(self)
11477 
11478  def _set_from_binary(self, p):
11479  r"""_set_from_binary(VectorKD self, PyObject * p)"""
11480  return _IMP_kernel.VectorKD__set_from_binary(self, p)
11481 
11482  def __getstate__(self):
11483  p = self._get_as_binary()
11484  if len(self.__dict__) > 1:
11485  d = self.__dict__.copy()
11486  del d['this']
11487  p = (d, p)
11488  return p
11489 
11490  def __setstate__(self, p):
11491  if not hasattr(self, 'this'):
11492  self.__init__()
11493  if isinstance(p, tuple):
11494  d, p = p
11495  self.__dict__.update(d)
11496  return self._set_from_binary(p)
11497 
11498 
11499  def __getitem__(self, index):
11500  if isinstance(index, slice):
11501  return [self[i] for i in range(*index.indices(len(self)))]
11502  else:
11503  return _IMP_kernel.VectorKD___getitem__(self, index)
11504 
11505 
11506 
11507  def __setitem__(self, index, val):
11508  if isinstance(index, slice):
11509  if not hasattr(val, '__iter__'):
11510  raise TypeError("must assign iterable to extended slice")
11511  inds = range(*index.indices(len(self)))
11512  if len(inds) != len(val):
11513  raise ValueError(
11514  "attempt to assign sequence of size %d "
11515  "to extended slice of size %d" % (len(val), len(inds)))
11516  for ind, v in zip(inds, val):
11517  self[ind] = v
11518  else:
11519  return _IMP_kernel.VectorKD___setitem__(self, index, val)
11520 
11521 
11522  __swig_destroy__ = _IMP_kernel.delete_VectorKD
11523 
11524 # Register VectorKD in _IMP_kernel:
11525 _IMP_kernel.VectorKD_swigregister(VectorKD)
11526 
11527 def get_basis_vector_1d(coordinate):
11528  r"""get_basis_vector_1d(unsigned int coordinate) -> Vector1D"""
11529  return _IMP_kernel.get_basis_vector_1d(coordinate)
11530 
11531 def get_basis_vector_2d(coordinate):
11532  r"""get_basis_vector_2d(unsigned int coordinate) -> Vector2D"""
11533  return _IMP_kernel.get_basis_vector_2d(coordinate)
11534 
11535 def get_basis_vector_3d(coordinate):
11536  r"""get_basis_vector_3d(unsigned int coordinate) -> Vector3D"""
11537  return _IMP_kernel.get_basis_vector_3d(coordinate)
11538 
11539 def get_basis_vector_4d(coordinate):
11540  r"""get_basis_vector_4d(unsigned int coordinate) -> Vector4D"""
11541  return _IMP_kernel.get_basis_vector_4d(coordinate)
11542 
11543 def get_basis_vector_5d(coordinate):
11544  r"""get_basis_vector_5d(unsigned int coordinate) -> Vector5D"""
11545  return _IMP_kernel.get_basis_vector_5d(coordinate)
11546 
11547 def get_basis_vector_6d(coordinate):
11548  r"""get_basis_vector_6d(unsigned int coordinate) -> Vector6D"""
11549  return _IMP_kernel.get_basis_vector_6d(coordinate)
11550 
11551 def get_zero_vector_1d():
11552  r"""get_zero_vector_1d() -> Vector1D"""
11553  return _IMP_kernel.get_zero_vector_1d()
11554 
11555 def get_zero_vector_2d():
11556  r"""get_zero_vector_2d() -> Vector2D"""
11557  return _IMP_kernel.get_zero_vector_2d()
11558 
11559 def get_zero_vector_3d():
11560  r"""get_zero_vector_3d() -> Vector3D"""
11561  return _IMP_kernel.get_zero_vector_3d()
11562 
11563 def get_zero_vector_4d():
11564  r"""get_zero_vector_4d() -> Vector4D"""
11565  return _IMP_kernel.get_zero_vector_4d()
11566 
11567 def get_zero_vector_5d():
11568  r"""get_zero_vector_5d() -> Vector5D"""
11569  return _IMP_kernel.get_zero_vector_5d()
11570 
11571 def get_zero_vector_6d():
11572  r"""get_zero_vector_6d() -> Vector6D"""
11573  return _IMP_kernel.get_zero_vector_6d()
11574 
11575 def get_ones_vector_1d(v=1):
11576  r"""get_ones_vector_1d(double v=1) -> Vector1D"""
11577  return _IMP_kernel.get_ones_vector_1d(v)
11578 
11579 def get_ones_vector_2d(v=1):
11580  r"""get_ones_vector_2d(double v=1) -> Vector2D"""
11581  return _IMP_kernel.get_ones_vector_2d(v)
11582 
11583 def get_ones_vector_3d(v=1):
11584  r"""get_ones_vector_3d(double v=1) -> Vector3D"""
11585  return _IMP_kernel.get_ones_vector_3d(v)
11586 
11587 def get_ones_vector_4d(v=1):
11588  r"""get_ones_vector_4d(double v=1) -> Vector4D"""
11589  return _IMP_kernel.get_ones_vector_4d(v)
11590 
11591 def get_ones_vector_5d(v=1):
11592  r"""get_ones_vector_5d(double v=1) -> Vector5D"""
11593  return _IMP_kernel.get_ones_vector_5d(v)
11594 
11595 def get_ones_vector_6d(v=1):
11596  r"""get_ones_vector_6d(double v=1) -> Vector6D"""
11597  return _IMP_kernel.get_ones_vector_6d(v)
11598 class _RestraintsScoringFunction(ScoringFunction):
11599  r"""Proxy of C++ IMP::internal::GenericRestraintsScoringFunction< ::IMP::Restraints > class."""
11600 
11601  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11602  __repr__ = _swig_repr
11603 
11604  def __init__(self, *args):
11605  r"""
11606  __init__(_RestraintsScoringFunction self, IMP::RestraintsTemp const & rs, double weight=1.0, double max=NO_MAX, std::string name="RestraintsScoringFunction%1%") -> _RestraintsScoringFunction
11607  __init__(_RestraintsScoringFunction self) -> _RestraintsScoringFunction
11608  """
11609  _IMP_kernel._RestraintsScoringFunction_swiginit(self, _IMP_kernel.new__RestraintsScoringFunction(*args))
11610 
11611  def do_add_score_and_derivatives(self, sa, ss):
11612  r"""do_add_score_and_derivatives(_RestraintsScoringFunction self, ScoreAccumulator sa, IMP::ScoreStatesTemp const & ss)"""
11613  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives(self, sa, ss)
11614 
11615  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss):
11616  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)"""
11617  return _IMP_kernel._RestraintsScoringFunction_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis, ss)
11618 
11619  def do_get_inputs(self):
11620  r"""do_get_inputs(_RestraintsScoringFunction self) -> IMP::ModelObjectsTemp"""
11621  return _IMP_kernel._RestraintsScoringFunction_do_get_inputs(self)
11622 
11623  def get_restraints(self):
11624  r"""get_restraints(_RestraintsScoringFunction self) -> IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const &"""
11625  return _IMP_kernel._RestraintsScoringFunction_get_restraints(self)
11626 
11627  def set_restraints(self, s):
11628  r"""set_restraints(_RestraintsScoringFunction self, IMP::RestraintsTemp const & s)"""
11629  return _IMP_kernel._RestraintsScoringFunction_set_restraints(self, s)
11630 
11631  def get_number_of_restraints(self):
11632  r"""get_number_of_restraints(_RestraintsScoringFunction self) -> unsigned int"""
11633  return _IMP_kernel._RestraintsScoringFunction_get_number_of_restraints(self)
11634 
11635  def clear_restraints(self):
11636  r"""clear_restraints(_RestraintsScoringFunction self)"""
11637  return _IMP_kernel._RestraintsScoringFunction_clear_restraints(self)
11638 
11639  def get_restraint(self, i):
11640  r"""get_restraint(_RestraintsScoringFunction self, unsigned int i) -> Restraint"""
11641  return _IMP_kernel._RestraintsScoringFunction_get_restraint(self, i)
11642 
11643  def erase_restraint(self, i):
11644  r"""erase_restraint(_RestraintsScoringFunction self, unsigned int i)"""
11645  return _IMP_kernel._RestraintsScoringFunction_erase_restraint(self, i)
11646 
11647  def add_restraint(self, r):
11648  r"""add_restraint(_RestraintsScoringFunction self, Restraint r) -> unsigned int"""
11649  return _IMP_kernel._RestraintsScoringFunction_add_restraint(self, r)
11650 
11651  def add_restraints(self, r):
11652  r"""add_restraints(_RestraintsScoringFunction self, IMP::Vector< IMP::Pointer< IMP::Restraint >,std::allocator< IMP::Pointer< IMP::Restraint > > > const & r)"""
11653  return _IMP_kernel._RestraintsScoringFunction_add_restraints(self, r)
11654 
11655  def _python_index_restraint(self, r, start, stop):
11656  r"""_python_index_restraint(_RestraintsScoringFunction self, Restraint r, unsigned int start, unsigned int stop) -> unsigned int"""
11657  return _IMP_kernel._RestraintsScoringFunction__python_index_restraint(self, r, start, stop)
11658 
11659  def get_version_info(self):
11660  r"""get_version_info(_RestraintsScoringFunction self) -> VersionInfo"""
11661  return _IMP_kernel._RestraintsScoringFunction_get_version_info(self)
11662  __swig_destroy__ = _IMP_kernel.delete__RestraintsScoringFunction
11663 
11664  @staticmethod
11665  def get_from(o):
11666  return _object_cast_to__RestraintsScoringFunction(o)
11667 
11668 
11669  def __get_restraints(self):
11670  return _list_util.VarList(
11671  getdimfunc=self.get_number_of_restraints,
11672  getfunc=self.get_restraint, erasefunc=self.erase_restraint,
11673  appendfunc=self.add_restraint, extendfunc=self.add_restraints,
11674  clearfunc=self.clear_restraints,
11675  indexfunc=self._python_index_restraint)
11676 
11677  def __set_restraints(self, obj):
11678  _list_util.set_varlist(self.restraints, obj)
11679 
11680  def __del_restraints(self):
11681  _list_util.del_varlist(self.restraints)
11682 
11683  restraints = property(__get_restraints, __set_restraints,
11684  __del_restraints, doc="List of Restraints")
11685 
11686 
11687  def _get_jax(self):
11688  import IMP._jax_util
11689  jis = [r.get_derived_object()._get_jax() for r in self.restraints]
11690  funcs = [j.score_func for j in jis]
11691  keys = frozenset(x for j in jis for x in j._keys)
11692  def jax_sf(jm):
11693  return sum(f(jm) for f in funcs)
11694  return IMP._jax_util.JAXRestraintInfo(
11695  m=self.get_model(), score_func=jax_sf, weight=1.0, keys=keys)
11696 
11697 
11698 # Register _RestraintsScoringFunction in _IMP_kernel:
11699 _IMP_kernel._RestraintsScoringFunction_swigregister(_RestraintsScoringFunction)
11700 class ScopedSetFloatAttribute(_RAII):
11701  r"""Proxy of C++ IMP::ScopedSetAttribute< IMP::FloatKey,IMP::Float > class."""
11702 
11703  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
11704 
11705  def __init__(self, *args):
11706  r"""
11707  __init__(ScopedSetFloatAttribute self) -> ScopedSetFloatAttribute
11708  __init__(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value) -> ScopedSetFloatAttribute
11709  """
11710  _IMP_kernel.ScopedSetFloatAttribute_swiginit(self, _IMP_kernel.new_ScopedSetFloatAttribute(*args))
11711 
11712  def set(self, p, key, value):
11713  r"""set(ScopedSetFloatAttribute self, Particle p, FloatKey key, double const & value)"""
11714  return _IMP_kernel.ScopedSetFloatAttribute_set(self, p, key, value)
11715 
11716  def reset(self):
11717  r"""reset(ScopedSetFloatAttribute self)"""
11718  return _IMP_kernel.ScopedSetFloatAttribute_reset(self)
11719  __swig_destroy__ = _IMP_kernel.delete_ScopedSetFloatAttribute
11720 
11721  def show(self, *args):
11722  r"""show(ScopedSetFloatAttribute self, _ostream out=std::cout)"""
11723  return _IMP_kernel.ScopedSetFloatAttribute_show(self, *args)
11724 
11725  def __str__(self):
11726  r"""__str__(ScopedSetFloatAttribute self) -> std::string"""
11727  return _IMP_kernel.ScopedSetFloatAttribute___str__(self)
11728 
11729  def __repr__(self):
11730  r"""__repr__(ScopedSetFloatAttribute self) -> std::string"""
11731  return _IMP_kernel.ScopedSetFloatAttribute___repr__(self)
11732 
11733 # Register ScopedSetFloatAttribute in _IMP_kernel:
11734 _IMP_kernel.ScopedSetFloatAttribute_swigregister(ScopedSetFloatAttribute)
11735 
11736 def _get_module_data_path(module, file_name):
11737  r"""_get_module_data_path(std::string module, std::string file_name) -> std::string"""
11738  return _IMP_kernel._get_module_data_path(module, file_name)
11739 
11740 def _get_module_example_path(module, file_name):
11741  r"""_get_module_example_path(std::string module, std::string file_name) -> std::string"""
11742  return _IMP_kernel._get_module_example_path(module, file_name)
11743 
11744 #used_modules=[]
11745 #def show_used_modules():
11746 # for m in used_modules:
11747 # print "%-20s %s" % (m.get_module(), m.get_version())
11748 
11749 # Ensure that Windows gets the PATH set to include anything in the library
11750 # search path
11751 if sys.platform == 'win32' and 'IMP_LD_PATH' in os.environ:
11752  dirs = os.environ['IMP_LD_PATH'].split(":")
11753  pathcomps = os.environ['PATH'].split(";")
11754  for d in dirs:
11755  if d not in pathcomps:
11756  os.environ['PATH'] = d + ';' + os.environ['PATH']
11757 
11758 
11759 
11760 import sys
11761 import os
11762 
11764  """Allow command line tools to easily implement multiple commands.
11765  Typically, an IMP command line tool will use an instance of this class
11766  to provide a consistent interface to multiple distinct commands
11767  from a single binary, rather than providing a potentially large
11768  number of binaries. This is similar to the way a number of common
11769  command line tools outside of IMP function (e.g. Git provides a single
11770  `git` tool which implements multiple commands - `git add`, `git commit`,
11771  `git push` and so on).
11772 
11773  Each command is implemented with a Python module of the same name
11774  that can be imported from the module (for example, if `module_name`
11775  is `IMP.foo`, the `bar` command is provided by the `IMP.foo.bar` Python
11776  module, which would usually be found as `modules/foo/pyext/src/bar.py`).
11777  Each such module should have a docstring and a `%main()` method
11778  that takes no arguments (the module should also call its `%main()` method
11779  if it is run directly, i.e. with something like
11780  `if __name__=="__main__": %main()`). The encompassing module
11781  (`IMP.foo` in the example) should define `_all_commands` as a Python
11782  list of all valid commands.
11783 
11784  See the `multifit` and `cnmultifit` command line tools for example
11785  usage.
11786  """
11787 
11788  def __init__(self, short_help, long_help, module_name):
11789  """Constructor.
11790  @param short_help A few words that describe the command line tool.
11791  @param long_help Longer text, used in the `help` command.
11792  @param module_name Name of the module (e.g. `IMP.foo`) that
11793  implements the commands.
11794  """
11795  self.short_help = short_help
11796  self.long_help = long_help
11797  self.module_name = module_name
11798  self._all_commands = self.import_module()._all_commands
11799  self._progname = os.path.basename(sys.argv[0])
11800 
11801  def main(self):
11802  """Call this method to act upon the user-provided command line"""
11803  if len(sys.argv) <= 1:
11804  print(self.short_help + " Use '%s help' for help." % self._progname)
11805  else:
11806  command = sys.argv[1]
11807  if command in ('help', '--help', '-h'):
11808  if len(sys.argv) == 3:
11809  self.show_command_help(sys.argv[2])
11810  else:
11811  self.show_help()
11812  elif command == '--version':
11813  self.show_version()
11814  elif command in self._all_commands:
11815  self.do_command(command)
11816  else:
11817  self.unknown_command(command)
11818 
11819  def import_module(self, mod=None):
11820  modname = self.module_name
11821  if mod is not None:
11822  modname += "." + mod
11823  return __import__(modname, {}, {}, [''])
11824 
11825  def unknown_command(self, command):
11826  print("Unknown command: '%s'" % command)
11827  print("Use '%s help' for help." % self._progname)
11828  sys.exit(1)
11829 
11830  def _get_version(self):
11831  return self.import_module().get_module_version()
11832 
11833  def show_version(self):
11834  print(self._progname + ' ' + self._get_version())
11835 
11836  def show_help(self):
11837  ver = self._get_version()
11838  print("%s, version %s." % (self._progname, ver))
11839  print(self.long_help + """
11840 
11841 This program is part of IMP, the Integrative Modeling Platform,
11842 which is %s.
11843 For additional information about IMP, see <https://integrativemodeling.org>.
11844 
11845 Usage: %s <command> [options] [args]
11846 
11847 Commands:""" % (get_copyright(), self._progname))
11848  commands = self._all_commands[:] + ['help']
11849  commands.sort()
11850  cmdlen = max([len(c) for c in commands])
11851  for c in commands:
11852  if c == 'help':
11853  doc = 'Get help on using %s.' % self._progname
11854  else:
11855  doc = self.import_module(c).__doc__ or "<no help>"
11856  c += ' ' * (cmdlen - len(c))
11857  print(' ' + c + ' ' + doc)
11858  print("""
11859 Use "%s help <command>" for detailed help on any command
11860  or "%s --version" to see the version number.""" % (self._progname,
11861  self._progname))
11862 
11863  def do_command(self, command):
11864  mod = self.import_module(command)
11865  sys.argv[0] = self._progname + ' ' + command
11866  del sys.argv[1]
11867  mod.main()
11868 
11869  def show_command_help(self, command):
11870  if command == 'help':
11871  self.show_help()
11872  elif command in self._all_commands or command == 'help':
11873  mod = self.import_module(command)
11874  sys.argv = [self._progname + ' ' + command, '--help']
11875  mod.main()
11876  else:
11877  self.unknown_command(command)
11878 
11879 
11880 
11881 
11882 def get_networkx_graph(ig):
11883  import networkx
11884  g = networkx.DiGraph()
11885  if len(ig.get_vertices()) == 0:
11886  return g
11887 
11888  class NodeWrapper:
11889 
11890  def __init__(self, p):
11891  self.p = p
11892 
11893  def __str__(self):
11894  return self.p.get_name()
11895 
11896  def __call__(self, name):
11897  return self.p.__call__(name)
11898 
11899  for vi in ig.get_vertices():
11900  n = ig.get_vertex_name(vi)
11901  g.add_node(NodeWrapper(n))
11902  for vi in ig.get_vertices():
11903  n = ig.get_vertex_name(vi)
11904  for ni in ig.get_out_neighbors(vi):
11905  nn = ig.get_vertex_name(ni)
11906  g.add_edge(NodeWrapper(n), NodeWrapper(nn))
11907  return g
11908 
11909 
11910 def show_altgraph(g):
11911  def clean(name):
11912  try:
11913  n0 = name.get_name()
11914  except:
11915  n0 = str(name)
11916  n1 = str(n0).replace('"', '')
11917  n2 = n1.replace("\n", '')
11918  return n2
11919  import altgraph
11920  from altgraph import Graph, Dot
11921  graph = Graph.Graph()
11922  for i, v in enumerate(g.get_vertices()):
11923  graph.add_node(i) # , node_data=g.get_vertex_name(v)
11924  for i, v in enumerate(g.get_vertices()):
11925  for n in g.get_out_neighbors(v):
11926  graph.add_edge(v, n)
11927  dot = Dot.Dot(graph) # , graph_type="digraph"
11928  for i, v in enumerate(g.get_vertices()):
11929  dot.node_style(i, label=clean(g.get_vertex_name(v)))
11930  dot.display()
11931 
11932 
11933 def show_graphviz(g):
11934  import subprocess
11935  tfn = create_temporary_file_name("graph", ".dot")
11936  tfon = create_temporary_file_name("graph", ".pdf")
11937  st = g.get_graphviz_string()
11938  with open(tfn, "w") as fh:
11939  fh.write(st)
11940  try:
11941  print("running dot")
11942  sp = subprocess.Popen(["dot", "-Tpdf", tfn, "-o" + tfon])
11943  sp.wait()
11944  except:
11945  import sys
11946  sys.stderr.write("The dot command from the graphviz package was not found. Please make sure it is in the PATH passed to IMP.\n")
11947  return
11948  import platform
11949  if platform.system() == "Darwin":
11950  cmd = ["open"]
11951  else:
11952  cmd = ["gv", "acroread", "xpdf"]
11953  success = False
11954  for c in cmd:
11955  print("launching viewer " + c)
11956  try:
11957  subprocess.check_call([c, tfon])
11958  success = True
11959  break
11960  except:
11961  pass
11962  if not success:
11963  print("Could not display file. It is saved at " + tfon)
11964  return tfon
11965 
11966 
11967 
11968 
11969 import functools
11970 import contextlib
11971 
11972 def deprecated_module(version, module, help_message):
11973  """Mark a Python module as deprecated.
11974  @note The `module` argument would normally be `__name__`.
11975  @see [deprecation support](@ref deprecation)."""
11977  "Module %s is deprecated. %s\n" % (module, help_message))
11978 
11979 def deprecated_object(version, help_message):
11980  """Python decorator to mark a class as deprecated.
11981  @see [deprecation support](@ref deprecation)."""
11982  def wrapper(obj):
11983  orig_init = obj.__init__
11984 # Don't try to copy __module__ since __init__ may not have it
11985 # (e.g. if we subclassed object but didn't override __init__)
11986  @functools.wraps(orig_init, ('__name__', '__doc__'))
11987  def __init__(obj, *args, **keys):
11988  handle_use_deprecated("Object %s is deprecated. %s\n"
11989  % (type(obj), help_message))
11990  orig_init(obj, *args, **keys)
11991  obj.__init__ = __init__
11992  return obj
11993  return wrapper
11994 
11995 def deprecated_method(version, help_message):
11996  """Python decorator to mark a method as deprecated.
11997  @see [deprecation support](@ref deprecation)."""
11998  def out_wrapper(obj):
11999  @functools.wraps(obj)
12000  def wrapper(cls, *args, **keys):
12001  handle_use_deprecated("Method %s in %s is deprecated. %s\n"
12002  % (obj.__name__, type(cls), help_message))
12003  return obj(cls, *args, **keys)
12004  return wrapper
12005  return out_wrapper
12006 
12007 def deprecated_function(version, help_message):
12008  """Python decorator to mark a function as deprecated.
12009  @see [deprecation support](@ref deprecation)."""
12010  def out_wrapper(obj):
12011  @functools.wraps(obj)
12012  def wrapper(*args, **keys):
12013  handle_use_deprecated("Function %s is deprecated. %s\n"
12014  % (obj.__name__, help_message))
12015  return obj(*args, **keys)
12016  return wrapper
12017  return out_wrapper
12018 
12019 @contextlib.contextmanager
12020 def allow_deprecated(allow=True):
12021  """Context manager to temporarily allow (or disallow) deprecated code.
12022  @see [deprecation support](@ref deprecation)."""
12024  set_deprecation_exceptions(not allow)
12025  yield
12027 
12028 
12029 def _get_all_flags(ntokens):
12030  r"""_get_all_flags(unsigned int ntokens) -> IMP::Strings"""
12031  return _IMP_kernel._get_all_flags(ntokens)
12032 
12033 def _print_internal_help(out, description):
12034  r"""_print_internal_help(_ostream out, std::string description)"""
12035  return _IMP_kernel._print_internal_help(out, description)
12036 
12037 
12038 import argparse
12039 import sys
12040 
12041 class _PassThroughAction(argparse.Action):
12042  """Pass an argument through to the IMP Boost parser"""
12043  def __call__(self, parser, namespace, values, option_string=None):
12044  parser._boost_command_line.append(option_string)
12045  if values != []:
12046  parser._boost_command_line.append(values)
12047 # Terminate processing immediately if necessary (otherwise argparse
12048 # may fail if we're missing positional arguments)
12049  if option_string in ('-h', '--help', '--help_advanced', '--version'):
12050  parser._handle_boost()
12051 
12052 
12053 class ArgumentParser(argparse.ArgumentParser):
12054  """IMP-specific subclass of argparse.ArgumentParser.
12055  This adds options common to all IMP applications
12056  (see IMP::setup_from_argv()).
12057  """
12058 
12059  def __init__(self, *args, **kwargs):
12060 # Don't add --help option (since the Boost option parser handles it)
12061  kwargs['add_help'] = False
12062  super().__init__(*args, **kwargs)
12063  for ntoken in (0, 1):
12064  flags = _get_all_flags(ntoken)
12065  for f in flags:
12066  arg = ['-h', '--help'] if f == 'help' else ['--' + f]
12067  self.add_argument(*arg, help=argparse.SUPPRESS,
12068  nargs=None if ntoken else 0,
12069  action=_PassThroughAction,
12070  default=argparse.SUPPRESS)
12071 
12072  def parse_args(self, args=None, namespace=None):
12073  """Parse the command line and return optional and positional arguments.
12074  This functions in the same way as the method in the base class
12075  argparse.ArgumentParser, except that it also processes optional
12076  arguments common to all IMP applications (these are not returned
12077  in `args`, but can be obtained in the usual way, e.g. by calling
12078  IMP::get_string_flag()).
12079  @returns args
12080  """
12081  self._boost_command_line = [sys.argv[0]]
12082  ret = super().parse_args(args, namespace)
12083  if len(self._boost_command_line) > 1:
12084  self._handle_boost()
12085  return ret
12086 
12087  def _get_description(self):
12088  return self.format_help() + "\nOptions common to all IMP applications:"
12089 
12090  def print_help(self, file=None):
12091  _print_internal_help(file if file else sys.stdout,
12092  self._get_description())
12093 
12094  def _handle_boost(self):
12095  setup_from_argv(self._boost_command_line,
12096  self._get_description(),
12097  '==SUPPRESS==', 0)
12098 
12099 class RandomNumberGenerator(object):
12100  r"""Proxy of C++ IMP::RandomNumberGenerator class."""
12101 
12102  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
12103  __repr__ = _swig_repr
12104 
12105  def seed(self, x):
12106  r"""seed(RandomNumberGenerator self, int x)"""
12107  return _IMP_kernel.RandomNumberGenerator_seed(self, x)
12108 
12109  def __call__(self):
12110  r"""__call__(RandomNumberGenerator self) -> int"""
12111  return _IMP_kernel.RandomNumberGenerator___call__(self)
12112 
12113  def get_state(self):
12114  r"""get_state(RandomNumberGenerator self) -> PyObject *"""
12115  return _IMP_kernel.RandomNumberGenerator_get_state(self)
12116 
12117  def set_state(self, p):
12118  r"""set_state(RandomNumberGenerator self, PyObject * p)"""
12119  return _IMP_kernel.RandomNumberGenerator_set_state(self, p)
12120 
12121  def __init__(self):
12122  r"""__init__(RandomNumberGenerator self) -> RandomNumberGenerator"""
12123  _IMP_kernel.RandomNumberGenerator_swiginit(self, _IMP_kernel.new_RandomNumberGenerator())
12124  __swig_destroy__ = _IMP_kernel.delete_RandomNumberGenerator
12125 
12126 # Register RandomNumberGenerator in _IMP_kernel:
12127 _IMP_kernel.RandomNumberGenerator_swigregister(RandomNumberGenerator)
12128 
12129 def get_random_float_uniform(*args):
12130  r"""
12131  get_random_float_uniform() -> float
12132  get_random_float_uniform(float min, float max) -> float
12133  """
12134  return _IMP_kernel.get_random_float_uniform(*args)
12135 
12136 def get_random_double_uniform(*args):
12137  r"""
12138  get_random_double_uniform() -> double
12139  get_random_double_uniform(double min, double max) -> double
12140  """
12141  return _IMP_kernel.get_random_double_uniform(*args)
12142 
12143 def get_random_floats_normal(n, mean=0.0, stddev=1.0):
12144  r"""get_random_floats_normal(unsigned int n, float mean=0.0, float stddev=1.0) -> IMP::Vector< float,std::allocator< float > >"""
12145  return _IMP_kernel.get_random_floats_normal(n, mean, stddev)
12146 
12147 def get_random_doubles_normal(n, mean=0.0, stddev=1.0):
12148  r"""get_random_doubles_normal(unsigned int n, double mean=0.0, double stddev=1.0) -> IMP::Vector< double,std::allocator< double > >"""
12149  return _IMP_kernel.get_random_doubles_normal(n, mean, stddev)
12150 
12151 def get_random_floats_uniform(n):
12152  r"""get_random_floats_uniform(unsigned int n) -> IMP::Vector< float,std::allocator< float > >"""
12153  return _IMP_kernel.get_random_floats_uniform(n)
12154 
12155 def get_random_doubles_uniform(n):
12156  r"""get_random_doubles_uniform(unsigned int n) -> IMP::Vector< double,std::allocator< double > >"""
12157  return _IMP_kernel.get_random_doubles_uniform(n)
12158 
12159 def get_random_seed():
12160  r"""get_random_seed() -> boost::uint64_t"""
12161  return _IMP_kernel.get_random_seed()
12162 
12163 def _get_derivatives_numpy(m, k, m_pyobj, read_only):
12164  r"""_get_derivatives_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12165  return _IMP_kernel._get_derivatives_numpy(m, k, m_pyobj, read_only)
12166 
12167 def _get_floats_numpy(m, k, m_pyobj, read_only):
12168  r"""_get_floats_numpy(Model m, FloatKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12169  return _IMP_kernel._get_floats_numpy(m, k, m_pyobj, read_only)
12170 
12171 def _get_ints_numpy(m, k, m_pyobj, read_only):
12172  r"""_get_ints_numpy(Model m, IntKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12173  return _IMP_kernel._get_ints_numpy(m, k, m_pyobj, read_only)
12174 
12175 def _get_vector3ds_numpy(m, k, m_pyobj, read_only):
12176  r"""_get_vector3ds_numpy(Model m, Vector3DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12177  return _IMP_kernel._get_vector3ds_numpy(m, k, m_pyobj, read_only)
12178 
12179 def _get_vector3dderiv_numpy(m, k, m_pyobj, read_only):
12180  r"""_get_vector3dderiv_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12181  return _IMP_kernel._get_vector3dderiv_numpy(m, k, m_pyobj, read_only)
12182 
12183 def _get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12184  r"""_get_vector3dderiv_derivatives_numpy(Model m, Vector3DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12185  return _IMP_kernel._get_vector3dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12186 
12187 def _get_vector4ds_numpy(m, k, m_pyobj, read_only):
12188  r"""_get_vector4ds_numpy(Model m, Vector4DKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12189  return _IMP_kernel._get_vector4ds_numpy(m, k, m_pyobj, read_only)
12190 
12191 def _get_vector4dderiv_numpy(m, k, m_pyobj, read_only):
12192  r"""_get_vector4dderiv_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12193  return _IMP_kernel._get_vector4dderiv_numpy(m, k, m_pyobj, read_only)
12194 
12195 def _get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only):
12196  r"""_get_vector4dderiv_derivatives_numpy(Model m, Vector4DDerivKey k, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12197  return _IMP_kernel._get_vector4dderiv_derivatives_numpy(m, k, m_pyobj, read_only)
12198 
12199 def _get_spheres_numpy(m, m_pyobj, read_only):
12200  r"""_get_spheres_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12201  return _IMP_kernel._get_spheres_numpy(m, m_pyobj, read_only)
12202 
12203 def _get_sphere_derivatives_numpy(m, m_pyobj, read_only):
12204  r"""_get_sphere_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12205  return _IMP_kernel._get_sphere_derivatives_numpy(m, m_pyobj, read_only)
12206 
12207 def _get_internal_coordinates_numpy(m, m_pyobj, read_only):
12208  r"""_get_internal_coordinates_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12209  return _IMP_kernel._get_internal_coordinates_numpy(m, m_pyobj, read_only)
12210 
12211 def _get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only):
12212  r"""_get_internal_coordinate_derivatives_numpy(Model m, PyObject * m_pyobj, bool read_only) -> PyObject *"""
12213  return _IMP_kernel._get_internal_coordinate_derivatives_numpy(m, m_pyobj, read_only)
12214 
12215 try:
12216  import numpy
12217  ParticleIndex = numpy.intc
12218 except ImportError:
12219  pass
12220 
12221 
12222 class JAXWarning(UserWarning):
12223  """Warning for incomplete JAX support or different behavior of JAX code"""
12224  pass
12225 
12226 
12227 def get_module_name():
12228  r"""get_module_name() -> std::string const"""
12229  return _IMP_kernel.get_module_name()
12230 
12231 def get_module_version():
12232  r"""get_module_version() -> std::string const"""
12233  return _IMP_kernel.get_module_version()
12234 
12235 def get_example_path(fname):
12236  r"""get_example_path(std::string fname) -> std::string"""
12237  return _IMP_kernel.get_example_path(fname)
12238 
12239 def get_data_path(fname):
12240  r"""get_data_path(std::string fname) -> std::string"""
12241  return _IMP_kernel.get_data_path(fname)
12242 
12243 from . import _version_check
12244 _version_check.check_version(get_module_version())
12245 __version__ = get_module_version()
12246 
12247 
12248 random_number_generator = cvar.random_number_generator
12249 
Particle * get_particle(ParticleIndex p) const
Get the particle from an index.
Definition: Model.h:531
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:6712
VectorD< D > get_basis_vector_kd(int Di, unsigned int coordinate)
Return the basis vector for the given coordinate.
Definition: VectorD.h:222
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:44
A shared container for Pairs.
Definition: PairContainer.h:39
void add_int_flag(std::string name, size_t default_value, std::string description)
Allow command line tools to easily implement multiple commands.
Definition: __init__.py:11763
CheckLevel get_check_level()
Get the current audit mode.
Definition: exception.h:80
VectorD< D > get_ones_vector_kd(unsigned int Di, double v=1)
Return a vector of ones (or another constant)
Definition: VectorD.h:295
Key< 11 > TriggerKey
The type used to identify changed model properties.
Definition: base_types.h:82
bool get_is_quick_test()
Definition: flags.h:183
Abstract predicate function.
Definition: QuadPredicate.h:31
Key< 0 > FloatKey
The type used to identify float attributes in the Particles.
Definition: base_types.h:32
def allow_deprecated
Context manager to temporarily allow (or disallow) deprecated code.
Definition: __init__.py:12020
std::string get_unique_name(std::string templ)
Return a unique name produced from the string.
DependencyGraph get_dependency_graph(Model *m)
def get_floats_numpy
Get the model's attribute array for FloatKey k as a NumPy array.
Definition: __init__.py:6737
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:1361
Vector< char > write_particles_to_buffer(const ParticlesTemp &particles, const FloatKeys &keys)
return a binary buffer with the data
Key< 13 > SparseIntKey
The type used to identify sparse int attributes in the Particles.
Definition: base_types.h:90
def main
Call this method to act upon the user-provided command line.
Definition: __init__.py:11801
Key< 15 > SparseParticleIndexKey
The type used to identify sparse particle attributes in the Particles.
Definition: base_types.h:98
Vector3D get_orthogonal_vector(const Vector3D &v)
Return a vector that is perpendicular to the given vector.
Definition: Vector3D.h:50
boost::graph DependencyGraph
Directed graph on the interactions between the various objects in the model.
ContainersTemp get_input_containers(const ModelObjectsTemp &mos)
Return all the input particles for a given ModelObject.
def deprecated_module
Mark a Python module as deprecated.
Definition: __init__.py:11972
Key< 16 > Vector3DKey
The type used to identify 3D vector attributes in the Particles.
Definition: base_types.h:102
Vector< VectorD< D > > get_vertices(const BoundingBoxD< D > &bb)
Return a list of the 2^D bounding points for the bounding box.
Definition: BoundingBoxD.h:281
Array< 4, WeakPointer< Particle >, Particle * > ParticleQuad
Definition: base_types.h:184
bool get_bool_flag(std::string name)
VectorD< D > get_zero_vector_kd(int Di)
Return a dynamically sized vector of zeros.
Definition: VectorD.h:262
void handle_use_deprecated(std::string message)
Break in this method in gdb to find deprecated uses at runtime.
void set_progress_display(std::string description, unsigned int steps)
Set up the progress bar with the passed description.
def deprecated_function
Python decorator to mark a function as deprecated.
Definition: __init__.py:12007
virtual ::IMP::VersionInfo get_version_info() const override
Get information about the module and version of the object.
Definition: Model.h:693
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.
Key< 19 > Vector4DDerivKey
The type used to identify 4D vector attributes&derivatives in the Particles.
Definition: base_types.h:114
Key< 6 > ParticleIndexesKey
The type used to identify a particle attribute in the Particles.
Definition: base_types.h:64
Array< 3, WeakPointer< Particle >, Particle * > ParticleTriplet
Definition: base_types.h:181
ContainersTemp get_output_containers(const ModelObjectsTemp &mos)
Return all the output particles for a given ModelObject.
Base class for all samplers.
Definition: Sampler.h:31
void add_particle(RMF::FileHandle fh, Particle *hs)
virtual void clear_caches()
Definition: Object.h:270
std::string get_data_path(std::string file_name)
Return the full path to one of this module's data files.
void add_string_flag(std::string name, std::string default_value, std::string description)
LogLevel get_log_level()
Get the currently active global log level.
Definition: log.h:92
def get_sphere_derivatives_numpy
Get the model's XYZR attribute derivatives arrays as NumPy arrays.
Definition: __init__.py:6764
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:6726
TextOutput create_temporary_file(std::string prefix="imp_temp", std::string suffix="")
Create a temporary file. The path can be extracted from the TextOutput.
ParticlesTemp get_output_particles(const ModelObjectsTemp &mos)
Return all the output particles for a given ModelObject.
ScoringFunction * create_scoring_function(RestraintType *rs, double weight=1.0, double max=NO_MAX, std::string name=std::string())
Create a ScoringFunction on a single restraint.
Definition: generic.h:23
A base class for modifiers of ParticlePairsTemp.
Definition: PairModifier.h:31
void write_help(std::ostream &out=std::cerr)
Key< 2 > StringKey
The type used to identify string attributes in the Particles.
Definition: base_types.h:40
size_t get_int_flag(std::string name)
Key< 10 > FloatsKey
The type used to identify float vector attributes in the Particles.
Definition: base_types.h:60
void add_restraint(RMF::FileHandle fh, Restraint *hs)
Key< 17 > Vector3DDerivKey
The type used to identify 3D vector attributes&derivatives in the Particles.
Definition: base_types.h:106
Abstract class for scoring object(s) of type ParticleIndexQuad.
Definition: QuadScore.h:44
Base class for objects in a Model that depend on other objects.
Definition: ModelObject.h:28
boost::uint64_t get_random_seed()
Return the initial random seed.
Abstract predicate function.
Key< 3 > ParticleIndexKey
The type used to identify a particle attribute in the Particles.
Definition: base_types.h:44
Strings get_live_object_names()
Return the names of all live objects.
void add_to_progress_display(unsigned int step=1)
Set the current progress.
void add_attribute(TypeKey attribute_key, ParticleIndex particle, Type value)
add particle attribute with the specified key and initial value
void add_float_flag(std::string name, double default_value, std::string description)
virtual void do_destroy()
Definition: Object.h:274
Ints get_index(const ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
double get_radius_of_gyration(const Vector3Ds &ps)
Return the radius of gyration of a set of points.
Definition: Vector3D.h:76
Common base class for heavy weight IMP objects.
Definition: Object.h:111
ParticleIndexes get_particle_indexes(ParticlesTemp const &particles)
def deprecated_method
Python decorator to mark a method as deprecated.
Definition: __init__.py:11995
Abstract class for scoring object(s) of type ParticleIndex.
Base class for all optimizers.
Definition: Optimizer.h:48
void reset_log_timer()
Reset the log timer.
void add_restraints(RMF::FileHandle fh, const Restraints &hs)
void add_to_log(LogLevel level, std::string to_write)
Write a string to the log, for Python.
def parse_args
Parse the command line and return optional and positional arguments.
Definition: __init__.py:12072
def get_internal_coordinates_numpy
Get the model's internal coordinate array as a NumPy array.
Definition: __init__.py:6770
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:6776
A shared container for Singletons.
void set_deprecation_exceptions(bool tf)
Toggle whether an exception is thrown when a deprecated method is used.
def get_spheres_numpy
Get the model's XYZR attribute arrays as NumPy arrays.
Definition: __init__.py:6758
Key< 4 > ObjectKey
The type used to identify an Object attribute.
Definition: base_types.h:48
Interface to specialized Particle types (e.g. atoms)
Definition: Decorator.h:119
IMP-specific subclass of argparse.ArgumentParser.
Definition: __init__.py:12053
def get_derivatives_numpy
Get the model's attribute derivatives array for key k as a NumPy array.
Definition: __init__.py:6742
std::ostream & show(Hierarchy h, std::ostream &out=std::cout)
Print the hierarchy using a given decorator to display each node.
std::string get_absolute_path(std::string file)
Convert a possibly relative path to an absolute path.
std::string get_executable_name()
Return the name of the current executable.
void set_log_level(LogLevel l)
Set the current global log level.
unsigned int get_number_of_threads()
float get_random_float_uniform()
Return a uniformly distributed float number in range [0..1)
Definition: random_utils.h:138
def deprecated_object
Python decorator to mark a class as deprecated.
Definition: __init__.py:11979
ParticlesTemp get_input_particles(const ModelObjectsTemp &mos)
Return all the input particles for a given ModelObject.
Base class for optimizers that act on individual attributes.
void set_show_leaked_objects(bool tf)
Set whether to complain about objects not being properly cleaned up.
Abstract predicate function.
Definition: PairPredicate.h:31
bool get_deprecation_exceptions()
Get whether an exception is thrown when a deprecated method is used.
Represents a scoring function on the model.
void set_log_timer(bool tb)
Set whether log messages are tagged with the current log time.
void show_restraint_hierarchy(ScoringFunctionAdaptor rs, std::ostream &out=std::cout)
Print the hierarchy of restraints.
DependencyGraph get_pruned_dependency_graph(Model *m)
std::string get_example_path(std::string file_name)
Return the full path to one of this module's example files.
Warning for incomplete JAX support or different behavior of JAX code.
Definition: __init__.py:12222
Object(std::string name)
Construct an object with the given name.
Array< 2, WeakPointer< Particle >, Particle * > ParticlePair
Definition: base_types.h:175
Key< 5 > IntsKey
The type used to identify int attributes in the Particles.
Definition: base_types.h:56
virtual VersionInfo get_version_info() const
Get information about the module and version of the object.
Definition: Object.h:206
Restraints create_restraints(RMF::FileConstHandle fh, Model *m)
Shared optimizer state that is invoked upon commitment of new coordinates.
Abstract predicate function.
Abstract class to implement hierarchical methods.
Definition: Refiner.h:36
A base class for modifiers of ParticleTripletsTemp.
std::string show_graphviz(Graph g)
void set_check_level(CheckLevel l)
std::string get_string_flag(std::string name)
networkx::DiGraph get_networkx_graph(Graph g)
Key< 18 > Vector4DKey
The type used to identify 4D vector attributes in the Particles.
Definition: base_types.h:110
def __init__
Constructor.
Definition: __init__.py:11788
double get_random_double_uniform()
Return a uniformly distributed double number in range [0..1)
Definition: random_utils.h:173
Key< 8 > ModelKey
The type used to identify data stored directly in the model.
Definition: base_types.h:78
A base class for modifiers of ParticleQuadsTemp.
Definition: QuadModifier.h:31
Key< 14 > SparseFloatKey
The type used to identify sparse float attributes in the Particles.
Definition: base_types.h:94
A shared container for Triplets.
def get_vector3ds_numpy
Get the model's attribute array for Vector3DKey k as a NumPy array.
Definition: __init__.py:6751
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.