IMP logo
IMP Reference Guide  develop.d36d3deffb,2026/11/09
The Integrative Modeling Platform
isd/__init__.py
1 # This file was automatically generated by SWIG (https://www.swig.org).
2 # Version 4.5.1
3 #
4 # Do not make changes to this file unless you know what you are doing - modify
5 # the SWIG interface file instead.
6 
7 
8 # This wrapper is part of IMP,
9 # Copyright 2007-2026 IMP Inventors. All rights reserved.
10 
11 
12 
13 import functools
14 
15 
16 
17 import typing
18 import _IMP_isd
19 
20 import builtins as __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 class _SwigNonDynamicMeta(type):
53  """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
54  __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)
55 
56 
57 import weakref
58 
59 class IMP_ISD_SwigPyIterator(object):
60  r"""Proxy of C++ swig::IMP_ISD_SwigPyIterator class."""
61 
62  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
63 
64  def __init__(self, *args, **kwargs):
65  raise AttributeError("No constructor defined - class is abstract")
66  __repr__ = _swig_repr
67  __swig_destroy__ = _IMP_isd.delete_IMP_ISD_SwigPyIterator
68 
69  def value(self):
70  r"""value(IMP_ISD_SwigPyIterator self) -> PyObject *"""
71  return _IMP_isd.IMP_ISD_SwigPyIterator_value(self)
72 
73  def incr(self, n=1):
74  r"""incr(IMP_ISD_SwigPyIterator self, size_t n=1) -> IMP_ISD_SwigPyIterator"""
75  return _IMP_isd.IMP_ISD_SwigPyIterator_incr(self, n)
76 
77  def decr(self, n=1):
78  r"""decr(IMP_ISD_SwigPyIterator self, size_t n=1) -> IMP_ISD_SwigPyIterator"""
79  return _IMP_isd.IMP_ISD_SwigPyIterator_decr(self, n)
80 
81  def distance(self, x):
82  r"""distance(IMP_ISD_SwigPyIterator self, IMP_ISD_SwigPyIterator x) -> ptrdiff_t"""
83  return _IMP_isd.IMP_ISD_SwigPyIterator_distance(self, x)
84 
85  def equal(self, x):
86  r"""equal(IMP_ISD_SwigPyIterator self, IMP_ISD_SwigPyIterator x) -> bool"""
87  return _IMP_isd.IMP_ISD_SwigPyIterator_equal(self, x)
88 
89  def copy(self):
90  r"""copy(IMP_ISD_SwigPyIterator self) -> IMP_ISD_SwigPyIterator"""
91  return _IMP_isd.IMP_ISD_SwigPyIterator_copy(self)
92 
93  def __next__(self):
94  r"""__next__(IMP_ISD_SwigPyIterator self) -> PyObject *"""
95  return _IMP_isd.IMP_ISD_SwigPyIterator___next__(self)
96 
97  def previous(self):
98  r"""previous(IMP_ISD_SwigPyIterator self) -> PyObject *"""
99  return _IMP_isd.IMP_ISD_SwigPyIterator_previous(self)
100 
101  def advance(self, n):
102  r"""advance(IMP_ISD_SwigPyIterator self, ptrdiff_t n) -> IMP_ISD_SwigPyIterator"""
103  return _IMP_isd.IMP_ISD_SwigPyIterator_advance(self, n)
104 
105  def __eq__(self, x):
106  r"""__eq__(IMP_ISD_SwigPyIterator self, IMP_ISD_SwigPyIterator x) -> bool"""
107  return _IMP_isd.IMP_ISD_SwigPyIterator___eq__(self, x)
108 
109  def __ne__(self, x):
110  r"""__ne__(IMP_ISD_SwigPyIterator self, IMP_ISD_SwigPyIterator x) -> bool"""
111  return _IMP_isd.IMP_ISD_SwigPyIterator___ne__(self, x)
112 
113  def __iadd__(self, n):
114  r"""__iadd__(IMP_ISD_SwigPyIterator self, ptrdiff_t n) -> IMP_ISD_SwigPyIterator"""
115  return _IMP_isd.IMP_ISD_SwigPyIterator___iadd__(self, n)
116 
117  def __isub__(self, n):
118  r"""__isub__(IMP_ISD_SwigPyIterator self, ptrdiff_t n) -> IMP_ISD_SwigPyIterator"""
119  return _IMP_isd.IMP_ISD_SwigPyIterator___isub__(self, n)
120 
121  def __add__(self, n):
122  r"""__add__(IMP_ISD_SwigPyIterator self, ptrdiff_t n) -> IMP_ISD_SwigPyIterator"""
123  return _IMP_isd.IMP_ISD_SwigPyIterator___add__(self, n)
124 
125  def __sub__(self, *args):
126  r"""
127  __sub__(IMP_ISD_SwigPyIterator self, ptrdiff_t n) -> IMP_ISD_SwigPyIterator
128  __sub__(IMP_ISD_SwigPyIterator self, IMP_ISD_SwigPyIterator x) -> ptrdiff_t
129  """
130  return _IMP_isd.IMP_ISD_SwigPyIterator___sub__(self, *args)
131  def __iter__(self):
132  return self
133 
134 # Register IMP_ISD_SwigPyIterator in _IMP_isd:
135 _IMP_isd.IMP_ISD_SwigPyIterator_swigregister(IMP_ISD_SwigPyIterator)
136 
137 _value_types=[]
138 _object_types=[]
139 _raii_types=[]
140 _plural_types=[]
141 
142 IMP_DEBUG = _IMP_isd.IMP_DEBUG
143 
144 IMP_RELEASE = _IMP_isd.IMP_RELEASE
145 
146 IMP_SILENT = _IMP_isd.IMP_SILENT
147 
148 IMP_PROGRESS = _IMP_isd.IMP_PROGRESS
149 
150 IMP_TERSE = _IMP_isd.IMP_TERSE
151 
152 IMP_VERBOSE = _IMP_isd.IMP_VERBOSE
153 
154 IMP_MEMORY = _IMP_isd.IMP_MEMORY
155 
156 IMP_NONE = _IMP_isd.IMP_NONE
157 
158 IMP_USAGE = _IMP_isd.IMP_USAGE
159 
160 IMP_INTERNAL = _IMP_isd.IMP_INTERNAL
161 
162 IMP_KERNEL_HAS_LOG4CXX = _IMP_isd.IMP_KERNEL_HAS_LOG4CXX
163 
164 IMP_COMPILER_HAS_CEREAL_RAW_POINTER = _IMP_isd.IMP_COMPILER_HAS_CEREAL_RAW_POINTER
165 
166 IMP_COMPILER_HAS_DEBUG_VECTOR = _IMP_isd.IMP_COMPILER_HAS_DEBUG_VECTOR
167 
168 IMP_COMPILER_HAS_RANDOM_SHUFFLE = _IMP_isd.IMP_COMPILER_HAS_RANDOM_SHUFFLE
169 
170 IMP_COMPILER_HAS_THREE_WAY = _IMP_isd.IMP_COMPILER_HAS_THREE_WAY
171 
172 IMP_KERNEL_HAS_BOOST_RANDOM = _IMP_isd.IMP_KERNEL_HAS_BOOST_RANDOM
173 
174 IMP_KERNEL_HAS_NUMPY = _IMP_isd.IMP_KERNEL_HAS_NUMPY
175 
176 IMP_KERNEL_HAS_BOOST_SYSTEM = _IMP_isd.IMP_KERNEL_HAS_BOOST_SYSTEM
177 
178 IMP_KERNEL_HAS_GPERFTOOLS = _IMP_isd.IMP_KERNEL_HAS_GPERFTOOLS
179 
180 IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER = _IMP_isd.IMP_KERNEL_HAS_TCMALLOC_HEAPCHECKER
181 
182 IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER = _IMP_isd.IMP_KERNEL_HAS_TCMALLOC_HEAPPROFILER
183 
184 IMPKERNEL_SHOW_WARNINGS = _IMP_isd.IMPKERNEL_SHOW_WARNINGS
185 
186 
187 import sys
188 class _DirectorObjects:
189  """@internal Simple class to keep references to director objects
190  to prevent premature deletion."""
191  def __init__(self):
192  self._objects = []
193  def register(self, obj):
194  """Take a reference to a director object; will only work for
195  refcounted C++ classes"""
196  if hasattr(obj, 'get_ref_count'):
197  self._objects.append(obj)
198  def cleanup(self):
199  """Only drop our reference and allow cleanup by Python if no other
200  Python references exist (we hold 3 references: one in self._objects,
201  one in x, and one in the argument list for getrefcount) *and* no
202  other C++ references exist (the Python object always holds one)"""
203  objs = [x for x in self._objects if sys.getrefcount(x) > 3 \
204  or x.get_ref_count() > 1]
205 # Do in two steps so the references are kept until the end of the
206 # function (deleting references may trigger a fresh call to this method)
207  self._objects = objs
208  def get_object_count(self):
209  """Get number of director objects (useful for testing only)"""
210  return len(self._objects)
211 _director_objects = _DirectorObjects()
212 
213 class _ostream(object):
214  r"""Proxy of C++ std::ostream class."""
215 
216  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
217 
218  def __init__(self, *args, **kwargs):
219  raise AttributeError("No constructor defined")
220  __repr__ = _swig_repr
221 
222  def write(self, osa_buf):
223  r"""write(_ostream self, char const * osa_buf)"""
224  return _IMP_isd._ostream_write(self, osa_buf)
225 
226 # Register _ostream in _IMP_isd:
227 _IMP_isd._ostream_swigregister(_ostream)
228 IMP_C_OPEN_BINARY = _IMP_isd.IMP_C_OPEN_BINARY
229 
230 import IMP
231 IMP_CGAL_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_CGAL_HAS_BOOST_FILESYSTEM
232 
233 IMP_CGAL_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_CGAL_HAS_BOOST_PROGRAMOPTIONS
234 
235 IMP_CGAL_HAS_BOOST_RANDOM = _IMP_isd.IMP_CGAL_HAS_BOOST_RANDOM
236 
237 IMP_CGAL_HAS_NUMPY = _IMP_isd.IMP_CGAL_HAS_NUMPY
238 
239 IMPCGAL_SHOW_WARNINGS = _IMP_isd.IMPCGAL_SHOW_WARNINGS
240 
241 import IMP.cgal
242 IMP_ALGEBRA_HAS_IMP_CGAL = _IMP_isd.IMP_ALGEBRA_HAS_IMP_CGAL
243 
244 IMP_ALGEBRA_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_ALGEBRA_HAS_BOOST_FILESYSTEM
245 
246 IMP_ALGEBRA_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_ALGEBRA_HAS_BOOST_PROGRAMOPTIONS
247 
248 IMP_ALGEBRA_HAS_BOOST_RANDOM = _IMP_isd.IMP_ALGEBRA_HAS_BOOST_RANDOM
249 
250 IMP_ALGEBRA_HAS_CGAL = _IMP_isd.IMP_ALGEBRA_HAS_CGAL
251 
252 IMP_ALGEBRA_HAS_NUMPY = _IMP_isd.IMP_ALGEBRA_HAS_NUMPY
253 
254 IMP_ALGEBRA_HAS_ANN = _IMP_isd.IMP_ALGEBRA_HAS_ANN
255 
256 IMPALGEBRA_SHOW_WARNINGS = _IMP_isd.IMPALGEBRA_SHOW_WARNINGS
257 
258 import IMP.algebra
259 IMP_DISPLAY_HAS_IMP_CGAL = _IMP_isd.IMP_DISPLAY_HAS_IMP_CGAL
260 
261 IMP_DISPLAY_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_DISPLAY_HAS_BOOST_FILESYSTEM
262 
263 IMP_DISPLAY_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_DISPLAY_HAS_BOOST_PROGRAMOPTIONS
264 
265 IMP_DISPLAY_HAS_BOOST_RANDOM = _IMP_isd.IMP_DISPLAY_HAS_BOOST_RANDOM
266 
267 IMP_DISPLAY_HAS_CGAL = _IMP_isd.IMP_DISPLAY_HAS_CGAL
268 
269 IMP_DISPLAY_HAS_NUMPY = _IMP_isd.IMP_DISPLAY_HAS_NUMPY
270 
271 IMPDISPLAY_SHOW_WARNINGS = _IMP_isd.IMPDISPLAY_SHOW_WARNINGS
272 
273 import IMP.display
274 IMP_SCORE_FUNCTOR_HAS_IMP_CGAL = _IMP_isd.IMP_SCORE_FUNCTOR_HAS_IMP_CGAL
275 
276 IMP_SCORE_FUNCTOR_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_SCORE_FUNCTOR_HAS_BOOST_FILESYSTEM
277 
278 IMP_SCORE_FUNCTOR_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_SCORE_FUNCTOR_HAS_BOOST_PROGRAMOPTIONS
279 
280 IMP_SCORE_FUNCTOR_HAS_BOOST_RANDOM = _IMP_isd.IMP_SCORE_FUNCTOR_HAS_BOOST_RANDOM
281 
282 IMP_SCORE_FUNCTOR_HAS_CGAL = _IMP_isd.IMP_SCORE_FUNCTOR_HAS_CGAL
283 
284 IMP_SCORE_FUNCTOR_HAS_HDF5 = _IMP_isd.IMP_SCORE_FUNCTOR_HAS_HDF5
285 
286 IMP_SCORE_FUNCTOR_HAS_NUMPY = _IMP_isd.IMP_SCORE_FUNCTOR_HAS_NUMPY
287 
288 IMPSCOREFUNCTOR_SHOW_WARNINGS = _IMP_isd.IMPSCOREFUNCTOR_SHOW_WARNINGS
289 
290 import IMP.score_functor
291 IMP_STATISTICS_HAS_IMP_CGAL = _IMP_isd.IMP_STATISTICS_HAS_IMP_CGAL
292 
293 IMP_STATISTICS_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_STATISTICS_HAS_BOOST_FILESYSTEM
294 
295 IMP_STATISTICS_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_STATISTICS_HAS_BOOST_PROGRAMOPTIONS
296 
297 IMP_STATISTICS_HAS_BOOST_RANDOM = _IMP_isd.IMP_STATISTICS_HAS_BOOST_RANDOM
298 
299 IMP_STATISTICS_HAS_CGAL = _IMP_isd.IMP_STATISTICS_HAS_CGAL
300 
301 IMP_STATISTICS_HAS_NUMPY = _IMP_isd.IMP_STATISTICS_HAS_NUMPY
302 
303 IMPSTATISTICS_SHOW_WARNINGS = _IMP_isd.IMPSTATISTICS_SHOW_WARNINGS
304 
305 import IMP.statistics
306 IMP_CORE_HAS_IMP_CGAL = _IMP_isd.IMP_CORE_HAS_IMP_CGAL
307 
308 IMP_CORE_HAS_IMP_KERNEL = _IMP_isd.IMP_CORE_HAS_IMP_KERNEL
309 
310 IMP_CORE_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_CORE_HAS_BOOST_FILESYSTEM
311 
312 IMP_CORE_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_CORE_HAS_BOOST_PROGRAMOPTIONS
313 
314 IMP_CORE_HAS_BOOST_RANDOM = _IMP_isd.IMP_CORE_HAS_BOOST_RANDOM
315 
316 IMP_CORE_HAS_CGAL = _IMP_isd.IMP_CORE_HAS_CGAL
317 
318 IMP_CORE_HAS_HDF5 = _IMP_isd.IMP_CORE_HAS_HDF5
319 
320 IMP_CORE_HAS_NUMPY = _IMP_isd.IMP_CORE_HAS_NUMPY
321 
322 IMPCORE_SHOW_WARNINGS = _IMP_isd.IMPCORE_SHOW_WARNINGS
323 
324 import IMP.core
325 IMP_CONTAINER_HAS_IMP_ALGEBRA = _IMP_isd.IMP_CONTAINER_HAS_IMP_ALGEBRA
326 
327 IMP_CONTAINER_HAS_IMP_CGAL = _IMP_isd.IMP_CONTAINER_HAS_IMP_CGAL
328 
329 IMP_CONTAINER_HAS_IMP_DISPLAY = _IMP_isd.IMP_CONTAINER_HAS_IMP_DISPLAY
330 
331 IMP_CONTAINER_HAS_IMP_KERNEL = _IMP_isd.IMP_CONTAINER_HAS_IMP_KERNEL
332 
333 IMP_CONTAINER_HAS_IMP_SCORE_FUNCTOR = _IMP_isd.IMP_CONTAINER_HAS_IMP_SCORE_FUNCTOR
334 
335 IMP_CONTAINER_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_CONTAINER_HAS_BOOST_FILESYSTEM
336 
337 IMP_CONTAINER_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_CONTAINER_HAS_BOOST_PROGRAMOPTIONS
338 
339 IMP_CONTAINER_HAS_BOOST_RANDOM = _IMP_isd.IMP_CONTAINER_HAS_BOOST_RANDOM
340 
341 IMP_CONTAINER_HAS_CGAL = _IMP_isd.IMP_CONTAINER_HAS_CGAL
342 
343 IMP_CONTAINER_HAS_HDF5 = _IMP_isd.IMP_CONTAINER_HAS_HDF5
344 
345 IMP_CONTAINER_HAS_NUMPY = _IMP_isd.IMP_CONTAINER_HAS_NUMPY
346 
347 IMP_CONTAINER_HAS_PYTHON_IHM = _IMP_isd.IMP_CONTAINER_HAS_PYTHON_IHM
348 
349 IMP_CONTAINER_HAS_GOOGLE_DENSE_HASH_MAP = _IMP_isd.IMP_CONTAINER_HAS_GOOGLE_DENSE_HASH_MAP
350 
351 IMP_CONTAINER_HAS_ROBIN_MAP = _IMP_isd.IMP_CONTAINER_HAS_ROBIN_MAP
352 
353 IMPCONTAINER_SHOW_WARNINGS = _IMP_isd.IMPCONTAINER_SHOW_WARNINGS
354 
355 import IMP.container
356 IMP_ATOM_HAS_IMP_CGAL = _IMP_isd.IMP_ATOM_HAS_IMP_CGAL
357 
358 IMP_ATOM_HAS_IMP_KERNEL = _IMP_isd.IMP_ATOM_HAS_IMP_KERNEL
359 
360 IMP_ATOM_HAS_IMP_SCORE_FUNCTOR = _IMP_isd.IMP_ATOM_HAS_IMP_SCORE_FUNCTOR
361 
362 IMP_ATOM_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_ATOM_HAS_BOOST_PROGRAMOPTIONS
363 
364 IMP_ATOM_HAS_BOOST_RANDOM = _IMP_isd.IMP_ATOM_HAS_BOOST_RANDOM
365 
366 IMP_ATOM_HAS_BOOST_REGEX = _IMP_isd.IMP_ATOM_HAS_BOOST_REGEX
367 
368 IMP_ATOM_HAS_CGAL = _IMP_isd.IMP_ATOM_HAS_CGAL
369 
370 IMP_ATOM_HAS_HDF5 = _IMP_isd.IMP_ATOM_HAS_HDF5
371 
372 IMP_ATOM_HAS_NUMPY = _IMP_isd.IMP_ATOM_HAS_NUMPY
373 
374 IMP_ATOM_HAS_PYTHON_IHM = _IMP_isd.IMP_ATOM_HAS_PYTHON_IHM
375 
376 IMPATOM_SHOW_WARNINGS = _IMP_isd.IMPATOM_SHOW_WARNINGS
377 
378 IMP_ATOM_TYPE_INDEX = _IMP_isd.IMP_ATOM_TYPE_INDEX
379 
380 IMP_RESIDUE_TYPE_INDEX = _IMP_isd.IMP_RESIDUE_TYPE_INDEX
381 
382 IMP_HIERARCHY_TYPE_INDEX = _IMP_isd.IMP_HIERARCHY_TYPE_INDEX
383 
384 IMP_CHAIN_TYPE_INDEX = _IMP_isd.IMP_CHAIN_TYPE_INDEX
385 
386 import IMP.atom
387 IMP_EM_HAS_IMP_CGAL = _IMP_isd.IMP_EM_HAS_IMP_CGAL
388 
389 IMP_EM_HAS_IMP_CONTAINER = _IMP_isd.IMP_EM_HAS_IMP_CONTAINER
390 
391 IMP_EM_HAS_IMP_DISPLAY = _IMP_isd.IMP_EM_HAS_IMP_DISPLAY
392 
393 IMP_EM_HAS_IMP_SCORE_FUNCTOR = _IMP_isd.IMP_EM_HAS_IMP_SCORE_FUNCTOR
394 
395 IMP_EM_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_EM_HAS_BOOST_FILESYSTEM
396 
397 IMP_EM_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_EM_HAS_BOOST_PROGRAMOPTIONS
398 
399 IMP_EM_HAS_BOOST_RANDOM = _IMP_isd.IMP_EM_HAS_BOOST_RANDOM
400 
401 IMP_EM_HAS_BOOST_REGEX = _IMP_isd.IMP_EM_HAS_BOOST_REGEX
402 
403 IMP_EM_HAS_CGAL = _IMP_isd.IMP_EM_HAS_CGAL
404 
405 IMP_EM_HAS_HDF5 = _IMP_isd.IMP_EM_HAS_HDF5
406 
407 IMP_EM_HAS_NUMPY = _IMP_isd.IMP_EM_HAS_NUMPY
408 
409 IMP_EM_HAS_PYTHON_IHM = _IMP_isd.IMP_EM_HAS_PYTHON_IHM
410 
411 IMPEM_SHOW_WARNINGS = _IMP_isd.IMPEM_SHOW_WARNINGS
412 
413 import IMP.em
414 IMP_SAXS_HAS_IMP_CGAL = _IMP_isd.IMP_SAXS_HAS_IMP_CGAL
415 
416 IMP_SAXS_HAS_IMP_CONTAINER = _IMP_isd.IMP_SAXS_HAS_IMP_CONTAINER
417 
418 IMP_SAXS_HAS_IMP_DISPLAY = _IMP_isd.IMP_SAXS_HAS_IMP_DISPLAY
419 
420 IMP_SAXS_HAS_IMP_KERNEL = _IMP_isd.IMP_SAXS_HAS_IMP_KERNEL
421 
422 IMP_SAXS_HAS_IMP_SCORE_FUNCTOR = _IMP_isd.IMP_SAXS_HAS_IMP_SCORE_FUNCTOR
423 
424 IMP_SAXS_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_SAXS_HAS_BOOST_FILESYSTEM
425 
426 IMP_SAXS_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_SAXS_HAS_BOOST_PROGRAMOPTIONS
427 
428 IMP_SAXS_HAS_BOOST_RANDOM = _IMP_isd.IMP_SAXS_HAS_BOOST_RANDOM
429 
430 IMP_SAXS_HAS_BOOST_REGEX = _IMP_isd.IMP_SAXS_HAS_BOOST_REGEX
431 
432 IMP_SAXS_HAS_CGAL = _IMP_isd.IMP_SAXS_HAS_CGAL
433 
434 IMP_SAXS_HAS_HDF5 = _IMP_isd.IMP_SAXS_HAS_HDF5
435 
436 IMP_SAXS_HAS_NUMPY = _IMP_isd.IMP_SAXS_HAS_NUMPY
437 
438 IMP_SAXS_HAS_PYTHON_IHM = _IMP_isd.IMP_SAXS_HAS_PYTHON_IHM
439 
440 IMPSAXS_SHOW_WARNINGS = _IMP_isd.IMPSAXS_SHOW_WARNINGS
441 
442 import IMP.saxs
443 IMP_ISD_HAS_IMP_CGAL = _IMP_isd.IMP_ISD_HAS_IMP_CGAL
444 
445 IMP_ISD_HAS_IMP_DISPLAY = _IMP_isd.IMP_ISD_HAS_IMP_DISPLAY
446 
447 IMP_ISD_HAS_IMP_SCORE_FUNCTOR = _IMP_isd.IMP_ISD_HAS_IMP_SCORE_FUNCTOR
448 
449 IMP_ISD_HAS_BOOST_FILESYSTEM = _IMP_isd.IMP_ISD_HAS_BOOST_FILESYSTEM
450 
451 IMP_ISD_HAS_BOOST_PROGRAMOPTIONS = _IMP_isd.IMP_ISD_HAS_BOOST_PROGRAMOPTIONS
452 
453 IMP_ISD_HAS_BOOST_RANDOM = _IMP_isd.IMP_ISD_HAS_BOOST_RANDOM
454 
455 IMP_ISD_HAS_BOOST_REGEX = _IMP_isd.IMP_ISD_HAS_BOOST_REGEX
456 
457 IMP_ISD_HAS_CGAL = _IMP_isd.IMP_ISD_HAS_CGAL
458 
459 IMP_ISD_HAS_HDF5 = _IMP_isd.IMP_ISD_HAS_HDF5
460 
461 IMP_ISD_HAS_NUMPY = _IMP_isd.IMP_ISD_HAS_NUMPY
462 
463 IMP_ISD_HAS_PYTHON_IHM = _IMP_isd.IMP_ISD_HAS_PYTHON_IHM
464 
465 IMPISD_SHOW_WARNINGS = _IMP_isd.IMPISD_SHOW_WARNINGS
466 
467 
468 _object_types.append("ISDRestraint")
469 
470 
471 def _object_cast_to_ISDRestraint(o):
472  r"""_object_cast_to_ISDRestraint(Object o) -> ISDRestraint"""
473  return _IMP_isd._object_cast_to_ISDRestraint(o)
474 
475 _object_types.append("CrossLinkMSRestraint")
476 
477 
478 def _object_cast_to_CrossLinkMSRestraint(o):
479  r"""_object_cast_to_CrossLinkMSRestraint(Object o) -> CrossLinkMSRestraint"""
480  return _IMP_isd._object_cast_to_CrossLinkMSRestraint(o)
481 
482 _object_types.append("LogWrapper")
483 
484 
485 def _object_cast_to_LogWrapper(o):
486  r"""_object_cast_to_LogWrapper(Object o) -> LogWrapper"""
487  return _IMP_isd._object_cast_to_LogWrapper(o)
488 
489 _object_types.append("UniformPrior")
490 
491 
492 def _object_cast_to_UniformPrior(o):
493  r"""_object_cast_to_UniformPrior(Object o) -> UniformPrior"""
494  return _IMP_isd._object_cast_to_UniformPrior(o)
495 
496 _object_types.append("JeffreysRestraint")
497 
498 
499 def _object_cast_to_JeffreysRestraint(o):
500  r"""_object_cast_to_JeffreysRestraint(Object o) -> JeffreysRestraint"""
501  return _IMP_isd._object_cast_to_JeffreysRestraint(o)
502 
503 _object_types.append("NuisanceScoreState")
504 
505 
506 def _object_cast_to_NuisanceScoreState(o):
507  r"""_object_cast_to_NuisanceScoreState(Object o) -> NuisanceScoreState"""
508  return _IMP_isd._object_cast_to_NuisanceScoreState(o)
509 
510 _object_types.append("NormalSigmaPCRestraint")
511 
512 
513 def _object_cast_to_NormalSigmaPCRestraint(o):
514  r"""_object_cast_to_NormalSigmaPCRestraint(Object o) -> NormalSigmaPCRestraint"""
515  return _IMP_isd._object_cast_to_NormalSigmaPCRestraint(o)
516 
517 _object_types.append("vonMisesKappaJeffreysRestraint")
518 
519 
520 def _object_cast_to_vonMisesKappaJeffreysRestraint(o):
521  r"""_object_cast_to_vonMisesKappaJeffreysRestraint(Object o) -> vonMisesKappaJeffreysRestraint"""
522  return _IMP_isd._object_cast_to_vonMisesKappaJeffreysRestraint(o)
523 
524 _object_types.append("vonMisesKappaConjugateRestraint")
525 
526 
527 def _object_cast_to_vonMisesKappaConjugateRestraint(o):
528  r"""_object_cast_to_vonMisesKappaConjugateRestraint(Object o) -> vonMisesKappaConjugateRestraint"""
529  return _IMP_isd._object_cast_to_vonMisesKappaConjugateRestraint(o)
530 
531 _object_types.append("Distribution")
532 
533 
534 def _object_cast_to_Distribution(o):
535  r"""_object_cast_to_Distribution(Object o) -> Distribution"""
536  return _IMP_isd._object_cast_to_Distribution(o)
537 
538 _object_types.append("OneDimensionalDistribution")
539 
540 
541 def _object_cast_to_OneDimensionalDistribution(o):
542  r"""_object_cast_to_OneDimensionalDistribution(Object o) -> OneDimensionalDistribution"""
543  return _IMP_isd._object_cast_to_OneDimensionalDistribution(o)
544 
545 _object_types.append("OneDimensionalSufficientDistribution")
546 
547 
548 def _object_cast_to_OneDimensionalSufficientDistribution(o):
549  r"""_object_cast_to_OneDimensionalSufficientDistribution(Object o) -> OneDimensionalSufficientDistribution"""
550  return _IMP_isd._object_cast_to_OneDimensionalSufficientDistribution(o)
551 
552 _object_types.append("FNormal")
553 
554 
555 def _object_cast_to_FNormal(o):
556  r"""_object_cast_to_FNormal(Object o) -> FNormal"""
557  return _IMP_isd._object_cast_to_FNormal(o)
558 
559 _object_types.append("FStudentT")
560 
561 
562 def _object_cast_to_FStudentT(o):
563  r"""_object_cast_to_FStudentT(Object o) -> FStudentT"""
564  return _IMP_isd._object_cast_to_FStudentT(o)
565 
566 _object_types.append("vonMises")
567 
568 
569 def _object_cast_to_vonMises(o):
570  r"""_object_cast_to_vonMises(Object o) -> vonMises"""
571  return _IMP_isd._object_cast_to_vonMises(o)
572 
573 _object_types.append("vonMisesSufficient")
574 
575 
576 def _object_cast_to_vonMisesSufficient(o):
577  r"""_object_cast_to_vonMisesSufficient(Object o) -> vonMisesSufficient"""
578  return _IMP_isd._object_cast_to_vonMisesSufficient(o)
579 
580 _object_types.append("PenalizedComplexityPrior")
581 
582 
583 def _object_cast_to_PenalizedComplexityPrior(o):
584  r"""_object_cast_to_PenalizedComplexityPrior(Object o) -> PenalizedComplexityPrior"""
585  return _IMP_isd._object_cast_to_PenalizedComplexityPrior(o)
586 
587 def Nuisances(l=[]):
588  return [Nuisance(x) for x in l]
589 _plural_types.append("Nuisances")
590 
591 
592 _value_types.append("Nuisance")
593 
594 
595 def Scales(l=[]):
596  return [Scale(x) for x in l]
597 _plural_types.append("Scales")
598 
599 
600 _value_types.append("Scale")
601 
602 
603 def Switchings(l=[]):
604  return [Switching(x) for x in l]
605 _plural_types.append("Switchings")
606 
607 
608 _value_types.append("Switching")
609 
610 
611 _object_types.append("NOERestraint")
612 
613 
614 def _object_cast_to_NOERestraint(o):
615  r"""_object_cast_to_NOERestraint(Object o) -> NOERestraint"""
616  return _IMP_isd._object_cast_to_NOERestraint(o)
617 
618 def Weights(l=[]):
619  return [Weight(x) for x in l]
620 _plural_types.append("Weights")
621 
622 
623 _value_types.append("Weight")
624 
625 
626 _object_types.append("GaussianRestraint")
627 
628 
629 def _object_cast_to_GaussianRestraint(o):
630  r"""_object_cast_to_GaussianRestraint(Object o) -> GaussianRestraint"""
631  return _IMP_isd._object_cast_to_GaussianRestraint(o)
632 
633 _object_types.append("StudentTRestraint")
634 
635 
636 def _object_cast_to_StudentTRestraint(o):
637  r"""_object_cast_to_StudentTRestraint(Object o) -> StudentTRestraint"""
638  return _IMP_isd._object_cast_to_StudentTRestraint(o)
639 
640 _object_types.append("LognormalRestraint")
641 
642 
643 def _object_cast_to_LognormalRestraint(o):
644  r"""_object_cast_to_LognormalRestraint(Object o) -> LognormalRestraint"""
645  return _IMP_isd._object_cast_to_LognormalRestraint(o)
646 
647 _object_types.append("LognormalAmbiguousRestraint")
648 
649 
650 def _object_cast_to_LognormalAmbiguousRestraint(o):
651  r"""_object_cast_to_LognormalAmbiguousRestraint(Object o) -> LognormalAmbiguousRestraint"""
652  return _IMP_isd._object_cast_to_LognormalAmbiguousRestraint(o)
653 
654 _object_types.append("AmbiguousNOERestraint")
655 
656 
657 def _object_cast_to_AmbiguousNOERestraint(o):
658  r"""_object_cast_to_AmbiguousNOERestraint(Object o) -> AmbiguousNOERestraint"""
659  return _IMP_isd._object_cast_to_AmbiguousNOERestraint(o)
660 
661 _object_types.append("MarginalNOERestraint")
662 
663 
664 def _object_cast_to_MarginalNOERestraint(o):
665  r"""_object_cast_to_MarginalNOERestraint(Object o) -> MarginalNOERestraint"""
666  return _IMP_isd._object_cast_to_MarginalNOERestraint(o)
667 
668 _object_types.append("MarginalHBondRestraint")
669 
670 
671 def _object_cast_to_MarginalHBondRestraint(o):
672  r"""_object_cast_to_MarginalHBondRestraint(Object o) -> MarginalHBondRestraint"""
673  return _IMP_isd._object_cast_to_MarginalHBondRestraint(o)
674 
675 _object_types.append("TALOSRestraint")
676 
677 
678 def _object_cast_to_TALOSRestraint(o):
679  r"""_object_cast_to_TALOSRestraint(Object o) -> TALOSRestraint"""
680  return _IMP_isd._object_cast_to_TALOSRestraint(o)
681 
682 _object_types.append("RepulsiveDistancePairScore")
683 
684 
685 def _object_cast_to_RepulsiveDistancePairScore(o):
686  r"""_object_cast_to_RepulsiveDistancePairScore(Object o) -> RepulsiveDistancePairScore"""
687  return _IMP_isd._object_cast_to_RepulsiveDistancePairScore(o)
688 
689 _object_types.append("AmbiguousRestraint")
690 
691 
692 def _object_cast_to_AmbiguousRestraint(o):
693  r"""_object_cast_to_AmbiguousRestraint(Object o) -> AmbiguousRestraint"""
694  return _IMP_isd._object_cast_to_AmbiguousRestraint(o)
695 
696 _object_types.append("UnivariateFunction")
697 
698 
699 def _object_cast_to_UnivariateFunction(o):
700  r"""_object_cast_to_UnivariateFunction(Object o) -> UnivariateFunction"""
701  return _IMP_isd._object_cast_to_UnivariateFunction(o)
702 
703 _object_types.append("Linear1DFunction")
704 
705 
706 def _object_cast_to_Linear1DFunction(o):
707  r"""_object_cast_to_Linear1DFunction(Object o) -> Linear1DFunction"""
708  return _IMP_isd._object_cast_to_Linear1DFunction(o)
709 
710 _object_types.append("GeneralizedGuinierPorodFunction")
711 
712 
713 def _object_cast_to_GeneralizedGuinierPorodFunction(o):
714  r"""_object_cast_to_GeneralizedGuinierPorodFunction(Object o) -> GeneralizedGuinierPorodFunction"""
715  return _IMP_isd._object_cast_to_GeneralizedGuinierPorodFunction(o)
716 
717 _object_types.append("BivariateFunction")
718 
719 
720 def _object_cast_to_BivariateFunction(o):
721  r"""_object_cast_to_BivariateFunction(Object o) -> BivariateFunction"""
722  return _IMP_isd._object_cast_to_BivariateFunction(o)
723 
724 _object_types.append("Covariance1DFunction")
725 
726 
727 def _object_cast_to_Covariance1DFunction(o):
728  r"""_object_cast_to_Covariance1DFunction(Object o) -> Covariance1DFunction"""
729  return _IMP_isd._object_cast_to_Covariance1DFunction(o)
730 
731 _object_types.append("GaussianProcessInterpolation")
732 
733 
734 def _object_cast_to_GaussianProcessInterpolation(o):
735  r"""_object_cast_to_GaussianProcessInterpolation(Object o) -> GaussianProcessInterpolation"""
736  return _IMP_isd._object_cast_to_GaussianProcessInterpolation(o)
737 
738 _object_types.append("GaussianProcessInterpolationRestraint")
739 
740 
741 def _object_cast_to_GaussianProcessInterpolationRestraint(o):
742  r"""_object_cast_to_GaussianProcessInterpolationRestraint(Object o) -> GaussianProcessInterpolationRestraint"""
743  return _IMP_isd._object_cast_to_GaussianProcessInterpolationRestraint(o)
744 
745 _object_types.append("MolecularDynamics")
746 
747 
748 _object_types.append("MolecularDynamicsMover")
749 
750 
751 def _object_cast_to_MolecularDynamicsMover(o):
752  r"""_object_cast_to_MolecularDynamicsMover(Object o) -> MolecularDynamicsMover"""
753  return _IMP_isd._object_cast_to_MolecularDynamicsMover(o)
754 
755 _object_types.append("HybridMonteCarlo")
756 
757 
758 def _object_cast_to_HybridMonteCarlo(o):
759  r"""_object_cast_to_HybridMonteCarlo(Object o) -> HybridMonteCarlo"""
760  return _IMP_isd._object_cast_to_HybridMonteCarlo(o)
761 
762 _object_types.append("FretData")
763 
764 
765 def _object_cast_to_FretData(o):
766  r"""_object_cast_to_FretData(Object o) -> FretData"""
767  return _IMP_isd._object_cast_to_FretData(o)
768 
769 _object_types.append("FretRestraint")
770 
771 
772 def _object_cast_to_FretRestraint(o):
773  r"""_object_cast_to_FretRestraint(Object o) -> FretRestraint"""
774  return _IMP_isd._object_cast_to_FretRestraint(o)
775 
776 _object_types.append("CrossLinkData")
777 
778 
779 def _object_cast_to_CrossLinkData(o):
780  r"""_object_cast_to_CrossLinkData(Object o) -> CrossLinkData"""
781  return _IMP_isd._object_cast_to_CrossLinkData(o)
782 
783 _object_types.append("CysteineCrossLinkData")
784 
785 
786 def _object_cast_to_CysteineCrossLinkData(o):
787  r"""_object_cast_to_CysteineCrossLinkData(Object o) -> CysteineCrossLinkData"""
788  return _IMP_isd._object_cast_to_CysteineCrossLinkData(o)
789 
790 _object_types.append("CysteineCrossLinkRestraint")
791 
792 
793 def _object_cast_to_CysteineCrossLinkRestraint(o):
794  r"""_object_cast_to_CysteineCrossLinkRestraint(Object o) -> CysteineCrossLinkRestraint"""
795  return _IMP_isd._object_cast_to_CysteineCrossLinkRestraint(o)
796 
797 _object_types.append("WeightMover")
798 
799 
800 def _object_cast_to_WeightMover(o):
801  r"""_object_cast_to_WeightMover(Object o) -> WeightMover"""
802  return _IMP_isd._object_cast_to_WeightMover(o)
803 
804 _object_types.append("WeightRestraint")
805 
806 
807 def _object_cast_to_WeightRestraint(o):
808  r"""_object_cast_to_WeightRestraint(Object o) -> WeightRestraint"""
809  return _IMP_isd._object_cast_to_WeightRestraint(o)
810 
811 _object_types.append("AtomicCrossLinkMSRestraint")
812 
813 
814 def _object_cast_to_AtomicCrossLinkMSRestraint(o):
815  r"""_object_cast_to_AtomicCrossLinkMSRestraint(Object o) -> AtomicCrossLinkMSRestraint"""
816  return _IMP_isd._object_cast_to_AtomicCrossLinkMSRestraint(o)
817 
818 _object_types.append("GaussianEMRestraint")
819 
820 
821 def _object_cast_to_GaussianEMRestraint(o):
822  r"""_object_cast_to_GaussianEMRestraint(Object o) -> GaussianEMRestraint"""
823  return _IMP_isd._object_cast_to_GaussianEMRestraint(o)
824 
825 _object_types.append("GaussianAnchorEMRestraint")
826 
827 
828 def _object_cast_to_GaussianAnchorEMRestraint(o):
829  r"""_object_cast_to_GaussianAnchorEMRestraint(Object o) -> GaussianAnchorEMRestraint"""
830  return _IMP_isd._object_cast_to_GaussianAnchorEMRestraint(o)
831 
832 _object_types.append("GammaPrior")
833 
834 
835 def _object_cast_to_GammaPrior(o):
836  r"""_object_cast_to_GammaPrior(Object o) -> GammaPrior"""
837  return _IMP_isd._object_cast_to_GammaPrior(o)
838 
839 _object_types.append("ResidueProteinProximityRestraint")
840 
841 
842 def _object_cast_to_ResidueProteinProximityRestraint(o):
843  r"""_object_cast_to_ResidueProteinProximityRestraint(Object o) -> ResidueProteinProximityRestraint"""
844  return _IMP_isd._object_cast_to_ResidueProteinProximityRestraint(o)
845 
846 def create_model_and_particles():
847  m= IMP.Model()
849  b= IMP.algebra.BoundingBox3D(IMP.algebra.Vector3D(0,0,0),
850  IMP.algebra.Vector3D(10,10,10))
851  for i in range(0,100):
852  p= IMP.Particle(m)
853  sc.add_particle(p)
855  d.set_coordinates_are_optimized(True)
856  return (m, sc)
857 
858 class ISDRestraint(IMP.Restraint):
859  r"""Proxy of C++ IMP::isd::ISDRestraint class."""
860 
861  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
862 
863  def __init__(self, m, name):
864  r"""__init__(ISDRestraint self, Model m, std::string name) -> ISDRestraint"""
865  if self.__class__ == ISDRestraint:
866  _self = None
867  else:
868  _self = self
869  _IMP_isd.ISDRestraint_swiginit(self, _IMP_isd.new_ISDRestraint(_self, m, name))
870 
871  if self.__class__ != ISDRestraint:
872  _director_objects.register(self)
873 
874 
875 
876 
877  def get_probability(self):
878  r"""get_probability(ISDRestraint self) -> double"""
879  return _IMP_isd.ISDRestraint_get_probability(self)
880 
881  def unprotected_evaluate(self, accum):
882  r"""unprotected_evaluate(ISDRestraint self, DerivativeAccumulator accum) -> double"""
883  return _IMP_isd.ISDRestraint_unprotected_evaluate(self, accum)
884 
885  def do_get_inputs(self):
886  r"""do_get_inputs(ISDRestraint self) -> IMP::ModelObjectsTemp"""
887  return _IMP_isd.ISDRestraint_do_get_inputs(self)
888 
889  def get_type_name(self):
890  r"""get_type_name(ISDRestraint self) -> std::string"""
891  return _IMP_isd.ISDRestraint_get_type_name(self)
892 
893  def get_version_info(self):
894  r"""get_version_info(ISDRestraint self) -> VersionInfo"""
895  return _IMP_isd.ISDRestraint_get_version_info(self)
896  __swig_destroy__ = _IMP_isd.delete_ISDRestraint
897 
898  def __str__(self):
899  r"""__str__(ISDRestraint self) -> std::string"""
900  return _IMP_isd.ISDRestraint___str__(self)
901 
902  def __repr__(self):
903  r"""__repr__(ISDRestraint self) -> std::string"""
904  return _IMP_isd.ISDRestraint___repr__(self)
905 
906  @staticmethod
907  def get_from(o):
908  return _object_cast_to_ISDRestraint(o)
909 
910 
911  def do_show(self, out):
912  pass
913 
914  @staticmethod
915  def get_from(o):
916  return _object_cast_to_ISDRestraint(o)
917 
918  def __disown__(self):
919  self.this.disown()
920  _IMP_isd.disown_ISDRestraint(self)
921  return weakref.proxy(self)
922 
923  def do_destroy(self):
924  r"""do_destroy(ISDRestraint self)"""
925  return _IMP_isd.ISDRestraint_do_destroy(self)
926 
927  def handle_set_has_required_score_states(self, arg0):
928  r"""handle_set_has_required_score_states(ISDRestraint self, bool arg0)"""
929  return _IMP_isd.ISDRestraint_handle_set_has_required_score_states(self, arg0)
930 
931  def do_get_outputs(self):
932  r"""do_get_outputs(ISDRestraint self) -> IMP::ModelObjectsTemp"""
933  return _IMP_isd.ISDRestraint_do_get_outputs(self)
934 
935  def do_get_interactions(self):
936  r"""do_get_interactions(ISDRestraint self) -> IMP::ModelObjectsTemps"""
937  return _IMP_isd.ISDRestraint_do_get_interactions(self)
938 
939  def do_create_decomposition(self):
940  r"""do_create_decomposition(ISDRestraint self) -> IMP::Restraints"""
941  return _IMP_isd.ISDRestraint_do_create_decomposition(self)
942 
943  def do_create_current_decomposition(self):
944  r"""do_create_current_decomposition(ISDRestraint self) -> IMP::Restraints"""
945  return _IMP_isd.ISDRestraint_do_create_current_decomposition(self)
946 
947  def do_add_score_and_derivatives(self, sa):
948  r"""do_add_score_and_derivatives(ISDRestraint self, ScoreAccumulator sa)"""
949  return _IMP_isd.ISDRestraint_do_add_score_and_derivatives(self, sa)
950 
951  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
952  r"""do_add_score_and_derivatives_moved(ISDRestraint self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
953  return _IMP_isd.ISDRestraint_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
954 
955 # Register ISDRestraint in _IMP_isd:
956 _IMP_isd.ISDRestraint_swigregister(ISDRestraint)
957 class CrossLinkMSRestraint(IMP.Restraint):
958  r"""Proxy of C++ IMP::isd::CrossLinkMSRestraint class."""
959 
960  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
961 
962  def __init__(self, *args):
963  r"""
964  __init__(CrossLinkMSRestraint self, Model m, double length, bool get_log_prob=False, std::string name="CrossLinkMSRestraint%1%") -> CrossLinkMSRestraint
965  __init__(CrossLinkMSRestraint self, Model m, _ParticleIndexAdaptor lengthi, bool get_log_prob=False, std::string name="CrossLinkMSRestraint%1%") -> CrossLinkMSRestraint
966  __init__(CrossLinkMSRestraint self, Model m, double length, double slope, bool get_log_prob=False, std::string name="CrossLinkMSRestraint%1%") -> CrossLinkMSRestraint
967  __init__(CrossLinkMSRestraint self) -> CrossLinkMSRestraint
968  """
969  _IMP_isd.CrossLinkMSRestraint_swiginit(self, _IMP_isd.new_CrossLinkMSRestraint(*args))
970 
971  def set_source_protein1(self, protein1):
972  r"""set_source_protein1(CrossLinkMSRestraint self, std::string protein1)"""
973  return _IMP_isd.CrossLinkMSRestraint_set_source_protein1(self, protein1)
974 
975  def get_source_protein1(self):
976  r"""get_source_protein1(CrossLinkMSRestraint self) -> std::string"""
977  return _IMP_isd.CrossLinkMSRestraint_get_source_protein1(self)
978 
979  def set_source_protein2(self, protein2):
980  r"""set_source_protein2(CrossLinkMSRestraint self, std::string protein2)"""
981  return _IMP_isd.CrossLinkMSRestraint_set_source_protein2(self, protein2)
982 
983  def get_source_protein2(self):
984  r"""get_source_protein2(CrossLinkMSRestraint self) -> std::string"""
985  return _IMP_isd.CrossLinkMSRestraint_get_source_protein2(self)
986 
987  def set_source_residue1(self, residue1):
988  r"""set_source_residue1(CrossLinkMSRestraint self, int residue1)"""
989  return _IMP_isd.CrossLinkMSRestraint_set_source_residue1(self, residue1)
990 
991  def get_source_residue1(self):
992  r"""get_source_residue1(CrossLinkMSRestraint self) -> int"""
993  return _IMP_isd.CrossLinkMSRestraint_get_source_residue1(self)
994 
995  def set_source_residue2(self, residue2):
996  r"""set_source_residue2(CrossLinkMSRestraint self, int residue2)"""
997  return _IMP_isd.CrossLinkMSRestraint_set_source_residue2(self, residue2)
998 
999  def get_source_residue2(self):
1000  r"""get_source_residue2(CrossLinkMSRestraint self) -> int"""
1001  return _IMP_isd.CrossLinkMSRestraint_get_source_residue2(self)
1002 
1003  def add_contribution(self, pps, sigmas, psi):
1004  r"""add_contribution(CrossLinkMSRestraint self, IMP::ParticleIndexPair const & pps, IMP::ParticleIndexPair const & sigmas, ParticleIndex psi)"""
1005  return _IMP_isd.CrossLinkMSRestraint_add_contribution(self, pps, sigmas, psi)
1006 
1007  def get_probability(self):
1008  r"""get_probability(CrossLinkMSRestraint self) -> double"""
1009  return _IMP_isd.CrossLinkMSRestraint_get_probability(self)
1010 
1011  def get_length(self):
1012  r"""get_length(CrossLinkMSRestraint self) -> double"""
1013  return _IMP_isd.CrossLinkMSRestraint_get_length(self)
1014 
1015  def get_is_length_variable(self):
1016  r"""get_is_length_variable(CrossLinkMSRestraint self) -> bool"""
1017  return _IMP_isd.CrossLinkMSRestraint_get_is_length_variable(self)
1018 
1019  def get_has_slope(self):
1020  r"""get_has_slope(CrossLinkMSRestraint self) -> bool"""
1021  return _IMP_isd.CrossLinkMSRestraint_get_has_slope(self)
1022 
1023  def get_slope(self):
1024  r"""get_slope(CrossLinkMSRestraint self) -> double"""
1025  return _IMP_isd.CrossLinkMSRestraint_get_slope(self)
1026 
1027  def get_log_prob(self):
1028  r"""get_log_prob(CrossLinkMSRestraint self) -> bool"""
1029  return _IMP_isd.CrossLinkMSRestraint_get_log_prob(self)
1030 
1031  def get_contribution_sigma_indexes(self, i):
1032  r"""get_contribution_sigma_indexes(CrossLinkMSRestraint self, int i) -> IMP::ParticleIndexPair"""
1033  return _IMP_isd.CrossLinkMSRestraint_get_contribution_sigma_indexes(self, i)
1034 
1035  def get_contribution_psi_index(self, i):
1036  r"""get_contribution_psi_index(CrossLinkMSRestraint self, int i) -> ParticleIndex"""
1037  return _IMP_isd.CrossLinkMSRestraint_get_contribution_psi_index(self, i)
1038 
1039  def get_contribution_particle_indexes(self, i):
1040  r"""get_contribution_particle_indexes(CrossLinkMSRestraint self, int i) -> IMP::ParticleIndexPair"""
1041  return _IMP_isd.CrossLinkMSRestraint_get_contribution_particle_indexes(self, i)
1042 
1043  def get_number_of_contributions(self):
1044  r"""get_number_of_contributions(CrossLinkMSRestraint self) -> unsigned int"""
1045  return _IMP_isd.CrossLinkMSRestraint_get_number_of_contributions(self)
1046 
1047  def do_get_inputs(self):
1048  r"""do_get_inputs(CrossLinkMSRestraint self) -> IMP::ModelObjectsTemp"""
1049  return _IMP_isd.CrossLinkMSRestraint_do_get_inputs(self)
1050 
1051  def get_version_info(self):
1052  r"""get_version_info(CrossLinkMSRestraint self) -> VersionInfo"""
1053  return _IMP_isd.CrossLinkMSRestraint_get_version_info(self)
1054  __swig_destroy__ = _IMP_isd.delete_CrossLinkMSRestraint
1055 
1056  def __str__(self):
1057  r"""__str__(CrossLinkMSRestraint self) -> std::string"""
1058  return _IMP_isd.CrossLinkMSRestraint___str__(self)
1059 
1060  def __repr__(self):
1061  r"""__repr__(CrossLinkMSRestraint self) -> std::string"""
1062  return _IMP_isd.CrossLinkMSRestraint___repr__(self)
1063 
1064  @staticmethod
1065  def get_from(o):
1066  return _object_cast_to_CrossLinkMSRestraint(o)
1067 
1068 
1069  def _get_as_binary(self):
1070  r"""_get_as_binary(CrossLinkMSRestraint self) -> PyObject *"""
1071  return _IMP_isd.CrossLinkMSRestraint__get_as_binary(self)
1072 
1073  def _set_from_binary(self, p):
1074  r"""_set_from_binary(CrossLinkMSRestraint self, PyObject * p)"""
1075  return _IMP_isd.CrossLinkMSRestraint__set_from_binary(self, p)
1076 
1077  def __getstate__(self):
1078  p = self._get_as_binary()
1079  if len(self.__dict__) > 1:
1080  d = self.__dict__.copy()
1081  del d['this']
1082  p = (d, p)
1083  return p
1084 
1085  def __setstate__(self, p):
1086  if not hasattr(self, 'this'):
1087  self.__init__()
1088  if isinstance(p, tuple):
1089  d, p = p
1090  self.__dict__.update(d)
1091  return self._set_from_binary(p)
1092 
1093 
1094  @staticmethod
1095  def _get_contributions_sigma_numpy(rs):
1096  """Get the particle indexes for all sigma nuisances for all
1097  contributions to the given list of restraints."""
1098  import numpy
1099  import itertools
1100  nconts = [r.get_number_of_contributions() for r in rs]
1101  ret = numpy.empty((sum(nconts), 2), int)
1102  i = itertools.count(0)
1103  for (ncont, r) in zip(nconts, rs):
1104  for c in range(ncont):
1105  ret[next(i)] = r.get_contribution_sigma_indexes(c)
1106  return ret
1107 
1108  @staticmethod
1109  def _get_contributions_psi_numpy(rs):
1110  """Get the particle indexes for psi sigma nuisances for all
1111  contributions to the given list of restraints."""
1112  import numpy
1113  import itertools
1114  nconts = [r.get_number_of_contributions() for r in rs]
1115  ret = numpy.empty(sum(nconts), int)
1116  i = itertools.count(0)
1117  for (ncont, r) in zip(nconts, rs):
1118  for c in range(ncont):
1119  ret[next(i)] = r.get_contribution_psi_index(c)
1120  return ret
1121 
1122  @staticmethod
1123  def _get_contributions_particles_numpy(rs):
1124  """Get the particle indexes for crosslink endpoints for all
1125  contributions to the given list of restraints."""
1126  import numpy
1127  import itertools
1128  nconts = [r.get_number_of_contributions() for r in rs]
1129  ret = numpy.empty((sum(nconts), 2), int)
1130  i = itertools.count(0)
1131  for (ncont, r) in zip(nconts, rs):
1132  for c in range(ncont):
1133  ret[next(i)] = r.get_contribution_particle_indexes(c)
1134  return ret
1135 
1136  @staticmethod
1137  def _get_contributions_segments(rs):
1138  """Map each contribution to the corresponding restraint index,
1139  suitable for use by jax.ops.segment_prod()."""
1140  import numpy
1141  import itertools
1142  nconts = [r.get_number_of_contributions() for r in rs]
1143  # If every restraint has only a single contribution, skip
1144  # and return None; segment ids aren't needed
1145  if any(n > 1 for n in nconts):
1146  segs = []
1147  segment = itertools.count(0)
1148  for ncont in nconts:
1149  segs.extend([next(segment)] * ncont)
1150  return numpy.array(segs)
1151 
1152  @classmethod
1153  def _get_jax_for_restraints(cls, rs, space):
1154  """Get a JAX function that scores the given list of crosslink
1155  restraints. They must all have the same length, slope and
1156  get_log_prob flag."""
1157  import jax.numpy as jnp
1158  import jax.ops
1159  import math
1160 
1161  def sphere_cap(r1, r2, d):
1162  short_range = jnp.minimum(4.0 / 3.0 * math.pi * r1 * r1 * r1,
1163  4.0 / 3.0 * math.pi * r2 * r2 * r2)
1164  is_short = d <= jnp.absolute(r1 - r2)
1165  is_long = d >= r1 + r2
1166  # Only evaluate the mid-range expression (which divides by d)
1167  # where it is actually used; otherwise d==0 in the short-range
1168  # branch yields NaN gradients even though the value is unused
1169  safe_d = jnp.where(is_short | is_long, 1., d)
1170  mid_range = ((math.pi / 12 / safe_d * (r1 + r2 - safe_d)
1171  * (r1 + r2 - safe_d)) *
1172  (safe_d * safe_d + 2 * safe_d * r1 - 3 * r1 * r1
1173  + 2 * safe_d * r2 + 6 * r1 * r2 - 3 * r2 * r2))
1174  return jnp.where(is_short, short_range,
1175  jnp.where(is_long, 0., mid_range))
1176 
1177  def get_probability(xyz, r, scale, ps, sigma, psi, length,
1178  slope, segments, numrsr):
1179  # If the residues are assigned to the same particle-domain
1180  # get the distance as if the residue positions were randomly
1181  # taken from within the sphere representing the domain
1182  # Lund O, Protein Eng. 1997 Nov;10(11):1241-8.
1183  # Let the space clamp the distance, so that the gradient is
1184  # zero, rather than NaN, for coincident points and for
1185  # same-particle contributions (which don't use the distance)
1186  dist = jnp.where(
1187  ps[:, 0] == ps[:, 1], 36.0 / 35.0 * r[ps[:, 0]],
1188  space.distance(xyz[ps[:, 0]] - xyz[ps[:, 1]],
1189  min_dist=0.0001))
1190  dist = jnp.maximum(dist, 0.0001)
1191  psi = scale[psi]
1192  sigmai = scale[sigma[:, 0]]
1193  sigmaj = scale[sigma[:, 1]]
1194 
1195  voli = 4.0 / 3.0 * math.pi * sigmai * sigmai * sigmai
1196  volj = 4.0 / 3.0 * math.pi * sigmaj * sigmaj * sigmaj
1197  xlvol = (4.0 / 3.0 * math.pi * (length / 2.)
1198  * (length / 2.) * (length / 2.))
1199 
1200  close = dist < sigmai + sigmaj
1201  fi = jnp.where(
1202  close, jnp.minimum(voli, xlvol),
1203  sphere_cap(sigmai, length / 2.,
1204  jnp.abs(dist - sigmaj - length / 2.)))
1205  fj = jnp.where(
1206  close, jnp.minimum(volj, xlvol),
1207  sphere_cap(sigmaj, length / 2.,
1208  jnp.abs(dist - sigmai - length / 2.)))
1209 
1210  pofr = fi * fj / voli / volj
1211  term = psi * (1.0 - pofr) + pofr * (1.0 - psi)
1212  if slope is not None:
1213  prior = jnp.exp(-slope * dist)
1214  term = term * prior
1215  onemprob = 1.0 - term
1216 
1217  if segments is None:
1218  # If only one contribution to each restraint, we are done
1219  return 1.0 - onemprob
1220  else:
1221  # Otherwise, take the product of all contributions to each
1222  # restraint
1223  return 1.0 - jax.ops.segment_prod(onemprob.T, segments, numrsr,
1224  indices_are_sorted=True).T
1225 
1226  for r in rs:
1227  if r.get_is_length_variable():
1228  raise NotImplementedError("Only implemented for fixed-length")
1229  sigma = cls._get_contributions_sigma_numpy(rs)
1230  psi = cls._get_contributions_psi_numpy(rs)
1231  pis = cls._get_contributions_particles_numpy(rs)
1232  segments = cls._get_contributions_segments(rs)
1233  get_log_prob = rs[0].get_log_prob()
1234  length = rs[0].get_length()
1235  slope = rs[0].get_slope() if rs[0].get_has_slope() else None
1236 
1237  def jax_restraint(X):
1238  prob = get_probability(X['xyz'], X['r'], X['nuisance'], pis,
1239  sigma, psi, length, slope, segments,
1240  len(rs))
1241  if get_log_prob:
1242  return -jnp.log(prob)
1243  else:
1244  return prob
1245 
1246  # Note that we don't weight the restraint anywhere. This matches
1247  # the behavior of the C++ restraint.
1248  return cls._wrap_jax_multiple(rs[0], jax_restraint,
1249  keys=[IMP.isd.Scale.get_scale_key()])
1250 
1251  def _get_jax(self, space):
1252  return self._get_jax_for_restraints([self], space)
1253 
1254  @classmethod
1255  def _get_jax_multiple(cls, restraints, space):
1256  import IMP._jax_util
1257  # Get all groups of crosslink restraints that have the same length
1258  # and slope (to 4 decimal places) and get_log_prob flag
1259  def rsrkey(r):
1260  if type(r) is cls:
1261  return ("%.4f" % r.get_length(),
1262  "%.4f" % r.get_slope() if r.get_has_slope() else None,
1263  r.get_log_prob())
1264  groups, ungrouped = IMP._jax_util.get_grouped_restraints(
1265  restraints, rsrkey)
1266 
1267  return ([cls._get_jax_for_restraints(g, space) for g in groups],
1268  ungrouped)
1269 
1270 
1271 
1272 # Register CrossLinkMSRestraint in _IMP_isd:
1273 _IMP_isd.CrossLinkMSRestraint_swigregister(CrossLinkMSRestraint)
1274 class LogWrapper(IMP.RestraintSet):
1275  r"""Proxy of C++ IMP::isd::LogWrapper class."""
1276 
1277  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1278 
1279  def __init__(self, *args):
1280  r"""
1281  __init__(LogWrapper self, Model m, double weight, std::string const & name="LogWrapper %1%") -> LogWrapper
1282  __init__(LogWrapper self, Model m, std::string const & name="LogWrapper %1%") -> LogWrapper
1283  __init__(LogWrapper self, IMP::RestraintsTemp const & rs, double weight, std::string const & name="LogWrapper %1%") -> LogWrapper
1284  __init__(LogWrapper self) -> LogWrapper
1285  """
1286  _IMP_isd.LogWrapper_swiginit(self, _IMP_isd.new_LogWrapper(*args))
1287 
1288  def do_add_score_and_derivatives(self, sa):
1289  r"""do_add_score_and_derivatives(LogWrapper self, ScoreAccumulator sa)"""
1290  return _IMP_isd.LogWrapper_do_add_score_and_derivatives(self, sa)
1291 
1292  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
1293  r"""do_add_score_and_derivatives_moved(LogWrapper self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
1294  return _IMP_isd.LogWrapper_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
1295  __swig_destroy__ = _IMP_isd.delete_LogWrapper
1296 
1297  def __str__(self):
1298  r"""__str__(LogWrapper self) -> std::string"""
1299  return _IMP_isd.LogWrapper___str__(self)
1300 
1301  def __repr__(self):
1302  r"""__repr__(LogWrapper self) -> std::string"""
1303  return _IMP_isd.LogWrapper___repr__(self)
1304 
1305  @staticmethod
1306  def get_from(o):
1307  return _object_cast_to_LogWrapper(o)
1308 
1309 
1310  def _get_as_binary(self):
1311  r"""_get_as_binary(LogWrapper self) -> PyObject *"""
1312  return _IMP_isd.LogWrapper__get_as_binary(self)
1313 
1314  def _set_from_binary(self, p):
1315  r"""_set_from_binary(LogWrapper self, PyObject * p)"""
1316  return _IMP_isd.LogWrapper__set_from_binary(self, p)
1317 
1318  def __getstate__(self):
1319  p = self._get_as_binary()
1320  if len(self.__dict__) > 1:
1321  d = self.__dict__.copy()
1322  del d['this']
1323  p = (d, p)
1324  return p
1325 
1326  def __setstate__(self, p):
1327  if not hasattr(self, 'this'):
1328  self.__init__()
1329  if isinstance(p, tuple):
1330  d, p = p
1331  self.__dict__.update(d)
1332  return self._set_from_binary(p)
1333 
1334 
1335  def _get_jax(self, space):
1336  import jax.numpy as jnp
1337  import IMP._jax_util
1338  restraints = [r.get_derived_object() for r in self.restraints]
1339  multi_funcs, funcs, keys = IMP._jax_util.get_restraints_jax_funcs_keys(
1340  restraints, space)
1341  def jax_sf(jm):
1342  rets = [f(jm) for f in multi_funcs]
1343  if funcs:
1344  rets.append(jnp.stack([f(jm) for f in funcs], axis=-1))
1345  scores = jnp.concatenate(rets, axis=-1)
1346  return -jnp.sum(jnp.log(scores), axis=-1)
1347  return self._wrap_jax(jax_sf, keys=keys)
1348 
1349 
1350 # Register LogWrapper in _IMP_isd:
1351 _IMP_isd.LogWrapper_swigregister(LogWrapper)
1352 class UniformPrior(IMP.Restraint):
1353  r"""Proxy of C++ IMP::isd::UniformPrior class."""
1354 
1355  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1356 
1357  def __init__(self, *args):
1358  r"""
1359  __init__(UniformPrior self, Model m, Particle p, double k, double upperb, double lowerb, std::string name="UniformPrior%1%") -> UniformPrior
1360  __init__(UniformPrior self) -> UniformPrior
1361  """
1362  _IMP_isd.UniformPrior_swiginit(self, _IMP_isd.new_UniformPrior(*args))
1363 
1364  def do_get_inputs(self):
1365  r"""do_get_inputs(UniformPrior self) -> IMP::ModelObjectsTemp"""
1366  return _IMP_isd.UniformPrior_do_get_inputs(self)
1367 
1368  def get_version_info(self):
1369  r"""get_version_info(UniformPrior self) -> VersionInfo"""
1370  return _IMP_isd.UniformPrior_get_version_info(self)
1371  __swig_destroy__ = _IMP_isd.delete_UniformPrior
1372 
1373  def get_probability(self):
1374  r"""get_probability(UniformPrior self) -> double"""
1375  return _IMP_isd.UniformPrior_get_probability(self)
1376 
1377  def get_range(self):
1378  r"""get_range(UniformPrior self) -> IMP::FloatRange"""
1379  return _IMP_isd.UniformPrior_get_range(self)
1380 
1381  def get_k(self):
1382  r"""get_k(UniformPrior self) -> double"""
1383  return _IMP_isd.UniformPrior_get_k(self)
1384 
1385  def get_index(self):
1386  r"""get_index(UniformPrior self) -> ParticleIndex"""
1387  return _IMP_isd.UniformPrior_get_index(self)
1388 
1389  def __str__(self):
1390  r"""__str__(UniformPrior self) -> std::string"""
1391  return _IMP_isd.UniformPrior___str__(self)
1392 
1393  def __repr__(self):
1394  r"""__repr__(UniformPrior self) -> std::string"""
1395  return _IMP_isd.UniformPrior___repr__(self)
1396 
1397  @staticmethod
1398  def get_from(o):
1399  return _object_cast_to_UniformPrior(o)
1400 
1401 
1402  def _get_as_binary(self):
1403  r"""_get_as_binary(UniformPrior self) -> PyObject *"""
1404  return _IMP_isd.UniformPrior__get_as_binary(self)
1405 
1406  def _set_from_binary(self, p):
1407  r"""_set_from_binary(UniformPrior self, PyObject * p)"""
1408  return _IMP_isd.UniformPrior__set_from_binary(self, p)
1409 
1410  def __getstate__(self):
1411  p = self._get_as_binary()
1412  if len(self.__dict__) > 1:
1413  d = self.__dict__.copy()
1414  del d['this']
1415  p = (d, p)
1416  return p
1417 
1418  def __setstate__(self, p):
1419  if not hasattr(self, 'this'):
1420  self.__init__()
1421  if isinstance(p, tuple):
1422  d, p = p
1423  self.__dict__.update(d)
1424  return self._set_from_binary(p)
1425 
1426 
1427  def _get_jax(self, space):
1428  import jax.numpy as jnp
1429  def score(jm, lb, ub, k, index):
1430  nuisance = jm['nuisance'][index]
1431  return 0.5 * k * (nuisance - jnp.clip(nuisance, lb, ub)) ** 2
1432  rng = self.get_range()
1433  f = functools.partial(score, lb=rng[0], ub=rng[1], k=self.get_k(),
1434  index=self.get_index())
1435  return self._wrap_jax(f, keys=[Scale.get_scale_key()])
1436 
1437 
1438 # Register UniformPrior in _IMP_isd:
1439 _IMP_isd.UniformPrior_swigregister(UniformPrior)
1440 class Nuisance(IMP.Decorator):
1441  r"""Proxy of C++ IMP::isd::Nuisance class."""
1442 
1443  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1444 
1445  def __init__(self, *args):
1446  r"""
1447  __init__(Nuisance self) -> Nuisance
1448  __init__(Nuisance self, Model m, ParticleIndex id) -> Nuisance
1449  __init__(Nuisance self, _ParticleAdaptor d) -> Nuisance
1450  """
1451  _IMP_isd.Nuisance_swiginit(self, _IMP_isd.new_Nuisance(*args))
1452 
1453  def show(self, *args):
1454  r"""show(Nuisance self, _ostream out=std::cout)"""
1455  return _IMP_isd.Nuisance_show(self, *args)
1456 
1457  @staticmethod
1458  def setup_particle(*args):
1459  r"""
1460  setup_particle(Model m, ParticleIndex pi) -> Nuisance
1461  setup_particle(_ParticleAdaptor pa) -> Nuisance
1462  setup_particle(Model m, ParticleIndex pi, double nuisance) -> Nuisance
1463  setup_particle(_ParticleAdaptor pa, double nuisance) -> Nuisance
1464  """
1465  return _IMP_isd.Nuisance_setup_particle(*args)
1466 
1467  @staticmethod
1468  def get_is_setup(*args):
1469  r"""
1470  get_is_setup(_ParticleAdaptor p) -> bool
1471  get_is_setup(Model m, ParticleIndex pi) -> bool
1472  """
1473  return _IMP_isd.Nuisance_get_is_setup(*args)
1474 
1475  @staticmethod
1476  def get_nuisance_key():
1477  r"""get_nuisance_key() -> FloatKey"""
1478  return _IMP_isd.Nuisance_get_nuisance_key()
1479 
1480  def get_nuisance(self):
1481  r"""get_nuisance(Nuisance self) -> IMP::Float"""
1482  return _IMP_isd.Nuisance_get_nuisance(self)
1483 
1484  def set_nuisance(self, d):
1485  r"""set_nuisance(Nuisance self, IMP::Float d)"""
1486  return _IMP_isd.Nuisance_set_nuisance(self, d)
1487 
1488  def get_has_lower(self):
1489  r"""get_has_lower(Nuisance self) -> bool"""
1490  return _IMP_isd.Nuisance_get_has_lower(self)
1491 
1492  def get_has_lower_float(self):
1493  r"""get_has_lower_float(Nuisance self) -> bool"""
1494  return _IMP_isd.Nuisance_get_has_lower_float(self)
1495 
1496  def get_has_lower_particle(self):
1497  r"""get_has_lower_particle(Nuisance self) -> bool"""
1498  return _IMP_isd.Nuisance_get_has_lower_particle(self)
1499 
1500  def get_lower(self):
1501  r"""get_lower(Nuisance self) -> IMP::Float"""
1502  return _IMP_isd.Nuisance_get_lower(self)
1503 
1504  @staticmethod
1505  def get_lower_key():
1506  r"""get_lower_key() -> FloatKey"""
1507  return _IMP_isd.Nuisance_get_lower_key()
1508 
1509  @staticmethod
1510  def get_lower_particle_key():
1511  r"""get_lower_particle_key() -> ParticleIndexKey"""
1512  return _IMP_isd.Nuisance_get_lower_particle_key()
1513 
1514  def set_lower(self, *args):
1515  r"""
1516  set_lower(Nuisance self, IMP::Float d)
1517  set_lower(Nuisance self, Particle d)
1518  """
1519  return _IMP_isd.Nuisance_set_lower(self, *args)
1520 
1521  def remove_lower(self):
1522  r"""remove_lower(Nuisance self)"""
1523  return _IMP_isd.Nuisance_remove_lower(self)
1524 
1525  def get_has_upper(self):
1526  r"""get_has_upper(Nuisance self) -> bool"""
1527  return _IMP_isd.Nuisance_get_has_upper(self)
1528 
1529  def get_has_upper_float(self):
1530  r"""get_has_upper_float(Nuisance self) -> bool"""
1531  return _IMP_isd.Nuisance_get_has_upper_float(self)
1532 
1533  def get_has_upper_particle(self):
1534  r"""get_has_upper_particle(Nuisance self) -> bool"""
1535  return _IMP_isd.Nuisance_get_has_upper_particle(self)
1536 
1537  def get_upper(self):
1538  r"""get_upper(Nuisance self) -> IMP::Float"""
1539  return _IMP_isd.Nuisance_get_upper(self)
1540 
1541  @staticmethod
1542  def get_upper_key():
1543  r"""get_upper_key() -> FloatKey"""
1544  return _IMP_isd.Nuisance_get_upper_key()
1545 
1546  @staticmethod
1547  def get_upper_particle_key():
1548  r"""get_upper_particle_key() -> ParticleIndexKey"""
1549  return _IMP_isd.Nuisance_get_upper_particle_key()
1550 
1551  def set_upper(self, *args):
1552  r"""
1553  set_upper(Nuisance self, IMP::Float d)
1554  set_upper(Nuisance self, Particle d)
1555  """
1556  return _IMP_isd.Nuisance_set_upper(self, *args)
1557 
1558  def remove_upper(self):
1559  r"""remove_upper(Nuisance self)"""
1560  return _IMP_isd.Nuisance_remove_upper(self)
1561 
1562  def get_nuisance_derivative(self):
1563  r"""get_nuisance_derivative(Nuisance self) -> IMP::Float"""
1564  return _IMP_isd.Nuisance_get_nuisance_derivative(self)
1565 
1566  def add_to_nuisance_derivative(self, d, accum):
1567  r"""add_to_nuisance_derivative(Nuisance self, IMP::Float d, DerivativeAccumulator accum)"""
1568  return _IMP_isd.Nuisance_add_to_nuisance_derivative(self, d, accum)
1569 
1570  def get_nuisance_is_optimized(self):
1571  r"""get_nuisance_is_optimized(Nuisance self) -> bool"""
1572  return _IMP_isd.Nuisance_get_nuisance_is_optimized(self)
1573 
1574  def set_nuisance_is_optimized(self, val):
1575  r"""set_nuisance_is_optimized(Nuisance self, bool val)"""
1576  return _IMP_isd.Nuisance_set_nuisance_is_optimized(self, val)
1577 
1578  def add_attribute(self, *args):
1579  r"""
1580  add_attribute(Nuisance self, FloatKey k, IMP::Float v, bool opt)
1581  add_attribute(Nuisance self, FloatKey a0, IMP::Float a1)
1582  add_attribute(Nuisance self, IntKey a0, IMP::Int a1)
1583  add_attribute(Nuisance self, FloatsKey a0, IMP::Floats a1)
1584  add_attribute(Nuisance self, IntsKey a0, IMP::Ints a1)
1585  add_attribute(Nuisance self, StringKey a0, IMP::String a1)
1586  add_attribute(Nuisance self, ParticleIndexKey a0, Particle a1)
1587  add_attribute(Nuisance self, ObjectKey a0, Object a1)
1588  add_attribute(Nuisance self, SparseFloatKey a0, IMP::Float a1)
1589  add_attribute(Nuisance self, SparseIntKey a0, IMP::Int a1)
1590  add_attribute(Nuisance self, SparseStringKey a0, IMP::String a1)
1591  add_attribute(Nuisance self, SparseParticleIndexKey a0, ParticleIndex a1)
1592  """
1593  return _IMP_isd.Nuisance_add_attribute(self, *args)
1594 
1595  def get_value(self, *args):
1596  r"""
1597  get_value(Nuisance self, FloatKey a0) -> IMP::Float
1598  get_value(Nuisance self, IntKey a0) -> IMP::Int
1599  get_value(Nuisance self, FloatsKey a0) -> IMP::Floats
1600  get_value(Nuisance self, IntsKey a0) -> IMP::Ints
1601  get_value(Nuisance self, StringKey a0) -> IMP::String
1602  get_value(Nuisance self, ParticleIndexKey a0) -> Particle
1603  get_value(Nuisance self, ObjectKey a0) -> Object
1604  get_value(Nuisance self, SparseFloatKey a0) -> IMP::Float
1605  get_value(Nuisance self, SparseIntKey a0) -> IMP::Int
1606  get_value(Nuisance self, SparseStringKey a0) -> IMP::String
1607  get_value(Nuisance self, SparseParticleIndexKey a0) -> ParticleIndex
1608  """
1609  return _IMP_isd.Nuisance_get_value(self, *args)
1610 
1611  def set_value(self, *args):
1612  r"""
1613  set_value(Nuisance self, FloatKey a0, IMP::Float a1)
1614  set_value(Nuisance self, IntKey a0, IMP::Int a1)
1615  set_value(Nuisance self, FloatsKey a0, IMP::Floats a1)
1616  set_value(Nuisance self, IntsKey a0, IMP::Ints a1)
1617  set_value(Nuisance self, StringKey a0, IMP::String a1)
1618  set_value(Nuisance self, ParticleIndexKey a0, Particle a1)
1619  set_value(Nuisance self, ObjectKey a0, Object a1)
1620  set_value(Nuisance self, SparseFloatKey a0, IMP::Float a1)
1621  set_value(Nuisance self, SparseIntKey a0, IMP::Int a1)
1622  set_value(Nuisance self, SparseStringKey a0, IMP::String a1)
1623  set_value(Nuisance self, SparseParticleIndexKey a0, ParticleIndex a1)
1624  """
1625  return _IMP_isd.Nuisance_set_value(self, *args)
1626 
1627  def remove_attribute(self, *args):
1628  r"""
1629  remove_attribute(Nuisance self, FloatKey a0)
1630  remove_attribute(Nuisance self, IntKey a0)
1631  remove_attribute(Nuisance self, FloatsKey a0)
1632  remove_attribute(Nuisance self, IntsKey a0)
1633  remove_attribute(Nuisance self, StringKey a0)
1634  remove_attribute(Nuisance self, ParticleIndexKey a0)
1635  remove_attribute(Nuisance self, ObjectKey a0)
1636  remove_attribute(Nuisance self, SparseFloatKey a0)
1637  remove_attribute(Nuisance self, SparseIntKey a0)
1638  remove_attribute(Nuisance self, SparseStringKey a0)
1639  remove_attribute(Nuisance self, SparseParticleIndexKey a0)
1640  """
1641  return _IMP_isd.Nuisance_remove_attribute(self, *args)
1642 
1643  def has_attribute(self, *args):
1644  r"""
1645  has_attribute(Nuisance self, FloatKey a0) -> bool
1646  has_attribute(Nuisance self, IntKey a0) -> bool
1647  has_attribute(Nuisance self, FloatsKey a0) -> bool
1648  has_attribute(Nuisance self, IntsKey a0) -> bool
1649  has_attribute(Nuisance self, StringKey a0) -> bool
1650  has_attribute(Nuisance self, ParticleIndexKey a0) -> bool
1651  has_attribute(Nuisance self, ObjectKey a0) -> bool
1652  has_attribute(Nuisance self, SparseFloatKey a0) -> bool
1653  has_attribute(Nuisance self, SparseIntKey a0) -> bool
1654  has_attribute(Nuisance self, SparseStringKey a0) -> bool
1655  has_attribute(Nuisance self, SparseParticleIndexKey a0) -> bool
1656  """
1657  return _IMP_isd.Nuisance_has_attribute(self, *args)
1658 
1659  def get_derivative(self, a0):
1660  r"""get_derivative(Nuisance self, FloatKey a0) -> double"""
1661  return _IMP_isd.Nuisance_get_derivative(self, a0)
1662 
1663  def get_name(self):
1664  r"""get_name(Nuisance self) -> std::string"""
1665  return _IMP_isd.Nuisance_get_name(self)
1666 
1667  def clear_caches(self):
1668  r"""clear_caches(Nuisance self)"""
1669  return _IMP_isd.Nuisance_clear_caches(self)
1670 
1671  def set_name(self, a0):
1672  r"""set_name(Nuisance self, std::string a0)"""
1673  return _IMP_isd.Nuisance_set_name(self, a0)
1674 
1675  def set_check_level(self, a0):
1676  r"""set_check_level(Nuisance self, IMP::CheckLevel a0)"""
1677  return _IMP_isd.Nuisance_set_check_level(self, a0)
1678 
1679  def add_to_derivative(self, a0, a1, a2):
1680  r"""add_to_derivative(Nuisance self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
1681  return _IMP_isd.Nuisance_add_to_derivative(self, a0, a1, a2)
1682 
1683  def set_is_optimized(self, a0, a1):
1684  r"""set_is_optimized(Nuisance self, FloatKey a0, bool a1)"""
1685  return _IMP_isd.Nuisance_set_is_optimized(self, a0, a1)
1686 
1687  def get_is_optimized(self, a0):
1688  r"""get_is_optimized(Nuisance self, FloatKey a0) -> bool"""
1689  return _IMP_isd.Nuisance_get_is_optimized(self, a0)
1690 
1691  def get_check_level(self):
1692  r"""get_check_level(Nuisance self) -> IMP::CheckLevel"""
1693  return _IMP_isd.Nuisance_get_check_level(self)
1694 
1695  def __eq__(self, *args):
1696  r"""
1697  __eq__(Nuisance self, Nuisance o) -> bool
1698  __eq__(Nuisance self, Particle d) -> bool
1699  """
1700  return _IMP_isd.Nuisance___eq__(self, *args)
1701 
1702  def __ne__(self, *args):
1703  r"""
1704  __ne__(Nuisance self, Nuisance o) -> bool
1705  __ne__(Nuisance self, Particle d) -> bool
1706  """
1707  return _IMP_isd.Nuisance___ne__(self, *args)
1708 
1709  def __le__(self, *args):
1710  r"""
1711  __le__(Nuisance self, Nuisance o) -> bool
1712  __le__(Nuisance self, Particle d) -> bool
1713  """
1714  return _IMP_isd.Nuisance___le__(self, *args)
1715 
1716  def __lt__(self, *args):
1717  r"""
1718  __lt__(Nuisance self, Nuisance o) -> bool
1719  __lt__(Nuisance self, Particle d) -> bool
1720  """
1721  return _IMP_isd.Nuisance___lt__(self, *args)
1722 
1723  def __ge__(self, *args):
1724  r"""
1725  __ge__(Nuisance self, Nuisance o) -> bool
1726  __ge__(Nuisance self, Particle d) -> bool
1727  """
1728  return _IMP_isd.Nuisance___ge__(self, *args)
1729 
1730  def __gt__(self, *args):
1731  r"""
1732  __gt__(Nuisance self, Nuisance o) -> bool
1733  __gt__(Nuisance self, Particle d) -> bool
1734  """
1735  return _IMP_isd.Nuisance___gt__(self, *args)
1736 
1737  def __hash__(self):
1738  r"""__hash__(Nuisance self) -> std::size_t"""
1739  return _IMP_isd.Nuisance___hash__(self)
1740 
1741  def __str__(self):
1742  r"""__str__(Nuisance self) -> std::string"""
1743  return _IMP_isd.Nuisance___str__(self)
1744 
1745  def __repr__(self):
1746  r"""__repr__(Nuisance self) -> std::string"""
1747  return _IMP_isd.Nuisance___repr__(self)
1748 
1749  def _get_as_binary(self):
1750  r"""_get_as_binary(Nuisance self) -> PyObject *"""
1751  return _IMP_isd.Nuisance__get_as_binary(self)
1752 
1753  def _set_from_binary(self, p):
1754  r"""_set_from_binary(Nuisance self, PyObject * p)"""
1755  return _IMP_isd.Nuisance__set_from_binary(self, p)
1756 
1757  def __getstate__(self):
1758  p = self._get_as_binary()
1759  if len(self.__dict__) > 1:
1760  d = self.__dict__.copy()
1761  del d['this']
1762  p = (d, p)
1763  return p
1764 
1765  def __setstate__(self, p):
1766  if not hasattr(self, 'this'):
1767  self.__init__()
1768  if isinstance(p, tuple):
1769  d, p = p
1770  self.__dict__.update(d)
1771  return self._set_from_binary(p)
1772 
1773  __swig_destroy__ = _IMP_isd.delete_Nuisance
1774 
1775 # Register Nuisance in _IMP_isd:
1776 _IMP_isd.Nuisance_swigregister(Nuisance)
1777 class NuisanceScoreState(IMP.ScoreState):
1778  r"""Proxy of C++ IMP::isd::NuisanceScoreState class."""
1779 
1780  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1781 
1782  def __init__(self, *args):
1783  r"""
1784  __init__(NuisanceScoreState self, Particle p) -> NuisanceScoreState
1785  __init__(NuisanceScoreState self) -> NuisanceScoreState
1786  """
1787  _IMP_isd.NuisanceScoreState_swiginit(self, _IMP_isd.new_NuisanceScoreState(*args))
1788 
1789  def get_index(self):
1790  r"""get_index(NuisanceScoreState self) -> ParticleIndex"""
1791  return _IMP_isd.NuisanceScoreState_get_index(self)
1792 
1793  def do_before_evaluate(self):
1794  r"""do_before_evaluate(NuisanceScoreState self)"""
1795  return _IMP_isd.NuisanceScoreState_do_before_evaluate(self)
1796 
1797  def do_after_evaluate(self, da):
1798  r"""do_after_evaluate(NuisanceScoreState self, DerivativeAccumulator da)"""
1799  return _IMP_isd.NuisanceScoreState_do_after_evaluate(self, da)
1800 
1801  def do_get_inputs(self):
1802  r"""do_get_inputs(NuisanceScoreState self) -> IMP::ModelObjectsTemp"""
1803  return _IMP_isd.NuisanceScoreState_do_get_inputs(self)
1804 
1805  def do_get_outputs(self):
1806  r"""do_get_outputs(NuisanceScoreState self) -> IMP::ModelObjectsTemp"""
1807  return _IMP_isd.NuisanceScoreState_do_get_outputs(self)
1808 
1809  def get_version_info(self):
1810  r"""get_version_info(NuisanceScoreState self) -> VersionInfo"""
1811  return _IMP_isd.NuisanceScoreState_get_version_info(self)
1812  __swig_destroy__ = _IMP_isd.delete_NuisanceScoreState
1813 
1814  def __str__(self):
1815  r"""__str__(NuisanceScoreState self) -> std::string"""
1816  return _IMP_isd.NuisanceScoreState___str__(self)
1817 
1818  def __repr__(self):
1819  r"""__repr__(NuisanceScoreState self) -> std::string"""
1820  return _IMP_isd.NuisanceScoreState___repr__(self)
1821 
1822  @staticmethod
1823  def get_from(o):
1824  return _object_cast_to_NuisanceScoreState(o)
1825 
1826 
1827  def _get_as_binary(self):
1828  r"""_get_as_binary(NuisanceScoreState self) -> PyObject *"""
1829  return _IMP_isd.NuisanceScoreState__get_as_binary(self)
1830 
1831  def _set_from_binary(self, p):
1832  r"""_set_from_binary(NuisanceScoreState self, PyObject * p)"""
1833  return _IMP_isd.NuisanceScoreState__set_from_binary(self, p)
1834 
1835  def __getstate__(self):
1836  p = self._get_as_binary()
1837  if len(self.__dict__) > 1:
1838  d = self.__dict__.copy()
1839  del d['this']
1840  p = (d, p)
1841  return p
1842 
1843  def __setstate__(self, p):
1844  if not hasattr(self, 'this'):
1845  self.__init__()
1846  if isinstance(p, tuple):
1847  d, p = p
1848  self.__dict__.update(d)
1849  return self._set_from_binary(p)
1850 
1851 
1852  def _get_jax(self):
1853  import jax.lax
1854  import math
1855  import jax.numpy as jnp
1856  import IMP._jax_util
1857  def apply_func(jm, index, upper_f, upper_p, lower_f, lower_p):
1858  nuisances = jm['nuisance']
1859  up = jm['upper'][index] if upper_f else math.inf
1860  if upper_p:
1861  up = jax.lax.min(up, nuisances[jm['p_upper'][index]])
1862  low = jm['lower'][index] if lower_f else -math.inf
1863  if lower_p:
1864  low = jax.lax.max(low, nuisances[jm['p_lower'][index]])
1865  jm['nuisance'] = jm['nuisance'].at[index].set(
1866  jnp.clip(nuisances[index], low, up))
1867  return jm
1868  p = self.get_index()
1869  m = self.get_model()
1870  n = Nuisance(m, p)
1871  upper_f, upper_p = n.get_has_upper_float(), n.get_has_upper_particle()
1872  lower_f, lower_p = n.get_has_lower_float(), n.get_has_lower_particle()
1873  if upper_p or lower_p:
1874  # These particle indexes can change during a simulation, so
1875  # we can't use the default CompactArray for nuisances (which
1876  # statically maps indexes beforehand)
1877  keys = [IMP._jax_util._DenseKey(n.get_nuisance_key())]
1878  else:
1879  keys = [n.get_nuisance_key()]
1880  if upper_f:
1881  keys.append(n.get_upper_key())
1882  if upper_p:
1883  keys.append(n.get_upper_particle_key())
1884  if lower_f:
1885  keys.append(n.get_lower_key())
1886  if lower_p:
1887  keys.append(n.get_lower_particle_key())
1888  f = functools.partial(apply_func, index=p, upper_f=upper_f,
1889  upper_p=upper_p, lower_f=lower_f,
1890  lower_p=lower_p)
1891  return self._wrap_jax(f, keys)
1892 
1893 
1894 # Register NuisanceScoreState in _IMP_isd:
1895 _IMP_isd.NuisanceScoreState_swigregister(NuisanceScoreState)
1896 class Scale(Nuisance):
1897  r"""Proxy of C++ IMP::isd::Scale class."""
1898 
1899  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1900 
1901  def __init__(self, *args):
1902  r"""
1903  __init__(Scale self) -> Scale
1904  __init__(Scale self, Model m, ParticleIndex id) -> Scale
1905  __init__(Scale self, _ParticleAdaptor d) -> Scale
1906  """
1907  _IMP_isd.Scale_swiginit(self, _IMP_isd.new_Scale(*args))
1908 
1909  def show(self, *args):
1910  r"""show(Scale self, _ostream out=std::cout)"""
1911  return _IMP_isd.Scale_show(self, *args)
1912 
1913  @staticmethod
1914  def setup_particle(*args):
1915  r"""
1916  setup_particle(Model m, ParticleIndex pi) -> Scale
1917  setup_particle(_ParticleAdaptor pa) -> Scale
1918  setup_particle(Model m, ParticleIndex pi, double scale) -> Scale
1919  setup_particle(_ParticleAdaptor pa, double scale) -> Scale
1920  """
1921  return _IMP_isd.Scale_setup_particle(*args)
1922 
1923  @staticmethod
1924  def get_is_setup(*args):
1925  r"""
1926  get_is_setup(_ParticleAdaptor p) -> bool
1927  get_is_setup(Model m, ParticleIndex pi) -> bool
1928  """
1929  return _IMP_isd.Scale_get_is_setup(*args)
1930 
1931  def get_scale(self):
1932  r"""get_scale(Scale self) -> IMP::Float"""
1933  return _IMP_isd.Scale_get_scale(self)
1934 
1935  def set_scale(self, d):
1936  r"""set_scale(Scale self, IMP::Float d)"""
1937  return _IMP_isd.Scale_set_scale(self, d)
1938 
1939  def add_to_scale_derivative(self, d, accum):
1940  r"""add_to_scale_derivative(Scale self, IMP::Float d, DerivativeAccumulator accum)"""
1941  return _IMP_isd.Scale_add_to_scale_derivative(self, d, accum)
1942 
1943  def get_scale_derivative(self):
1944  r"""get_scale_derivative(Scale self) -> IMP::Float"""
1945  return _IMP_isd.Scale_get_scale_derivative(self)
1946 
1947  @staticmethod
1948  def get_scale_key():
1949  r"""get_scale_key() -> FloatKey"""
1950  return _IMP_isd.Scale_get_scale_key()
1951 
1952  def get_scale_is_optimized(self):
1953  r"""get_scale_is_optimized(Scale self) -> bool"""
1954  return _IMP_isd.Scale_get_scale_is_optimized(self)
1955 
1956  def set_scale_is_optimized(self, val):
1957  r"""set_scale_is_optimized(Scale self, bool val)"""
1958  return _IMP_isd.Scale_set_scale_is_optimized(self, val)
1959 
1960  def add_attribute(self, *args):
1961  r"""
1962  add_attribute(Scale self, FloatKey k, IMP::Float v, bool opt)
1963  add_attribute(Scale self, FloatKey a0, IMP::Float a1)
1964  add_attribute(Scale self, IntKey a0, IMP::Int a1)
1965  add_attribute(Scale self, FloatsKey a0, IMP::Floats a1)
1966  add_attribute(Scale self, IntsKey a0, IMP::Ints a1)
1967  add_attribute(Scale self, StringKey a0, IMP::String a1)
1968  add_attribute(Scale self, ParticleIndexKey a0, Particle a1)
1969  add_attribute(Scale self, ObjectKey a0, Object a1)
1970  add_attribute(Scale self, SparseFloatKey a0, IMP::Float a1)
1971  add_attribute(Scale self, SparseIntKey a0, IMP::Int a1)
1972  add_attribute(Scale self, SparseStringKey a0, IMP::String a1)
1973  add_attribute(Scale self, SparseParticleIndexKey a0, ParticleIndex a1)
1974  """
1975  return _IMP_isd.Scale_add_attribute(self, *args)
1976 
1977  def get_value(self, *args):
1978  r"""
1979  get_value(Scale self, FloatKey a0) -> IMP::Float
1980  get_value(Scale self, IntKey a0) -> IMP::Int
1981  get_value(Scale self, FloatsKey a0) -> IMP::Floats
1982  get_value(Scale self, IntsKey a0) -> IMP::Ints
1983  get_value(Scale self, StringKey a0) -> IMP::String
1984  get_value(Scale self, ParticleIndexKey a0) -> Particle
1985  get_value(Scale self, ObjectKey a0) -> Object
1986  get_value(Scale self, SparseFloatKey a0) -> IMP::Float
1987  get_value(Scale self, SparseIntKey a0) -> IMP::Int
1988  get_value(Scale self, SparseStringKey a0) -> IMP::String
1989  get_value(Scale self, SparseParticleIndexKey a0) -> ParticleIndex
1990  """
1991  return _IMP_isd.Scale_get_value(self, *args)
1992 
1993  def set_value(self, *args):
1994  r"""
1995  set_value(Scale self, FloatKey a0, IMP::Float a1)
1996  set_value(Scale self, IntKey a0, IMP::Int a1)
1997  set_value(Scale self, FloatsKey a0, IMP::Floats a1)
1998  set_value(Scale self, IntsKey a0, IMP::Ints a1)
1999  set_value(Scale self, StringKey a0, IMP::String a1)
2000  set_value(Scale self, ParticleIndexKey a0, Particle a1)
2001  set_value(Scale self, ObjectKey a0, Object a1)
2002  set_value(Scale self, SparseFloatKey a0, IMP::Float a1)
2003  set_value(Scale self, SparseIntKey a0, IMP::Int a1)
2004  set_value(Scale self, SparseStringKey a0, IMP::String a1)
2005  set_value(Scale self, SparseParticleIndexKey a0, ParticleIndex a1)
2006  """
2007  return _IMP_isd.Scale_set_value(self, *args)
2008 
2009  def remove_attribute(self, *args):
2010  r"""
2011  remove_attribute(Scale self, FloatKey a0)
2012  remove_attribute(Scale self, IntKey a0)
2013  remove_attribute(Scale self, FloatsKey a0)
2014  remove_attribute(Scale self, IntsKey a0)
2015  remove_attribute(Scale self, StringKey a0)
2016  remove_attribute(Scale self, ParticleIndexKey a0)
2017  remove_attribute(Scale self, ObjectKey a0)
2018  remove_attribute(Scale self, SparseFloatKey a0)
2019  remove_attribute(Scale self, SparseIntKey a0)
2020  remove_attribute(Scale self, SparseStringKey a0)
2021  remove_attribute(Scale self, SparseParticleIndexKey a0)
2022  """
2023  return _IMP_isd.Scale_remove_attribute(self, *args)
2024 
2025  def has_attribute(self, *args):
2026  r"""
2027  has_attribute(Scale self, FloatKey a0) -> bool
2028  has_attribute(Scale self, IntKey a0) -> bool
2029  has_attribute(Scale self, FloatsKey a0) -> bool
2030  has_attribute(Scale self, IntsKey a0) -> bool
2031  has_attribute(Scale self, StringKey a0) -> bool
2032  has_attribute(Scale self, ParticleIndexKey a0) -> bool
2033  has_attribute(Scale self, ObjectKey a0) -> bool
2034  has_attribute(Scale self, SparseFloatKey a0) -> bool
2035  has_attribute(Scale self, SparseIntKey a0) -> bool
2036  has_attribute(Scale self, SparseStringKey a0) -> bool
2037  has_attribute(Scale self, SparseParticleIndexKey a0) -> bool
2038  """
2039  return _IMP_isd.Scale_has_attribute(self, *args)
2040 
2041  def get_derivative(self, a0):
2042  r"""get_derivative(Scale self, FloatKey a0) -> double"""
2043  return _IMP_isd.Scale_get_derivative(self, a0)
2044 
2045  def get_name(self):
2046  r"""get_name(Scale self) -> std::string"""
2047  return _IMP_isd.Scale_get_name(self)
2048 
2049  def clear_caches(self):
2050  r"""clear_caches(Scale self)"""
2051  return _IMP_isd.Scale_clear_caches(self)
2052 
2053  def set_name(self, a0):
2054  r"""set_name(Scale self, std::string a0)"""
2055  return _IMP_isd.Scale_set_name(self, a0)
2056 
2057  def set_check_level(self, a0):
2058  r"""set_check_level(Scale self, IMP::CheckLevel a0)"""
2059  return _IMP_isd.Scale_set_check_level(self, a0)
2060 
2061  def add_to_derivative(self, a0, a1, a2):
2062  r"""add_to_derivative(Scale self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2063  return _IMP_isd.Scale_add_to_derivative(self, a0, a1, a2)
2064 
2065  def set_is_optimized(self, a0, a1):
2066  r"""set_is_optimized(Scale self, FloatKey a0, bool a1)"""
2067  return _IMP_isd.Scale_set_is_optimized(self, a0, a1)
2068 
2069  def get_is_optimized(self, a0):
2070  r"""get_is_optimized(Scale self, FloatKey a0) -> bool"""
2071  return _IMP_isd.Scale_get_is_optimized(self, a0)
2072 
2073  def get_check_level(self):
2074  r"""get_check_level(Scale self) -> IMP::CheckLevel"""
2075  return _IMP_isd.Scale_get_check_level(self)
2076 
2077  def __eq__(self, *args):
2078  r"""
2079  __eq__(Scale self, Scale o) -> bool
2080  __eq__(Scale self, Particle d) -> bool
2081  """
2082  return _IMP_isd.Scale___eq__(self, *args)
2083 
2084  def __ne__(self, *args):
2085  r"""
2086  __ne__(Scale self, Scale o) -> bool
2087  __ne__(Scale self, Particle d) -> bool
2088  """
2089  return _IMP_isd.Scale___ne__(self, *args)
2090 
2091  def __le__(self, *args):
2092  r"""
2093  __le__(Scale self, Scale o) -> bool
2094  __le__(Scale self, Particle d) -> bool
2095  """
2096  return _IMP_isd.Scale___le__(self, *args)
2097 
2098  def __lt__(self, *args):
2099  r"""
2100  __lt__(Scale self, Scale o) -> bool
2101  __lt__(Scale self, Particle d) -> bool
2102  """
2103  return _IMP_isd.Scale___lt__(self, *args)
2104 
2105  def __ge__(self, *args):
2106  r"""
2107  __ge__(Scale self, Scale o) -> bool
2108  __ge__(Scale self, Particle d) -> bool
2109  """
2110  return _IMP_isd.Scale___ge__(self, *args)
2111 
2112  def __gt__(self, *args):
2113  r"""
2114  __gt__(Scale self, Scale o) -> bool
2115  __gt__(Scale self, Particle d) -> bool
2116  """
2117  return _IMP_isd.Scale___gt__(self, *args)
2118 
2119  def __hash__(self):
2120  r"""__hash__(Scale self) -> std::size_t"""
2121  return _IMP_isd.Scale___hash__(self)
2122 
2123  def __str__(self):
2124  r"""__str__(Scale self) -> std::string"""
2125  return _IMP_isd.Scale___str__(self)
2126 
2127  def __repr__(self):
2128  r"""__repr__(Scale self) -> std::string"""
2129  return _IMP_isd.Scale___repr__(self)
2130 
2131  def _get_as_binary(self):
2132  r"""_get_as_binary(Scale self) -> PyObject *"""
2133  return _IMP_isd.Scale__get_as_binary(self)
2134 
2135  def _set_from_binary(self, p):
2136  r"""_set_from_binary(Scale self, PyObject * p)"""
2137  return _IMP_isd.Scale__set_from_binary(self, p)
2138 
2139  def __getstate__(self):
2140  p = self._get_as_binary()
2141  if len(self.__dict__) > 1:
2142  d = self.__dict__.copy()
2143  del d['this']
2144  p = (d, p)
2145  return p
2146 
2147  def __setstate__(self, p):
2148  if not hasattr(self, 'this'):
2149  self.__init__()
2150  if isinstance(p, tuple):
2151  d, p = p
2152  self.__dict__.update(d)
2153  return self._set_from_binary(p)
2154 
2155  __swig_destroy__ = _IMP_isd.delete_Scale
2156 
2157 # Register Scale in _IMP_isd:
2158 _IMP_isd.Scale_swigregister(Scale)
2159 class Switching(Nuisance):
2160  r"""Proxy of C++ IMP::isd::Switching class."""
2161 
2162  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2163 
2164  def __init__(self, *args):
2165  r"""
2166  __init__(Switching self) -> Switching
2167  __init__(Switching self, Model m, ParticleIndex id) -> Switching
2168  __init__(Switching self, _ParticleAdaptor d) -> Switching
2169  """
2170  _IMP_isd.Switching_swiginit(self, _IMP_isd.new_Switching(*args))
2171 
2172  def show(self, *args):
2173  r"""show(Switching self, _ostream out=std::cout)"""
2174  return _IMP_isd.Switching_show(self, *args)
2175 
2176  @staticmethod
2177  def setup_particle(*args):
2178  r"""
2179  setup_particle(Model m, ParticleIndex pi) -> Switching
2180  setup_particle(_ParticleAdaptor pa) -> Switching
2181  setup_particle(Model m, ParticleIndex pi, double switching) -> Switching
2182  setup_particle(_ParticleAdaptor pa, double switching) -> Switching
2183  """
2184  return _IMP_isd.Switching_setup_particle(*args)
2185 
2186  @staticmethod
2187  def get_is_setup(*args):
2188  r"""
2189  get_is_setup(_ParticleAdaptor p) -> bool
2190  get_is_setup(Model m, ParticleIndex pi) -> bool
2191  """
2192  return _IMP_isd.Switching_get_is_setup(*args)
2193 
2194  def get_switching(self):
2195  r"""get_switching(Switching self) -> IMP::Float"""
2196  return _IMP_isd.Switching_get_switching(self)
2197 
2198  def set_switching(self, d):
2199  r"""set_switching(Switching self, IMP::Float d)"""
2200  return _IMP_isd.Switching_set_switching(self, d)
2201 
2202  def add_to_switching_derivative(self, d, accum):
2203  r"""add_to_switching_derivative(Switching self, IMP::Float d, DerivativeAccumulator accum)"""
2204  return _IMP_isd.Switching_add_to_switching_derivative(self, d, accum)
2205 
2206  def get_switching_derivative(self):
2207  r"""get_switching_derivative(Switching self) -> IMP::Float"""
2208  return _IMP_isd.Switching_get_switching_derivative(self)
2209 
2210  @staticmethod
2211  def get_switching_key():
2212  r"""get_switching_key() -> FloatKey"""
2213  return _IMP_isd.Switching_get_switching_key()
2214 
2215  def get_switching_is_optimized(self):
2216  r"""get_switching_is_optimized(Switching self) -> bool"""
2217  return _IMP_isd.Switching_get_switching_is_optimized(self)
2218 
2219  def set_switching_is_optimized(self, val):
2220  r"""set_switching_is_optimized(Switching self, bool val)"""
2221  return _IMP_isd.Switching_set_switching_is_optimized(self, val)
2222 
2223  def add_attribute(self, *args):
2224  r"""
2225  add_attribute(Switching self, FloatKey k, IMP::Float v, bool opt)
2226  add_attribute(Switching self, FloatKey a0, IMP::Float a1)
2227  add_attribute(Switching self, IntKey a0, IMP::Int a1)
2228  add_attribute(Switching self, FloatsKey a0, IMP::Floats a1)
2229  add_attribute(Switching self, IntsKey a0, IMP::Ints a1)
2230  add_attribute(Switching self, StringKey a0, IMP::String a1)
2231  add_attribute(Switching self, ParticleIndexKey a0, Particle a1)
2232  add_attribute(Switching self, ObjectKey a0, Object a1)
2233  add_attribute(Switching self, SparseFloatKey a0, IMP::Float a1)
2234  add_attribute(Switching self, SparseIntKey a0, IMP::Int a1)
2235  add_attribute(Switching self, SparseStringKey a0, IMP::String a1)
2236  add_attribute(Switching self, SparseParticleIndexKey a0, ParticleIndex a1)
2237  """
2238  return _IMP_isd.Switching_add_attribute(self, *args)
2239 
2240  def get_value(self, *args):
2241  r"""
2242  get_value(Switching self, FloatKey a0) -> IMP::Float
2243  get_value(Switching self, IntKey a0) -> IMP::Int
2244  get_value(Switching self, FloatsKey a0) -> IMP::Floats
2245  get_value(Switching self, IntsKey a0) -> IMP::Ints
2246  get_value(Switching self, StringKey a0) -> IMP::String
2247  get_value(Switching self, ParticleIndexKey a0) -> Particle
2248  get_value(Switching self, ObjectKey a0) -> Object
2249  get_value(Switching self, SparseFloatKey a0) -> IMP::Float
2250  get_value(Switching self, SparseIntKey a0) -> IMP::Int
2251  get_value(Switching self, SparseStringKey a0) -> IMP::String
2252  get_value(Switching self, SparseParticleIndexKey a0) -> ParticleIndex
2253  """
2254  return _IMP_isd.Switching_get_value(self, *args)
2255 
2256  def set_value(self, *args):
2257  r"""
2258  set_value(Switching self, FloatKey a0, IMP::Float a1)
2259  set_value(Switching self, IntKey a0, IMP::Int a1)
2260  set_value(Switching self, FloatsKey a0, IMP::Floats a1)
2261  set_value(Switching self, IntsKey a0, IMP::Ints a1)
2262  set_value(Switching self, StringKey a0, IMP::String a1)
2263  set_value(Switching self, ParticleIndexKey a0, Particle a1)
2264  set_value(Switching self, ObjectKey a0, Object a1)
2265  set_value(Switching self, SparseFloatKey a0, IMP::Float a1)
2266  set_value(Switching self, SparseIntKey a0, IMP::Int a1)
2267  set_value(Switching self, SparseStringKey a0, IMP::String a1)
2268  set_value(Switching self, SparseParticleIndexKey a0, ParticleIndex a1)
2269  """
2270  return _IMP_isd.Switching_set_value(self, *args)
2271 
2272  def remove_attribute(self, *args):
2273  r"""
2274  remove_attribute(Switching self, FloatKey a0)
2275  remove_attribute(Switching self, IntKey a0)
2276  remove_attribute(Switching self, FloatsKey a0)
2277  remove_attribute(Switching self, IntsKey a0)
2278  remove_attribute(Switching self, StringKey a0)
2279  remove_attribute(Switching self, ParticleIndexKey a0)
2280  remove_attribute(Switching self, ObjectKey a0)
2281  remove_attribute(Switching self, SparseFloatKey a0)
2282  remove_attribute(Switching self, SparseIntKey a0)
2283  remove_attribute(Switching self, SparseStringKey a0)
2284  remove_attribute(Switching self, SparseParticleIndexKey a0)
2285  """
2286  return _IMP_isd.Switching_remove_attribute(self, *args)
2287 
2288  def has_attribute(self, *args):
2289  r"""
2290  has_attribute(Switching self, FloatKey a0) -> bool
2291  has_attribute(Switching self, IntKey a0) -> bool
2292  has_attribute(Switching self, FloatsKey a0) -> bool
2293  has_attribute(Switching self, IntsKey a0) -> bool
2294  has_attribute(Switching self, StringKey a0) -> bool
2295  has_attribute(Switching self, ParticleIndexKey a0) -> bool
2296  has_attribute(Switching self, ObjectKey a0) -> bool
2297  has_attribute(Switching self, SparseFloatKey a0) -> bool
2298  has_attribute(Switching self, SparseIntKey a0) -> bool
2299  has_attribute(Switching self, SparseStringKey a0) -> bool
2300  has_attribute(Switching self, SparseParticleIndexKey a0) -> bool
2301  """
2302  return _IMP_isd.Switching_has_attribute(self, *args)
2303 
2304  def get_derivative(self, a0):
2305  r"""get_derivative(Switching self, FloatKey a0) -> double"""
2306  return _IMP_isd.Switching_get_derivative(self, a0)
2307 
2308  def get_name(self):
2309  r"""get_name(Switching self) -> std::string"""
2310  return _IMP_isd.Switching_get_name(self)
2311 
2312  def clear_caches(self):
2313  r"""clear_caches(Switching self)"""
2314  return _IMP_isd.Switching_clear_caches(self)
2315 
2316  def set_name(self, a0):
2317  r"""set_name(Switching self, std::string a0)"""
2318  return _IMP_isd.Switching_set_name(self, a0)
2319 
2320  def set_check_level(self, a0):
2321  r"""set_check_level(Switching self, IMP::CheckLevel a0)"""
2322  return _IMP_isd.Switching_set_check_level(self, a0)
2323 
2324  def add_to_derivative(self, a0, a1, a2):
2325  r"""add_to_derivative(Switching self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2326  return _IMP_isd.Switching_add_to_derivative(self, a0, a1, a2)
2327 
2328  def set_is_optimized(self, a0, a1):
2329  r"""set_is_optimized(Switching self, FloatKey a0, bool a1)"""
2330  return _IMP_isd.Switching_set_is_optimized(self, a0, a1)
2331 
2332  def get_is_optimized(self, a0):
2333  r"""get_is_optimized(Switching self, FloatKey a0) -> bool"""
2334  return _IMP_isd.Switching_get_is_optimized(self, a0)
2335 
2336  def get_check_level(self):
2337  r"""get_check_level(Switching self) -> IMP::CheckLevel"""
2338  return _IMP_isd.Switching_get_check_level(self)
2339 
2340  def __eq__(self, *args):
2341  r"""
2342  __eq__(Switching self, Switching o) -> bool
2343  __eq__(Switching self, Particle d) -> bool
2344  """
2345  return _IMP_isd.Switching___eq__(self, *args)
2346 
2347  def __ne__(self, *args):
2348  r"""
2349  __ne__(Switching self, Switching o) -> bool
2350  __ne__(Switching self, Particle d) -> bool
2351  """
2352  return _IMP_isd.Switching___ne__(self, *args)
2353 
2354  def __le__(self, *args):
2355  r"""
2356  __le__(Switching self, Switching o) -> bool
2357  __le__(Switching self, Particle d) -> bool
2358  """
2359  return _IMP_isd.Switching___le__(self, *args)
2360 
2361  def __lt__(self, *args):
2362  r"""
2363  __lt__(Switching self, Switching o) -> bool
2364  __lt__(Switching self, Particle d) -> bool
2365  """
2366  return _IMP_isd.Switching___lt__(self, *args)
2367 
2368  def __ge__(self, *args):
2369  r"""
2370  __ge__(Switching self, Switching o) -> bool
2371  __ge__(Switching self, Particle d) -> bool
2372  """
2373  return _IMP_isd.Switching___ge__(self, *args)
2374 
2375  def __gt__(self, *args):
2376  r"""
2377  __gt__(Switching self, Switching o) -> bool
2378  __gt__(Switching self, Particle d) -> bool
2379  """
2380  return _IMP_isd.Switching___gt__(self, *args)
2381 
2382  def __hash__(self):
2383  r"""__hash__(Switching self) -> std::size_t"""
2384  return _IMP_isd.Switching___hash__(self)
2385 
2386  def __str__(self):
2387  r"""__str__(Switching self) -> std::string"""
2388  return _IMP_isd.Switching___str__(self)
2389 
2390  def __repr__(self):
2391  r"""__repr__(Switching self) -> std::string"""
2392  return _IMP_isd.Switching___repr__(self)
2393 
2394  def _get_as_binary(self):
2395  r"""_get_as_binary(Switching self) -> PyObject *"""
2396  return _IMP_isd.Switching__get_as_binary(self)
2397 
2398  def _set_from_binary(self, p):
2399  r"""_set_from_binary(Switching self, PyObject * p)"""
2400  return _IMP_isd.Switching__set_from_binary(self, p)
2401 
2402  def __getstate__(self):
2403  p = self._get_as_binary()
2404  if len(self.__dict__) > 1:
2405  d = self.__dict__.copy()
2406  del d['this']
2407  p = (d, p)
2408  return p
2409 
2410  def __setstate__(self, p):
2411  if not hasattr(self, 'this'):
2412  self.__init__()
2413  if isinstance(p, tuple):
2414  d, p = p
2415  self.__dict__.update(d)
2416  return self._set_from_binary(p)
2417 
2418  __swig_destroy__ = _IMP_isd.delete_Switching
2419 
2420 # Register Switching in _IMP_isd:
2421 _IMP_isd.Switching_swigregister(Switching)
2422 class Weight(IMP.Decorator):
2423  r"""Proxy of C++ IMP::isd::Weight class."""
2424 
2425  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2426 
2427  def __init__(self, *args):
2428  r"""
2429  __init__(Weight self) -> Weight
2430  __init__(Weight self, Model m, ParticleIndex id) -> Weight
2431  __init__(Weight self, _ParticleAdaptor d) -> Weight
2432  """
2433  _IMP_isd.Weight_swiginit(self, _IMP_isd.new_Weight(*args))
2434 
2435  def show(self, *args):
2436  r"""show(Weight self, _ostream out=std::cout)"""
2437  return _IMP_isd.Weight_show(self, *args)
2438 
2439  @staticmethod
2440  def setup_particle(*args):
2441  r"""
2442  setup_particle(Model m, ParticleIndex pi) -> Weight
2443  setup_particle(_ParticleAdaptor pa) -> Weight
2444  setup_particle(Model m, ParticleIndex pi, IMP::Int nweights) -> Weight
2445  setup_particle(_ParticleAdaptor pa, IMP::Int nweights) -> Weight
2446  setup_particle(Model m, ParticleIndex pi, VectorKD w) -> Weight
2447  setup_particle(_ParticleAdaptor pa, VectorKD w) -> Weight
2448  """
2449  return _IMP_isd.Weight_setup_particle(*args)
2450 
2451  @staticmethod
2452  def get_number_of_weights_key():
2453  r"""get_number_of_weights_key() -> IntKey"""
2454  return _IMP_isd.Weight_get_number_of_weights_key()
2455 
2456  @staticmethod
2457  def get_weight_key(i):
2458  r"""get_weight_key(int i) -> FloatKey"""
2459  return _IMP_isd.Weight_get_weight_key(i)
2460 
2461  def get_weight_keys(self):
2462  r"""get_weight_keys(Weight self) -> IMP::FloatKeys"""
2463  return _IMP_isd.Weight_get_weight_keys(self)
2464 
2465  def get_weight(self, i):
2466  r"""get_weight(Weight self, int i) -> IMP::Float"""
2467  return _IMP_isd.Weight_get_weight(self, i)
2468 
2469  def get_weights(self):
2470  r"""get_weights(Weight self) -> VectorKD"""
2471  return _IMP_isd.Weight_get_weights(self)
2472 
2473  def set_weight_lazy(self, i, wi):
2474  r"""set_weight_lazy(Weight self, int i, IMP::Float wi)"""
2475  return _IMP_isd.Weight_set_weight_lazy(self, i, wi)
2476 
2477  def set_weights_lazy(self, w):
2478  r"""set_weights_lazy(Weight self, VectorKD w)"""
2479  return _IMP_isd.Weight_set_weights_lazy(self, w)
2480 
2481  def set_weights(self, w):
2482  r"""set_weights(Weight self, VectorKD w)"""
2483  return _IMP_isd.Weight_set_weights(self, w)
2484 
2485  def get_weights_are_optimized(self):
2486  r"""get_weights_are_optimized(Weight self) -> bool"""
2487  return _IMP_isd.Weight_get_weights_are_optimized(self)
2488 
2489  def set_weights_are_optimized(self, tf):
2490  r"""set_weights_are_optimized(Weight self, bool tf)"""
2491  return _IMP_isd.Weight_set_weights_are_optimized(self, tf)
2492 
2493  def get_weight_derivative(self, i):
2494  r"""get_weight_derivative(Weight self, int i) -> IMP::Float"""
2495  return _IMP_isd.Weight_get_weight_derivative(self, i)
2496 
2497  def get_weights_derivatives(self):
2498  r"""get_weights_derivatives(Weight self) -> VectorKD"""
2499  return _IMP_isd.Weight_get_weights_derivatives(self)
2500 
2501  def add_to_weight_derivative(self, i, dwi, da):
2502  r"""add_to_weight_derivative(Weight self, int i, IMP::Float dwi, DerivativeAccumulator da)"""
2503  return _IMP_isd.Weight_add_to_weight_derivative(self, i, dwi, da)
2504 
2505  def add_to_weights_derivatives(self, dw, da):
2506  r"""add_to_weights_derivatives(Weight self, VectorKD dw, DerivativeAccumulator da)"""
2507  return _IMP_isd.Weight_add_to_weights_derivatives(self, dw, da)
2508 
2509  def add_weight_lazy(self, wi=0):
2510  r"""add_weight_lazy(Weight self, IMP::Float wi=0)"""
2511  return _IMP_isd.Weight_add_weight_lazy(self, wi)
2512 
2513  def add_weight(self, wi=0):
2514  r"""add_weight(Weight self, IMP::Float wi=0)"""
2515  return _IMP_isd.Weight_add_weight(self, wi)
2516 
2517  def get_number_of_weights(self):
2518  r"""get_number_of_weights(Weight self) -> IMP::Int"""
2519  return _IMP_isd.Weight_get_number_of_weights(self)
2520 
2521  def get_unit_simplex(self):
2522  r"""get_unit_simplex(Weight self) -> UnitSimplexKD"""
2523  return _IMP_isd.Weight_get_unit_simplex(self)
2524 
2525  def set_number_of_weights_lazy(self, nweights):
2526  r"""set_number_of_weights_lazy(Weight self, IMP::Int nweights)"""
2527  return _IMP_isd.Weight_set_number_of_weights_lazy(self, nweights)
2528 
2529  def set_number_of_weights(self, nweights):
2530  r"""set_number_of_weights(Weight self, IMP::Int nweights)"""
2531  return _IMP_isd.Weight_set_number_of_weights(self, nweights)
2532 
2533  @staticmethod
2534  def get_is_setup(*args):
2535  r"""
2536  get_is_setup(_ParticleAdaptor p) -> bool
2537  get_is_setup(Model m, ParticleIndex pi) -> bool
2538  """
2539  return _IMP_isd.Weight_get_is_setup(*args)
2540 
2541  def add_attribute(self, *args):
2542  r"""
2543  add_attribute(Weight self, FloatKey k, IMP::Float v, bool opt)
2544  add_attribute(Weight self, FloatKey a0, IMP::Float a1)
2545  add_attribute(Weight self, IntKey a0, IMP::Int a1)
2546  add_attribute(Weight self, FloatsKey a0, IMP::Floats a1)
2547  add_attribute(Weight self, IntsKey a0, IMP::Ints a1)
2548  add_attribute(Weight self, StringKey a0, IMP::String a1)
2549  add_attribute(Weight self, ParticleIndexKey a0, Particle a1)
2550  add_attribute(Weight self, ObjectKey a0, Object a1)
2551  add_attribute(Weight self, SparseFloatKey a0, IMP::Float a1)
2552  add_attribute(Weight self, SparseIntKey a0, IMP::Int a1)
2553  add_attribute(Weight self, SparseStringKey a0, IMP::String a1)
2554  add_attribute(Weight self, SparseParticleIndexKey a0, ParticleIndex a1)
2555  """
2556  return _IMP_isd.Weight_add_attribute(self, *args)
2557 
2558  def get_value(self, *args):
2559  r"""
2560  get_value(Weight self, FloatKey a0) -> IMP::Float
2561  get_value(Weight self, IntKey a0) -> IMP::Int
2562  get_value(Weight self, FloatsKey a0) -> IMP::Floats
2563  get_value(Weight self, IntsKey a0) -> IMP::Ints
2564  get_value(Weight self, StringKey a0) -> IMP::String
2565  get_value(Weight self, ParticleIndexKey a0) -> Particle
2566  get_value(Weight self, ObjectKey a0) -> Object
2567  get_value(Weight self, SparseFloatKey a0) -> IMP::Float
2568  get_value(Weight self, SparseIntKey a0) -> IMP::Int
2569  get_value(Weight self, SparseStringKey a0) -> IMP::String
2570  get_value(Weight self, SparseParticleIndexKey a0) -> ParticleIndex
2571  """
2572  return _IMP_isd.Weight_get_value(self, *args)
2573 
2574  def set_value(self, *args):
2575  r"""
2576  set_value(Weight self, FloatKey a0, IMP::Float a1)
2577  set_value(Weight self, IntKey a0, IMP::Int a1)
2578  set_value(Weight self, FloatsKey a0, IMP::Floats a1)
2579  set_value(Weight self, IntsKey a0, IMP::Ints a1)
2580  set_value(Weight self, StringKey a0, IMP::String a1)
2581  set_value(Weight self, ParticleIndexKey a0, Particle a1)
2582  set_value(Weight self, ObjectKey a0, Object a1)
2583  set_value(Weight self, SparseFloatKey a0, IMP::Float a1)
2584  set_value(Weight self, SparseIntKey a0, IMP::Int a1)
2585  set_value(Weight self, SparseStringKey a0, IMP::String a1)
2586  set_value(Weight self, SparseParticleIndexKey a0, ParticleIndex a1)
2587  """
2588  return _IMP_isd.Weight_set_value(self, *args)
2589 
2590  def remove_attribute(self, *args):
2591  r"""
2592  remove_attribute(Weight self, FloatKey a0)
2593  remove_attribute(Weight self, IntKey a0)
2594  remove_attribute(Weight self, FloatsKey a0)
2595  remove_attribute(Weight self, IntsKey a0)
2596  remove_attribute(Weight self, StringKey a0)
2597  remove_attribute(Weight self, ParticleIndexKey a0)
2598  remove_attribute(Weight self, ObjectKey a0)
2599  remove_attribute(Weight self, SparseFloatKey a0)
2600  remove_attribute(Weight self, SparseIntKey a0)
2601  remove_attribute(Weight self, SparseStringKey a0)
2602  remove_attribute(Weight self, SparseParticleIndexKey a0)
2603  """
2604  return _IMP_isd.Weight_remove_attribute(self, *args)
2605 
2606  def has_attribute(self, *args):
2607  r"""
2608  has_attribute(Weight self, FloatKey a0) -> bool
2609  has_attribute(Weight self, IntKey a0) -> bool
2610  has_attribute(Weight self, FloatsKey a0) -> bool
2611  has_attribute(Weight self, IntsKey a0) -> bool
2612  has_attribute(Weight self, StringKey a0) -> bool
2613  has_attribute(Weight self, ParticleIndexKey a0) -> bool
2614  has_attribute(Weight self, ObjectKey a0) -> bool
2615  has_attribute(Weight self, SparseFloatKey a0) -> bool
2616  has_attribute(Weight self, SparseIntKey a0) -> bool
2617  has_attribute(Weight self, SparseStringKey a0) -> bool
2618  has_attribute(Weight self, SparseParticleIndexKey a0) -> bool
2619  """
2620  return _IMP_isd.Weight_has_attribute(self, *args)
2621 
2622  def get_derivative(self, a0):
2623  r"""get_derivative(Weight self, FloatKey a0) -> double"""
2624  return _IMP_isd.Weight_get_derivative(self, a0)
2625 
2626  def get_name(self):
2627  r"""get_name(Weight self) -> std::string"""
2628  return _IMP_isd.Weight_get_name(self)
2629 
2630  def clear_caches(self):
2631  r"""clear_caches(Weight self)"""
2632  return _IMP_isd.Weight_clear_caches(self)
2633 
2634  def set_name(self, a0):
2635  r"""set_name(Weight self, std::string a0)"""
2636  return _IMP_isd.Weight_set_name(self, a0)
2637 
2638  def set_check_level(self, a0):
2639  r"""set_check_level(Weight self, IMP::CheckLevel a0)"""
2640  return _IMP_isd.Weight_set_check_level(self, a0)
2641 
2642  def add_to_derivative(self, a0, a1, a2):
2643  r"""add_to_derivative(Weight self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2644  return _IMP_isd.Weight_add_to_derivative(self, a0, a1, a2)
2645 
2646  def set_is_optimized(self, a0, a1):
2647  r"""set_is_optimized(Weight self, FloatKey a0, bool a1)"""
2648  return _IMP_isd.Weight_set_is_optimized(self, a0, a1)
2649 
2650  def get_is_optimized(self, a0):
2651  r"""get_is_optimized(Weight self, FloatKey a0) -> bool"""
2652  return _IMP_isd.Weight_get_is_optimized(self, a0)
2653 
2654  def get_check_level(self):
2655  r"""get_check_level(Weight self) -> IMP::CheckLevel"""
2656  return _IMP_isd.Weight_get_check_level(self)
2657 
2658  def __eq__(self, *args):
2659  r"""
2660  __eq__(Weight self, Weight o) -> bool
2661  __eq__(Weight self, Particle d) -> bool
2662  """
2663  return _IMP_isd.Weight___eq__(self, *args)
2664 
2665  def __ne__(self, *args):
2666  r"""
2667  __ne__(Weight self, Weight o) -> bool
2668  __ne__(Weight self, Particle d) -> bool
2669  """
2670  return _IMP_isd.Weight___ne__(self, *args)
2671 
2672  def __le__(self, *args):
2673  r"""
2674  __le__(Weight self, Weight o) -> bool
2675  __le__(Weight self, Particle d) -> bool
2676  """
2677  return _IMP_isd.Weight___le__(self, *args)
2678 
2679  def __lt__(self, *args):
2680  r"""
2681  __lt__(Weight self, Weight o) -> bool
2682  __lt__(Weight self, Particle d) -> bool
2683  """
2684  return _IMP_isd.Weight___lt__(self, *args)
2685 
2686  def __ge__(self, *args):
2687  r"""
2688  __ge__(Weight self, Weight o) -> bool
2689  __ge__(Weight self, Particle d) -> bool
2690  """
2691  return _IMP_isd.Weight___ge__(self, *args)
2692 
2693  def __gt__(self, *args):
2694  r"""
2695  __gt__(Weight self, Weight o) -> bool
2696  __gt__(Weight self, Particle d) -> bool
2697  """
2698  return _IMP_isd.Weight___gt__(self, *args)
2699 
2700  def __hash__(self):
2701  r"""__hash__(Weight self) -> std::size_t"""
2702  return _IMP_isd.Weight___hash__(self)
2703 
2704  def __str__(self):
2705  r"""__str__(Weight self) -> std::string"""
2706  return _IMP_isd.Weight___str__(self)
2707 
2708  def __repr__(self):
2709  r"""__repr__(Weight self) -> std::string"""
2710  return _IMP_isd.Weight___repr__(self)
2711 
2712  def _get_as_binary(self):
2713  r"""_get_as_binary(Weight self) -> PyObject *"""
2714  return _IMP_isd.Weight__get_as_binary(self)
2715 
2716  def _set_from_binary(self, p):
2717  r"""_set_from_binary(Weight self, PyObject * p)"""
2718  return _IMP_isd.Weight__set_from_binary(self, p)
2719 
2720  def __getstate__(self):
2721  p = self._get_as_binary()
2722  if len(self.__dict__) > 1:
2723  d = self.__dict__.copy()
2724  del d['this']
2725  p = (d, p)
2726  return p
2727 
2728  def __setstate__(self, p):
2729  if not hasattr(self, 'this'):
2730  self.__init__()
2731  if isinstance(p, tuple):
2732  d, p = p
2733  self.__dict__.update(d)
2734  return self._set_from_binary(p)
2735 
2736  __swig_destroy__ = _IMP_isd.delete_Weight
2737 
2738 # Register Weight in _IMP_isd:
2739 _IMP_isd.Weight_swigregister(Weight)
2740 cvar = _IMP_isd.cvar
2741 IMPISD_MAX_WEIGHTS = cvar.IMPISD_MAX_WEIGHTS
2742 
2743 
2744 def __lshift__(*args):
2745  r"""
2746  __lshift__(_ostream out, Nuisance n) -> _ostream
2747  __lshift__(_ostream out, Scale n) -> _ostream
2748  __lshift__(_ostream out, Switching n) -> _ostream
2749  __lshift__(_ostream out, Weight n) -> _ostream
2750  """
2751  return _IMP_isd.__lshift__(*args)
2752 class JeffreysRestraint(IMP.Restraint):
2753  r"""Proxy of C++ IMP::isd::JeffreysRestraint class."""
2754 
2755  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2756 
2757  def __init__(self, *args):
2758  r"""
2759  __init__(JeffreysRestraint self, Model m, Particle p) -> JeffreysRestraint
2760  __init__(JeffreysRestraint self) -> JeffreysRestraint
2761  """
2762  _IMP_isd.JeffreysRestraint_swiginit(self, _IMP_isd.new_JeffreysRestraint(*args))
2763 
2764  def do_get_inputs(self):
2765  r"""do_get_inputs(JeffreysRestraint self) -> IMP::ModelObjectsTemp"""
2766  return _IMP_isd.JeffreysRestraint_do_get_inputs(self)
2767 
2768  def get_version_info(self):
2769  r"""get_version_info(JeffreysRestraint self) -> VersionInfo"""
2770  return _IMP_isd.JeffreysRestraint_get_version_info(self)
2771  __swig_destroy__ = _IMP_isd.delete_JeffreysRestraint
2772 
2773  def get_index(self):
2774  r"""get_index(JeffreysRestraint self) -> ParticleIndex"""
2775  return _IMP_isd.JeffreysRestraint_get_index(self)
2776 
2777  def get_probability(self):
2778  r"""get_probability(JeffreysRestraint self) -> double"""
2779  return _IMP_isd.JeffreysRestraint_get_probability(self)
2780 
2781  def __str__(self):
2782  r"""__str__(JeffreysRestraint self) -> std::string"""
2783  return _IMP_isd.JeffreysRestraint___str__(self)
2784 
2785  def __repr__(self):
2786  r"""__repr__(JeffreysRestraint self) -> std::string"""
2787  return _IMP_isd.JeffreysRestraint___repr__(self)
2788 
2789  @staticmethod
2790  def get_from(o):
2791  return _object_cast_to_JeffreysRestraint(o)
2792 
2793 
2794  def _get_as_binary(self):
2795  r"""_get_as_binary(JeffreysRestraint self) -> PyObject *"""
2796  return _IMP_isd.JeffreysRestraint__get_as_binary(self)
2797 
2798  def _set_from_binary(self, p):
2799  r"""_set_from_binary(JeffreysRestraint self, PyObject * p)"""
2800  return _IMP_isd.JeffreysRestraint__set_from_binary(self, p)
2801 
2802  def __getstate__(self):
2803  p = self._get_as_binary()
2804  if len(self.__dict__) > 1:
2805  d = self.__dict__.copy()
2806  del d['this']
2807  p = (d, p)
2808  return p
2809 
2810  def __setstate__(self, p):
2811  if not hasattr(self, 'this'):
2812  self.__init__()
2813  if isinstance(p, tuple):
2814  d, p = p
2815  self.__dict__.update(d)
2816  return self._set_from_binary(p)
2817 
2818 
2819  def _get_jax(self, space):
2820  import jax.numpy as jnp
2821  indexes = jnp.array([self.get_index()])
2822  def score(jm):
2823  nuisance = jm['nuisance'][indexes]
2824  return jnp.sum(jnp.log(nuisance))
2825  return self._wrap_jax(score, keys=[Scale.get_scale_key()])
2826 
2827 
2828 # Register JeffreysRestraint in _IMP_isd:
2829 _IMP_isd.JeffreysRestraint_swigregister(JeffreysRestraint)
2830 class NormalSigmaPCRestraint(IMP.Restraint):
2831  r"""Proxy of C++ IMP::isd::NormalSigmaPCRestraint class."""
2832 
2833  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2834 
2835  def __init__(self, *args):
2836  r"""
2837  __init__(NormalSigmaPCRestraint self, Model m, ParticleIndex spi, double su, double alpha, std::string name="NormalSigmaPCRestraint%1%") -> NormalSigmaPCRestraint
2838  __init__(NormalSigmaPCRestraint self, Scale s, double su, double alpha, std::string name="NormalSigmaPCRestraint%1%") -> NormalSigmaPCRestraint
2839  """
2840  _IMP_isd.NormalSigmaPCRestraint_swiginit(self, _IMP_isd.new_NormalSigmaPCRestraint(*args))
2841 
2842  def get_sigma(self):
2843  r"""get_sigma(NormalSigmaPCRestraint self) -> Scale"""
2844  return _IMP_isd.NormalSigmaPCRestraint_get_sigma(self)
2845 
2846  def get_alpha(self):
2847  r"""get_alpha(NormalSigmaPCRestraint self) -> double"""
2848  return _IMP_isd.NormalSigmaPCRestraint_get_alpha(self)
2849 
2850  def get_sigma_upper(self):
2851  r"""get_sigma_upper(NormalSigmaPCRestraint self) -> double"""
2852  return _IMP_isd.NormalSigmaPCRestraint_get_sigma_upper(self)
2853 
2854  def get_probability(self):
2855  r"""get_probability(NormalSigmaPCRestraint self) -> double"""
2856  return _IMP_isd.NormalSigmaPCRestraint_get_probability(self)
2857 
2858  def do_get_inputs(self):
2859  r"""do_get_inputs(NormalSigmaPCRestraint self) -> IMP::ModelObjectsTemp"""
2860  return _IMP_isd.NormalSigmaPCRestraint_do_get_inputs(self)
2861 
2862  def get_version_info(self):
2863  r"""get_version_info(NormalSigmaPCRestraint self) -> VersionInfo"""
2864  return _IMP_isd.NormalSigmaPCRestraint_get_version_info(self)
2865  __swig_destroy__ = _IMP_isd.delete_NormalSigmaPCRestraint
2866 
2867  def __str__(self):
2868  r"""__str__(NormalSigmaPCRestraint self) -> std::string"""
2869  return _IMP_isd.NormalSigmaPCRestraint___str__(self)
2870 
2871  def __repr__(self):
2872  r"""__repr__(NormalSigmaPCRestraint self) -> std::string"""
2873  return _IMP_isd.NormalSigmaPCRestraint___repr__(self)
2874 
2875  @staticmethod
2876  def get_from(o):
2877  return _object_cast_to_NormalSigmaPCRestraint(o)
2878 
2879 
2880 # Register NormalSigmaPCRestraint in _IMP_isd:
2881 _IMP_isd.NormalSigmaPCRestraint_swigregister(NormalSigmaPCRestraint)
2882 class Distribution(IMP.Object):
2883  r"""Proxy of C++ IMP::isd::Distribution class."""
2884 
2885  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2886 
2887  def __init__(self, *args):
2888  r"""__init__(Distribution self, std::string name="Distribution %1%") -> Distribution"""
2889  if self.__class__ == Distribution:
2890  _self = None
2891  else:
2892  _self = self
2893  _IMP_isd.Distribution_swiginit(self, _IMP_isd.new_Distribution(_self, *args))
2894 
2895  if self.__class__ != Distribution:
2896  _director_objects.register(self)
2897 
2898 
2899 
2900 
2901  def get_type_name(self):
2902  r"""get_type_name(Distribution self) -> std::string"""
2903  return _IMP_isd.Distribution_get_type_name(self)
2904 
2905  def get_version_info(self):
2906  r"""get_version_info(Distribution self) -> VersionInfo"""
2907  return _IMP_isd.Distribution_get_version_info(self)
2908  __swig_destroy__ = _IMP_isd.delete_Distribution
2909 
2910  def __str__(self):
2911  r"""__str__(Distribution self) -> std::string"""
2912  return _IMP_isd.Distribution___str__(self)
2913 
2914  def __repr__(self):
2915  r"""__repr__(Distribution self) -> std::string"""
2916  return _IMP_isd.Distribution___repr__(self)
2917 
2918  @staticmethod
2919  def get_from(o):
2920  return _object_cast_to_Distribution(o)
2921 
2922 
2923  def do_show(self, out):
2924  pass
2925 
2926  @staticmethod
2927  def get_from(o):
2928  return _object_cast_to_Distribution(o)
2929 
2930  def __disown__(self):
2931  self.this.disown()
2932  _IMP_isd.disown_Distribution(self)
2933  return weakref.proxy(self)
2934 
2935  def do_destroy(self):
2936  r"""do_destroy(Distribution self)"""
2937  return _IMP_isd.Distribution_do_destroy(self)
2938 
2939 # Register Distribution in _IMP_isd:
2940 _IMP_isd.Distribution_swigregister(Distribution)
2941 class OneDimensionalDistribution(Distribution):
2942  r"""Proxy of C++ IMP::isd::OneDimensionalDistribution class."""
2943 
2944  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2945 
2946  def do_evaluate(self, *args):
2947  r"""
2948  do_evaluate(OneDimensionalDistribution self, double v) -> double
2949  do_evaluate(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2950  """
2951  return _IMP_isd.OneDimensionalDistribution_do_evaluate(self, *args)
2952 
2953  def do_get_density(self, *args):
2954  r"""
2955  do_get_density(OneDimensionalDistribution self, double v) -> double
2956  do_get_density(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2957  """
2958  return _IMP_isd.OneDimensionalDistribution_do_get_density(self, *args)
2959 
2960  def __init__(self, *args):
2961  r"""__init__(OneDimensionalDistribution self, std::string name="OneDimensionalDistribution %1%") -> OneDimensionalDistribution"""
2962  if self.__class__ == OneDimensionalDistribution:
2963  _self = None
2964  else:
2965  _self = self
2966  _IMP_isd.OneDimensionalDistribution_swiginit(self, _IMP_isd.new_OneDimensionalDistribution(_self, *args))
2967 
2968  if self.__class__ != OneDimensionalDistribution:
2969  _director_objects.register(self)
2970 
2971 
2972 
2973 
2974  def evaluate(self, *args):
2975  r"""
2976  evaluate(OneDimensionalDistribution self, double v) -> double
2977  evaluate(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2978  """
2979  return _IMP_isd.OneDimensionalDistribution_evaluate(self, *args)
2980 
2981  def get_density(self, *args):
2982  r"""
2983  get_density(OneDimensionalDistribution self, double v) -> double
2984  get_density(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2985  """
2986  return _IMP_isd.OneDimensionalDistribution_get_density(self, *args)
2987 
2988  def get_type_name(self):
2989  r"""get_type_name(OneDimensionalDistribution self) -> std::string"""
2990  return _IMP_isd.OneDimensionalDistribution_get_type_name(self)
2991 
2992  def get_version_info(self):
2993  r"""get_version_info(OneDimensionalDistribution self) -> VersionInfo"""
2994  return _IMP_isd.OneDimensionalDistribution_get_version_info(self)
2995  __swig_destroy__ = _IMP_isd.delete_OneDimensionalDistribution
2996 
2997  def __str__(self):
2998  r"""__str__(OneDimensionalDistribution self) -> std::string"""
2999  return _IMP_isd.OneDimensionalDistribution___str__(self)
3000 
3001  def __repr__(self):
3002  r"""__repr__(OneDimensionalDistribution self) -> std::string"""
3003  return _IMP_isd.OneDimensionalDistribution___repr__(self)
3004 
3005  @staticmethod
3006  def get_from(o):
3007  return _object_cast_to_OneDimensionalDistribution(o)
3008 
3009 
3010  def do_show(self, out):
3011  pass
3012 
3013  @staticmethod
3014  def get_from(o):
3015  return _object_cast_to_OneDimensionalDistribution(o)
3016 
3017  def __disown__(self):
3018  self.this.disown()
3019  _IMP_isd.disown_OneDimensionalDistribution(self)
3020  return weakref.proxy(self)
3021 
3022  def do_destroy(self):
3023  r"""do_destroy(OneDimensionalDistribution self)"""
3024  return _IMP_isd.OneDimensionalDistribution_do_destroy(self)
3025 
3026 # Register OneDimensionalDistribution in _IMP_isd:
3027 _IMP_isd.OneDimensionalDistribution_swigregister(OneDimensionalDistribution)
3028 class OneDimensionalSufficientDistribution(Distribution):
3029  r"""Proxy of C++ IMP::isd::OneDimensionalSufficientDistribution class."""
3030 
3031  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3032 
3033  def do_update_sufficient_statistics(self, vs):
3034  r"""do_update_sufficient_statistics(OneDimensionalSufficientDistribution self, IMP::Floats vs)"""
3035  return _IMP_isd.OneDimensionalSufficientDistribution_do_update_sufficient_statistics(self, vs)
3036 
3037  def do_get_sufficient_statistics(self):
3038  r"""do_get_sufficient_statistics(OneDimensionalSufficientDistribution self) -> IMP::Floats"""
3039  return _IMP_isd.OneDimensionalSufficientDistribution_do_get_sufficient_statistics(self)
3040 
3041  def do_evaluate(self):
3042  r"""do_evaluate(OneDimensionalSufficientDistribution self) -> double"""
3043  return _IMP_isd.OneDimensionalSufficientDistribution_do_evaluate(self)
3044 
3045  def do_get_density(self):
3046  r"""do_get_density(OneDimensionalSufficientDistribution self) -> double"""
3047  return _IMP_isd.OneDimensionalSufficientDistribution_do_get_density(self)
3048 
3049  def __init__(self, *args):
3050  r"""__init__(OneDimensionalSufficientDistribution self, std::string name="OneDimensionalSufficientDistribution %1%") -> OneDimensionalSufficientDistribution"""
3051  if self.__class__ == OneDimensionalSufficientDistribution:
3052  _self = None
3053  else:
3054  _self = self
3055  _IMP_isd.OneDimensionalSufficientDistribution_swiginit(self, _IMP_isd.new_OneDimensionalSufficientDistribution(_self, *args))
3056 
3057  if self.__class__ != OneDimensionalSufficientDistribution:
3058  _director_objects.register(self)
3059 
3060 
3061 
3062 
3063  def update_sufficient_statistics(self, vs):
3064  r"""update_sufficient_statistics(OneDimensionalSufficientDistribution self, IMP::Floats vs)"""
3065  return _IMP_isd.OneDimensionalSufficientDistribution_update_sufficient_statistics(self, vs)
3066 
3067  def get_sufficient_statistics(self):
3068  r"""get_sufficient_statistics(OneDimensionalSufficientDistribution self) -> IMP::Floats"""
3069  return _IMP_isd.OneDimensionalSufficientDistribution_get_sufficient_statistics(self)
3070 
3071  def evaluate(self):
3072  r"""evaluate(OneDimensionalSufficientDistribution self) -> double"""
3073  return _IMP_isd.OneDimensionalSufficientDistribution_evaluate(self)
3074 
3075  def get_density(self):
3076  r"""get_density(OneDimensionalSufficientDistribution self) -> double"""
3077  return _IMP_isd.OneDimensionalSufficientDistribution_get_density(self)
3078 
3079  def get_type_name(self):
3080  r"""get_type_name(OneDimensionalSufficientDistribution self) -> std::string"""
3081  return _IMP_isd.OneDimensionalSufficientDistribution_get_type_name(self)
3082 
3083  def get_version_info(self):
3084  r"""get_version_info(OneDimensionalSufficientDistribution self) -> VersionInfo"""
3085  return _IMP_isd.OneDimensionalSufficientDistribution_get_version_info(self)
3086  __swig_destroy__ = _IMP_isd.delete_OneDimensionalSufficientDistribution
3087 
3088  def __str__(self):
3089  r"""__str__(OneDimensionalSufficientDistribution self) -> std::string"""
3090  return _IMP_isd.OneDimensionalSufficientDistribution___str__(self)
3091 
3092  def __repr__(self):
3093  r"""__repr__(OneDimensionalSufficientDistribution self) -> std::string"""
3094  return _IMP_isd.OneDimensionalSufficientDistribution___repr__(self)
3095 
3096  @staticmethod
3097  def get_from(o):
3098  return _object_cast_to_OneDimensionalSufficientDistribution(o)
3099 
3100 
3101  def do_show(self, out):
3102  pass
3103 
3104  @staticmethod
3105  def get_from(o):
3106  return _object_cast_to_OneDimensionalSufficientDistribution(o)
3107 
3108  def __disown__(self):
3109  self.this.disown()
3110  _IMP_isd.disown_OneDimensionalSufficientDistribution(self)
3111  return weakref.proxy(self)
3112 
3113  def do_destroy(self):
3114  r"""do_destroy(OneDimensionalSufficientDistribution self)"""
3115  return _IMP_isd.OneDimensionalSufficientDistribution_do_destroy(self)
3116 
3117 # Register OneDimensionalSufficientDistribution in _IMP_isd:
3118 _IMP_isd.OneDimensionalSufficientDistribution_swigregister(OneDimensionalSufficientDistribution)
3119 class FNormal(OneDimensionalSufficientDistribution):
3120  r"""Proxy of C++ IMP::isd::FNormal class."""
3121 
3122  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3123 
3124  def __init__(self, FA, JA, FM, sigma):
3125  r"""__init__(FNormal self, double FA, double JA, double FM, double sigma) -> FNormal"""
3126  _IMP_isd.FNormal_swiginit(self, _IMP_isd.new_FNormal(FA, JA, FM, sigma))
3127 
3128  def update_sufficient_statistics(self, FA):
3129  r"""update_sufficient_statistics(FNormal self, double FA)"""
3130  return _IMP_isd.FNormal_update_sufficient_statistics(self, FA)
3131 
3132  def do_update_sufficient_statistics(self, data):
3133  r"""do_update_sufficient_statistics(FNormal self, IMP::Floats data)"""
3134  return _IMP_isd.FNormal_do_update_sufficient_statistics(self, data)
3135 
3136  def do_get_sufficient_statistics(self):
3137  r"""do_get_sufficient_statistics(FNormal self) -> IMP::Floats"""
3138  return _IMP_isd.FNormal_do_get_sufficient_statistics(self)
3139 
3140  def do_evaluate(self):
3141  r"""do_evaluate(FNormal self) -> double"""
3142  return _IMP_isd.FNormal_do_evaluate(self)
3143 
3144  def evaluate_derivative_FA(self):
3145  r"""evaluate_derivative_FA(FNormal self) -> double"""
3146  return _IMP_isd.FNormal_evaluate_derivative_FA(self)
3147 
3148  def evaluate_derivative_JA(self):
3149  r"""evaluate_derivative_JA(FNormal self) -> double"""
3150  return _IMP_isd.FNormal_evaluate_derivative_JA(self)
3151 
3152  def evaluate_derivative_FM(self):
3153  r"""evaluate_derivative_FM(FNormal self) -> double"""
3154  return _IMP_isd.FNormal_evaluate_derivative_FM(self)
3155 
3156  def evaluate_derivative_sigma(self):
3157  r"""evaluate_derivative_sigma(FNormal self) -> double"""
3158  return _IMP_isd.FNormal_evaluate_derivative_sigma(self)
3159 
3160  def do_get_density(self):
3161  r"""do_get_density(FNormal self) -> double"""
3162  return _IMP_isd.FNormal_do_get_density(self)
3163 
3164  def set_FA(self, f):
3165  r"""set_FA(FNormal self, double f)"""
3166  return _IMP_isd.FNormal_set_FA(self, f)
3167 
3168  def set_JA(self, f):
3169  r"""set_JA(FNormal self, double f)"""
3170  return _IMP_isd.FNormal_set_JA(self, f)
3171 
3172  def set_FM(self, f):
3173  r"""set_FM(FNormal self, double f)"""
3174  return _IMP_isd.FNormal_set_FM(self, f)
3175 
3176  def set_sigma(self, f):
3177  r"""set_sigma(FNormal self, double f)"""
3178  return _IMP_isd.FNormal_set_sigma(self, f)
3179  __swig_destroy__ = _IMP_isd.delete_FNormal
3180 
3181  def __str__(self):
3182  r"""__str__(FNormal self) -> std::string"""
3183  return _IMP_isd.FNormal___str__(self)
3184 
3185  def __repr__(self):
3186  r"""__repr__(FNormal self) -> std::string"""
3187  return _IMP_isd.FNormal___repr__(self)
3188 
3189  @staticmethod
3190  def get_from(o):
3191  return _object_cast_to_FNormal(o)
3192 
3193 
3194 # Register FNormal in _IMP_isd:
3195 _IMP_isd.FNormal_swigregister(FNormal)
3196 class FStudentT(OneDimensionalSufficientDistribution):
3197  r"""Proxy of C++ IMP::isd::FStudentT class."""
3198 
3199  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3200 
3201  def __init__(self, *args):
3202  r"""
3203  __init__(FStudentT self, IMP::Floats FXs, IMP::Floats JXs, double FM, double sigma, double nu, std::string name="FStudentT %1%") -> FStudentT
3204  __init__(FStudentT self, double sumFX, double sumFX2, unsigned int N, double LogJX, double FM, double sigma, double nu, std::string name="FStudentT %1%") -> FStudentT
3205  """
3206  _IMP_isd.FStudentT_swiginit(self, _IMP_isd.new_FStudentT(*args))
3207 
3208  def update_sufficient_statistics(self, FXs, JXs):
3209  r"""update_sufficient_statistics(FStudentT self, IMP::Floats FXs, IMP::Floats JXs)"""
3210  return _IMP_isd.FStudentT_update_sufficient_statistics(self, FXs, JXs)
3211 
3212  def evaluate_derivative_Fx(self, Fx):
3213  r"""evaluate_derivative_Fx(FStudentT self, double Fx) -> double"""
3214  return _IMP_isd.FStudentT_evaluate_derivative_Fx(self, Fx)
3215 
3216  def evaluate_derivative_FX(self, FXs):
3217  r"""evaluate_derivative_FX(FStudentT self, IMP::Floats const FXs) -> IMP::Floats"""
3218  return _IMP_isd.FStudentT_evaluate_derivative_FX(self, FXs)
3219 
3220  def evaluate_derivative_LogJX(self):
3221  r"""evaluate_derivative_LogJX(FStudentT self) -> double"""
3222  return _IMP_isd.FStudentT_evaluate_derivative_LogJX(self)
3223 
3224  def evaluate_derivative_FM(self):
3225  r"""evaluate_derivative_FM(FStudentT self) -> double"""
3226  return _IMP_isd.FStudentT_evaluate_derivative_FM(self)
3227 
3228  def evaluate_derivative_sigma(self):
3229  r"""evaluate_derivative_sigma(FStudentT self) -> double"""
3230  return _IMP_isd.FStudentT_evaluate_derivative_sigma(self)
3231 
3232  def evaluate_derivative_nu(self):
3233  r"""evaluate_derivative_nu(FStudentT self) -> double"""
3234  return _IMP_isd.FStudentT_evaluate_derivative_nu(self)
3235 
3236  def update_cached_values(self):
3237  r"""update_cached_values(FStudentT self)"""
3238  return _IMP_isd.FStudentT_update_cached_values(self)
3239 
3240  def set_sumFX(self, v):
3241  r"""set_sumFX(FStudentT self, double v)"""
3242  return _IMP_isd.FStudentT_set_sumFX(self, v)
3243 
3244  def set_sumFX2(self, v):
3245  r"""set_sumFX2(FStudentT self, double v)"""
3246  return _IMP_isd.FStudentT_set_sumFX2(self, v)
3247 
3248  def set_N(self, v):
3249  r"""set_N(FStudentT self, unsigned int v)"""
3250  return _IMP_isd.FStudentT_set_N(self, v)
3251 
3252  def set_LogJX(self, v):
3253  r"""set_LogJX(FStudentT self, double v)"""
3254  return _IMP_isd.FStudentT_set_LogJX(self, v)
3255 
3256  def set_FM(self, v):
3257  r"""set_FM(FStudentT self, double v)"""
3258  return _IMP_isd.FStudentT_set_FM(self, v)
3259 
3260  def set_sigma(self, v):
3261  r"""set_sigma(FStudentT self, double v)"""
3262  return _IMP_isd.FStudentT_set_sigma(self, v)
3263 
3264  def set_nu(self, v):
3265  r"""set_nu(FStudentT self, double v)"""
3266  return _IMP_isd.FStudentT_set_nu(self, v)
3267 
3268  def get_sumFX(self):
3269  r"""get_sumFX(FStudentT self) -> double"""
3270  return _IMP_isd.FStudentT_get_sumFX(self)
3271 
3272  def get_sumFX2(self):
3273  r"""get_sumFX2(FStudentT self) -> double"""
3274  return _IMP_isd.FStudentT_get_sumFX2(self)
3275 
3276  def get_N(self):
3277  r"""get_N(FStudentT self) -> unsigned int"""
3278  return _IMP_isd.FStudentT_get_N(self)
3279 
3280  def get_LogJX(self):
3281  r"""get_LogJX(FStudentT self) -> double"""
3282  return _IMP_isd.FStudentT_get_LogJX(self)
3283 
3284  def get_FM(self):
3285  r"""get_FM(FStudentT self) -> double"""
3286  return _IMP_isd.FStudentT_get_FM(self)
3287 
3288  def get_sigma(self):
3289  r"""get_sigma(FStudentT self) -> double"""
3290  return _IMP_isd.FStudentT_get_sigma(self)
3291 
3292  def get_nu(self):
3293  r"""get_nu(FStudentT self) -> double"""
3294  return _IMP_isd.FStudentT_get_nu(self)
3295  __swig_destroy__ = _IMP_isd.delete_FStudentT
3296 
3297  def __str__(self):
3298  r"""__str__(FStudentT self) -> std::string"""
3299  return _IMP_isd.FStudentT___str__(self)
3300 
3301  def __repr__(self):
3302  r"""__repr__(FStudentT self) -> std::string"""
3303  return _IMP_isd.FStudentT___repr__(self)
3304 
3305  @staticmethod
3306  def get_from(o):
3307  return _object_cast_to_FStudentT(o)
3308 
3309 
3310 # Register FStudentT in _IMP_isd:
3311 _IMP_isd.FStudentT_swigregister(FStudentT)
3312 class vonMises(IMP.Object):
3313  r"""Proxy of C++ IMP::isd::vonMises class."""
3314 
3315  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3316 
3317  def __init__(self, x, mu, kappa):
3318  r"""__init__(vonMises self, double x, double mu, double kappa) -> vonMises"""
3319  _IMP_isd.vonMises_swiginit(self, _IMP_isd.new_vonMises(x, mu, kappa))
3320 
3321  def evaluate(self):
3322  r"""evaluate(vonMises self) -> double"""
3323  return _IMP_isd.vonMises_evaluate(self)
3324 
3325  def evaluate_derivative_x(self):
3326  r"""evaluate_derivative_x(vonMises self) -> double"""
3327  return _IMP_isd.vonMises_evaluate_derivative_x(self)
3328 
3329  def evaluate_derivative_mu(self):
3330  r"""evaluate_derivative_mu(vonMises self) -> double"""
3331  return _IMP_isd.vonMises_evaluate_derivative_mu(self)
3332 
3333  def evaluate_derivative_kappa(self):
3334  r"""evaluate_derivative_kappa(vonMises self) -> double"""
3335  return _IMP_isd.vonMises_evaluate_derivative_kappa(self)
3336 
3337  def density(self):
3338  r"""density(vonMises self) -> double"""
3339  return _IMP_isd.vonMises_density(self)
3340 
3341  def set_x(self, x):
3342  r"""set_x(vonMises self, double x)"""
3343  return _IMP_isd.vonMises_set_x(self, x)
3344 
3345  def set_mu(self, mu):
3346  r"""set_mu(vonMises self, double mu)"""
3347  return _IMP_isd.vonMises_set_mu(self, mu)
3348 
3349  def set_kappa(self, kappa):
3350  r"""set_kappa(vonMises self, double kappa)"""
3351  return _IMP_isd.vonMises_set_kappa(self, kappa)
3352 
3353  def get_version_info(self):
3354  r"""get_version_info(vonMises self) -> VersionInfo"""
3355  return _IMP_isd.vonMises_get_version_info(self)
3356  __swig_destroy__ = _IMP_isd.delete_vonMises
3357 
3358  def __str__(self):
3359  r"""__str__(vonMises self) -> std::string"""
3360  return _IMP_isd.vonMises___str__(self)
3361 
3362  def __repr__(self):
3363  r"""__repr__(vonMises self) -> std::string"""
3364  return _IMP_isd.vonMises___repr__(self)
3365 
3366  @staticmethod
3367  def get_from(o):
3368  return _object_cast_to_vonMises(o)
3369 
3370 
3371 # Register vonMises in _IMP_isd:
3372 _IMP_isd.vonMises_swigregister(vonMises)
3373 class vonMisesSufficient(IMP.Object):
3374  r"""Proxy of C++ IMP::isd::vonMisesSufficient class."""
3375 
3376  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3377 
3378  def __init__(self, *args):
3379  r"""
3380  __init__(vonMisesSufficient self, double chi, unsigned int N, double R0, double chiexp, double kappa) -> vonMisesSufficient
3381  __init__(vonMisesSufficient self, double chi, IMP::Floats obs, double kappa) -> vonMisesSufficient
3382  """
3383  _IMP_isd.vonMisesSufficient_swiginit(self, _IMP_isd.new_vonMisesSufficient(*args))
3384 
3385  def evaluate(self):
3386  r"""evaluate(vonMisesSufficient self) -> double"""
3387  return _IMP_isd.vonMisesSufficient_evaluate(self)
3388 
3389  def evaluate_derivative_x(self):
3390  r"""evaluate_derivative_x(vonMisesSufficient self) -> double"""
3391  return _IMP_isd.vonMisesSufficient_evaluate_derivative_x(self)
3392 
3393  def evaluate_derivative_kappa(self):
3394  r"""evaluate_derivative_kappa(vonMisesSufficient self) -> double"""
3395  return _IMP_isd.vonMisesSufficient_evaluate_derivative_kappa(self)
3396 
3397  def density(self):
3398  r"""density(vonMisesSufficient self) -> double"""
3399  return _IMP_isd.vonMisesSufficient_density(self)
3400 
3401  def get_x(self):
3402  r"""get_x(vonMisesSufficient self) -> double"""
3403  return _IMP_isd.vonMisesSufficient_get_x(self)
3404 
3405  def get_R0(self):
3406  r"""get_R0(vonMisesSufficient self) -> double"""
3407  return _IMP_isd.vonMisesSufficient_get_R0(self)
3408 
3409  def get_chiexp(self):
3410  r"""get_chiexp(vonMisesSufficient self) -> double"""
3411  return _IMP_isd.vonMisesSufficient_get_chiexp(self)
3412 
3413  def get_N(self):
3414  r"""get_N(vonMisesSufficient self) -> double"""
3415  return _IMP_isd.vonMisesSufficient_get_N(self)
3416 
3417  def get_kappa(self):
3418  r"""get_kappa(vonMisesSufficient self) -> double"""
3419  return _IMP_isd.vonMisesSufficient_get_kappa(self)
3420 
3421  def set_x(self, x):
3422  r"""set_x(vonMisesSufficient self, double x)"""
3423  return _IMP_isd.vonMisesSufficient_set_x(self, x)
3424 
3425  def set_R0(self, R0):
3426  r"""set_R0(vonMisesSufficient self, double R0)"""
3427  return _IMP_isd.vonMisesSufficient_set_R0(self, R0)
3428 
3429  def set_chiexp(self, chiexp):
3430  r"""set_chiexp(vonMisesSufficient self, double chiexp)"""
3431  return _IMP_isd.vonMisesSufficient_set_chiexp(self, chiexp)
3432 
3433  def set_N(self, N):
3434  r"""set_N(vonMisesSufficient self, unsigned int N)"""
3435  return _IMP_isd.vonMisesSufficient_set_N(self, N)
3436 
3437  def set_kappa(self, kappa):
3438  r"""set_kappa(vonMisesSufficient self, double kappa)"""
3439  return _IMP_isd.vonMisesSufficient_set_kappa(self, kappa)
3440 
3441  @staticmethod
3442  def get_sufficient_statistics(data):
3443  r"""get_sufficient_statistics(IMP::Floats data) -> IMP::Floats"""
3444  return _IMP_isd.vonMisesSufficient_get_sufficient_statistics(data)
3445 
3446  def get_version_info(self):
3447  r"""get_version_info(vonMisesSufficient self) -> VersionInfo"""
3448  return _IMP_isd.vonMisesSufficient_get_version_info(self)
3449  __swig_destroy__ = _IMP_isd.delete_vonMisesSufficient
3450 
3451  def __str__(self):
3452  r"""__str__(vonMisesSufficient self) -> std::string"""
3453  return _IMP_isd.vonMisesSufficient___str__(self)
3454 
3455  def __repr__(self):
3456  r"""__repr__(vonMisesSufficient self) -> std::string"""
3457  return _IMP_isd.vonMisesSufficient___repr__(self)
3458 
3459  @staticmethod
3460  def get_from(o):
3461  return _object_cast_to_vonMisesSufficient(o)
3462 
3463 
3464 # Register vonMisesSufficient in _IMP_isd:
3465 _IMP_isd.vonMisesSufficient_swigregister(vonMisesSufficient)
3466 class PenalizedComplexityPrior(OneDimensionalSufficientDistribution):
3467  r"""Proxy of C++ IMP::isd::PenalizedComplexityPrior class."""
3468 
3469  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3470 
3471  def __init__(self, *args):
3472  r"""__init__(PenalizedComplexityPrior self, double Dxi, double Jxi, double alpha, std::string name="PenalizedComplexityPrior %1%") -> PenalizedComplexityPrior"""
3473  _IMP_isd.PenalizedComplexityPrior_swiginit(self, _IMP_isd.new_PenalizedComplexityPrior(*args))
3474 
3475  def update_sufficient_statistics(self, Dxis, Jxis):
3476  r"""update_sufficient_statistics(PenalizedComplexityPrior self, IMP::Floats Dxis, IMP::Floats Jxis)"""
3477  return _IMP_isd.PenalizedComplexityPrior_update_sufficient_statistics(self, Dxis, Jxis)
3478 
3479  def evaluate_derivative_Dxi(self):
3480  r"""evaluate_derivative_Dxi(PenalizedComplexityPrior self) -> double"""
3481  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_Dxi(self)
3482 
3483  def evaluate_derivative_Jxi(self):
3484  r"""evaluate_derivative_Jxi(PenalizedComplexityPrior self) -> double"""
3485  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_Jxi(self)
3486 
3487  def evaluate_derivative_alpha(self):
3488  r"""evaluate_derivative_alpha(PenalizedComplexityPrior self) -> double"""
3489  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_alpha(self)
3490 
3491  def evaluate_derivative_xi(self, JJxi):
3492  r"""evaluate_derivative_xi(PenalizedComplexityPrior self, double JJxi) -> double"""
3493  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_xi(self, JJxi)
3494 
3495  def set_Dxi(self, v):
3496  r"""set_Dxi(PenalizedComplexityPrior self, double v)"""
3497  return _IMP_isd.PenalizedComplexityPrior_set_Dxi(self, v)
3498 
3499  def set_Jxi(self, v):
3500  r"""set_Jxi(PenalizedComplexityPrior self, double v)"""
3501  return _IMP_isd.PenalizedComplexityPrior_set_Jxi(self, v)
3502 
3503  def set_alpha(self, v):
3504  r"""set_alpha(PenalizedComplexityPrior self, double v)"""
3505  return _IMP_isd.PenalizedComplexityPrior_set_alpha(self, v)
3506 
3507  def get_Dxi(self):
3508  r"""get_Dxi(PenalizedComplexityPrior self) -> double"""
3509  return _IMP_isd.PenalizedComplexityPrior_get_Dxi(self)
3510 
3511  def get_Jxi(self):
3512  r"""get_Jxi(PenalizedComplexityPrior self) -> double"""
3513  return _IMP_isd.PenalizedComplexityPrior_get_Jxi(self)
3514 
3515  def get_alpha(self):
3516  r"""get_alpha(PenalizedComplexityPrior self) -> double"""
3517  return _IMP_isd.PenalizedComplexityPrior_get_alpha(self)
3518  __swig_destroy__ = _IMP_isd.delete_PenalizedComplexityPrior
3519 
3520  def __str__(self):
3521  r"""__str__(PenalizedComplexityPrior self) -> std::string"""
3522  return _IMP_isd.PenalizedComplexityPrior___str__(self)
3523 
3524  def __repr__(self):
3525  r"""__repr__(PenalizedComplexityPrior self) -> std::string"""
3526  return _IMP_isd.PenalizedComplexityPrior___repr__(self)
3527 
3528  @staticmethod
3529  def get_from(o):
3530  return _object_cast_to_PenalizedComplexityPrior(o)
3531 
3532 
3533 # Register PenalizedComplexityPrior in _IMP_isd:
3534 _IMP_isd.PenalizedComplexityPrior_swigregister(PenalizedComplexityPrior)
3535 class vonMisesKappaJeffreysRestraint(IMP.Restraint):
3536  r"""Proxy of C++ IMP::isd::vonMisesKappaJeffreysRestraint class."""
3537 
3538  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3539 
3540  def __init__(self, m, kappa):
3541  r"""__init__(vonMisesKappaJeffreysRestraint self, Model m, Particle kappa) -> vonMisesKappaJeffreysRestraint"""
3542  _IMP_isd.vonMisesKappaJeffreysRestraint_swiginit(self, _IMP_isd.new_vonMisesKappaJeffreysRestraint(m, kappa))
3543 
3544  def do_get_inputs(self):
3545  r"""do_get_inputs(vonMisesKappaJeffreysRestraint self) -> IMP::ModelObjectsTemp"""
3546  return _IMP_isd.vonMisesKappaJeffreysRestraint_do_get_inputs(self)
3547 
3548  def get_version_info(self):
3549  r"""get_version_info(vonMisesKappaJeffreysRestraint self) -> VersionInfo"""
3550  return _IMP_isd.vonMisesKappaJeffreysRestraint_get_version_info(self)
3551  __swig_destroy__ = _IMP_isd.delete_vonMisesKappaJeffreysRestraint
3552 
3553  def get_probability(self):
3554  r"""get_probability(vonMisesKappaJeffreysRestraint self) -> double"""
3555  return _IMP_isd.vonMisesKappaJeffreysRestraint_get_probability(self)
3556 
3557  def __str__(self):
3558  r"""__str__(vonMisesKappaJeffreysRestraint self) -> std::string"""
3559  return _IMP_isd.vonMisesKappaJeffreysRestraint___str__(self)
3560 
3561  def __repr__(self):
3562  r"""__repr__(vonMisesKappaJeffreysRestraint self) -> std::string"""
3563  return _IMP_isd.vonMisesKappaJeffreysRestraint___repr__(self)
3564 
3565  @staticmethod
3566  def get_from(o):
3567  return _object_cast_to_vonMisesKappaJeffreysRestraint(o)
3568 
3569 
3570 # Register vonMisesKappaJeffreysRestraint in _IMP_isd:
3571 _IMP_isd.vonMisesKappaJeffreysRestraint_swigregister(vonMisesKappaJeffreysRestraint)
3572 class vonMisesKappaConjugateRestraint(IMP.Restraint):
3573  r"""Proxy of C++ IMP::isd::vonMisesKappaConjugateRestraint class."""
3574 
3575  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3576 
3577  def __init__(self, m, kappa, c=10.0, R0=0.0):
3578  r"""__init__(vonMisesKappaConjugateRestraint self, Model m, Particle kappa, double c=10.0, double R0=0.0) -> vonMisesKappaConjugateRestraint"""
3579  _IMP_isd.vonMisesKappaConjugateRestraint_swiginit(self, _IMP_isd.new_vonMisesKappaConjugateRestraint(m, kappa, c, R0))
3580 
3581  def do_get_inputs(self):
3582  r"""do_get_inputs(vonMisesKappaConjugateRestraint self) -> IMP::ModelObjectsTemp"""
3583  return _IMP_isd.vonMisesKappaConjugateRestraint_do_get_inputs(self)
3584 
3585  def get_version_info(self):
3586  r"""get_version_info(vonMisesKappaConjugateRestraint self) -> VersionInfo"""
3587  return _IMP_isd.vonMisesKappaConjugateRestraint_get_version_info(self)
3588  __swig_destroy__ = _IMP_isd.delete_vonMisesKappaConjugateRestraint
3589 
3590  def get_probability(self):
3591  r"""get_probability(vonMisesKappaConjugateRestraint self) -> double"""
3592  return _IMP_isd.vonMisesKappaConjugateRestraint_get_probability(self)
3593 
3594  def __str__(self):
3595  r"""__str__(vonMisesKappaConjugateRestraint self) -> std::string"""
3596  return _IMP_isd.vonMisesKappaConjugateRestraint___str__(self)
3597 
3598  def __repr__(self):
3599  r"""__repr__(vonMisesKappaConjugateRestraint self) -> std::string"""
3600  return _IMP_isd.vonMisesKappaConjugateRestraint___repr__(self)
3601 
3602  @staticmethod
3603  def get_from(o):
3604  return _object_cast_to_vonMisesKappaConjugateRestraint(o)
3605 
3606 
3607 # Register vonMisesKappaConjugateRestraint in _IMP_isd:
3608 _IMP_isd.vonMisesKappaConjugateRestraint_swigregister(vonMisesKappaConjugateRestraint)
3609 class NOERestraint(IMP.Restraint):
3610  r"""Proxy of C++ IMP::isd::NOERestraint class."""
3611 
3612  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3613 
3614  def __init__(self, m, p0, p1, sigma, gamma, Iexp):
3615  r"""__init__(NOERestraint self, Model m, Particle p0, Particle p1, Particle sigma, Particle gamma, double Iexp) -> NOERestraint"""
3616  _IMP_isd.NOERestraint_swiginit(self, _IMP_isd.new_NOERestraint(m, p0, p1, sigma, gamma, Iexp))
3617 
3618  def get_probability(self):
3619  r"""get_probability(NOERestraint self) -> double"""
3620  return _IMP_isd.NOERestraint_get_probability(self)
3621 
3622  def get_chi(self):
3623  r"""get_chi(NOERestraint self) -> double"""
3624  return _IMP_isd.NOERestraint_get_chi(self)
3625 
3626  def do_get_inputs(self):
3627  r"""do_get_inputs(NOERestraint self) -> IMP::ModelObjectsTemp"""
3628  return _IMP_isd.NOERestraint_do_get_inputs(self)
3629 
3630  def get_version_info(self):
3631  r"""get_version_info(NOERestraint self) -> VersionInfo"""
3632  return _IMP_isd.NOERestraint_get_version_info(self)
3633  __swig_destroy__ = _IMP_isd.delete_NOERestraint
3634 
3635  def __str__(self):
3636  r"""__str__(NOERestraint self) -> std::string"""
3637  return _IMP_isd.NOERestraint___str__(self)
3638 
3639  def __repr__(self):
3640  r"""__repr__(NOERestraint self) -> std::string"""
3641  return _IMP_isd.NOERestraint___repr__(self)
3642 
3643  @staticmethod
3644  def get_from(o):
3645  return _object_cast_to_NOERestraint(o)
3646 
3647 
3648 # Register NOERestraint in _IMP_isd:
3649 _IMP_isd.NOERestraint_swigregister(NOERestraint)
3650 class GaussianRestraint(IMP.Restraint):
3651  r"""Proxy of C++ IMP::isd::GaussianRestraint class."""
3652 
3653  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3654 
3655  def __init__(self, *args):
3656  r"""
3657  __init__(GaussianRestraint self, Particle x, Particle mu, Particle sigma) -> GaussianRestraint
3658  __init__(GaussianRestraint self, double x, Particle mu, Particle sigma) -> GaussianRestraint
3659  __init__(GaussianRestraint self, Particle x, double mu, Particle sigma) -> GaussianRestraint
3660  __init__(GaussianRestraint self, Particle x, Particle mu, double sigma) -> GaussianRestraint
3661  __init__(GaussianRestraint self, double x, double mu, Particle sigma) -> GaussianRestraint
3662  __init__(GaussianRestraint self, Particle x, double mu, double sigma) -> GaussianRestraint
3663  __init__(GaussianRestraint self, double x, Particle mu, double sigma) -> GaussianRestraint
3664  """
3665  _IMP_isd.GaussianRestraint_swiginit(self, _IMP_isd.new_GaussianRestraint(*args))
3666 
3667  def get_probability(self):
3668  r"""get_probability(GaussianRestraint self) -> double"""
3669  return _IMP_isd.GaussianRestraint_get_probability(self)
3670 
3671  def get_chi(self):
3672  r"""get_chi(GaussianRestraint self) -> double"""
3673  return _IMP_isd.GaussianRestraint_get_chi(self)
3674 
3675  def do_get_inputs(self):
3676  r"""do_get_inputs(GaussianRestraint self) -> IMP::ModelObjectsTemp"""
3677  return _IMP_isd.GaussianRestraint_do_get_inputs(self)
3678 
3679  def get_version_info(self):
3680  r"""get_version_info(GaussianRestraint self) -> VersionInfo"""
3681  return _IMP_isd.GaussianRestraint_get_version_info(self)
3682  __swig_destroy__ = _IMP_isd.delete_GaussianRestraint
3683 
3684  def __str__(self):
3685  r"""__str__(GaussianRestraint self) -> std::string"""
3686  return _IMP_isd.GaussianRestraint___str__(self)
3687 
3688  def __repr__(self):
3689  r"""__repr__(GaussianRestraint self) -> std::string"""
3690  return _IMP_isd.GaussianRestraint___repr__(self)
3691 
3692  @staticmethod
3693  def get_from(o):
3694  return _object_cast_to_GaussianRestraint(o)
3695 
3696 
3697 # Register GaussianRestraint in _IMP_isd:
3698 _IMP_isd.GaussianRestraint_swigregister(GaussianRestraint)
3699 class StudentTRestraint(IMP.Restraint):
3700  r"""Proxy of C++ IMP::isd::StudentTRestraint class."""
3701 
3702  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3703 
3704  def __init__(self, *args):
3705  r"""
3706  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3707  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3708  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3709  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3710  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3711  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3712  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, double sigma, double nu) -> StudentTRestraint
3713  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, double sigma, double nu) -> StudentTRestraint
3714  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3715  __init__(StudentTRestraint self, Model m, double x, double mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3716  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3717  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3718  __init__(StudentTRestraint self, Model m, double x, double mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3719  __init__(StudentTRestraint self, Model m, double x, double mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3720  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, double sigma, double nu) -> StudentTRestraint
3721  """
3722  _IMP_isd.StudentTRestraint_swiginit(self, _IMP_isd.new_StudentTRestraint(*args))
3723 
3724  def get_probability(self):
3725  r"""get_probability(StudentTRestraint self) -> double"""
3726  return _IMP_isd.StudentTRestraint_get_probability(self)
3727 
3728  def do_get_inputs(self):
3729  r"""do_get_inputs(StudentTRestraint self) -> IMP::ModelObjectsTemp"""
3730  return _IMP_isd.StudentTRestraint_do_get_inputs(self)
3731 
3732  def get_version_info(self):
3733  r"""get_version_info(StudentTRestraint self) -> VersionInfo"""
3734  return _IMP_isd.StudentTRestraint_get_version_info(self)
3735  __swig_destroy__ = _IMP_isd.delete_StudentTRestraint
3736 
3737  def __str__(self):
3738  r"""__str__(StudentTRestraint self) -> std::string"""
3739  return _IMP_isd.StudentTRestraint___str__(self)
3740 
3741  def __repr__(self):
3742  r"""__repr__(StudentTRestraint self) -> std::string"""
3743  return _IMP_isd.StudentTRestraint___repr__(self)
3744 
3745  @staticmethod
3746  def get_from(o):
3747  return _object_cast_to_StudentTRestraint(o)
3748 
3749 
3750 # Register StudentTRestraint in _IMP_isd:
3751 _IMP_isd.StudentTRestraint_swigregister(StudentTRestraint)
3752 class LognormalRestraint(IMP.Restraint):
3753  r"""Proxy of C++ IMP::isd::LognormalRestraint class."""
3754 
3755  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3756 
3757  def __init__(self, *args):
3758  r"""
3759  __init__(LognormalRestraint self, Particle x, Particle mu, Particle sigma) -> LognormalRestraint
3760  __init__(LognormalRestraint self, double x, Particle mu, Particle sigma) -> LognormalRestraint
3761  __init__(LognormalRestraint self, Particle x, double mu, Particle sigma) -> LognormalRestraint
3762  __init__(LognormalRestraint self, Particle x, Particle mu, double sigma) -> LognormalRestraint
3763  __init__(LognormalRestraint self, double x, double mu, Particle sigma) -> LognormalRestraint
3764  __init__(LognormalRestraint self, Particle x, double mu, double sigma) -> LognormalRestraint
3765  __init__(LognormalRestraint self, double x, Particle mu, double sigma) -> LognormalRestraint
3766  """
3767  _IMP_isd.LognormalRestraint_swiginit(self, _IMP_isd.new_LognormalRestraint(*args))
3768 
3769  def get_probability(self):
3770  r"""get_probability(LognormalRestraint self) -> double"""
3771  return _IMP_isd.LognormalRestraint_get_probability(self)
3772 
3773  def get_chi(self):
3774  r"""get_chi(LognormalRestraint self) -> double"""
3775  return _IMP_isd.LognormalRestraint_get_chi(self)
3776 
3777  def do_get_inputs(self):
3778  r"""do_get_inputs(LognormalRestraint self) -> IMP::ModelObjectsTemp"""
3779  return _IMP_isd.LognormalRestraint_do_get_inputs(self)
3780 
3781  def get_version_info(self):
3782  r"""get_version_info(LognormalRestraint self) -> VersionInfo"""
3783  return _IMP_isd.LognormalRestraint_get_version_info(self)
3784  __swig_destroy__ = _IMP_isd.delete_LognormalRestraint
3785 
3786  def __str__(self):
3787  r"""__str__(LognormalRestraint self) -> std::string"""
3788  return _IMP_isd.LognormalRestraint___str__(self)
3789 
3790  def __repr__(self):
3791  r"""__repr__(LognormalRestraint self) -> std::string"""
3792  return _IMP_isd.LognormalRestraint___repr__(self)
3793 
3794  @staticmethod
3795  def get_from(o):
3796  return _object_cast_to_LognormalRestraint(o)
3797 
3798 
3799 # Register LognormalRestraint in _IMP_isd:
3800 _IMP_isd.LognormalRestraint_swigregister(LognormalRestraint)
3801 class LognormalAmbiguousRestraint(IMP.Restraint):
3802  r"""Proxy of C++ IMP::isd::LognormalAmbiguousRestraint class."""
3803 
3804  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3805 
3806  def __init__(self, p1, p2, ki, sigmaG):
3807  r"""__init__(LognormalAmbiguousRestraint self, Particle p1, Particle p2, Particle ki, Particle sigmaG) -> LognormalAmbiguousRestraint"""
3808  _IMP_isd.LognormalAmbiguousRestraint_swiginit(self, _IMP_isd.new_LognormalAmbiguousRestraint(p1, p2, ki, sigmaG))
3809 
3810  def add_contribution(self, lexp, omega):
3811  r"""add_contribution(LognormalAmbiguousRestraint self, double lexp, Particle omega)"""
3812  return _IMP_isd.LognormalAmbiguousRestraint_add_contribution(self, lexp, omega)
3813 
3814  def get_number_of_contributions(self):
3815  r"""get_number_of_contributions(LognormalAmbiguousRestraint self) -> unsigned int"""
3816  return _IMP_isd.LognormalAmbiguousRestraint_get_number_of_contributions(self)
3817 
3818  def draw_k_from_posterior(self, kt):
3819  r"""draw_k_from_posterior(LognormalAmbiguousRestraint self, double kt)"""
3820  return _IMP_isd.LognormalAmbiguousRestraint_draw_k_from_posterior(self, kt)
3821 
3822  def get_probability(self):
3823  r"""get_probability(LognormalAmbiguousRestraint self) -> double"""
3824  return _IMP_isd.LognormalAmbiguousRestraint_get_probability(self)
3825 
3826  def do_get_inputs(self):
3827  r"""do_get_inputs(LognormalAmbiguousRestraint self) -> IMP::ModelObjectsTemp"""
3828  return _IMP_isd.LognormalAmbiguousRestraint_do_get_inputs(self)
3829 
3830  def get_version_info(self):
3831  r"""get_version_info(LognormalAmbiguousRestraint self) -> VersionInfo"""
3832  return _IMP_isd.LognormalAmbiguousRestraint_get_version_info(self)
3833  __swig_destroy__ = _IMP_isd.delete_LognormalAmbiguousRestraint
3834 
3835  def __str__(self):
3836  r"""__str__(LognormalAmbiguousRestraint self) -> std::string"""
3837  return _IMP_isd.LognormalAmbiguousRestraint___str__(self)
3838 
3839  def __repr__(self):
3840  r"""__repr__(LognormalAmbiguousRestraint self) -> std::string"""
3841  return _IMP_isd.LognormalAmbiguousRestraint___repr__(self)
3842 
3843  @staticmethod
3844  def get_from(o):
3845  return _object_cast_to_LognormalAmbiguousRestraint(o)
3846 
3847 
3848 # Register LognormalAmbiguousRestraint in _IMP_isd:
3849 _IMP_isd.LognormalAmbiguousRestraint_swigregister(LognormalAmbiguousRestraint)
3850 class AmbiguousNOERestraint(IMP.Restraint):
3851  r"""Proxy of C++ IMP::isd::AmbiguousNOERestraint class."""
3852 
3853  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3854 
3855  def __init__(self, *args):
3856  r"""
3857  __init__(AmbiguousNOERestraint self, Model m, PairContainer pc, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor gamma, double Iexp) -> AmbiguousNOERestraint
3858  __init__(AmbiguousNOERestraint self) -> AmbiguousNOERestraint
3859  """
3860  _IMP_isd.AmbiguousNOERestraint_swiginit(self, _IMP_isd.new_AmbiguousNOERestraint(*args))
3861 
3862  def get_probability(self):
3863  r"""get_probability(AmbiguousNOERestraint self) -> double"""
3864  return _IMP_isd.AmbiguousNOERestraint_get_probability(self)
3865 
3866  def get_chi(self):
3867  r"""get_chi(AmbiguousNOERestraint self) -> double"""
3868  return _IMP_isd.AmbiguousNOERestraint_get_chi(self)
3869 
3870  def do_get_inputs(self):
3871  r"""do_get_inputs(AmbiguousNOERestraint self) -> IMP::ModelObjectsTemp"""
3872  return _IMP_isd.AmbiguousNOERestraint_do_get_inputs(self)
3873 
3874  def get_version_info(self):
3875  r"""get_version_info(AmbiguousNOERestraint self) -> VersionInfo"""
3876  return _IMP_isd.AmbiguousNOERestraint_get_version_info(self)
3877  __swig_destroy__ = _IMP_isd.delete_AmbiguousNOERestraint
3878 
3879  def __str__(self):
3880  r"""__str__(AmbiguousNOERestraint self) -> std::string"""
3881  return _IMP_isd.AmbiguousNOERestraint___str__(self)
3882 
3883  def __repr__(self):
3884  r"""__repr__(AmbiguousNOERestraint self) -> std::string"""
3885  return _IMP_isd.AmbiguousNOERestraint___repr__(self)
3886 
3887  @staticmethod
3888  def get_from(o):
3889  return _object_cast_to_AmbiguousNOERestraint(o)
3890 
3891 
3892  def _get_as_binary(self):
3893  r"""_get_as_binary(AmbiguousNOERestraint self) -> PyObject *"""
3894  return _IMP_isd.AmbiguousNOERestraint__get_as_binary(self)
3895 
3896  def _set_from_binary(self, p):
3897  r"""_set_from_binary(AmbiguousNOERestraint self, PyObject * p)"""
3898  return _IMP_isd.AmbiguousNOERestraint__set_from_binary(self, p)
3899 
3900  def __getstate__(self):
3901  p = self._get_as_binary()
3902  if len(self.__dict__) > 1:
3903  d = self.__dict__.copy()
3904  del d['this']
3905  p = (d, p)
3906  return p
3907 
3908  def __setstate__(self, p):
3909  if not hasattr(self, 'this'):
3910  self.__init__()
3911  if isinstance(p, tuple):
3912  d, p = p
3913  self.__dict__.update(d)
3914  return self._set_from_binary(p)
3915 
3916 
3917 # Register AmbiguousNOERestraint in _IMP_isd:
3918 _IMP_isd.AmbiguousNOERestraint_swigregister(AmbiguousNOERestraint)
3919 class MarginalNOERestraint(IMP.Restraint):
3920  r"""Proxy of C++ IMP::isd::MarginalNOERestraint class."""
3921 
3922  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3923 
3924  def __init__(self, m):
3925  r"""__init__(MarginalNOERestraint self, Model m) -> MarginalNOERestraint"""
3926  _IMP_isd.MarginalNOERestraint_swiginit(self, _IMP_isd.new_MarginalNOERestraint(m))
3927 
3928  def add_contribution(self, *args):
3929  r"""
3930  add_contribution(MarginalNOERestraint self, Particle p1, Particle p2, double Iexp)
3931  add_contribution(MarginalNOERestraint self, PairContainer pc, double Iexp)
3932  """
3933  return _IMP_isd.MarginalNOERestraint_add_contribution(self, *args)
3934 
3935  def get_log_gammahat(self):
3936  r"""get_log_gammahat(MarginalNOERestraint self) -> double"""
3937  return _IMP_isd.MarginalNOERestraint_get_log_gammahat(self)
3938 
3939  def get_SS(self):
3940  r"""get_SS(MarginalNOERestraint self) -> double"""
3941  return _IMP_isd.MarginalNOERestraint_get_SS(self)
3942 
3943  def get_number_of_contributions(self):
3944  r"""get_number_of_contributions(MarginalNOERestraint self) -> unsigned int"""
3945  return _IMP_isd.MarginalNOERestraint_get_number_of_contributions(self)
3946 
3947  def get_probability(self):
3948  r"""get_probability(MarginalNOERestraint self) -> double"""
3949  return _IMP_isd.MarginalNOERestraint_get_probability(self)
3950 
3951  def do_get_inputs(self):
3952  r"""do_get_inputs(MarginalNOERestraint self) -> IMP::ModelObjectsTemp"""
3953  return _IMP_isd.MarginalNOERestraint_do_get_inputs(self)
3954 
3955  def get_version_info(self):
3956  r"""get_version_info(MarginalNOERestraint self) -> VersionInfo"""
3957  return _IMP_isd.MarginalNOERestraint_get_version_info(self)
3958  __swig_destroy__ = _IMP_isd.delete_MarginalNOERestraint
3959 
3960  def __str__(self):
3961  r"""__str__(MarginalNOERestraint self) -> std::string"""
3962  return _IMP_isd.MarginalNOERestraint___str__(self)
3963 
3964  def __repr__(self):
3965  r"""__repr__(MarginalNOERestraint self) -> std::string"""
3966  return _IMP_isd.MarginalNOERestraint___repr__(self)
3967 
3968  @staticmethod
3969  def get_from(o):
3970  return _object_cast_to_MarginalNOERestraint(o)
3971 
3972 
3973 # Register MarginalNOERestraint in _IMP_isd:
3974 _IMP_isd.MarginalNOERestraint_swigregister(MarginalNOERestraint)
3975 class MarginalHBondRestraint(IMP.Restraint):
3976  r"""Proxy of C++ IMP::isd::MarginalHBondRestraint class."""
3977 
3978  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3979 
3980  def __init__(self, m):
3981  r"""__init__(MarginalHBondRestraint self, Model m) -> MarginalHBondRestraint"""
3982  _IMP_isd.MarginalHBondRestraint_swiginit(self, _IMP_isd.new_MarginalHBondRestraint(m))
3983 
3984  def add_contribution(self, *args):
3985  r"""
3986  add_contribution(MarginalHBondRestraint self, Particle p1, Particle p2, double Iexp)
3987  add_contribution(MarginalHBondRestraint self, PairContainer pc, double Iexp)
3988  """
3989  return _IMP_isd.MarginalHBondRestraint_add_contribution(self, *args)
3990 
3991  def get_logsquares(self):
3992  r"""get_logsquares(MarginalHBondRestraint self) -> double"""
3993  return _IMP_isd.MarginalHBondRestraint_get_logsquares(self)
3994 
3995  def get_number_of_contributions(self):
3996  r"""get_number_of_contributions(MarginalHBondRestraint self) -> unsigned int"""
3997  return _IMP_isd.MarginalHBondRestraint_get_number_of_contributions(self)
3998 
3999  def get_probability(self):
4000  r"""get_probability(MarginalHBondRestraint self) -> double"""
4001  return _IMP_isd.MarginalHBondRestraint_get_probability(self)
4002 
4003  def do_get_inputs(self):
4004  r"""do_get_inputs(MarginalHBondRestraint self) -> IMP::ModelObjectsTemp"""
4005  return _IMP_isd.MarginalHBondRestraint_do_get_inputs(self)
4006 
4007  def get_version_info(self):
4008  r"""get_version_info(MarginalHBondRestraint self) -> VersionInfo"""
4009  return _IMP_isd.MarginalHBondRestraint_get_version_info(self)
4010  __swig_destroy__ = _IMP_isd.delete_MarginalHBondRestraint
4011 
4012  def __str__(self):
4013  r"""__str__(MarginalHBondRestraint self) -> std::string"""
4014  return _IMP_isd.MarginalHBondRestraint___str__(self)
4015 
4016  def __repr__(self):
4017  r"""__repr__(MarginalHBondRestraint self) -> std::string"""
4018  return _IMP_isd.MarginalHBondRestraint___repr__(self)
4019 
4020  @staticmethod
4021  def get_from(o):
4022  return _object_cast_to_MarginalHBondRestraint(o)
4023 
4024 
4025 # Register MarginalHBondRestraint in _IMP_isd:
4026 _IMP_isd.MarginalHBondRestraint_swigregister(MarginalHBondRestraint)
4027 class TALOSRestraint(IMP.Restraint):
4028  r"""Proxy of C++ IMP::isd::TALOSRestraint class."""
4029 
4030  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4031 
4032  def __init__(self, *args):
4033  r"""
4034  __init__(TALOSRestraint self, Model m, IMP::Particles p, IMP::Floats data, Particle kappa) -> TALOSRestraint
4035  __init__(TALOSRestraint self, Model m, Particle p1, Particle p2, Particle p3, Particle p4, IMP::Floats data, Particle kappa) -> TALOSRestraint
4036  __init__(TALOSRestraint self, Model m, IMP::Particles p, unsigned int N, double R0, double chiexp, Particle kappa) -> TALOSRestraint
4037  __init__(TALOSRestraint self, Model m, Particle p1, Particle p2, Particle p3, Particle p4, unsigned int N, double R0, double chiexp, Particle kappa) -> TALOSRestraint
4038  """
4039  _IMP_isd.TALOSRestraint_swiginit(self, _IMP_isd.new_TALOSRestraint(*args))
4040 
4041  def get_probability(self):
4042  r"""get_probability(TALOSRestraint self) -> double"""
4043  return _IMP_isd.TALOSRestraint_get_probability(self)
4044 
4045  def get_R0(self):
4046  r"""get_R0(TALOSRestraint self) -> double"""
4047  return _IMP_isd.TALOSRestraint_get_R0(self)
4048 
4049  def get_chiexp(self):
4050  r"""get_chiexp(TALOSRestraint self) -> double"""
4051  return _IMP_isd.TALOSRestraint_get_chiexp(self)
4052 
4053  def do_get_inputs(self):
4054  r"""do_get_inputs(TALOSRestraint self) -> IMP::ModelObjectsTemp"""
4055  return _IMP_isd.TALOSRestraint_do_get_inputs(self)
4056 
4057  def get_version_info(self):
4058  r"""get_version_info(TALOSRestraint self) -> VersionInfo"""
4059  return _IMP_isd.TALOSRestraint_get_version_info(self)
4060  __swig_destroy__ = _IMP_isd.delete_TALOSRestraint
4061 
4062  def __str__(self):
4063  r"""__str__(TALOSRestraint self) -> std::string"""
4064  return _IMP_isd.TALOSRestraint___str__(self)
4065 
4066  def __repr__(self):
4067  r"""__repr__(TALOSRestraint self) -> std::string"""
4068  return _IMP_isd.TALOSRestraint___repr__(self)
4069 
4070  @staticmethod
4071  def get_from(o):
4072  return _object_cast_to_TALOSRestraint(o)
4073 
4074 
4075 # Register TALOSRestraint in _IMP_isd:
4076 _IMP_isd.TALOSRestraint_swigregister(TALOSRestraint)
4077 class RepulsiveDistancePairScore(IMP.PairScore):
4078  r"""Proxy of C++ IMP::isd::RepulsiveDistancePairScore class."""
4079 
4080  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4081 
4082  def __init__(self, d0, k):
4083  r"""__init__(RepulsiveDistancePairScore self, double d0, double k) -> RepulsiveDistancePairScore"""
4084  _IMP_isd.RepulsiveDistancePairScore_swiginit(self, _IMP_isd.new_RepulsiveDistancePairScore(d0, k))
4085 
4086  def get_rest_length(self):
4087  r"""get_rest_length(RepulsiveDistancePairScore self) -> double"""
4088  return _IMP_isd.RepulsiveDistancePairScore_get_rest_length(self)
4089 
4090  def get_stiffness(self):
4091  r"""get_stiffness(RepulsiveDistancePairScore self) -> double"""
4092  return _IMP_isd.RepulsiveDistancePairScore_get_stiffness(self)
4093 
4094  def do_get_inputs(self, m, pis):
4095  r"""do_get_inputs(RepulsiveDistancePairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4096  return _IMP_isd.RepulsiveDistancePairScore_do_get_inputs(self, m, pis)
4097 
4098  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
4099  r"""evaluate_indexes(RepulsiveDistancePairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, bool all_indexes_checked=False) -> double"""
4100  return _IMP_isd.RepulsiveDistancePairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
4101 
4102  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
4103  r"""evaluate_indexes_scores(RepulsiveDistancePairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, unsigned int lower_bound, unsigned int upper_bound, DistBase score, bool all_indexes_checked=False) -> double"""
4104  return _IMP_isd.RepulsiveDistancePairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
4105 
4106  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
4107  r"""evaluate_indexes_delta(RepulsiveDistancePairScore self, Model m, IMP::ParticleIndexPairs const & p, DerivativeAccumulator da, std::vector< unsigned int,std::allocator< unsigned int > > const & indexes, DistBase score, bool all_indexes_checked=False) -> double"""
4108  return _IMP_isd.RepulsiveDistancePairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
4109 
4110  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
4111  r"""evaluate_if_good_indexes(RepulsiveDistancePairScore 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"""
4112  return _IMP_isd.RepulsiveDistancePairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
4113 
4114  def get_version_info(self):
4115  r"""get_version_info(RepulsiveDistancePairScore self) -> VersionInfo"""
4116  return _IMP_isd.RepulsiveDistancePairScore_get_version_info(self)
4117  __swig_destroy__ = _IMP_isd.delete_RepulsiveDistancePairScore
4118 
4119  def __str__(self):
4120  r"""__str__(RepulsiveDistancePairScore self) -> std::string"""
4121  return _IMP_isd.RepulsiveDistancePairScore___str__(self)
4122 
4123  def __repr__(self):
4124  r"""__repr__(RepulsiveDistancePairScore self) -> std::string"""
4125  return _IMP_isd.RepulsiveDistancePairScore___repr__(self)
4126 
4127  @staticmethod
4128  def get_from(o):
4129  return _object_cast_to_RepulsiveDistancePairScore(o)
4130 
4131 
4132 # Register RepulsiveDistancePairScore in _IMP_isd:
4133 _IMP_isd.RepulsiveDistancePairScore_swigregister(RepulsiveDistancePairScore)
4134 class AmbiguousRestraint(IMP.Restraint):
4135  r"""Proxy of C++ IMP::isd::AmbiguousRestraint class."""
4136 
4137  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4138 
4139  def __init__(self, *args):
4140  r"""
4141  __init__(AmbiguousRestraint self, Model m, int d, Restraint r0, Restraint r1) -> AmbiguousRestraint
4142  __init__(AmbiguousRestraint self, Model m, int d, IMP::Restraints rs) -> AmbiguousRestraint
4143  __init__(AmbiguousRestraint self) -> AmbiguousRestraint
4144  """
4145  _IMP_isd.AmbiguousRestraint_swiginit(self, _IMP_isd.new_AmbiguousRestraint(*args))
4146 
4147  def get_probability(self):
4148  r"""get_probability(AmbiguousRestraint self) -> double"""
4149  return _IMP_isd.AmbiguousRestraint_get_probability(self)
4150 
4151  def do_get_inputs(self):
4152  r"""do_get_inputs(AmbiguousRestraint self) -> IMP::ModelObjectsTemp"""
4153  return _IMP_isd.AmbiguousRestraint_do_get_inputs(self)
4154 
4155  def get_version_info(self):
4156  r"""get_version_info(AmbiguousRestraint self) -> VersionInfo"""
4157  return _IMP_isd.AmbiguousRestraint_get_version_info(self)
4158  __swig_destroy__ = _IMP_isd.delete_AmbiguousRestraint
4159 
4160  def __str__(self):
4161  r"""__str__(AmbiguousRestraint self) -> std::string"""
4162  return _IMP_isd.AmbiguousRestraint___str__(self)
4163 
4164  def __repr__(self):
4165  r"""__repr__(AmbiguousRestraint self) -> std::string"""
4166  return _IMP_isd.AmbiguousRestraint___repr__(self)
4167 
4168  @staticmethod
4169  def get_from(o):
4170  return _object_cast_to_AmbiguousRestraint(o)
4171 
4172 
4173  def _get_as_binary(self):
4174  r"""_get_as_binary(AmbiguousRestraint self) -> PyObject *"""
4175  return _IMP_isd.AmbiguousRestraint__get_as_binary(self)
4176 
4177  def _set_from_binary(self, p):
4178  r"""_set_from_binary(AmbiguousRestraint self, PyObject * p)"""
4179  return _IMP_isd.AmbiguousRestraint__set_from_binary(self, p)
4180 
4181  def __getstate__(self):
4182  p = self._get_as_binary()
4183  if len(self.__dict__) > 1:
4184  d = self.__dict__.copy()
4185  del d['this']
4186  p = (d, p)
4187  return p
4188 
4189  def __setstate__(self, p):
4190  if not hasattr(self, 'this'):
4191  self.__init__()
4192  if isinstance(p, tuple):
4193  d, p = p
4194  self.__dict__.update(d)
4195  return self._set_from_binary(p)
4196 
4197 
4198 # Register AmbiguousRestraint in _IMP_isd:
4199 _IMP_isd.AmbiguousRestraint_swigregister(AmbiguousRestraint)
4200 IMP_ISD_UNIVARIATE_FUNCTIONS_MINIMUM = _IMP_isd.IMP_ISD_UNIVARIATE_FUNCTIONS_MINIMUM
4201 
4202 class UnivariateFunction(IMP.Object):
4203  r"""Proxy of C++ IMP::isd::UnivariateFunction class."""
4204 
4205  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4206 
4207  def __init__(self, *args, **kwargs):
4208  raise AttributeError("No constructor defined - class is abstract")
4209 
4210  def __call__(self, *args):
4211  r"""
4212  __call__(UnivariateFunction self, IMP::Floats const & x) -> IMP::Floats
4213  __call__(UnivariateFunction self, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4214  __call__(UnivariateFunction self, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4215  """
4216  return _IMP_isd.UnivariateFunction___call__(self, *args)
4217 
4218  def has_changed(self):
4219  r"""has_changed(UnivariateFunction self) -> bool"""
4220  return _IMP_isd.UnivariateFunction_has_changed(self)
4221 
4222  def update(self):
4223  r"""update(UnivariateFunction self)"""
4224  return _IMP_isd.UnivariateFunction_update(self)
4225 
4226  def add_to_derivatives(self, x, accum):
4227  r"""add_to_derivatives(UnivariateFunction self, IMP::Floats const & x, DerivativeAccumulator accum)"""
4228  return _IMP_isd.UnivariateFunction_add_to_derivatives(self, x, accum)
4229 
4230  def add_to_particle_derivative(self, particle_no, value, accum):
4231  r"""add_to_particle_derivative(UnivariateFunction self, unsigned int particle_no, double value, DerivativeAccumulator accum)"""
4232  return _IMP_isd.UnivariateFunction_add_to_particle_derivative(self, particle_no, value, accum)
4233 
4234  def get_derivative_vector(self, particle_no, xlist):
4235  r"""get_derivative_vector(UnivariateFunction self, unsigned int particle_no, IMP::FloatsList const & xlist) -> Eigen::VectorXd"""
4236  return _IMP_isd.UnivariateFunction_get_derivative_vector(self, particle_no, xlist)
4237 
4238  def get_derivative_matrix(self, xlist, stupid):
4239  r"""get_derivative_matrix(UnivariateFunction self, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList"""
4240  return _IMP_isd.UnivariateFunction_get_derivative_matrix(self, xlist, stupid)
4241 
4242  def get_second_derivative_vector(self, *args):
4243  r"""
4244  get_second_derivative_vector(UnivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4245  get_second_derivative_vector(UnivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4246  """
4247  return _IMP_isd.UnivariateFunction_get_second_derivative_vector(self, *args)
4248 
4249  def get_ndims_x(self):
4250  r"""get_ndims_x(UnivariateFunction self) -> unsigned int"""
4251  return _IMP_isd.UnivariateFunction_get_ndims_x(self)
4252 
4253  def get_ndims_y(self):
4254  r"""get_ndims_y(UnivariateFunction self) -> unsigned int"""
4255  return _IMP_isd.UnivariateFunction_get_ndims_y(self)
4256 
4257  def get_number_of_particles(self):
4258  r"""get_number_of_particles(UnivariateFunction self) -> unsigned int"""
4259  return _IMP_isd.UnivariateFunction_get_number_of_particles(self)
4260 
4261  def get_particle_is_optimized(self, particle_no):
4262  r"""get_particle_is_optimized(UnivariateFunction self, unsigned int particle_no) -> bool"""
4263  return _IMP_isd.UnivariateFunction_get_particle_is_optimized(self, particle_no)
4264 
4265  def get_number_of_optimized_particles(self):
4266  r"""get_number_of_optimized_particles(UnivariateFunction self) -> unsigned int"""
4267  return _IMP_isd.UnivariateFunction_get_number_of_optimized_particles(self)
4268 
4269  def get_inputs(self):
4270  r"""get_inputs(UnivariateFunction self) -> IMP::ModelObjectsTemp"""
4271  return _IMP_isd.UnivariateFunction_get_inputs(self)
4272  __swig_destroy__ = _IMP_isd.delete_UnivariateFunction
4273 
4274  def __str__(self):
4275  r"""__str__(UnivariateFunction self) -> std::string"""
4276  return _IMP_isd.UnivariateFunction___str__(self)
4277 
4278  def __repr__(self):
4279  r"""__repr__(UnivariateFunction self) -> std::string"""
4280  return _IMP_isd.UnivariateFunction___repr__(self)
4281 
4282  @staticmethod
4283  def get_from(o):
4284  return _object_cast_to_UnivariateFunction(o)
4285 
4286 
4287 # Register UnivariateFunction in _IMP_isd:
4288 _IMP_isd.UnivariateFunction_swigregister(UnivariateFunction)
4289 class Linear1DFunction(UnivariateFunction):
4290  r"""Proxy of C++ IMP::isd::Linear1DFunction class."""
4291 
4292  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4293 
4294  def __init__(self, a, b):
4295  r"""__init__(Linear1DFunction self, Particle a, Particle b) -> Linear1DFunction"""
4296  _IMP_isd.Linear1DFunction_swiginit(self, _IMP_isd.new_Linear1DFunction(a, b))
4297 
4298  def __call__(self, *args):
4299  r"""
4300  __call__(Linear1DFunction self, IMP::Floats const & x) -> IMP::Floats
4301  __call__(Linear1DFunction self, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4302  __call__(Linear1DFunction self, IMP::FloatsList const & xlist, bool arg3) -> IMP::FloatsList
4303  """
4304  return _IMP_isd.Linear1DFunction___call__(self, *args)
4305 
4306  def get_second_derivative_vector(self, *args):
4307  r"""
4308  get_second_derivative_vector(Linear1DFunction self, unsigned int arg2, unsigned int arg3, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4309  get_second_derivative_vector(Linear1DFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool arg5) -> IMP::FloatsList
4310  """
4311  return _IMP_isd.Linear1DFunction_get_second_derivative_vector(self, *args)
4312 
4313  def get_version_info(self):
4314  r"""get_version_info(Linear1DFunction self) -> VersionInfo"""
4315  return _IMP_isd.Linear1DFunction_get_version_info(self)
4316  __swig_destroy__ = _IMP_isd.delete_Linear1DFunction
4317 
4318  def __str__(self):
4319  r"""__str__(Linear1DFunction self) -> std::string"""
4320  return _IMP_isd.Linear1DFunction___str__(self)
4321 
4322  def __repr__(self):
4323  r"""__repr__(Linear1DFunction self) -> std::string"""
4324  return _IMP_isd.Linear1DFunction___repr__(self)
4325 
4326  @staticmethod
4327  def get_from(o):
4328  return _object_cast_to_Linear1DFunction(o)
4329 
4330 
4331 # Register Linear1DFunction in _IMP_isd:
4332 _IMP_isd.Linear1DFunction_swigregister(Linear1DFunction)
4333 class GeneralizedGuinierPorodFunction(UnivariateFunction):
4334  r"""Proxy of C++ IMP::isd::GeneralizedGuinierPorodFunction class."""
4335 
4336  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4337 
4338  def __init__(self, G, Rg, d, s, A):
4339  r"""__init__(GeneralizedGuinierPorodFunction self, Particle G, Particle Rg, Particle d, Particle s, Particle A) -> GeneralizedGuinierPorodFunction"""
4340  _IMP_isd.GeneralizedGuinierPorodFunction_swiginit(self, _IMP_isd.new_GeneralizedGuinierPorodFunction(G, Rg, d, s, A))
4341 
4342  def __call__(self, *args):
4343  r"""
4344  __call__(GeneralizedGuinierPorodFunction self, IMP::Floats const & x) -> IMP::Floats
4345  __call__(GeneralizedGuinierPorodFunction self, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4346  __call__(GeneralizedGuinierPorodFunction self, IMP::FloatsList const & xlist, bool arg3) -> IMP::FloatsList
4347  """
4348  return _IMP_isd.GeneralizedGuinierPorodFunction___call__(self, *args)
4349 
4350  def get_second_derivative_vector(self, *args):
4351  r"""
4352  get_second_derivative_vector(GeneralizedGuinierPorodFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4353  get_second_derivative_vector(GeneralizedGuinierPorodFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool arg5) -> IMP::FloatsList
4354  """
4355  return _IMP_isd.GeneralizedGuinierPorodFunction_get_second_derivative_vector(self, *args)
4356 
4357  def get_version_info(self):
4358  r"""get_version_info(GeneralizedGuinierPorodFunction self) -> VersionInfo"""
4359  return _IMP_isd.GeneralizedGuinierPorodFunction_get_version_info(self)
4360  __swig_destroy__ = _IMP_isd.delete_GeneralizedGuinierPorodFunction
4361 
4362  def __str__(self):
4363  r"""__str__(GeneralizedGuinierPorodFunction self) -> std::string"""
4364  return _IMP_isd.GeneralizedGuinierPorodFunction___str__(self)
4365 
4366  def __repr__(self):
4367  r"""__repr__(GeneralizedGuinierPorodFunction self) -> std::string"""
4368  return _IMP_isd.GeneralizedGuinierPorodFunction___repr__(self)
4369 
4370  @staticmethod
4371  def get_from(o):
4372  return _object_cast_to_GeneralizedGuinierPorodFunction(o)
4373 
4374 
4375 # Register GeneralizedGuinierPorodFunction in _IMP_isd:
4376 _IMP_isd.GeneralizedGuinierPorodFunction_swigregister(GeneralizedGuinierPorodFunction)
4377 IMP_ISD_BIVARIATE_FUNCTIONS_MINIMUM = _IMP_isd.IMP_ISD_BIVARIATE_FUNCTIONS_MINIMUM
4378 
4379 class BivariateFunction(IMP.Object):
4380  r"""Proxy of C++ IMP::isd::BivariateFunction class."""
4381 
4382  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4383 
4384  def __init__(self, *args, **kwargs):
4385  raise AttributeError("No constructor defined - class is abstract")
4386 
4387  def __call__(self, *args):
4388  r"""
4389  __call__(BivariateFunction self, IMP::Floats const & x1, IMP::Floats const & x2) -> IMP::Floats
4390  __call__(BivariateFunction self, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4391  __call__(BivariateFunction self, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4392  """
4393  return _IMP_isd.BivariateFunction___call__(self, *args)
4394 
4395  def has_changed(self):
4396  r"""has_changed(BivariateFunction self) -> bool"""
4397  return _IMP_isd.BivariateFunction_has_changed(self)
4398 
4399  def update(self):
4400  r"""update(BivariateFunction self)"""
4401  return _IMP_isd.BivariateFunction_update(self)
4402 
4403  def add_to_derivatives(self, x1, x2, accum):
4404  r"""add_to_derivatives(BivariateFunction self, IMP::Floats const & x1, IMP::Floats const & x2, DerivativeAccumulator accum)"""
4405  return _IMP_isd.BivariateFunction_add_to_derivatives(self, x1, x2, accum)
4406 
4407  def add_to_particle_derivative(self, particle_no, value, accum):
4408  r"""add_to_particle_derivative(BivariateFunction self, unsigned int particle_no, double value, DerivativeAccumulator accum)"""
4409  return _IMP_isd.BivariateFunction_add_to_particle_derivative(self, particle_no, value, accum)
4410 
4411  def get_derivative_matrix(self, *args):
4412  r"""
4413  get_derivative_matrix(BivariateFunction self, unsigned int particle_no, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4414  get_derivative_matrix(BivariateFunction self, unsigned int particle_no, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4415  """
4416  return _IMP_isd.BivariateFunction_get_derivative_matrix(self, *args)
4417 
4418  def get_second_derivative_matrix(self, *args):
4419  r"""
4420  get_second_derivative_matrix(BivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4421  get_second_derivative_matrix(BivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4422  """
4423  return _IMP_isd.BivariateFunction_get_second_derivative_matrix(self, *args)
4424 
4425  def get_ndims_x1(self):
4426  r"""get_ndims_x1(BivariateFunction self) -> unsigned int"""
4427  return _IMP_isd.BivariateFunction_get_ndims_x1(self)
4428 
4429  def get_ndims_x2(self):
4430  r"""get_ndims_x2(BivariateFunction self) -> unsigned int"""
4431  return _IMP_isd.BivariateFunction_get_ndims_x2(self)
4432 
4433  def get_ndims_y(self):
4434  r"""get_ndims_y(BivariateFunction self) -> unsigned int"""
4435  return _IMP_isd.BivariateFunction_get_ndims_y(self)
4436 
4437  def get_number_of_particles(self):
4438  r"""get_number_of_particles(BivariateFunction self) -> unsigned int"""
4439  return _IMP_isd.BivariateFunction_get_number_of_particles(self)
4440 
4441  def get_particle_is_optimized(self, particle_no):
4442  r"""get_particle_is_optimized(BivariateFunction self, unsigned int particle_no) -> bool"""
4443  return _IMP_isd.BivariateFunction_get_particle_is_optimized(self, particle_no)
4444 
4445  def get_number_of_optimized_particles(self):
4446  r"""get_number_of_optimized_particles(BivariateFunction self) -> unsigned int"""
4447  return _IMP_isd.BivariateFunction_get_number_of_optimized_particles(self)
4448 
4449  def get_inputs(self):
4450  r"""get_inputs(BivariateFunction self) -> IMP::ModelObjectsTemp"""
4451  return _IMP_isd.BivariateFunction_get_inputs(self)
4452  __swig_destroy__ = _IMP_isd.delete_BivariateFunction
4453 
4454  def __str__(self):
4455  r"""__str__(BivariateFunction self) -> std::string"""
4456  return _IMP_isd.BivariateFunction___str__(self)
4457 
4458  def __repr__(self):
4459  r"""__repr__(BivariateFunction self) -> std::string"""
4460  return _IMP_isd.BivariateFunction___repr__(self)
4461 
4462  @staticmethod
4463  def get_from(o):
4464  return _object_cast_to_BivariateFunction(o)
4465 
4466 
4467 # Register BivariateFunction in _IMP_isd:
4468 _IMP_isd.BivariateFunction_swigregister(BivariateFunction)
4469 class Covariance1DFunction(BivariateFunction):
4470  r"""Proxy of C++ IMP::isd::Covariance1DFunction class."""
4471 
4472  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4473 
4474  def __init__(self, tau, ilambda, alpha=2.0, jitter=0.0, cutoff=1e-7):
4475  r"""__init__(Covariance1DFunction self, Particle tau, Particle ilambda, double alpha=2.0, double jitter=0.0, double cutoff=1e-7) -> Covariance1DFunction"""
4476  _IMP_isd.Covariance1DFunction_swiginit(self, _IMP_isd.new_Covariance1DFunction(tau, ilambda, alpha, jitter, cutoff))
4477 
4478  def __call__(self, *args):
4479  r"""
4480  __call__(Covariance1DFunction self, IMP::Floats const & x1, IMP::Floats const & x2) -> IMP::Floats
4481  __call__(Covariance1DFunction self, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4482  __call__(Covariance1DFunction self, IMP::FloatsList const & xlist, bool arg3) -> IMP::FloatsList
4483  """
4484  return _IMP_isd.Covariance1DFunction___call__(self, *args)
4485 
4486  def get_derivative_matrix(self, *args):
4487  r"""
4488  get_derivative_matrix(Covariance1DFunction self, unsigned int particle_no, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4489  get_derivative_matrix(Covariance1DFunction self, unsigned int particle_no, IMP::FloatsList const & xlist, bool arg4) -> IMP::FloatsList
4490  """
4491  return _IMP_isd.Covariance1DFunction_get_derivative_matrix(self, *args)
4492 
4493  def get_second_derivative_matrix(self, *args):
4494  r"""
4495  get_second_derivative_matrix(Covariance1DFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4496  get_second_derivative_matrix(Covariance1DFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool arg5) -> IMP::FloatsList
4497  """
4498  return _IMP_isd.Covariance1DFunction_get_second_derivative_matrix(self, *args)
4499 
4500  def get_version_info(self):
4501  r"""get_version_info(Covariance1DFunction self) -> VersionInfo"""
4502  return _IMP_isd.Covariance1DFunction_get_version_info(self)
4503  __swig_destroy__ = _IMP_isd.delete_Covariance1DFunction
4504 
4505  def __str__(self):
4506  r"""__str__(Covariance1DFunction self) -> std::string"""
4507  return _IMP_isd.Covariance1DFunction___str__(self)
4508 
4509  def __repr__(self):
4510  r"""__repr__(Covariance1DFunction self) -> std::string"""
4511  return _IMP_isd.Covariance1DFunction___repr__(self)
4512 
4513  @staticmethod
4514  def get_from(o):
4515  return _object_cast_to_Covariance1DFunction(o)
4516 
4517 
4518 # Register Covariance1DFunction in _IMP_isd:
4519 _IMP_isd.Covariance1DFunction_swigregister(Covariance1DFunction)
4520 class GaussianProcessInterpolation(IMP.Object):
4521  r"""Proxy of C++ IMP::isd::GaussianProcessInterpolation class."""
4522 
4523  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4524 
4525  def __init__(self, x, sample_mean, sample_std, n_obs, mean_function, covariance_function, sigma, sparse_cutoff=1e-7):
4526  r"""__init__(GaussianProcessInterpolation self, IMP::FloatsList x, IMP::Floats sample_mean, IMP::Floats sample_std, unsigned int n_obs, UnivariateFunction mean_function, BivariateFunction covariance_function, Particle sigma, double sparse_cutoff=1e-7) -> GaussianProcessInterpolation"""
4527  _IMP_isd.GaussianProcessInterpolation_swiginit(self, _IMP_isd.new_GaussianProcessInterpolation(x, sample_mean, sample_std, n_obs, mean_function, covariance_function, sigma, sparse_cutoff))
4528 
4529  def get_posterior_mean(self, x):
4530  r"""get_posterior_mean(GaussianProcessInterpolation self, IMP::Floats x) -> double"""
4531  return _IMP_isd.GaussianProcessInterpolation_get_posterior_mean(self, x)
4532 
4533  def get_posterior_covariance(self, x1, x2):
4534  r"""get_posterior_covariance(GaussianProcessInterpolation self, IMP::Floats x1, IMP::Floats x2) -> double"""
4535  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance(self, x1, x2)
4536 
4537  def get_posterior_covariance_matrix(self, x, arg3):
4538  r"""get_posterior_covariance_matrix(GaussianProcessInterpolation self, IMP::FloatsList x, bool arg3) -> IMP::FloatsList"""
4539  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance_matrix(self, x, arg3)
4540 
4541  def get_posterior_covariance_derivative(self, x, arg3):
4542  r"""get_posterior_covariance_derivative(GaussianProcessInterpolation self, IMP::Floats x, bool arg3) -> IMP::Floats"""
4543  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance_derivative(self, x, arg3)
4544 
4545  def get_posterior_covariance_hessian(self, x, arg3):
4546  r"""get_posterior_covariance_hessian(GaussianProcessInterpolation self, IMP::Floats x, bool arg3) -> IMP::FloatsList"""
4547  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance_hessian(self, x, arg3)
4548 
4549  def get_inputs(self):
4550  r"""get_inputs(GaussianProcessInterpolation self) -> IMP::ModelObjectsTemp"""
4551  return _IMP_isd.GaussianProcessInterpolation_get_inputs(self)
4552 
4553  def force_mean_update(self):
4554  r"""force_mean_update(GaussianProcessInterpolation self)"""
4555  return _IMP_isd.GaussianProcessInterpolation_force_mean_update(self)
4556 
4557  def force_covariance_update(self):
4558  r"""force_covariance_update(GaussianProcessInterpolation self)"""
4559  return _IMP_isd.GaussianProcessInterpolation_force_covariance_update(self)
4560 
4561  def get_number_of_m_particles(self):
4562  r"""get_number_of_m_particles(GaussianProcessInterpolation self) -> unsigned int"""
4563  return _IMP_isd.GaussianProcessInterpolation_get_number_of_m_particles(self)
4564 
4565  def get_m_particle_is_optimized(self, i):
4566  r"""get_m_particle_is_optimized(GaussianProcessInterpolation self, unsigned int i) -> bool"""
4567  return _IMP_isd.GaussianProcessInterpolation_get_m_particle_is_optimized(self, i)
4568 
4569  def get_number_of_Omega_particles(self):
4570  r"""get_number_of_Omega_particles(GaussianProcessInterpolation self) -> unsigned int"""
4571  return _IMP_isd.GaussianProcessInterpolation_get_number_of_Omega_particles(self)
4572 
4573  def get_Omega_particle_is_optimized(self, i):
4574  r"""get_Omega_particle_is_optimized(GaussianProcessInterpolation self, unsigned int i) -> bool"""
4575  return _IMP_isd.GaussianProcessInterpolation_get_Omega_particle_is_optimized(self, i)
4576 
4577  def get_data_abscissa(self):
4578  r"""get_data_abscissa(GaussianProcessInterpolation self) -> IMP::FloatsList"""
4579  return _IMP_isd.GaussianProcessInterpolation_get_data_abscissa(self)
4580 
4581  def get_data_mean(self):
4582  r"""get_data_mean(GaussianProcessInterpolation self) -> IMP::Floats"""
4583  return _IMP_isd.GaussianProcessInterpolation_get_data_mean(self)
4584 
4585  def get_data_variance(self):
4586  r"""get_data_variance(GaussianProcessInterpolation self) -> IMP::FloatsList"""
4587  return _IMP_isd.GaussianProcessInterpolation_get_data_variance(self)
4588 
4589  def get_version_info(self):
4590  r"""get_version_info(GaussianProcessInterpolation self) -> VersionInfo"""
4591  return _IMP_isd.GaussianProcessInterpolation_get_version_info(self)
4592  __swig_destroy__ = _IMP_isd.delete_GaussianProcessInterpolation
4593 
4594  def __str__(self):
4595  r"""__str__(GaussianProcessInterpolation self) -> std::string"""
4596  return _IMP_isd.GaussianProcessInterpolation___str__(self)
4597 
4598  def __repr__(self):
4599  r"""__repr__(GaussianProcessInterpolation self) -> std::string"""
4600  return _IMP_isd.GaussianProcessInterpolation___repr__(self)
4601 
4602  @staticmethod
4603  def get_from(o):
4604  return _object_cast_to_GaussianProcessInterpolation(o)
4605 
4606 
4607 # Register GaussianProcessInterpolation in _IMP_isd:
4608 _IMP_isd.GaussianProcessInterpolation_swigregister(GaussianProcessInterpolation)
4609 class GaussianProcessInterpolationRestraint(IMP.Restraint):
4610  r"""Proxy of C++ IMP::isd::GaussianProcessInterpolationRestraint class."""
4611 
4612  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4613 
4614  def __init__(self, m, gpi):
4615  r"""__init__(GaussianProcessInterpolationRestraint self, Model m, GaussianProcessInterpolation gpi) -> GaussianProcessInterpolationRestraint"""
4616  _IMP_isd.GaussianProcessInterpolationRestraint_swiginit(self, _IMP_isd.new_GaussianProcessInterpolationRestraint(m, gpi))
4617 
4618  def get_probability(self):
4619  r"""get_probability(GaussianProcessInterpolationRestraint self) -> double"""
4620  return _IMP_isd.GaussianProcessInterpolationRestraint_get_probability(self)
4621 
4622  def set_use_cg(self, use, tol):
4623  r"""set_use_cg(GaussianProcessInterpolationRestraint self, bool use, double tol)"""
4624  return _IMP_isd.GaussianProcessInterpolationRestraint_set_use_cg(self, use, tol)
4625 
4626  def get_minus_log_normalization(self):
4627  r"""get_minus_log_normalization(GaussianProcessInterpolationRestraint self) -> double"""
4628  return _IMP_isd.GaussianProcessInterpolationRestraint_get_minus_log_normalization(self)
4629 
4630  def get_minus_exponent(self):
4631  r"""get_minus_exponent(GaussianProcessInterpolationRestraint self) -> double"""
4632  return _IMP_isd.GaussianProcessInterpolationRestraint_get_minus_exponent(self)
4633 
4634  def get_logdet_hessian(self):
4635  r"""get_logdet_hessian(GaussianProcessInterpolationRestraint self) -> double"""
4636  return _IMP_isd.GaussianProcessInterpolationRestraint_get_logdet_hessian(self)
4637 
4638  def get_hessian(self, *args):
4639  r"""
4640  get_hessian(GaussianProcessInterpolationRestraint self) -> Eigen::MatrixXd
4641  get_hessian(GaussianProcessInterpolationRestraint self, bool unused) -> IMP::FloatsList
4642  """
4643  return _IMP_isd.GaussianProcessInterpolationRestraint_get_hessian(self, *args)
4644 
4645  def do_get_inputs(self):
4646  r"""do_get_inputs(GaussianProcessInterpolationRestraint self) -> IMP::ModelObjectsTemp"""
4647  return _IMP_isd.GaussianProcessInterpolationRestraint_do_get_inputs(self)
4648 
4649  def get_version_info(self):
4650  r"""get_version_info(GaussianProcessInterpolationRestraint self) -> VersionInfo"""
4651  return _IMP_isd.GaussianProcessInterpolationRestraint_get_version_info(self)
4652  __swig_destroy__ = _IMP_isd.delete_GaussianProcessInterpolationRestraint
4653 
4654  def __str__(self):
4655  r"""__str__(GaussianProcessInterpolationRestraint self) -> std::string"""
4656  return _IMP_isd.GaussianProcessInterpolationRestraint___str__(self)
4657 
4658  def __repr__(self):
4659  r"""__repr__(GaussianProcessInterpolationRestraint self) -> std::string"""
4660  return _IMP_isd.GaussianProcessInterpolationRestraint___repr__(self)
4661 
4662  @staticmethod
4663  def get_from(o):
4664  return _object_cast_to_GaussianProcessInterpolationRestraint(o)
4665 
4666 
4667 # Register GaussianProcessInterpolationRestraint in _IMP_isd:
4668 _IMP_isd.GaussianProcessInterpolationRestraint_swigregister(GaussianProcessInterpolationRestraint)
4669 class MolecularDynamics(IMP.atom.MolecularDynamics):
4670  r"""Proxy of C++ IMP::isd::MolecularDynamics class."""
4671 
4672  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4673 
4674  def __init__(self, m=None):
4675  r"""__init__(MolecularDynamics self, Model m=None) -> MolecularDynamics"""
4676  _IMP_isd.MolecularDynamics_swiginit(self, _IMP_isd.new_MolecularDynamics(m))
4677 
4678  def __str__(self):
4679  r"""__str__(MolecularDynamics self) -> std::string"""
4680  return _IMP_isd.MolecularDynamics___str__(self)
4681 
4682  def __repr__(self):
4683  r"""__repr__(MolecularDynamics self) -> std::string"""
4684  return _IMP_isd.MolecularDynamics___repr__(self)
4685 
4686  @staticmethod
4687  def get_from(o):
4688  return _object_cast_to_MolecularDynamics(o)
4689 
4690  __swig_destroy__ = _IMP_isd.delete_MolecularDynamics
4691 
4692 # Register MolecularDynamics in _IMP_isd:
4693 _IMP_isd.MolecularDynamics_swigregister(MolecularDynamics)
4694 class MolecularDynamicsMover(IMP.core.MonteCarloMover):
4695  r"""Proxy of C++ IMP::isd::MolecularDynamicsMover class."""
4696 
4697  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4698 
4699  def __init__(self, m, nsteps=100, timestep=1.):
4700  r"""__init__(MolecularDynamicsMover self, Model m, unsigned int nsteps=100, IMP::Float timestep=1.) -> MolecularDynamicsMover"""
4701  _IMP_isd.MolecularDynamicsMover_swiginit(self, _IMP_isd.new_MolecularDynamicsMover(m, nsteps, timestep))
4702 
4703  def get_md(self):
4704  r"""get_md(MolecularDynamicsMover self) -> MolecularDynamics"""
4705  return _IMP_isd.MolecularDynamicsMover_get_md(self)
4706 
4707  def get_number_of_md_steps(self):
4708  r"""get_number_of_md_steps(MolecularDynamicsMover self) -> unsigned int"""
4709  return _IMP_isd.MolecularDynamicsMover_get_number_of_md_steps(self)
4710 
4711  def set_number_of_md_steps(self, nsteps):
4712  r"""set_number_of_md_steps(MolecularDynamicsMover self, unsigned int nsteps)"""
4713  return _IMP_isd.MolecularDynamicsMover_set_number_of_md_steps(self, nsteps)
4714 
4715  def get_version_info(self):
4716  r"""get_version_info(MolecularDynamicsMover self) -> VersionInfo"""
4717  return _IMP_isd.MolecularDynamicsMover_get_version_info(self)
4718  __swig_destroy__ = _IMP_isd.delete_MolecularDynamicsMover
4719 
4720  def __str__(self):
4721  r"""__str__(MolecularDynamicsMover self) -> std::string"""
4722  return _IMP_isd.MolecularDynamicsMover___str__(self)
4723 
4724  def __repr__(self):
4725  r"""__repr__(MolecularDynamicsMover self) -> std::string"""
4726  return _IMP_isd.MolecularDynamicsMover___repr__(self)
4727 
4728  @staticmethod
4729  def get_from(o):
4730  return _object_cast_to_MolecularDynamicsMover(o)
4731 
4732 
4733 # Register MolecularDynamicsMover in _IMP_isd:
4734 _IMP_isd.MolecularDynamicsMover_swigregister(MolecularDynamicsMover)
4735 class HybridMonteCarlo(IMP.core.MonteCarlo):
4736  r"""Proxy of C++ IMP::isd::HybridMonteCarlo class."""
4737 
4738  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4739 
4740  def __init__(self, m, kT=1.0, steps=100, timestep=1.0, persistence=1):
4741  r"""__init__(HybridMonteCarlo self, Model m, IMP::Float kT=1.0, unsigned int steps=100, IMP::Float timestep=1.0, unsigned int persistence=1) -> HybridMonteCarlo"""
4742  _IMP_isd.HybridMonteCarlo_swiginit(self, _IMP_isd.new_HybridMonteCarlo(m, kT, steps, timestep, persistence))
4743 
4744  def get_kinetic_energy(self):
4745  r"""get_kinetic_energy(HybridMonteCarlo self) -> IMP::Float"""
4746  return _IMP_isd.HybridMonteCarlo_get_kinetic_energy(self)
4747 
4748  def get_potential_energy(self):
4749  r"""get_potential_energy(HybridMonteCarlo self) -> IMP::Float"""
4750  return _IMP_isd.HybridMonteCarlo_get_potential_energy(self)
4751 
4752  def get_total_energy(self):
4753  r"""get_total_energy(HybridMonteCarlo self) -> IMP::Float"""
4754  return _IMP_isd.HybridMonteCarlo_get_total_energy(self)
4755 
4756  def set_timestep(self, ts):
4757  r"""set_timestep(HybridMonteCarlo self, IMP::Float ts)"""
4758  return _IMP_isd.HybridMonteCarlo_set_timestep(self, ts)
4759 
4760  def get_timestep(self):
4761  r"""get_timestep(HybridMonteCarlo self) -> double"""
4762  return _IMP_isd.HybridMonteCarlo_get_timestep(self)
4763 
4764  def set_number_of_md_steps(self, nsteps):
4765  r"""set_number_of_md_steps(HybridMonteCarlo self, unsigned int nsteps)"""
4766  return _IMP_isd.HybridMonteCarlo_set_number_of_md_steps(self, nsteps)
4767 
4768  def get_number_of_md_steps(self):
4769  r"""get_number_of_md_steps(HybridMonteCarlo self) -> unsigned int"""
4770  return _IMP_isd.HybridMonteCarlo_get_number_of_md_steps(self)
4771 
4772  def set_persistence(self, persistence=1):
4773  r"""set_persistence(HybridMonteCarlo self, unsigned int persistence=1)"""
4774  return _IMP_isd.HybridMonteCarlo_set_persistence(self, persistence)
4775 
4776  def get_persistence(self):
4777  r"""get_persistence(HybridMonteCarlo self) -> unsigned int"""
4778  return _IMP_isd.HybridMonteCarlo_get_persistence(self)
4779 
4780  def get_md(self):
4781  r"""get_md(HybridMonteCarlo self) -> MolecularDynamics"""
4782  return _IMP_isd.HybridMonteCarlo_get_md(self)
4783 
4784  def do_evaluate(self, arg2, arg3):
4785  r"""do_evaluate(HybridMonteCarlo self, IMP::ParticleIndexes const & arg2, bool arg3) -> double"""
4786  return _IMP_isd.HybridMonteCarlo_do_evaluate(self, arg2, arg3)
4787 
4788  def do_step(self):
4789  r"""do_step(HybridMonteCarlo self)"""
4790  return _IMP_isd.HybridMonteCarlo_do_step(self)
4791  __swig_destroy__ = _IMP_isd.delete_HybridMonteCarlo
4792 
4793  def __str__(self):
4794  r"""__str__(HybridMonteCarlo self) -> std::string"""
4795  return _IMP_isd.HybridMonteCarlo___str__(self)
4796 
4797  def __repr__(self):
4798  r"""__repr__(HybridMonteCarlo self) -> std::string"""
4799  return _IMP_isd.HybridMonteCarlo___repr__(self)
4800 
4801  @staticmethod
4802  def get_from(o):
4803  return _object_cast_to_HybridMonteCarlo(o)
4804 
4805 
4806 # Register HybridMonteCarlo in _IMP_isd:
4807 _IMP_isd.HybridMonteCarlo_swigregister(HybridMonteCarlo)
4808 class FretData(IMP.Object):
4809  r"""Proxy of C++ IMP::isd::FretData class."""
4810 
4811  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4812 
4813  def __init__(self, *args):
4814  r"""
4815  __init__(FretData self, IMP::Floats d_term, IMP::Floats d_center, IMP::Floats d_int, IMP::Floats s_grid, IMP::Float R0, IMP::Float Rmin, IMP::Float Rmax, bool do_limit=True) -> FretData
4816  __init__(FretData self) -> FretData
4817  """
4818  _IMP_isd.FretData_swiginit(self, _IMP_isd.new_FretData(*args))
4819 
4820  def get_closest(self, vec, value):
4821  r"""get_closest(FretData self, DistBase vec, double value) -> int"""
4822  return _IMP_isd.FretData_get_closest(self, vec, value)
4823 
4824  def get_probability(self, distn, dist, sigma):
4825  r"""get_probability(FretData self, IMP::Float distn, IMP::Float dist, IMP::Float sigma) -> IMP::Float"""
4826  return _IMP_isd.FretData_get_probability(self, distn, dist, sigma)
4827 
4828  def get_kernel(self, dist, R0):
4829  r"""get_kernel(FretData self, IMP::Float dist, IMP::Float R0) -> IMP::Float"""
4830  return _IMP_isd.FretData_get_kernel(self, dist, R0)
4831 
4832  def get_marginal_element(self, d_term, d_center, sigma):
4833  r"""get_marginal_element(FretData self, IMP::Float d_term, IMP::Float d_center, IMP::Float sigma) -> IMP::FloatPair"""
4834  return _IMP_isd.FretData_get_marginal_element(self, d_term, d_center, sigma)
4835 
4836  def get_version_info(self):
4837  r"""get_version_info(FretData self) -> VersionInfo"""
4838  return _IMP_isd.FretData_get_version_info(self)
4839  __swig_destroy__ = _IMP_isd.delete_FretData
4840 
4841  def __str__(self):
4842  r"""__str__(FretData self) -> std::string"""
4843  return _IMP_isd.FretData___str__(self)
4844 
4845  def __repr__(self):
4846  r"""__repr__(FretData self) -> std::string"""
4847  return _IMP_isd.FretData___repr__(self)
4848 
4849  @staticmethod
4850  def get_from(o):
4851  return _object_cast_to_FretData(o)
4852 
4853 
4854  def _get_as_binary(self):
4855  r"""_get_as_binary(FretData self) -> PyObject *"""
4856  return _IMP_isd.FretData__get_as_binary(self)
4857 
4858  def _set_from_binary(self, p):
4859  r"""_set_from_binary(FretData self, PyObject * p)"""
4860  return _IMP_isd.FretData__set_from_binary(self, p)
4861 
4862  def __getstate__(self):
4863  p = self._get_as_binary()
4864  if len(self.__dict__) > 1:
4865  d = self.__dict__.copy()
4866  del d['this']
4867  p = (d, p)
4868  return p
4869 
4870  def __setstate__(self, p):
4871  if not hasattr(self, 'this'):
4872  self.__init__()
4873  if isinstance(p, tuple):
4874  d, p = p
4875  self.__dict__.update(d)
4876  return self._set_from_binary(p)
4877 
4878 
4879 # Register FretData in _IMP_isd:
4880 _IMP_isd.FretData_swigregister(FretData)
4881 class FretRestraint(IMP.Restraint):
4882  r"""Proxy of C++ IMP::isd::FretRestraint class."""
4883 
4884  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4885 
4886  def __init__(self, *args):
4887  r"""
4888  __init__(FretRestraint self, IMP::ParticlesTemp pd, IMP::ParticlesTemp pa, Particle kda, Particle Ida, Particle R0, Particle sigma0, Particle Pbl, double fexp, double m_d=1.0, double m_a=1.0) -> FretRestraint
4889  __init__(FretRestraint self, Particle kda, Particle Ida, Particle sumFi, Particle sigma0, Particle Pbl, double fexp) -> FretRestraint
4890  __init__(FretRestraint self, Particle prd, Vector3D GMMterd, IMP::algebra::Vector3Ds GMMctrd, IMP::Floats GMMwd, IMP::Floats GMMsigd, Particle pra, Vector3D GMMtera, IMP::algebra::Vector3Ds GMMctra, IMP::Floats GMMwa, IMP::Floats GMMsiga, Particle kda, Particle Ida, Particle sigma0, Particle Pbl, FretData data, double fexp) -> FretRestraint
4891  __init__(FretRestraint self) -> FretRestraint
4892  """
4893  _IMP_isd.FretRestraint_swiginit(self, _IMP_isd.new_FretRestraint(*args))
4894 
4895  def get_sumFi(self):
4896  r"""get_sumFi(FretRestraint self) -> double"""
4897  return _IMP_isd.FretRestraint_get_sumFi(self)
4898 
4899  def get_average_sigma(self, fmod):
4900  r"""get_average_sigma(FretRestraint self, double fmod) -> double"""
4901  return _IMP_isd.FretRestraint_get_average_sigma(self, fmod)
4902 
4903  def get_standard_error(self):
4904  r"""get_standard_error(FretRestraint self) -> double"""
4905  return _IMP_isd.FretRestraint_get_standard_error(self)
4906 
4907  def get_model_fretr(self):
4908  r"""get_model_fretr(FretRestraint self) -> double"""
4909  return _IMP_isd.FretRestraint_get_model_fretr(self)
4910 
4911  def get_probability(self):
4912  r"""get_probability(FretRestraint self) -> double"""
4913  return _IMP_isd.FretRestraint_get_probability(self)
4914 
4915  def get_experimental_value(self):
4916  r"""get_experimental_value(FretRestraint self) -> double"""
4917  return _IMP_isd.FretRestraint_get_experimental_value(self)
4918 
4919  def set_experimental_value(self, fexp):
4920  r"""set_experimental_value(FretRestraint self, double fexp)"""
4921  return _IMP_isd.FretRestraint_set_experimental_value(self, fexp)
4922 
4923  def do_get_inputs(self):
4924  r"""do_get_inputs(FretRestraint self) -> IMP::ModelObjectsTemp"""
4925  return _IMP_isd.FretRestraint_do_get_inputs(self)
4926 
4927  def get_version_info(self):
4928  r"""get_version_info(FretRestraint self) -> VersionInfo"""
4929  return _IMP_isd.FretRestraint_get_version_info(self)
4930  __swig_destroy__ = _IMP_isd.delete_FretRestraint
4931 
4932  def __str__(self):
4933  r"""__str__(FretRestraint self) -> std::string"""
4934  return _IMP_isd.FretRestraint___str__(self)
4935 
4936  def __repr__(self):
4937  r"""__repr__(FretRestraint self) -> std::string"""
4938  return _IMP_isd.FretRestraint___repr__(self)
4939 
4940  @staticmethod
4941  def get_from(o):
4942  return _object_cast_to_FretRestraint(o)
4943 
4944 
4945  def _get_as_binary(self):
4946  r"""_get_as_binary(FretRestraint self) -> PyObject *"""
4947  return _IMP_isd.FretRestraint__get_as_binary(self)
4948 
4949  def _set_from_binary(self, p):
4950  r"""_set_from_binary(FretRestraint self, PyObject * p)"""
4951  return _IMP_isd.FretRestraint__set_from_binary(self, p)
4952 
4953  def __getstate__(self):
4954  p = self._get_as_binary()
4955  if len(self.__dict__) > 1:
4956  d = self.__dict__.copy()
4957  del d['this']
4958  p = (d, p)
4959  return p
4960 
4961  def __setstate__(self, p):
4962  if not hasattr(self, 'this'):
4963  self.__init__()
4964  if isinstance(p, tuple):
4965  d, p = p
4966  self.__dict__.update(d)
4967  return self._set_from_binary(p)
4968 
4969 
4970 # Register FretRestraint in _IMP_isd:
4971 _IMP_isd.FretRestraint_swigregister(FretRestraint)
4972 class CysteineCrossLinkData(IMP.Object):
4973  r"""Proxy of C++ IMP::isd::CysteineCrossLinkData class."""
4974 
4975  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4976 
4977  def __init__(self, *args):
4978  r"""
4979  __init__(CysteineCrossLinkData self, double fexp, IMP::Floats fmod_grid, IMP::Floats omega_grid, IMP::Floats omega0_grid, int prior_type=3) -> CysteineCrossLinkData
4980  __init__(CysteineCrossLinkData self) -> CysteineCrossLinkData
4981  """
4982  _IMP_isd.CysteineCrossLinkData_swiginit(self, _IMP_isd.new_CysteineCrossLinkData(*args))
4983 
4984  def get_closest(self, vec, value):
4985  r"""get_closest(CysteineCrossLinkData self, DistBase vec, double value) -> int"""
4986  return _IMP_isd.CysteineCrossLinkData_get_closest(self, vec, value)
4987 
4988  def get_omegas(self, fmods, omega0):
4989  r"""get_omegas(CysteineCrossLinkData self, IMP::Floats fmods, double omega0) -> IMP::Floats"""
4990  return _IMP_isd.CysteineCrossLinkData_get_omegas(self, fmods, omega0)
4991 
4992  def get_nonmarginal_elements(self, fexp, fmods, omega):
4993  r"""get_nonmarginal_elements(CysteineCrossLinkData self, double fexp, IMP::Floats fmods, double omega) -> IMP::Floats"""
4994  return _IMP_isd.CysteineCrossLinkData_get_nonmarginal_elements(self, fexp, fmods, omega)
4995 
4996  def get_marginal_elements(self, fmods, omega0):
4997  r"""get_marginal_elements(CysteineCrossLinkData self, IMP::Floats fmods, double omega0) -> IMP::Floats"""
4998  return _IMP_isd.CysteineCrossLinkData_get_marginal_elements(self, fmods, omega0)
4999 
5000  def get_omega(self, fmod, omega0):
5001  r"""get_omega(CysteineCrossLinkData self, double fmod, double omega0) -> double"""
5002  return _IMP_isd.CysteineCrossLinkData_get_omega(self, fmod, omega0)
5003 
5004  def get_standard_deviation(self, fmod, omega0):
5005  r"""get_standard_deviation(CysteineCrossLinkData self, double fmod, double omega0) -> double"""
5006  return _IMP_isd.CysteineCrossLinkData_get_standard_deviation(self, fmod, omega0)
5007 
5008  def get_nonmarginal_element(self, fexp, fmod, omega):
5009  r"""get_nonmarginal_element(CysteineCrossLinkData self, double fexp, double fmod, double omega) -> double"""
5010  return _IMP_isd.CysteineCrossLinkData_get_nonmarginal_element(self, fexp, fmod, omega)
5011 
5012  def get_marginal_element(self, fmod, omega0):
5013  r"""get_marginal_element(CysteineCrossLinkData self, double fmod, double omega0) -> double"""
5014  return _IMP_isd.CysteineCrossLinkData_get_marginal_element(self, fmod, omega0)
5015 
5016  def get_version_info(self):
5017  r"""get_version_info(CysteineCrossLinkData self) -> VersionInfo"""
5018  return _IMP_isd.CysteineCrossLinkData_get_version_info(self)
5019  __swig_destroy__ = _IMP_isd.delete_CysteineCrossLinkData
5020 
5021  def __str__(self):
5022  r"""__str__(CysteineCrossLinkData self) -> std::string"""
5023  return _IMP_isd.CysteineCrossLinkData___str__(self)
5024 
5025  def __repr__(self):
5026  r"""__repr__(CysteineCrossLinkData self) -> std::string"""
5027  return _IMP_isd.CysteineCrossLinkData___repr__(self)
5028 
5029  @staticmethod
5030  def get_from(o):
5031  return _object_cast_to_CysteineCrossLinkData(o)
5032 
5033 
5034  def _get_as_binary(self):
5035  r"""_get_as_binary(CysteineCrossLinkData self) -> PyObject *"""
5036  return _IMP_isd.CysteineCrossLinkData__get_as_binary(self)
5037 
5038  def _set_from_binary(self, p):
5039  r"""_set_from_binary(CysteineCrossLinkData self, PyObject * p)"""
5040  return _IMP_isd.CysteineCrossLinkData__set_from_binary(self, p)
5041 
5042  def __getstate__(self):
5043  p = self._get_as_binary()
5044  if len(self.__dict__) > 1:
5045  d = self.__dict__.copy()
5046  del d['this']
5047  p = (d, p)
5048  return p
5049 
5050  def __setstate__(self, p):
5051  if not hasattr(self, 'this'):
5052  self.__init__()
5053  if isinstance(p, tuple):
5054  d, p = p
5055  self.__dict__.update(d)
5056  return self._set_from_binary(p)
5057 
5058 
5059 # Register CysteineCrossLinkData in _IMP_isd:
5060 _IMP_isd.CysteineCrossLinkData_swigregister(CysteineCrossLinkData)
5061 class CrossLinkData(IMP.Object):
5062  r"""Proxy of C++ IMP::isd::CrossLinkData class."""
5063 
5064  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5065 
5066  def __init__(self, *args):
5067  r"""
5068  __init__(CrossLinkData self, IMP::Floats dist_grid, IMP::Floats omega_grid, IMP::Floats sigma_grid, double lexp_, double don=std::numeric_limits< double >::max(), double doff=std::numeric_limits< double >::max(), int prior_type=0) -> CrossLinkData
5069  __init__(CrossLinkData self, IMP::Floats dist_grid, IMP::Floats omega_grid, IMP::Floats sigma_grid, IMP::Floats pot_x_grid, IMP::Floats pot_value_grid, double don=std::numeric_limits< double >::max(), double doff=std::numeric_limits< double >::max(), int prior_type=0) -> CrossLinkData
5070  __init__(CrossLinkData self) -> CrossLinkData
5071  """
5072  _IMP_isd.CrossLinkData_swiginit(self, _IMP_isd.new_CrossLinkData(*args))
5073 
5074  def get_closest(self, vec, value):
5075  r"""get_closest(CrossLinkData self, DistBase vec, double value) -> int"""
5076  return _IMP_isd.CrossLinkData_get_closest(self, vec, value)
5077 
5078  def get_omegas(self, sigma, dists):
5079  r"""get_omegas(CrossLinkData self, double sigma, IMP::Floats dists) -> IMP::Floats"""
5080  return _IMP_isd.CrossLinkData_get_omegas(self, sigma, dists)
5081 
5082  def get_omega_prior(self, omega, omega0):
5083  r"""get_omega_prior(CrossLinkData self, double omega, double omega0) -> double"""
5084  return _IMP_isd.CrossLinkData_get_omega_prior(self, omega, omega0)
5085 
5086  def get_nonmarginal_elements(self, sigmai, dists):
5087  r"""get_nonmarginal_elements(CrossLinkData self, double sigmai, IMP::Floats dists) -> IMP::Floats"""
5088  return _IMP_isd.CrossLinkData_get_nonmarginal_elements(self, sigmai, dists)
5089 
5090  def get_marginal_elements(self, sigma, dists):
5091  r"""get_marginal_elements(CrossLinkData self, double sigma, IMP::Floats dists) -> IMP::Floats"""
5092  return _IMP_isd.CrossLinkData_get_marginal_elements(self, sigma, dists)
5093 
5094  def get_marginal_maximum(self, *args):
5095  r"""
5096  get_marginal_maximum(CrossLinkData self, double sigma) -> double
5097  get_marginal_maximum(CrossLinkData self) -> double
5098  """
5099  return _IMP_isd.CrossLinkData_get_marginal_maximum(self, *args)
5100 
5101  def get_version_info(self):
5102  r"""get_version_info(CrossLinkData self) -> VersionInfo"""
5103  return _IMP_isd.CrossLinkData_get_version_info(self)
5104  __swig_destroy__ = _IMP_isd.delete_CrossLinkData
5105 
5106  def __str__(self):
5107  r"""__str__(CrossLinkData self) -> std::string"""
5108  return _IMP_isd.CrossLinkData___str__(self)
5109 
5110  def __repr__(self):
5111  r"""__repr__(CrossLinkData self) -> std::string"""
5112  return _IMP_isd.CrossLinkData___repr__(self)
5113 
5114  @staticmethod
5115  def get_from(o):
5116  return _object_cast_to_CrossLinkData(o)
5117 
5118 
5119  def _get_as_binary(self):
5120  r"""_get_as_binary(CrossLinkData self) -> PyObject *"""
5121  return _IMP_isd.CrossLinkData__get_as_binary(self)
5122 
5123  def _set_from_binary(self, p):
5124  r"""_set_from_binary(CrossLinkData self, PyObject * p)"""
5125  return _IMP_isd.CrossLinkData__set_from_binary(self, p)
5126 
5127  def __getstate__(self):
5128  p = self._get_as_binary()
5129  if len(self.__dict__) > 1:
5130  d = self.__dict__.copy()
5131  del d['this']
5132  p = (d, p)
5133  return p
5134 
5135  def __setstate__(self, p):
5136  if not hasattr(self, 'this'):
5137  self.__init__()
5138  if isinstance(p, tuple):
5139  d, p = p
5140  self.__dict__.update(d)
5141  return self._set_from_binary(p)
5142 
5143 
5144 # Register CrossLinkData in _IMP_isd:
5145 _IMP_isd.CrossLinkData_swigregister(CrossLinkData)
5146 class CysteineCrossLinkRestraint(IMP.Restraint):
5147  r"""Proxy of C++ IMP::isd::CysteineCrossLinkRestraint class."""
5148 
5149  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5150 
5151  def __init__(self, *args):
5152  r"""
5153  __init__(CysteineCrossLinkRestraint self, Model m, _ParticleIndexAdaptor beta, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor epsilon, _ParticleIndexAdaptor weight, CrossLinkData data, double fexp) -> CysteineCrossLinkRestraint
5154  __init__(CysteineCrossLinkRestraint self, Model m, _ParticleIndexAdaptor beta, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor epsilon, _ParticleIndexAdaptor weight, CrossLinkData data, CysteineCrossLinkData ccldata) -> CysteineCrossLinkRestraint
5155  __init__(CysteineCrossLinkRestraint self) -> CysteineCrossLinkRestraint
5156  """
5157  _IMP_isd.CysteineCrossLinkRestraint_swiginit(self, _IMP_isd.new_CysteineCrossLinkRestraint(*args))
5158 
5159  def get_probability(self):
5160  r"""get_probability(CysteineCrossLinkRestraint self) -> double"""
5161  return _IMP_isd.CysteineCrossLinkRestraint_get_probability(self)
5162 
5163  def get_standard_error(self):
5164  r"""get_standard_error(CysteineCrossLinkRestraint self) -> double"""
5165  return _IMP_isd.CysteineCrossLinkRestraint_get_standard_error(self)
5166 
5167  def get_frequencies(self):
5168  r"""get_frequencies(CysteineCrossLinkRestraint self) -> IMP::Floats"""
5169  return _IMP_isd.CysteineCrossLinkRestraint_get_frequencies(self)
5170 
5171  def get_model_frequency(self):
5172  r"""get_model_frequency(CysteineCrossLinkRestraint self) -> double"""
5173  return _IMP_isd.CysteineCrossLinkRestraint_get_model_frequency(self)
5174 
5175  def get_distances(self):
5176  r"""get_distances(CysteineCrossLinkRestraint self) -> IMP::Floats"""
5177  return _IMP_isd.CysteineCrossLinkRestraint_get_distances(self)
5178 
5179  def get_truncated_normalization(self, mean, sigma):
5180  r"""get_truncated_normalization(CysteineCrossLinkRestraint self, double mean, double sigma) -> double"""
5181  return _IMP_isd.CysteineCrossLinkRestraint_get_truncated_normalization(self, mean, sigma)
5182 
5183  def get_normal_pdf(self, mean, sigma, x):
5184  r"""get_normal_pdf(CysteineCrossLinkRestraint self, double mean, double sigma, double x) -> double"""
5185  return _IMP_isd.CysteineCrossLinkRestraint_get_normal_pdf(self, mean, sigma, x)
5186 
5187  def add_contribution(self, *args):
5188  r"""
5189  add_contribution(CysteineCrossLinkRestraint self, _ParticleIndexAdaptor p1, _ParticleIndexAdaptor p2)
5190  add_contribution(CysteineCrossLinkRestraint self, IMP::ParticleIndexes p1, IMP::ParticleIndexes p2)
5191  """
5192  return _IMP_isd.CysteineCrossLinkRestraint_add_contribution(self, *args)
5193 
5194  def get_CB_coordinates(self, ps):
5195  r"""get_CB_coordinates(CysteineCrossLinkRestraint self, IMP::ParticleIndexes const & ps) -> Vector3D"""
5196  return _IMP_isd.CysteineCrossLinkRestraint_get_CB_coordinates(self, ps)
5197 
5198  def get_number_of_contributions(self):
5199  r"""get_number_of_contributions(CysteineCrossLinkRestraint self) -> unsigned int"""
5200  return _IMP_isd.CysteineCrossLinkRestraint_get_number_of_contributions(self)
5201 
5202  def do_get_inputs(self):
5203  r"""do_get_inputs(CysteineCrossLinkRestraint self) -> IMP::ModelObjectsTemp"""
5204  return _IMP_isd.CysteineCrossLinkRestraint_do_get_inputs(self)
5205 
5206  def get_version_info(self):
5207  r"""get_version_info(CysteineCrossLinkRestraint self) -> VersionInfo"""
5208  return _IMP_isd.CysteineCrossLinkRestraint_get_version_info(self)
5209  __swig_destroy__ = _IMP_isd.delete_CysteineCrossLinkRestraint
5210 
5211  def __str__(self):
5212  r"""__str__(CysteineCrossLinkRestraint self) -> std::string"""
5213  return _IMP_isd.CysteineCrossLinkRestraint___str__(self)
5214 
5215  def __repr__(self):
5216  r"""__repr__(CysteineCrossLinkRestraint self) -> std::string"""
5217  return _IMP_isd.CysteineCrossLinkRestraint___repr__(self)
5218 
5219  @staticmethod
5220  def get_from(o):
5221  return _object_cast_to_CysteineCrossLinkRestraint(o)
5222 
5223 
5224  def _get_as_binary(self):
5225  r"""_get_as_binary(CysteineCrossLinkRestraint self) -> PyObject *"""
5226  return _IMP_isd.CysteineCrossLinkRestraint__get_as_binary(self)
5227 
5228  def _set_from_binary(self, p):
5229  r"""_set_from_binary(CysteineCrossLinkRestraint self, PyObject * p)"""
5230  return _IMP_isd.CysteineCrossLinkRestraint__set_from_binary(self, p)
5231 
5232  def __getstate__(self):
5233  p = self._get_as_binary()
5234  if len(self.__dict__) > 1:
5235  d = self.__dict__.copy()
5236  del d['this']
5237  p = (d, p)
5238  return p
5239 
5240  def __setstate__(self, p):
5241  if not hasattr(self, 'this'):
5242  self.__init__()
5243  if isinstance(p, tuple):
5244  d, p = p
5245  self.__dict__.update(d)
5246  return self._set_from_binary(p)
5247 
5248 
5249 # Register CysteineCrossLinkRestraint in _IMP_isd:
5250 _IMP_isd.CysteineCrossLinkRestraint_swigregister(CysteineCrossLinkRestraint)
5251 class WeightMover(IMP.core.MonteCarloMover):
5252  r"""Proxy of C++ IMP::isd::WeightMover class."""
5253 
5254  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5255 
5256  def __init__(self, w, radius):
5257  r"""__init__(WeightMover self, Particle w, IMP::Float radius) -> WeightMover"""
5258  _IMP_isd.WeightMover_swiginit(self, _IMP_isd.new_WeightMover(w, radius))
5259 
5260  def set_radius(self, radius):
5261  r"""set_radius(WeightMover self, IMP::Float radius)"""
5262  return _IMP_isd.WeightMover_set_radius(self, radius)
5263 
5264  def get_radius(self):
5265  r"""get_radius(WeightMover self) -> IMP::Float"""
5266  return _IMP_isd.WeightMover_get_radius(self)
5267 
5268  def get_version_info(self):
5269  r"""get_version_info(WeightMover self) -> VersionInfo"""
5270  return _IMP_isd.WeightMover_get_version_info(self)
5271  __swig_destroy__ = _IMP_isd.delete_WeightMover
5272 
5273  def __str__(self):
5274  r"""__str__(WeightMover self) -> std::string"""
5275  return _IMP_isd.WeightMover___str__(self)
5276 
5277  def __repr__(self):
5278  r"""__repr__(WeightMover self) -> std::string"""
5279  return _IMP_isd.WeightMover___repr__(self)
5280 
5281  @staticmethod
5282  def get_from(o):
5283  return _object_cast_to_WeightMover(o)
5284 
5285 
5286 # Register WeightMover in _IMP_isd:
5287 _IMP_isd.WeightMover_swigregister(WeightMover)
5288 class WeightRestraint(IMP.Restraint):
5289  r"""Proxy of C++ IMP::isd::WeightRestraint class."""
5290 
5291  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5292 
5293  def __init__(self, w, wmin, wmax, kappa):
5294  r"""__init__(WeightRestraint self, Particle w, IMP::Float wmin, IMP::Float wmax, IMP::Float kappa) -> WeightRestraint"""
5295  _IMP_isd.WeightRestraint_swiginit(self, _IMP_isd.new_WeightRestraint(w, wmin, wmax, kappa))
5296 
5297  def do_get_inputs(self):
5298  r"""do_get_inputs(WeightRestraint self) -> IMP::ModelObjectsTemp"""
5299  return _IMP_isd.WeightRestraint_do_get_inputs(self)
5300 
5301  def get_version_info(self):
5302  r"""get_version_info(WeightRestraint self) -> VersionInfo"""
5303  return _IMP_isd.WeightRestraint_get_version_info(self)
5304  __swig_destroy__ = _IMP_isd.delete_WeightRestraint
5305 
5306  def __str__(self):
5307  r"""__str__(WeightRestraint self) -> std::string"""
5308  return _IMP_isd.WeightRestraint___str__(self)
5309 
5310  def __repr__(self):
5311  r"""__repr__(WeightRestraint self) -> std::string"""
5312  return _IMP_isd.WeightRestraint___repr__(self)
5313 
5314  @staticmethod
5315  def get_from(o):
5316  return _object_cast_to_WeightRestraint(o)
5317 
5318 
5319 # Register WeightRestraint in _IMP_isd:
5320 _IMP_isd.WeightRestraint_swigregister(WeightRestraint)
5321 class AtomicCrossLinkMSRestraint(IMP.Restraint):
5322  r"""Proxy of C++ IMP::isd::AtomicCrossLinkMSRestraint class."""
5323 
5324  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5325 
5326  def __init__(self, *args):
5327  r"""
5328  __init__(AtomicCrossLinkMSRestraint self, Model m, double length, ParticleIndex psi, IMP::Float slope=0.0, bool part_of_log_score=False, std::string name="AtomicCrossLinkMSRestraint%1%") -> AtomicCrossLinkMSRestraint
5329  __init__(AtomicCrossLinkMSRestraint self) -> AtomicCrossLinkMSRestraint
5330  """
5331  _IMP_isd.AtomicCrossLinkMSRestraint_swiginit(self, _IMP_isd.new_AtomicCrossLinkMSRestraint(*args))
5332 
5333  def add_contribution(self, ppi, sigmas):
5334  r"""add_contribution(AtomicCrossLinkMSRestraint self, IMP::ParticleIndexPair const & ppi, IMP::ParticleIndexPair const & sigmas)"""
5335  return _IMP_isd.AtomicCrossLinkMSRestraint_add_contribution(self, ppi, sigmas)
5336 
5337  def evaluate_for_contributions(self, c, accum):
5338  r"""evaluate_for_contributions(AtomicCrossLinkMSRestraint self, IMP::Ints c, DerivativeAccumulator accum) -> IMP::Float"""
5339  return _IMP_isd.AtomicCrossLinkMSRestraint_evaluate_for_contributions(self, c, accum)
5340 
5341  def get_number_of_contributions(self):
5342  r"""get_number_of_contributions(AtomicCrossLinkMSRestraint self) -> unsigned int"""
5343  return _IMP_isd.AtomicCrossLinkMSRestraint_get_number_of_contributions(self)
5344 
5345  def get_contribution(self, i):
5346  r"""get_contribution(AtomicCrossLinkMSRestraint self, int i) -> IMP::ParticleIndexPair"""
5347  return _IMP_isd.AtomicCrossLinkMSRestraint_get_contribution(self, i)
5348 
5349  def get_contribution_sigmas(self, i):
5350  r"""get_contribution_sigmas(AtomicCrossLinkMSRestraint self, int i) -> IMP::ParticleIndexPair"""
5351  return _IMP_isd.AtomicCrossLinkMSRestraint_get_contribution_sigmas(self, i)
5352 
5353  def get_psi(self):
5354  r"""get_psi(AtomicCrossLinkMSRestraint self) -> ParticleIndex"""
5355  return _IMP_isd.AtomicCrossLinkMSRestraint_get_psi(self)
5356 
5357  def do_get_inputs(self):
5358  r"""do_get_inputs(AtomicCrossLinkMSRestraint self) -> IMP::ModelObjectsTemp"""
5359  return _IMP_isd.AtomicCrossLinkMSRestraint_do_get_inputs(self)
5360 
5361  def show(self, out):
5362  r"""show(AtomicCrossLinkMSRestraint self, _ostream out)"""
5363  return _IMP_isd.AtomicCrossLinkMSRestraint_show(self, out)
5364 
5365  def set_slope(self, slope):
5366  r"""set_slope(AtomicCrossLinkMSRestraint self, IMP::Float slope)"""
5367  return _IMP_isd.AtomicCrossLinkMSRestraint_set_slope(self, slope)
5368 
5369  def set_part_of_log_score(self, hey):
5370  r"""set_part_of_log_score(AtomicCrossLinkMSRestraint self, bool hey)"""
5371  return _IMP_isd.AtomicCrossLinkMSRestraint_set_part_of_log_score(self, hey)
5372 
5373  def get_version_info(self):
5374  r"""get_version_info(AtomicCrossLinkMSRestraint self) -> VersionInfo"""
5375  return _IMP_isd.AtomicCrossLinkMSRestraint_get_version_info(self)
5376  __swig_destroy__ = _IMP_isd.delete_AtomicCrossLinkMSRestraint
5377 
5378  def __str__(self):
5379  r"""__str__(AtomicCrossLinkMSRestraint self) -> std::string"""
5380  return _IMP_isd.AtomicCrossLinkMSRestraint___str__(self)
5381 
5382  def __repr__(self):
5383  r"""__repr__(AtomicCrossLinkMSRestraint self) -> std::string"""
5384  return _IMP_isd.AtomicCrossLinkMSRestraint___repr__(self)
5385 
5386  @staticmethod
5387  def get_from(o):
5388  return _object_cast_to_AtomicCrossLinkMSRestraint(o)
5389 
5390 
5391  def _get_as_binary(self):
5392  r"""_get_as_binary(AtomicCrossLinkMSRestraint self) -> PyObject *"""
5393  return _IMP_isd.AtomicCrossLinkMSRestraint__get_as_binary(self)
5394 
5395  def _set_from_binary(self, p):
5396  r"""_set_from_binary(AtomicCrossLinkMSRestraint self, PyObject * p)"""
5397  return _IMP_isd.AtomicCrossLinkMSRestraint__set_from_binary(self, p)
5398 
5399  def __getstate__(self):
5400  p = self._get_as_binary()
5401  if len(self.__dict__) > 1:
5402  d = self.__dict__.copy()
5403  del d['this']
5404  p = (d, p)
5405  return p
5406 
5407  def __setstate__(self, p):
5408  if not hasattr(self, 'this'):
5409  self.__init__()
5410  if isinstance(p, tuple):
5411  d, p = p
5412  self.__dict__.update(d)
5413  return self._set_from_binary(p)
5414 
5415 
5416 # Register AtomicCrossLinkMSRestraint in _IMP_isd:
5417 _IMP_isd.AtomicCrossLinkMSRestraint_swigregister(AtomicCrossLinkMSRestraint)
5418 class GaussianEMRestraint(IMP.Restraint):
5419  r"""Proxy of C++ IMP::isd::GaussianEMRestraint class."""
5420 
5421  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5422 
5423  def __init__(self, *args):
5424  r"""
5425  __init__(GaussianEMRestraint self, Model mdl, IMP::ParticleIndexes model_ps, IMP::ParticleIndexes density_ps, ParticleIndex global_sigma, IMP::Float model_cutoff_dist, IMP::Float density_cutoff_dist, IMP::Float slope, bool update_model=True, bool backbone_slope=False, bool local=False, std::string name="GaussianEMRestraint%1%") -> GaussianEMRestraint
5426  __init__(GaussianEMRestraint self) -> GaussianEMRestraint
5427  """
5428  _IMP_isd.GaussianEMRestraint_swiginit(self, _IMP_isd.new_GaussianEMRestraint(*args))
5429 
5430  def get_probability(self):
5431  r"""get_probability(GaussianEMRestraint self) -> double"""
5432  return _IMP_isd.GaussianEMRestraint_get_probability(self)
5433 
5435  r"""get_cross_correlation_coefficient(GaussianEMRestraint self) -> double"""
5436  return _IMP_isd.GaussianEMRestraint_get_cross_correlation_coefficient(self)
5437 
5438  def set_density_filename(self, density_fn):
5439  r"""set_density_filename(GaussianEMRestraint self, std::string density_fn)"""
5440  return _IMP_isd.GaussianEMRestraint_set_density_filename(self, density_fn)
5441 
5442  def compute_initial_scores(self):
5443  r"""compute_initial_scores(GaussianEMRestraint self)"""
5444  return _IMP_isd.GaussianEMRestraint_compute_initial_scores(self)
5445 
5446  def set_slope(self, s):
5447  r"""set_slope(GaussianEMRestraint self, IMP::Float s)"""
5448  return _IMP_isd.GaussianEMRestraint_set_slope(self, s)
5449 
5450  def get_slope(self):
5451  r"""get_slope(GaussianEMRestraint self) -> IMP::Float"""
5452  return _IMP_isd.GaussianEMRestraint_get_slope(self)
5453 
5454  def do_get_inputs(self):
5455  r"""do_get_inputs(GaussianEMRestraint self) -> IMP::ModelObjectsTemp"""
5456  return _IMP_isd.GaussianEMRestraint_do_get_inputs(self)
5457 
5458  def show(self, out):
5459  r"""show(GaussianEMRestraint self, _ostream out)"""
5460  return _IMP_isd.GaussianEMRestraint_show(self, out)
5461 
5462  def get_version_info(self):
5463  r"""get_version_info(GaussianEMRestraint self) -> VersionInfo"""
5464  return _IMP_isd.GaussianEMRestraint_get_version_info(self)
5465  __swig_destroy__ = _IMP_isd.delete_GaussianEMRestraint
5466 
5467  def __str__(self):
5468  r"""__str__(GaussianEMRestraint self) -> std::string"""
5469  return _IMP_isd.GaussianEMRestraint___str__(self)
5470 
5471  def __repr__(self):
5472  r"""__repr__(GaussianEMRestraint self) -> std::string"""
5473  return _IMP_isd.GaussianEMRestraint___repr__(self)
5474 
5475  @staticmethod
5476  def get_from(o):
5477  return _object_cast_to_GaussianEMRestraint(o)
5478 
5479 
5480  def _get_as_binary(self):
5481  r"""_get_as_binary(GaussianEMRestraint self) -> PyObject *"""
5482  return _IMP_isd.GaussianEMRestraint__get_as_binary(self)
5483 
5484  def _set_from_binary(self, p):
5485  r"""_set_from_binary(GaussianEMRestraint self, PyObject * p)"""
5486  return _IMP_isd.GaussianEMRestraint__set_from_binary(self, p)
5487 
5488  def __getstate__(self):
5489  p = self._get_as_binary()
5490  if len(self.__dict__) > 1:
5491  d = self.__dict__.copy()
5492  del d['this']
5493  p = (d, p)
5494  return p
5495 
5496  def __setstate__(self, p):
5497  if not hasattr(self, 'this'):
5498  self.__init__()
5499  if isinstance(p, tuple):
5500  d, p = p
5501  self.__dict__.update(d)
5502  return self._set_from_binary(p)
5503 
5504 
5505 # Register GaussianEMRestraint in _IMP_isd:
5506 _IMP_isd.GaussianEMRestraint_swigregister(GaussianEMRestraint)
5507 class GaussianAnchorEMRestraint(ISDRestraint):
5508  r"""Proxy of C++ IMP::isd::GaussianAnchorEMRestraint class."""
5509 
5510  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5511 
5512  def __init__(self, *args):
5513  r"""__init__(GaussianAnchorEMRestraint self, IMP::ParticlesTemp model_ps, IMP::Floats model_sigs, IMP::Floats model_weights, IMP::ParticlesTemp density_ps, IMP::Floats density_sigs, IMP::Floats density_weights, Particle global_sigma, IMP::Float cutoff_dist, bool rigid, bool tabexp, std::string name="GaussianAnchorEMRestraint%1%") -> GaussianAnchorEMRestraint"""
5514  _IMP_isd.GaussianAnchorEMRestraint_swiginit(self, _IMP_isd.new_GaussianAnchorEMRestraint(*args))
5515 
5516  def get_density_particles(self):
5517  r"""get_density_particles(GaussianAnchorEMRestraint self) -> IMP::ParticlesTemp"""
5518  return _IMP_isd.GaussianAnchorEMRestraint_get_density_particles(self)
5519  __swig_destroy__ = _IMP_isd.delete_GaussianAnchorEMRestraint
5520 
5521  def __str__(self):
5522  r"""__str__(GaussianAnchorEMRestraint self) -> std::string"""
5523  return _IMP_isd.GaussianAnchorEMRestraint___str__(self)
5524 
5525  def __repr__(self):
5526  r"""__repr__(GaussianAnchorEMRestraint self) -> std::string"""
5527  return _IMP_isd.GaussianAnchorEMRestraint___repr__(self)
5528 
5529  @staticmethod
5530  def get_from(o):
5531  return _object_cast_to_GaussianAnchorEMRestraint(o)
5532 
5533 
5534 # Register GaussianAnchorEMRestraint in _IMP_isd:
5535 _IMP_isd.GaussianAnchorEMRestraint_swigregister(GaussianAnchorEMRestraint)
5536 class GammaPrior(IMP.Restraint):
5537  r"""Proxy of C++ IMP::isd::GammaPrior class."""
5538 
5539  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5540 
5541  def __init__(self, *args):
5542  r"""__init__(GammaPrior self, Model m, Particle p, IMP::Float k, IMP::Float theta, std::string name="GammaPrior%1%") -> GammaPrior"""
5543  _IMP_isd.GammaPrior_swiginit(self, _IMP_isd.new_GammaPrior(*args))
5544 
5545  def evaluate_at(self, val):
5546  r"""evaluate_at(GammaPrior self, IMP::Float val) -> double"""
5547  return _IMP_isd.GammaPrior_evaluate_at(self, val)
5548 
5549  def do_get_inputs(self):
5550  r"""do_get_inputs(GammaPrior self) -> IMP::ModelObjectsTemp"""
5551  return _IMP_isd.GammaPrior_do_get_inputs(self)
5552 
5553  def get_version_info(self):
5554  r"""get_version_info(GammaPrior self) -> VersionInfo"""
5555  return _IMP_isd.GammaPrior_get_version_info(self)
5556  __swig_destroy__ = _IMP_isd.delete_GammaPrior
5557 
5558  def get_probability(self):
5559  r"""get_probability(GammaPrior self) -> double"""
5560  return _IMP_isd.GammaPrior_get_probability(self)
5561 
5562  def __str__(self):
5563  r"""__str__(GammaPrior self) -> std::string"""
5564  return _IMP_isd.GammaPrior___str__(self)
5565 
5566  def __repr__(self):
5567  r"""__repr__(GammaPrior self) -> std::string"""
5568  return _IMP_isd.GammaPrior___repr__(self)
5569 
5570  @staticmethod
5571  def get_from(o):
5572  return _object_cast_to_GammaPrior(o)
5573 
5574 
5575 # Register GammaPrior in _IMP_isd:
5576 _IMP_isd.GammaPrior_swigregister(GammaPrior)
5577 
5578 def sample_points_from_density(dmap_orig, npoints, threshold=0.0):
5579  r"""sample_points_from_density(DensityMap dmap_orig, int npoints, IMP::Float threshold=0.0) -> IMP::FloatsList"""
5580  return _IMP_isd.sample_points_from_density(dmap_orig, npoints, threshold)
5581 class ResidueProteinProximityRestraint(IMP.Restraint):
5582  r"""Proxy of C++ IMP::isd::ResidueProteinProximityRestraint class."""
5583 
5584  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5585 
5586  def __init__(self, *args):
5587  r"""__init__(ResidueProteinProximityRestraint self, Model m, double cutoff=6.0, double sigma=3.0, double xi=0.5, bool part_of_log_score=False, std::string name="ResidueProteinProximityRestraint_%1%") -> ResidueProteinProximityRestraint"""
5588  _IMP_isd.ResidueProteinProximityRestraint_swiginit(self, _IMP_isd.new_ResidueProteinProximityRestraint(*args))
5589 
5590  def add_pairs_container(self, pc):
5591  r"""add_pairs_container(ResidueProteinProximityRestraint self, PairContainer pc)"""
5592  return _IMP_isd.ResidueProteinProximityRestraint_add_pairs_container(self, pc)
5593 
5594  def add_contribution_particles(self, ppis1, ppis2):
5595  r"""add_contribution_particles(ResidueProteinProximityRestraint self, IMP::ParticleIndexes const ppis1, IMP::ParticleIndexes const ppis2)"""
5596  return _IMP_isd.ResidueProteinProximityRestraint_add_contribution_particles(self, ppis1, ppis2)
5597 
5598  def evaluate_for_contributions(self, c):
5599  r"""evaluate_for_contributions(ResidueProteinProximityRestraint self, IMP::Ints c) -> double"""
5600  return _IMP_isd.ResidueProteinProximityRestraint_evaluate_for_contributions(self, c)
5601 
5602  def get_number_of_contributions(self):
5603  r"""get_number_of_contributions(ResidueProteinProximityRestraint self) -> unsigned int"""
5604  return _IMP_isd.ResidueProteinProximityRestraint_get_number_of_contributions(self)
5605 
5606  def set_sigma(self, sigma):
5607  r"""set_sigma(ResidueProteinProximityRestraint self, double sigma)"""
5608  return _IMP_isd.ResidueProteinProximityRestraint_set_sigma(self, sigma)
5609 
5610  def set_cutoff(self, cutoff):
5611  r"""set_cutoff(ResidueProteinProximityRestraint self, double cutoff)"""
5612  return _IMP_isd.ResidueProteinProximityRestraint_set_cutoff(self, cutoff)
5613 
5614  def set_max_score(self, max_score):
5615  r"""set_max_score(ResidueProteinProximityRestraint self, double max_score)"""
5616  return _IMP_isd.ResidueProteinProximityRestraint_set_max_score(self, max_score)
5617 
5618  def set_yi(self, yi):
5619  r"""set_yi(ResidueProteinProximityRestraint self, double yi)"""
5620  return _IMP_isd.ResidueProteinProximityRestraint_set_yi(self, yi)
5621 
5622  def set_interpolation_factor(self, interpolation_factor):
5623  r"""set_interpolation_factor(ResidueProteinProximityRestraint self, double interpolation_factor)"""
5624  return _IMP_isd.ResidueProteinProximityRestraint_set_interpolation_factor(self, interpolation_factor)
5625 
5626  def set_part_of_log_score(self, hey):
5627  r"""set_part_of_log_score(ResidueProteinProximityRestraint self, bool hey)"""
5628  return _IMP_isd.ResidueProteinProximityRestraint_set_part_of_log_score(self, hey)
5629 
5630  def do_get_inputs(self):
5631  r"""do_get_inputs(ResidueProteinProximityRestraint self) -> IMP::ModelObjectsTemp"""
5632  return _IMP_isd.ResidueProteinProximityRestraint_do_get_inputs(self)
5633 
5634  def get_version_info(self):
5635  r"""get_version_info(ResidueProteinProximityRestraint self) -> VersionInfo"""
5636  return _IMP_isd.ResidueProteinProximityRestraint_get_version_info(self)
5637  __swig_destroy__ = _IMP_isd.delete_ResidueProteinProximityRestraint
5638 
5639  def __str__(self):
5640  r"""__str__(ResidueProteinProximityRestraint self) -> std::string"""
5641  return _IMP_isd.ResidueProteinProximityRestraint___str__(self)
5642 
5643  def __repr__(self):
5644  r"""__repr__(ResidueProteinProximityRestraint self) -> std::string"""
5645  return _IMP_isd.ResidueProteinProximityRestraint___repr__(self)
5646 
5647  @staticmethod
5648  def get_from(o):
5649  return _object_cast_to_ResidueProteinProximityRestraint(o)
5650 
5651 
5652 # Register ResidueProteinProximityRestraint in _IMP_isd:
5653 _IMP_isd.ResidueProteinProximityRestraint_swigregister(ResidueProteinProximityRestraint)
5654 
5655 def get_module_name():
5656  r"""get_module_name() -> std::string const"""
5657  return _IMP_isd.get_module_name()
5658 
5659 def get_module_version():
5660  r"""get_module_version() -> std::string const"""
5661  return _IMP_isd.get_module_version()
5662 
5663 def get_example_path(fname):
5664  r"""get_example_path(std::string fname) -> std::string"""
5665  return _IMP_isd.get_example_path(fname)
5666 
5667 def get_data_path(fname):
5668  r"""get_data_path(std::string fname) -> std::string"""
5669  return _IMP_isd.get_data_path(fname)
5670 
5671 from . import _version_check
5672 _version_check.check_version(get_module_version())
5673 __version__ = get_module_version()
5674 
5675 
Abstract class for scoring object(s) of type ParticleIndexPair.
Definition: PairScore.h:44
A Monte Carlo optimizer.
Definition: MonteCarlo.h:46
Various classes to hold sets of particles.
static XYZR setup_particle(Model *m, ParticleIndex pi)
Definition: XYZR.h:48
static FloatKey get_scale_key()
Definition: Scale.h:47
Make CGAL functionality available to IMP.
virtual void clear_caches()
Definition: Object.h:274
virtual ModelObjectsTemp do_get_outputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the outputs.
Composable functors to implement scores via compile-time composition.
Vector3D get_random_vector_in(const Cylinder3D &c)
Generate a random vector in a cylinder with uniform density.
Code to compute statistical measures.
Object used to hold a set of restraints.
Definition: RestraintSet.h:41
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
ModelObjectsTemp get_inputs(Model *m, const ParticleIndexes &pis) const
Get the ModelObjects read when the given list of particles is used.
virtual void do_destroy()
Definition: Object.h:278
Ints get_index(const ParticlesTemp &particles, const Subset &subset, const Subsets &excluded)
Common base class for heavy weight IMP objects.
Definition: Object.h:111
Simple molecular dynamics simulator.
Store a list of ParticleIndexes.
ScoreStates maintain invariants in the Model.
Definition: ScoreState.h:56
A base class for classes which perturb particles.
virtual ModelObjectsTemp do_get_inputs(Model *m, const ParticleIndexes &pis) const =0
Overload this method to specify the inputs.
Basic utilities for handling cryo-electron microscopy 3D density maps.
double get_cross_correlation_coefficient(Image *im1, Image *im2)
Cross correlation between two images.
Interface to specialized Particle types (e.g. atoms)
Definition: Decorator.h:119
Basic functionality that is expected to be used by a wide variety of IMP users.
General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP...
std::string get_module_version()
Return the version of this module, as a string.
virtual VersionInfo get_version_info() const
Get information about the module and version of the object.
Definition: Object.h:208
Class to handle individual particles of a Model object.
Definition: Particle.h:45
void set_check_level(CheckLevel l)
std::string get_example_path(std::string file_name)
Return the full path to one of this module's example files.
Output IMP model data in various file formats.
Functionality for loading, creating, manipulating and scoring atomic structures.
std::string get_data_path(std::string file_name)
Return the full path to one of this module's data files.
Support for small angle X-ray scattering (SAXS) data.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:56