IMP logo
IMP Reference Guide  develop.0e3808d870,2026/10/23
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  mid_range = ((math.pi / 12 / d * (r1 + r2 - d) * (r1 + r2 - d)) *
1165  (d * d + 2 * d * r1 - 3 * r1 * r1 + 2 * d * r2
1166  + 6 * r1 * r2 - 3 * r2 * r2))
1167  return jnp.where(
1168  d <= jnp.absolute(r1 - r2), short_range,
1169  jnp.where(d >= r1 + r2, 0., mid_range))
1170 
1171  def get_probability(xyz, r, scale, ps, sigma, psi, length,
1172  slope, segments, numrsr):
1173  # If the residues are assigned to the same particle-domain
1174  # get the distance as if the residue positions were randomly
1175  # taken from within the sphere representing the domain
1176  # Lund O, Protein Eng. 1997 Nov;10(11):1241-8.
1177  dist = jnp.where(ps[:, 0] == ps[:, 1],
1178  36.0 / 35.0 * r[ps[:, 0]],
1179  space.distance(xyz[ps[:, 0]] - xyz[ps[:, 1]]))
1180  dist = jnp.maximum(dist, 0.0001)
1181  psi = scale[psi]
1182  sigmai = scale[sigma[:, 0]]
1183  sigmaj = scale[sigma[:, 1]]
1184 
1185  voli = 4.0 / 3.0 * math.pi * sigmai * sigmai * sigmai
1186  volj = 4.0 / 3.0 * math.pi * sigmaj * sigmaj * sigmaj
1187  xlvol = (4.0 / 3.0 * math.pi * (length / 2.)
1188  * (length / 2.) * (length / 2.))
1189 
1190  close = dist < sigmai + sigmaj
1191  fi = jnp.where(
1192  close, jnp.minimum(voli, xlvol),
1193  sphere_cap(sigmai, length / 2.,
1194  jnp.abs(dist - sigmaj - length / 2.)))
1195  fj = jnp.where(
1196  close, jnp.minimum(volj, xlvol),
1197  sphere_cap(sigmaj, length / 2.,
1198  jnp.abs(dist - sigmai - length / 2.)))
1199 
1200  pofr = fi * fj / voli / volj
1201  term = psi * (1.0 - pofr) + pofr * (1.0 - psi)
1202  if slope is not None:
1203  prior = jnp.exp(-slope * dist)
1204  term = term * prior
1205  onemprob = 1.0 - term
1206 
1207  if segments is None:
1208  # If only one contribution to each restraint, we are done
1209  return 1.0 - onemprob
1210  else:
1211  # Otherwise, take the product of all contributions to each
1212  # restraint
1213  return 1.0 - jax.ops.segment_prod(onemprob.T, segments, numrsr,
1214  indices_are_sorted=True).T
1215 
1216  for r in rs:
1217  if r.get_is_length_variable():
1218  raise NotImplementedError("Only implemented for fixed-length")
1219  sigma = cls._get_contributions_sigma_numpy(rs)
1220  psi = cls._get_contributions_psi_numpy(rs)
1221  pis = cls._get_contributions_particles_numpy(rs)
1222  segments = cls._get_contributions_segments(rs)
1223  get_log_prob = rs[0].get_log_prob()
1224  length = rs[0].get_length()
1225  slope = rs[0].get_slope() if rs[0].get_has_slope() else None
1226 
1227  def jax_restraint(X):
1228  prob = get_probability(X['xyz'], X['r'], X['nuisance'], pis,
1229  sigma, psi, length, slope, segments,
1230  len(rs))
1231  if get_log_prob:
1232  return -jnp.log(prob)
1233  else:
1234  return prob
1235 
1236  # Note that we don't weight the restraint anywhere. This matches
1237  # the behavior of the C++ restraint.
1238  return cls._wrap_jax_multiple(rs[0], jax_restraint,
1239  keys=[IMP.isd.Scale.get_scale_key()])
1240 
1241  def _get_jax(self, space):
1242  return self._get_jax_for_restraints([self], space)
1243 
1244  @classmethod
1245  def _get_jax_multiple(cls, restraints, space):
1246  import IMP._jax_util
1247  # Get all groups of crosslink restraints that have the same length
1248  # and slope (to 4 decimal places) and get_log_prob flag
1249  def rsrkey(r):
1250  if type(r) is cls:
1251  return ("%.4f" % r.get_length(),
1252  "%.4f" % r.get_slope() if r.get_has_slope() else None,
1253  r.get_log_prob())
1254  groups, ungrouped = IMP._jax_util.get_grouped_restraints(
1255  restraints, rsrkey)
1256 
1257  return ([cls._get_jax_for_restraints(g, space) for g in groups],
1258  ungrouped)
1259 
1260 
1261 
1262 # Register CrossLinkMSRestraint in _IMP_isd:
1263 _IMP_isd.CrossLinkMSRestraint_swigregister(CrossLinkMSRestraint)
1264 class LogWrapper(IMP.RestraintSet):
1265  r"""Proxy of C++ IMP::isd::LogWrapper class."""
1266 
1267  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1268 
1269  def __init__(self, *args):
1270  r"""
1271  __init__(LogWrapper self, Model m, double weight, std::string const & name="LogWrapper %1%") -> LogWrapper
1272  __init__(LogWrapper self, Model m, std::string const & name="LogWrapper %1%") -> LogWrapper
1273  __init__(LogWrapper self, IMP::RestraintsTemp const & rs, double weight, std::string const & name="LogWrapper %1%") -> LogWrapper
1274  __init__(LogWrapper self) -> LogWrapper
1275  """
1276  _IMP_isd.LogWrapper_swiginit(self, _IMP_isd.new_LogWrapper(*args))
1277 
1278  def do_add_score_and_derivatives(self, sa):
1279  r"""do_add_score_and_derivatives(LogWrapper self, ScoreAccumulator sa)"""
1280  return _IMP_isd.LogWrapper_do_add_score_and_derivatives(self, sa)
1281 
1282  def do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis):
1283  r"""do_add_score_and_derivatives_moved(LogWrapper self, ScoreAccumulator sa, IMP::ParticleIndexes const & moved_pis, IMP::ParticleIndexes const & reset_pis)"""
1284  return _IMP_isd.LogWrapper_do_add_score_and_derivatives_moved(self, sa, moved_pis, reset_pis)
1285  __swig_destroy__ = _IMP_isd.delete_LogWrapper
1286 
1287  def __str__(self):
1288  r"""__str__(LogWrapper self) -> std::string"""
1289  return _IMP_isd.LogWrapper___str__(self)
1290 
1291  def __repr__(self):
1292  r"""__repr__(LogWrapper self) -> std::string"""
1293  return _IMP_isd.LogWrapper___repr__(self)
1294 
1295  @staticmethod
1296  def get_from(o):
1297  return _object_cast_to_LogWrapper(o)
1298 
1299 
1300  def _get_as_binary(self):
1301  r"""_get_as_binary(LogWrapper self) -> PyObject *"""
1302  return _IMP_isd.LogWrapper__get_as_binary(self)
1303 
1304  def _set_from_binary(self, p):
1305  r"""_set_from_binary(LogWrapper self, PyObject * p)"""
1306  return _IMP_isd.LogWrapper__set_from_binary(self, p)
1307 
1308  def __getstate__(self):
1309  p = self._get_as_binary()
1310  if len(self.__dict__) > 1:
1311  d = self.__dict__.copy()
1312  del d['this']
1313  p = (d, p)
1314  return p
1315 
1316  def __setstate__(self, p):
1317  if not hasattr(self, 'this'):
1318  self.__init__()
1319  if isinstance(p, tuple):
1320  d, p = p
1321  self.__dict__.update(d)
1322  return self._set_from_binary(p)
1323 
1324 
1325  def _get_jax(self, space):
1326  import jax.numpy as jnp
1327  import IMP._jax_util
1328  restraints = [r.get_derived_object() for r in self.restraints]
1329  multi_funcs, funcs, keys = IMP._jax_util.get_restraints_jax_funcs_keys(
1330  restraints, space)
1331  def jax_sf(jm):
1332  rets = [f(jm) for f in multi_funcs]
1333  if funcs:
1334  rets.append(jnp.stack([f(jm) for f in funcs], axis=-1))
1335  scores = jnp.concatenate(rets, axis=-1)
1336  return -jnp.sum(jnp.log(scores), axis=-1)
1337  return self._wrap_jax(jax_sf, keys=keys)
1338 
1339 
1340 # Register LogWrapper in _IMP_isd:
1341 _IMP_isd.LogWrapper_swigregister(LogWrapper)
1342 class UniformPrior(IMP.Restraint):
1343  r"""Proxy of C++ IMP::isd::UniformPrior class."""
1344 
1345  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1346 
1347  def __init__(self, *args):
1348  r"""
1349  __init__(UniformPrior self, Model m, Particle p, double k, double upperb, double lowerb, std::string name="UniformPrior%1%") -> UniformPrior
1350  __init__(UniformPrior self) -> UniformPrior
1351  """
1352  _IMP_isd.UniformPrior_swiginit(self, _IMP_isd.new_UniformPrior(*args))
1353 
1354  def do_get_inputs(self):
1355  r"""do_get_inputs(UniformPrior self) -> IMP::ModelObjectsTemp"""
1356  return _IMP_isd.UniformPrior_do_get_inputs(self)
1357 
1358  def get_version_info(self):
1359  r"""get_version_info(UniformPrior self) -> VersionInfo"""
1360  return _IMP_isd.UniformPrior_get_version_info(self)
1361  __swig_destroy__ = _IMP_isd.delete_UniformPrior
1362 
1363  def get_probability(self):
1364  r"""get_probability(UniformPrior self) -> double"""
1365  return _IMP_isd.UniformPrior_get_probability(self)
1366 
1367  def get_range(self):
1368  r"""get_range(UniformPrior self) -> IMP::FloatRange"""
1369  return _IMP_isd.UniformPrior_get_range(self)
1370 
1371  def get_k(self):
1372  r"""get_k(UniformPrior self) -> double"""
1373  return _IMP_isd.UniformPrior_get_k(self)
1374 
1375  def get_index(self):
1376  r"""get_index(UniformPrior self) -> ParticleIndex"""
1377  return _IMP_isd.UniformPrior_get_index(self)
1378 
1379  def __str__(self):
1380  r"""__str__(UniformPrior self) -> std::string"""
1381  return _IMP_isd.UniformPrior___str__(self)
1382 
1383  def __repr__(self):
1384  r"""__repr__(UniformPrior self) -> std::string"""
1385  return _IMP_isd.UniformPrior___repr__(self)
1386 
1387  @staticmethod
1388  def get_from(o):
1389  return _object_cast_to_UniformPrior(o)
1390 
1391 
1392  def _get_as_binary(self):
1393  r"""_get_as_binary(UniformPrior self) -> PyObject *"""
1394  return _IMP_isd.UniformPrior__get_as_binary(self)
1395 
1396  def _set_from_binary(self, p):
1397  r"""_set_from_binary(UniformPrior self, PyObject * p)"""
1398  return _IMP_isd.UniformPrior__set_from_binary(self, p)
1399 
1400  def __getstate__(self):
1401  p = self._get_as_binary()
1402  if len(self.__dict__) > 1:
1403  d = self.__dict__.copy()
1404  del d['this']
1405  p = (d, p)
1406  return p
1407 
1408  def __setstate__(self, p):
1409  if not hasattr(self, 'this'):
1410  self.__init__()
1411  if isinstance(p, tuple):
1412  d, p = p
1413  self.__dict__.update(d)
1414  return self._set_from_binary(p)
1415 
1416 
1417  def _get_jax(self, space):
1418  import jax.numpy as jnp
1419  def score(jm, lb, ub, k, index):
1420  nuisance = jm['nuisance'][index]
1421  return 0.5 * k * (nuisance - jnp.clip(nuisance, lb, ub)) ** 2
1422  rng = self.get_range()
1423  f = functools.partial(score, lb=rng[0], ub=rng[1], k=self.get_k(),
1424  index=self.get_index())
1425  return self._wrap_jax(f, keys=[Scale.get_scale_key()])
1426 
1427 
1428 # Register UniformPrior in _IMP_isd:
1429 _IMP_isd.UniformPrior_swigregister(UniformPrior)
1430 class Nuisance(IMP.Decorator):
1431  r"""Proxy of C++ IMP::isd::Nuisance class."""
1432 
1433  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1434 
1435  def __init__(self, *args):
1436  r"""
1437  __init__(Nuisance self) -> Nuisance
1438  __init__(Nuisance self, Model m, ParticleIndex id) -> Nuisance
1439  __init__(Nuisance self, _ParticleAdaptor d) -> Nuisance
1440  """
1441  _IMP_isd.Nuisance_swiginit(self, _IMP_isd.new_Nuisance(*args))
1442 
1443  def show(self, *args):
1444  r"""show(Nuisance self, _ostream out=std::cout)"""
1445  return _IMP_isd.Nuisance_show(self, *args)
1446 
1447  @staticmethod
1448  def setup_particle(*args):
1449  r"""
1450  setup_particle(Model m, ParticleIndex pi) -> Nuisance
1451  setup_particle(_ParticleAdaptor pa) -> Nuisance
1452  setup_particle(Model m, ParticleIndex pi, double nuisance) -> Nuisance
1453  setup_particle(_ParticleAdaptor pa, double nuisance) -> Nuisance
1454  """
1455  return _IMP_isd.Nuisance_setup_particle(*args)
1456 
1457  @staticmethod
1458  def get_is_setup(*args):
1459  r"""
1460  get_is_setup(_ParticleAdaptor p) -> bool
1461  get_is_setup(Model m, ParticleIndex pi) -> bool
1462  """
1463  return _IMP_isd.Nuisance_get_is_setup(*args)
1464 
1465  @staticmethod
1466  def get_nuisance_key():
1467  r"""get_nuisance_key() -> FloatKey"""
1468  return _IMP_isd.Nuisance_get_nuisance_key()
1469 
1470  def get_nuisance(self):
1471  r"""get_nuisance(Nuisance self) -> IMP::Float"""
1472  return _IMP_isd.Nuisance_get_nuisance(self)
1473 
1474  def set_nuisance(self, d):
1475  r"""set_nuisance(Nuisance self, IMP::Float d)"""
1476  return _IMP_isd.Nuisance_set_nuisance(self, d)
1477 
1478  def get_has_lower(self):
1479  r"""get_has_lower(Nuisance self) -> bool"""
1480  return _IMP_isd.Nuisance_get_has_lower(self)
1481 
1482  def get_has_lower_float(self):
1483  r"""get_has_lower_float(Nuisance self) -> bool"""
1484  return _IMP_isd.Nuisance_get_has_lower_float(self)
1485 
1486  def get_has_lower_particle(self):
1487  r"""get_has_lower_particle(Nuisance self) -> bool"""
1488  return _IMP_isd.Nuisance_get_has_lower_particle(self)
1489 
1490  def get_lower(self):
1491  r"""get_lower(Nuisance self) -> IMP::Float"""
1492  return _IMP_isd.Nuisance_get_lower(self)
1493 
1494  @staticmethod
1495  def get_lower_key():
1496  r"""get_lower_key() -> FloatKey"""
1497  return _IMP_isd.Nuisance_get_lower_key()
1498 
1499  @staticmethod
1500  def get_lower_particle_key():
1501  r"""get_lower_particle_key() -> ParticleIndexKey"""
1502  return _IMP_isd.Nuisance_get_lower_particle_key()
1503 
1504  def set_lower(self, *args):
1505  r"""
1506  set_lower(Nuisance self, IMP::Float d)
1507  set_lower(Nuisance self, Particle d)
1508  """
1509  return _IMP_isd.Nuisance_set_lower(self, *args)
1510 
1511  def remove_lower(self):
1512  r"""remove_lower(Nuisance self)"""
1513  return _IMP_isd.Nuisance_remove_lower(self)
1514 
1515  def get_has_upper(self):
1516  r"""get_has_upper(Nuisance self) -> bool"""
1517  return _IMP_isd.Nuisance_get_has_upper(self)
1518 
1519  def get_has_upper_float(self):
1520  r"""get_has_upper_float(Nuisance self) -> bool"""
1521  return _IMP_isd.Nuisance_get_has_upper_float(self)
1522 
1523  def get_has_upper_particle(self):
1524  r"""get_has_upper_particle(Nuisance self) -> bool"""
1525  return _IMP_isd.Nuisance_get_has_upper_particle(self)
1526 
1527  def get_upper(self):
1528  r"""get_upper(Nuisance self) -> IMP::Float"""
1529  return _IMP_isd.Nuisance_get_upper(self)
1530 
1531  @staticmethod
1532  def get_upper_key():
1533  r"""get_upper_key() -> FloatKey"""
1534  return _IMP_isd.Nuisance_get_upper_key()
1535 
1536  @staticmethod
1537  def get_upper_particle_key():
1538  r"""get_upper_particle_key() -> ParticleIndexKey"""
1539  return _IMP_isd.Nuisance_get_upper_particle_key()
1540 
1541  def set_upper(self, *args):
1542  r"""
1543  set_upper(Nuisance self, IMP::Float d)
1544  set_upper(Nuisance self, Particle d)
1545  """
1546  return _IMP_isd.Nuisance_set_upper(self, *args)
1547 
1548  def remove_upper(self):
1549  r"""remove_upper(Nuisance self)"""
1550  return _IMP_isd.Nuisance_remove_upper(self)
1551 
1552  def get_nuisance_derivative(self):
1553  r"""get_nuisance_derivative(Nuisance self) -> IMP::Float"""
1554  return _IMP_isd.Nuisance_get_nuisance_derivative(self)
1555 
1556  def add_to_nuisance_derivative(self, d, accum):
1557  r"""add_to_nuisance_derivative(Nuisance self, IMP::Float d, DerivativeAccumulator accum)"""
1558  return _IMP_isd.Nuisance_add_to_nuisance_derivative(self, d, accum)
1559 
1560  def get_nuisance_is_optimized(self):
1561  r"""get_nuisance_is_optimized(Nuisance self) -> bool"""
1562  return _IMP_isd.Nuisance_get_nuisance_is_optimized(self)
1563 
1564  def set_nuisance_is_optimized(self, val):
1565  r"""set_nuisance_is_optimized(Nuisance self, bool val)"""
1566  return _IMP_isd.Nuisance_set_nuisance_is_optimized(self, val)
1567 
1568  def add_attribute(self, *args):
1569  r"""
1570  add_attribute(Nuisance self, FloatKey k, IMP::Float v, bool opt)
1571  add_attribute(Nuisance self, FloatKey a0, IMP::Float a1)
1572  add_attribute(Nuisance self, IntKey a0, IMP::Int a1)
1573  add_attribute(Nuisance self, FloatsKey a0, IMP::Floats a1)
1574  add_attribute(Nuisance self, IntsKey a0, IMP::Ints a1)
1575  add_attribute(Nuisance self, StringKey a0, IMP::String a1)
1576  add_attribute(Nuisance self, ParticleIndexKey a0, Particle a1)
1577  add_attribute(Nuisance self, ObjectKey a0, Object a1)
1578  add_attribute(Nuisance self, SparseFloatKey a0, IMP::Float a1)
1579  add_attribute(Nuisance self, SparseIntKey a0, IMP::Int a1)
1580  add_attribute(Nuisance self, SparseStringKey a0, IMP::String a1)
1581  add_attribute(Nuisance self, SparseParticleIndexKey a0, ParticleIndex a1)
1582  """
1583  return _IMP_isd.Nuisance_add_attribute(self, *args)
1584 
1585  def get_value(self, *args):
1586  r"""
1587  get_value(Nuisance self, FloatKey a0) -> IMP::Float
1588  get_value(Nuisance self, IntKey a0) -> IMP::Int
1589  get_value(Nuisance self, FloatsKey a0) -> IMP::Floats
1590  get_value(Nuisance self, IntsKey a0) -> IMP::Ints
1591  get_value(Nuisance self, StringKey a0) -> IMP::String
1592  get_value(Nuisance self, ParticleIndexKey a0) -> Particle
1593  get_value(Nuisance self, ObjectKey a0) -> Object
1594  get_value(Nuisance self, SparseFloatKey a0) -> IMP::Float
1595  get_value(Nuisance self, SparseIntKey a0) -> IMP::Int
1596  get_value(Nuisance self, SparseStringKey a0) -> IMP::String
1597  get_value(Nuisance self, SparseParticleIndexKey a0) -> ParticleIndex
1598  """
1599  return _IMP_isd.Nuisance_get_value(self, *args)
1600 
1601  def set_value(self, *args):
1602  r"""
1603  set_value(Nuisance self, FloatKey a0, IMP::Float a1)
1604  set_value(Nuisance self, IntKey a0, IMP::Int a1)
1605  set_value(Nuisance self, FloatsKey a0, IMP::Floats a1)
1606  set_value(Nuisance self, IntsKey a0, IMP::Ints a1)
1607  set_value(Nuisance self, StringKey a0, IMP::String a1)
1608  set_value(Nuisance self, ParticleIndexKey a0, Particle a1)
1609  set_value(Nuisance self, ObjectKey a0, Object a1)
1610  set_value(Nuisance self, SparseFloatKey a0, IMP::Float a1)
1611  set_value(Nuisance self, SparseIntKey a0, IMP::Int a1)
1612  set_value(Nuisance self, SparseStringKey a0, IMP::String a1)
1613  set_value(Nuisance self, SparseParticleIndexKey a0, ParticleIndex a1)
1614  """
1615  return _IMP_isd.Nuisance_set_value(self, *args)
1616 
1617  def remove_attribute(self, *args):
1618  r"""
1619  remove_attribute(Nuisance self, FloatKey a0)
1620  remove_attribute(Nuisance self, IntKey a0)
1621  remove_attribute(Nuisance self, FloatsKey a0)
1622  remove_attribute(Nuisance self, IntsKey a0)
1623  remove_attribute(Nuisance self, StringKey a0)
1624  remove_attribute(Nuisance self, ParticleIndexKey a0)
1625  remove_attribute(Nuisance self, ObjectKey a0)
1626  remove_attribute(Nuisance self, SparseFloatKey a0)
1627  remove_attribute(Nuisance self, SparseIntKey a0)
1628  remove_attribute(Nuisance self, SparseStringKey a0)
1629  remove_attribute(Nuisance self, SparseParticleIndexKey a0)
1630  """
1631  return _IMP_isd.Nuisance_remove_attribute(self, *args)
1632 
1633  def has_attribute(self, *args):
1634  r"""
1635  has_attribute(Nuisance self, FloatKey a0) -> bool
1636  has_attribute(Nuisance self, IntKey a0) -> bool
1637  has_attribute(Nuisance self, FloatsKey a0) -> bool
1638  has_attribute(Nuisance self, IntsKey a0) -> bool
1639  has_attribute(Nuisance self, StringKey a0) -> bool
1640  has_attribute(Nuisance self, ParticleIndexKey a0) -> bool
1641  has_attribute(Nuisance self, ObjectKey a0) -> bool
1642  has_attribute(Nuisance self, SparseFloatKey a0) -> bool
1643  has_attribute(Nuisance self, SparseIntKey a0) -> bool
1644  has_attribute(Nuisance self, SparseStringKey a0) -> bool
1645  has_attribute(Nuisance self, SparseParticleIndexKey a0) -> bool
1646  """
1647  return _IMP_isd.Nuisance_has_attribute(self, *args)
1648 
1649  def get_derivative(self, a0):
1650  r"""get_derivative(Nuisance self, FloatKey a0) -> double"""
1651  return _IMP_isd.Nuisance_get_derivative(self, a0)
1652 
1653  def get_name(self):
1654  r"""get_name(Nuisance self) -> std::string"""
1655  return _IMP_isd.Nuisance_get_name(self)
1656 
1657  def clear_caches(self):
1658  r"""clear_caches(Nuisance self)"""
1659  return _IMP_isd.Nuisance_clear_caches(self)
1660 
1661  def set_name(self, a0):
1662  r"""set_name(Nuisance self, std::string a0)"""
1663  return _IMP_isd.Nuisance_set_name(self, a0)
1664 
1665  def set_check_level(self, a0):
1666  r"""set_check_level(Nuisance self, IMP::CheckLevel a0)"""
1667  return _IMP_isd.Nuisance_set_check_level(self, a0)
1668 
1669  def add_to_derivative(self, a0, a1, a2):
1670  r"""add_to_derivative(Nuisance self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
1671  return _IMP_isd.Nuisance_add_to_derivative(self, a0, a1, a2)
1672 
1673  def set_is_optimized(self, a0, a1):
1674  r"""set_is_optimized(Nuisance self, FloatKey a0, bool a1)"""
1675  return _IMP_isd.Nuisance_set_is_optimized(self, a0, a1)
1676 
1677  def get_is_optimized(self, a0):
1678  r"""get_is_optimized(Nuisance self, FloatKey a0) -> bool"""
1679  return _IMP_isd.Nuisance_get_is_optimized(self, a0)
1680 
1681  def get_check_level(self):
1682  r"""get_check_level(Nuisance self) -> IMP::CheckLevel"""
1683  return _IMP_isd.Nuisance_get_check_level(self)
1684 
1685  def __eq__(self, *args):
1686  r"""
1687  __eq__(Nuisance self, Nuisance o) -> bool
1688  __eq__(Nuisance self, Particle d) -> bool
1689  """
1690  return _IMP_isd.Nuisance___eq__(self, *args)
1691 
1692  def __ne__(self, *args):
1693  r"""
1694  __ne__(Nuisance self, Nuisance o) -> bool
1695  __ne__(Nuisance self, Particle d) -> bool
1696  """
1697  return _IMP_isd.Nuisance___ne__(self, *args)
1698 
1699  def __le__(self, *args):
1700  r"""
1701  __le__(Nuisance self, Nuisance o) -> bool
1702  __le__(Nuisance self, Particle d) -> bool
1703  """
1704  return _IMP_isd.Nuisance___le__(self, *args)
1705 
1706  def __lt__(self, *args):
1707  r"""
1708  __lt__(Nuisance self, Nuisance o) -> bool
1709  __lt__(Nuisance self, Particle d) -> bool
1710  """
1711  return _IMP_isd.Nuisance___lt__(self, *args)
1712 
1713  def __ge__(self, *args):
1714  r"""
1715  __ge__(Nuisance self, Nuisance o) -> bool
1716  __ge__(Nuisance self, Particle d) -> bool
1717  """
1718  return _IMP_isd.Nuisance___ge__(self, *args)
1719 
1720  def __gt__(self, *args):
1721  r"""
1722  __gt__(Nuisance self, Nuisance o) -> bool
1723  __gt__(Nuisance self, Particle d) -> bool
1724  """
1725  return _IMP_isd.Nuisance___gt__(self, *args)
1726 
1727  def __hash__(self):
1728  r"""__hash__(Nuisance self) -> std::size_t"""
1729  return _IMP_isd.Nuisance___hash__(self)
1730 
1731  def __str__(self):
1732  r"""__str__(Nuisance self) -> std::string"""
1733  return _IMP_isd.Nuisance___str__(self)
1734 
1735  def __repr__(self):
1736  r"""__repr__(Nuisance self) -> std::string"""
1737  return _IMP_isd.Nuisance___repr__(self)
1738 
1739  def _get_as_binary(self):
1740  r"""_get_as_binary(Nuisance self) -> PyObject *"""
1741  return _IMP_isd.Nuisance__get_as_binary(self)
1742 
1743  def _set_from_binary(self, p):
1744  r"""_set_from_binary(Nuisance self, PyObject * p)"""
1745  return _IMP_isd.Nuisance__set_from_binary(self, p)
1746 
1747  def __getstate__(self):
1748  p = self._get_as_binary()
1749  if len(self.__dict__) > 1:
1750  d = self.__dict__.copy()
1751  del d['this']
1752  p = (d, p)
1753  return p
1754 
1755  def __setstate__(self, p):
1756  if not hasattr(self, 'this'):
1757  self.__init__()
1758  if isinstance(p, tuple):
1759  d, p = p
1760  self.__dict__.update(d)
1761  return self._set_from_binary(p)
1762 
1763  __swig_destroy__ = _IMP_isd.delete_Nuisance
1764 
1765 # Register Nuisance in _IMP_isd:
1766 _IMP_isd.Nuisance_swigregister(Nuisance)
1767 class NuisanceScoreState(IMP.ScoreState):
1768  r"""Proxy of C++ IMP::isd::NuisanceScoreState class."""
1769 
1770  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1771 
1772  def __init__(self, *args):
1773  r"""
1774  __init__(NuisanceScoreState self, Particle p) -> NuisanceScoreState
1775  __init__(NuisanceScoreState self) -> NuisanceScoreState
1776  """
1777  _IMP_isd.NuisanceScoreState_swiginit(self, _IMP_isd.new_NuisanceScoreState(*args))
1778 
1779  def get_index(self):
1780  r"""get_index(NuisanceScoreState self) -> ParticleIndex"""
1781  return _IMP_isd.NuisanceScoreState_get_index(self)
1782 
1783  def do_before_evaluate(self):
1784  r"""do_before_evaluate(NuisanceScoreState self)"""
1785  return _IMP_isd.NuisanceScoreState_do_before_evaluate(self)
1786 
1787  def do_after_evaluate(self, da):
1788  r"""do_after_evaluate(NuisanceScoreState self, DerivativeAccumulator da)"""
1789  return _IMP_isd.NuisanceScoreState_do_after_evaluate(self, da)
1790 
1791  def do_get_inputs(self):
1792  r"""do_get_inputs(NuisanceScoreState self) -> IMP::ModelObjectsTemp"""
1793  return _IMP_isd.NuisanceScoreState_do_get_inputs(self)
1794 
1795  def do_get_outputs(self):
1796  r"""do_get_outputs(NuisanceScoreState self) -> IMP::ModelObjectsTemp"""
1797  return _IMP_isd.NuisanceScoreState_do_get_outputs(self)
1798 
1799  def get_version_info(self):
1800  r"""get_version_info(NuisanceScoreState self) -> VersionInfo"""
1801  return _IMP_isd.NuisanceScoreState_get_version_info(self)
1802  __swig_destroy__ = _IMP_isd.delete_NuisanceScoreState
1803 
1804  def __str__(self):
1805  r"""__str__(NuisanceScoreState self) -> std::string"""
1806  return _IMP_isd.NuisanceScoreState___str__(self)
1807 
1808  def __repr__(self):
1809  r"""__repr__(NuisanceScoreState self) -> std::string"""
1810  return _IMP_isd.NuisanceScoreState___repr__(self)
1811 
1812  @staticmethod
1813  def get_from(o):
1814  return _object_cast_to_NuisanceScoreState(o)
1815 
1816 
1817  def _get_as_binary(self):
1818  r"""_get_as_binary(NuisanceScoreState self) -> PyObject *"""
1819  return _IMP_isd.NuisanceScoreState__get_as_binary(self)
1820 
1821  def _set_from_binary(self, p):
1822  r"""_set_from_binary(NuisanceScoreState self, PyObject * p)"""
1823  return _IMP_isd.NuisanceScoreState__set_from_binary(self, p)
1824 
1825  def __getstate__(self):
1826  p = self._get_as_binary()
1827  if len(self.__dict__) > 1:
1828  d = self.__dict__.copy()
1829  del d['this']
1830  p = (d, p)
1831  return p
1832 
1833  def __setstate__(self, p):
1834  if not hasattr(self, 'this'):
1835  self.__init__()
1836  if isinstance(p, tuple):
1837  d, p = p
1838  self.__dict__.update(d)
1839  return self._set_from_binary(p)
1840 
1841 
1842  def _get_jax(self):
1843  import jax.lax
1844  import math
1845  import jax.numpy as jnp
1846  import IMP._jax_util
1847  def apply_func(jm, index, upper_f, upper_p, lower_f, lower_p):
1848  nuisances = jm['nuisance']
1849  up = jm['upper'][index] if upper_f else math.inf
1850  if upper_p:
1851  up = jax.lax.min(up, nuisances[jm['p_upper'][index]])
1852  low = jm['lower'][index] if lower_f else -math.inf
1853  if lower_p:
1854  low = jax.lax.max(low, nuisances[jm['p_lower'][index]])
1855  jm['nuisance'] = jm['nuisance'].at[index].set(
1856  jnp.clip(nuisances[index], low, up))
1857  return jm
1858  p = self.get_index()
1859  m = self.get_model()
1860  n = Nuisance(m, p)
1861  upper_f, upper_p = n.get_has_upper_float(), n.get_has_upper_particle()
1862  lower_f, lower_p = n.get_has_lower_float(), n.get_has_lower_particle()
1863  if upper_p or lower_p:
1864  # These particle indexes can change during a simulation, so
1865  # we can't use the default CompactArray for nuisances (which
1866  # statically maps indexes beforehand)
1867  keys = [IMP._jax_util._DenseKey(n.get_nuisance_key())]
1868  else:
1869  keys = [n.get_nuisance_key()]
1870  if upper_f:
1871  keys.append(n.get_upper_key())
1872  if upper_p:
1873  keys.append(n.get_upper_particle_key())
1874  if lower_f:
1875  keys.append(n.get_lower_key())
1876  if lower_p:
1877  keys.append(n.get_lower_particle_key())
1878  f = functools.partial(apply_func, index=p, upper_f=upper_f,
1879  upper_p=upper_p, lower_f=lower_f,
1880  lower_p=lower_p)
1881  return self._wrap_jax(f, keys)
1882 
1883 
1884 # Register NuisanceScoreState in _IMP_isd:
1885 _IMP_isd.NuisanceScoreState_swigregister(NuisanceScoreState)
1886 class Scale(Nuisance):
1887  r"""Proxy of C++ IMP::isd::Scale class."""
1888 
1889  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
1890 
1891  def __init__(self, *args):
1892  r"""
1893  __init__(Scale self) -> Scale
1894  __init__(Scale self, Model m, ParticleIndex id) -> Scale
1895  __init__(Scale self, _ParticleAdaptor d) -> Scale
1896  """
1897  _IMP_isd.Scale_swiginit(self, _IMP_isd.new_Scale(*args))
1898 
1899  def show(self, *args):
1900  r"""show(Scale self, _ostream out=std::cout)"""
1901  return _IMP_isd.Scale_show(self, *args)
1902 
1903  @staticmethod
1904  def setup_particle(*args):
1905  r"""
1906  setup_particle(Model m, ParticleIndex pi) -> Scale
1907  setup_particle(_ParticleAdaptor pa) -> Scale
1908  setup_particle(Model m, ParticleIndex pi, double scale) -> Scale
1909  setup_particle(_ParticleAdaptor pa, double scale) -> Scale
1910  """
1911  return _IMP_isd.Scale_setup_particle(*args)
1912 
1913  @staticmethod
1914  def get_is_setup(*args):
1915  r"""
1916  get_is_setup(_ParticleAdaptor p) -> bool
1917  get_is_setup(Model m, ParticleIndex pi) -> bool
1918  """
1919  return _IMP_isd.Scale_get_is_setup(*args)
1920 
1921  def get_scale(self):
1922  r"""get_scale(Scale self) -> IMP::Float"""
1923  return _IMP_isd.Scale_get_scale(self)
1924 
1925  def set_scale(self, d):
1926  r"""set_scale(Scale self, IMP::Float d)"""
1927  return _IMP_isd.Scale_set_scale(self, d)
1928 
1929  def add_to_scale_derivative(self, d, accum):
1930  r"""add_to_scale_derivative(Scale self, IMP::Float d, DerivativeAccumulator accum)"""
1931  return _IMP_isd.Scale_add_to_scale_derivative(self, d, accum)
1932 
1933  def get_scale_derivative(self):
1934  r"""get_scale_derivative(Scale self) -> IMP::Float"""
1935  return _IMP_isd.Scale_get_scale_derivative(self)
1936 
1937  @staticmethod
1938  def get_scale_key():
1939  r"""get_scale_key() -> FloatKey"""
1940  return _IMP_isd.Scale_get_scale_key()
1941 
1942  def get_scale_is_optimized(self):
1943  r"""get_scale_is_optimized(Scale self) -> bool"""
1944  return _IMP_isd.Scale_get_scale_is_optimized(self)
1945 
1946  def set_scale_is_optimized(self, val):
1947  r"""set_scale_is_optimized(Scale self, bool val)"""
1948  return _IMP_isd.Scale_set_scale_is_optimized(self, val)
1949 
1950  def add_attribute(self, *args):
1951  r"""
1952  add_attribute(Scale self, FloatKey k, IMP::Float v, bool opt)
1953  add_attribute(Scale self, FloatKey a0, IMP::Float a1)
1954  add_attribute(Scale self, IntKey a0, IMP::Int a1)
1955  add_attribute(Scale self, FloatsKey a0, IMP::Floats a1)
1956  add_attribute(Scale self, IntsKey a0, IMP::Ints a1)
1957  add_attribute(Scale self, StringKey a0, IMP::String a1)
1958  add_attribute(Scale self, ParticleIndexKey a0, Particle a1)
1959  add_attribute(Scale self, ObjectKey a0, Object a1)
1960  add_attribute(Scale self, SparseFloatKey a0, IMP::Float a1)
1961  add_attribute(Scale self, SparseIntKey a0, IMP::Int a1)
1962  add_attribute(Scale self, SparseStringKey a0, IMP::String a1)
1963  add_attribute(Scale self, SparseParticleIndexKey a0, ParticleIndex a1)
1964  """
1965  return _IMP_isd.Scale_add_attribute(self, *args)
1966 
1967  def get_value(self, *args):
1968  r"""
1969  get_value(Scale self, FloatKey a0) -> IMP::Float
1970  get_value(Scale self, IntKey a0) -> IMP::Int
1971  get_value(Scale self, FloatsKey a0) -> IMP::Floats
1972  get_value(Scale self, IntsKey a0) -> IMP::Ints
1973  get_value(Scale self, StringKey a0) -> IMP::String
1974  get_value(Scale self, ParticleIndexKey a0) -> Particle
1975  get_value(Scale self, ObjectKey a0) -> Object
1976  get_value(Scale self, SparseFloatKey a0) -> IMP::Float
1977  get_value(Scale self, SparseIntKey a0) -> IMP::Int
1978  get_value(Scale self, SparseStringKey a0) -> IMP::String
1979  get_value(Scale self, SparseParticleIndexKey a0) -> ParticleIndex
1980  """
1981  return _IMP_isd.Scale_get_value(self, *args)
1982 
1983  def set_value(self, *args):
1984  r"""
1985  set_value(Scale self, FloatKey a0, IMP::Float a1)
1986  set_value(Scale self, IntKey a0, IMP::Int a1)
1987  set_value(Scale self, FloatsKey a0, IMP::Floats a1)
1988  set_value(Scale self, IntsKey a0, IMP::Ints a1)
1989  set_value(Scale self, StringKey a0, IMP::String a1)
1990  set_value(Scale self, ParticleIndexKey a0, Particle a1)
1991  set_value(Scale self, ObjectKey a0, Object a1)
1992  set_value(Scale self, SparseFloatKey a0, IMP::Float a1)
1993  set_value(Scale self, SparseIntKey a0, IMP::Int a1)
1994  set_value(Scale self, SparseStringKey a0, IMP::String a1)
1995  set_value(Scale self, SparseParticleIndexKey a0, ParticleIndex a1)
1996  """
1997  return _IMP_isd.Scale_set_value(self, *args)
1998 
1999  def remove_attribute(self, *args):
2000  r"""
2001  remove_attribute(Scale self, FloatKey a0)
2002  remove_attribute(Scale self, IntKey a0)
2003  remove_attribute(Scale self, FloatsKey a0)
2004  remove_attribute(Scale self, IntsKey a0)
2005  remove_attribute(Scale self, StringKey a0)
2006  remove_attribute(Scale self, ParticleIndexKey a0)
2007  remove_attribute(Scale self, ObjectKey a0)
2008  remove_attribute(Scale self, SparseFloatKey a0)
2009  remove_attribute(Scale self, SparseIntKey a0)
2010  remove_attribute(Scale self, SparseStringKey a0)
2011  remove_attribute(Scale self, SparseParticleIndexKey a0)
2012  """
2013  return _IMP_isd.Scale_remove_attribute(self, *args)
2014 
2015  def has_attribute(self, *args):
2016  r"""
2017  has_attribute(Scale self, FloatKey a0) -> bool
2018  has_attribute(Scale self, IntKey a0) -> bool
2019  has_attribute(Scale self, FloatsKey a0) -> bool
2020  has_attribute(Scale self, IntsKey a0) -> bool
2021  has_attribute(Scale self, StringKey a0) -> bool
2022  has_attribute(Scale self, ParticleIndexKey a0) -> bool
2023  has_attribute(Scale self, ObjectKey a0) -> bool
2024  has_attribute(Scale self, SparseFloatKey a0) -> bool
2025  has_attribute(Scale self, SparseIntKey a0) -> bool
2026  has_attribute(Scale self, SparseStringKey a0) -> bool
2027  has_attribute(Scale self, SparseParticleIndexKey a0) -> bool
2028  """
2029  return _IMP_isd.Scale_has_attribute(self, *args)
2030 
2031  def get_derivative(self, a0):
2032  r"""get_derivative(Scale self, FloatKey a0) -> double"""
2033  return _IMP_isd.Scale_get_derivative(self, a0)
2034 
2035  def get_name(self):
2036  r"""get_name(Scale self) -> std::string"""
2037  return _IMP_isd.Scale_get_name(self)
2038 
2039  def clear_caches(self):
2040  r"""clear_caches(Scale self)"""
2041  return _IMP_isd.Scale_clear_caches(self)
2042 
2043  def set_name(self, a0):
2044  r"""set_name(Scale self, std::string a0)"""
2045  return _IMP_isd.Scale_set_name(self, a0)
2046 
2047  def set_check_level(self, a0):
2048  r"""set_check_level(Scale self, IMP::CheckLevel a0)"""
2049  return _IMP_isd.Scale_set_check_level(self, a0)
2050 
2051  def add_to_derivative(self, a0, a1, a2):
2052  r"""add_to_derivative(Scale self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2053  return _IMP_isd.Scale_add_to_derivative(self, a0, a1, a2)
2054 
2055  def set_is_optimized(self, a0, a1):
2056  r"""set_is_optimized(Scale self, FloatKey a0, bool a1)"""
2057  return _IMP_isd.Scale_set_is_optimized(self, a0, a1)
2058 
2059  def get_is_optimized(self, a0):
2060  r"""get_is_optimized(Scale self, FloatKey a0) -> bool"""
2061  return _IMP_isd.Scale_get_is_optimized(self, a0)
2062 
2063  def get_check_level(self):
2064  r"""get_check_level(Scale self) -> IMP::CheckLevel"""
2065  return _IMP_isd.Scale_get_check_level(self)
2066 
2067  def __eq__(self, *args):
2068  r"""
2069  __eq__(Scale self, Scale o) -> bool
2070  __eq__(Scale self, Particle d) -> bool
2071  """
2072  return _IMP_isd.Scale___eq__(self, *args)
2073 
2074  def __ne__(self, *args):
2075  r"""
2076  __ne__(Scale self, Scale o) -> bool
2077  __ne__(Scale self, Particle d) -> bool
2078  """
2079  return _IMP_isd.Scale___ne__(self, *args)
2080 
2081  def __le__(self, *args):
2082  r"""
2083  __le__(Scale self, Scale o) -> bool
2084  __le__(Scale self, Particle d) -> bool
2085  """
2086  return _IMP_isd.Scale___le__(self, *args)
2087 
2088  def __lt__(self, *args):
2089  r"""
2090  __lt__(Scale self, Scale o) -> bool
2091  __lt__(Scale self, Particle d) -> bool
2092  """
2093  return _IMP_isd.Scale___lt__(self, *args)
2094 
2095  def __ge__(self, *args):
2096  r"""
2097  __ge__(Scale self, Scale o) -> bool
2098  __ge__(Scale self, Particle d) -> bool
2099  """
2100  return _IMP_isd.Scale___ge__(self, *args)
2101 
2102  def __gt__(self, *args):
2103  r"""
2104  __gt__(Scale self, Scale o) -> bool
2105  __gt__(Scale self, Particle d) -> bool
2106  """
2107  return _IMP_isd.Scale___gt__(self, *args)
2108 
2109  def __hash__(self):
2110  r"""__hash__(Scale self) -> std::size_t"""
2111  return _IMP_isd.Scale___hash__(self)
2112 
2113  def __str__(self):
2114  r"""__str__(Scale self) -> std::string"""
2115  return _IMP_isd.Scale___str__(self)
2116 
2117  def __repr__(self):
2118  r"""__repr__(Scale self) -> std::string"""
2119  return _IMP_isd.Scale___repr__(self)
2120 
2121  def _get_as_binary(self):
2122  r"""_get_as_binary(Scale self) -> PyObject *"""
2123  return _IMP_isd.Scale__get_as_binary(self)
2124 
2125  def _set_from_binary(self, p):
2126  r"""_set_from_binary(Scale self, PyObject * p)"""
2127  return _IMP_isd.Scale__set_from_binary(self, p)
2128 
2129  def __getstate__(self):
2130  p = self._get_as_binary()
2131  if len(self.__dict__) > 1:
2132  d = self.__dict__.copy()
2133  del d['this']
2134  p = (d, p)
2135  return p
2136 
2137  def __setstate__(self, p):
2138  if not hasattr(self, 'this'):
2139  self.__init__()
2140  if isinstance(p, tuple):
2141  d, p = p
2142  self.__dict__.update(d)
2143  return self._set_from_binary(p)
2144 
2145  __swig_destroy__ = _IMP_isd.delete_Scale
2146 
2147 # Register Scale in _IMP_isd:
2148 _IMP_isd.Scale_swigregister(Scale)
2149 class Switching(Nuisance):
2150  r"""Proxy of C++ IMP::isd::Switching class."""
2151 
2152  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2153 
2154  def __init__(self, *args):
2155  r"""
2156  __init__(Switching self) -> Switching
2157  __init__(Switching self, Model m, ParticleIndex id) -> Switching
2158  __init__(Switching self, _ParticleAdaptor d) -> Switching
2159  """
2160  _IMP_isd.Switching_swiginit(self, _IMP_isd.new_Switching(*args))
2161 
2162  def show(self, *args):
2163  r"""show(Switching self, _ostream out=std::cout)"""
2164  return _IMP_isd.Switching_show(self, *args)
2165 
2166  @staticmethod
2167  def setup_particle(*args):
2168  r"""
2169  setup_particle(Model m, ParticleIndex pi) -> Switching
2170  setup_particle(_ParticleAdaptor pa) -> Switching
2171  setup_particle(Model m, ParticleIndex pi, double switching) -> Switching
2172  setup_particle(_ParticleAdaptor pa, double switching) -> Switching
2173  """
2174  return _IMP_isd.Switching_setup_particle(*args)
2175 
2176  @staticmethod
2177  def get_is_setup(*args):
2178  r"""
2179  get_is_setup(_ParticleAdaptor p) -> bool
2180  get_is_setup(Model m, ParticleIndex pi) -> bool
2181  """
2182  return _IMP_isd.Switching_get_is_setup(*args)
2183 
2184  def get_switching(self):
2185  r"""get_switching(Switching self) -> IMP::Float"""
2186  return _IMP_isd.Switching_get_switching(self)
2187 
2188  def set_switching(self, d):
2189  r"""set_switching(Switching self, IMP::Float d)"""
2190  return _IMP_isd.Switching_set_switching(self, d)
2191 
2192  def add_to_switching_derivative(self, d, accum):
2193  r"""add_to_switching_derivative(Switching self, IMP::Float d, DerivativeAccumulator accum)"""
2194  return _IMP_isd.Switching_add_to_switching_derivative(self, d, accum)
2195 
2196  def get_switching_derivative(self):
2197  r"""get_switching_derivative(Switching self) -> IMP::Float"""
2198  return _IMP_isd.Switching_get_switching_derivative(self)
2199 
2200  @staticmethod
2201  def get_switching_key():
2202  r"""get_switching_key() -> FloatKey"""
2203  return _IMP_isd.Switching_get_switching_key()
2204 
2205  def get_switching_is_optimized(self):
2206  r"""get_switching_is_optimized(Switching self) -> bool"""
2207  return _IMP_isd.Switching_get_switching_is_optimized(self)
2208 
2209  def set_switching_is_optimized(self, val):
2210  r"""set_switching_is_optimized(Switching self, bool val)"""
2211  return _IMP_isd.Switching_set_switching_is_optimized(self, val)
2212 
2213  def add_attribute(self, *args):
2214  r"""
2215  add_attribute(Switching self, FloatKey k, IMP::Float v, bool opt)
2216  add_attribute(Switching self, FloatKey a0, IMP::Float a1)
2217  add_attribute(Switching self, IntKey a0, IMP::Int a1)
2218  add_attribute(Switching self, FloatsKey a0, IMP::Floats a1)
2219  add_attribute(Switching self, IntsKey a0, IMP::Ints a1)
2220  add_attribute(Switching self, StringKey a0, IMP::String a1)
2221  add_attribute(Switching self, ParticleIndexKey a0, Particle a1)
2222  add_attribute(Switching self, ObjectKey a0, Object a1)
2223  add_attribute(Switching self, SparseFloatKey a0, IMP::Float a1)
2224  add_attribute(Switching self, SparseIntKey a0, IMP::Int a1)
2225  add_attribute(Switching self, SparseStringKey a0, IMP::String a1)
2226  add_attribute(Switching self, SparseParticleIndexKey a0, ParticleIndex a1)
2227  """
2228  return _IMP_isd.Switching_add_attribute(self, *args)
2229 
2230  def get_value(self, *args):
2231  r"""
2232  get_value(Switching self, FloatKey a0) -> IMP::Float
2233  get_value(Switching self, IntKey a0) -> IMP::Int
2234  get_value(Switching self, FloatsKey a0) -> IMP::Floats
2235  get_value(Switching self, IntsKey a0) -> IMP::Ints
2236  get_value(Switching self, StringKey a0) -> IMP::String
2237  get_value(Switching self, ParticleIndexKey a0) -> Particle
2238  get_value(Switching self, ObjectKey a0) -> Object
2239  get_value(Switching self, SparseFloatKey a0) -> IMP::Float
2240  get_value(Switching self, SparseIntKey a0) -> IMP::Int
2241  get_value(Switching self, SparseStringKey a0) -> IMP::String
2242  get_value(Switching self, SparseParticleIndexKey a0) -> ParticleIndex
2243  """
2244  return _IMP_isd.Switching_get_value(self, *args)
2245 
2246  def set_value(self, *args):
2247  r"""
2248  set_value(Switching self, FloatKey a0, IMP::Float a1)
2249  set_value(Switching self, IntKey a0, IMP::Int a1)
2250  set_value(Switching self, FloatsKey a0, IMP::Floats a1)
2251  set_value(Switching self, IntsKey a0, IMP::Ints a1)
2252  set_value(Switching self, StringKey a0, IMP::String a1)
2253  set_value(Switching self, ParticleIndexKey a0, Particle a1)
2254  set_value(Switching self, ObjectKey a0, Object a1)
2255  set_value(Switching self, SparseFloatKey a0, IMP::Float a1)
2256  set_value(Switching self, SparseIntKey a0, IMP::Int a1)
2257  set_value(Switching self, SparseStringKey a0, IMP::String a1)
2258  set_value(Switching self, SparseParticleIndexKey a0, ParticleIndex a1)
2259  """
2260  return _IMP_isd.Switching_set_value(self, *args)
2261 
2262  def remove_attribute(self, *args):
2263  r"""
2264  remove_attribute(Switching self, FloatKey a0)
2265  remove_attribute(Switching self, IntKey a0)
2266  remove_attribute(Switching self, FloatsKey a0)
2267  remove_attribute(Switching self, IntsKey a0)
2268  remove_attribute(Switching self, StringKey a0)
2269  remove_attribute(Switching self, ParticleIndexKey a0)
2270  remove_attribute(Switching self, ObjectKey a0)
2271  remove_attribute(Switching self, SparseFloatKey a0)
2272  remove_attribute(Switching self, SparseIntKey a0)
2273  remove_attribute(Switching self, SparseStringKey a0)
2274  remove_attribute(Switching self, SparseParticleIndexKey a0)
2275  """
2276  return _IMP_isd.Switching_remove_attribute(self, *args)
2277 
2278  def has_attribute(self, *args):
2279  r"""
2280  has_attribute(Switching self, FloatKey a0) -> bool
2281  has_attribute(Switching self, IntKey a0) -> bool
2282  has_attribute(Switching self, FloatsKey a0) -> bool
2283  has_attribute(Switching self, IntsKey a0) -> bool
2284  has_attribute(Switching self, StringKey a0) -> bool
2285  has_attribute(Switching self, ParticleIndexKey a0) -> bool
2286  has_attribute(Switching self, ObjectKey a0) -> bool
2287  has_attribute(Switching self, SparseFloatKey a0) -> bool
2288  has_attribute(Switching self, SparseIntKey a0) -> bool
2289  has_attribute(Switching self, SparseStringKey a0) -> bool
2290  has_attribute(Switching self, SparseParticleIndexKey a0) -> bool
2291  """
2292  return _IMP_isd.Switching_has_attribute(self, *args)
2293 
2294  def get_derivative(self, a0):
2295  r"""get_derivative(Switching self, FloatKey a0) -> double"""
2296  return _IMP_isd.Switching_get_derivative(self, a0)
2297 
2298  def get_name(self):
2299  r"""get_name(Switching self) -> std::string"""
2300  return _IMP_isd.Switching_get_name(self)
2301 
2302  def clear_caches(self):
2303  r"""clear_caches(Switching self)"""
2304  return _IMP_isd.Switching_clear_caches(self)
2305 
2306  def set_name(self, a0):
2307  r"""set_name(Switching self, std::string a0)"""
2308  return _IMP_isd.Switching_set_name(self, a0)
2309 
2310  def set_check_level(self, a0):
2311  r"""set_check_level(Switching self, IMP::CheckLevel a0)"""
2312  return _IMP_isd.Switching_set_check_level(self, a0)
2313 
2314  def add_to_derivative(self, a0, a1, a2):
2315  r"""add_to_derivative(Switching self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2316  return _IMP_isd.Switching_add_to_derivative(self, a0, a1, a2)
2317 
2318  def set_is_optimized(self, a0, a1):
2319  r"""set_is_optimized(Switching self, FloatKey a0, bool a1)"""
2320  return _IMP_isd.Switching_set_is_optimized(self, a0, a1)
2321 
2322  def get_is_optimized(self, a0):
2323  r"""get_is_optimized(Switching self, FloatKey a0) -> bool"""
2324  return _IMP_isd.Switching_get_is_optimized(self, a0)
2325 
2326  def get_check_level(self):
2327  r"""get_check_level(Switching self) -> IMP::CheckLevel"""
2328  return _IMP_isd.Switching_get_check_level(self)
2329 
2330  def __eq__(self, *args):
2331  r"""
2332  __eq__(Switching self, Switching o) -> bool
2333  __eq__(Switching self, Particle d) -> bool
2334  """
2335  return _IMP_isd.Switching___eq__(self, *args)
2336 
2337  def __ne__(self, *args):
2338  r"""
2339  __ne__(Switching self, Switching o) -> bool
2340  __ne__(Switching self, Particle d) -> bool
2341  """
2342  return _IMP_isd.Switching___ne__(self, *args)
2343 
2344  def __le__(self, *args):
2345  r"""
2346  __le__(Switching self, Switching o) -> bool
2347  __le__(Switching self, Particle d) -> bool
2348  """
2349  return _IMP_isd.Switching___le__(self, *args)
2350 
2351  def __lt__(self, *args):
2352  r"""
2353  __lt__(Switching self, Switching o) -> bool
2354  __lt__(Switching self, Particle d) -> bool
2355  """
2356  return _IMP_isd.Switching___lt__(self, *args)
2357 
2358  def __ge__(self, *args):
2359  r"""
2360  __ge__(Switching self, Switching o) -> bool
2361  __ge__(Switching self, Particle d) -> bool
2362  """
2363  return _IMP_isd.Switching___ge__(self, *args)
2364 
2365  def __gt__(self, *args):
2366  r"""
2367  __gt__(Switching self, Switching o) -> bool
2368  __gt__(Switching self, Particle d) -> bool
2369  """
2370  return _IMP_isd.Switching___gt__(self, *args)
2371 
2372  def __hash__(self):
2373  r"""__hash__(Switching self) -> std::size_t"""
2374  return _IMP_isd.Switching___hash__(self)
2375 
2376  def __str__(self):
2377  r"""__str__(Switching self) -> std::string"""
2378  return _IMP_isd.Switching___str__(self)
2379 
2380  def __repr__(self):
2381  r"""__repr__(Switching self) -> std::string"""
2382  return _IMP_isd.Switching___repr__(self)
2383 
2384  def _get_as_binary(self):
2385  r"""_get_as_binary(Switching self) -> PyObject *"""
2386  return _IMP_isd.Switching__get_as_binary(self)
2387 
2388  def _set_from_binary(self, p):
2389  r"""_set_from_binary(Switching self, PyObject * p)"""
2390  return _IMP_isd.Switching__set_from_binary(self, p)
2391 
2392  def __getstate__(self):
2393  p = self._get_as_binary()
2394  if len(self.__dict__) > 1:
2395  d = self.__dict__.copy()
2396  del d['this']
2397  p = (d, p)
2398  return p
2399 
2400  def __setstate__(self, p):
2401  if not hasattr(self, 'this'):
2402  self.__init__()
2403  if isinstance(p, tuple):
2404  d, p = p
2405  self.__dict__.update(d)
2406  return self._set_from_binary(p)
2407 
2408  __swig_destroy__ = _IMP_isd.delete_Switching
2409 
2410 # Register Switching in _IMP_isd:
2411 _IMP_isd.Switching_swigregister(Switching)
2412 class Weight(IMP.Decorator):
2413  r"""Proxy of C++ IMP::isd::Weight class."""
2414 
2415  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2416 
2417  def __init__(self, *args):
2418  r"""
2419  __init__(Weight self) -> Weight
2420  __init__(Weight self, Model m, ParticleIndex id) -> Weight
2421  __init__(Weight self, _ParticleAdaptor d) -> Weight
2422  """
2423  _IMP_isd.Weight_swiginit(self, _IMP_isd.new_Weight(*args))
2424 
2425  def show(self, *args):
2426  r"""show(Weight self, _ostream out=std::cout)"""
2427  return _IMP_isd.Weight_show(self, *args)
2428 
2429  @staticmethod
2430  def setup_particle(*args):
2431  r"""
2432  setup_particle(Model m, ParticleIndex pi) -> Weight
2433  setup_particle(_ParticleAdaptor pa) -> Weight
2434  setup_particle(Model m, ParticleIndex pi, IMP::Int nweights) -> Weight
2435  setup_particle(_ParticleAdaptor pa, IMP::Int nweights) -> Weight
2436  setup_particle(Model m, ParticleIndex pi, VectorKD w) -> Weight
2437  setup_particle(_ParticleAdaptor pa, VectorKD w) -> Weight
2438  """
2439  return _IMP_isd.Weight_setup_particle(*args)
2440 
2441  @staticmethod
2442  def get_number_of_weights_key():
2443  r"""get_number_of_weights_key() -> IntKey"""
2444  return _IMP_isd.Weight_get_number_of_weights_key()
2445 
2446  @staticmethod
2447  def get_weight_key(i):
2448  r"""get_weight_key(int i) -> FloatKey"""
2449  return _IMP_isd.Weight_get_weight_key(i)
2450 
2451  def get_weight_keys(self):
2452  r"""get_weight_keys(Weight self) -> IMP::FloatKeys"""
2453  return _IMP_isd.Weight_get_weight_keys(self)
2454 
2455  def get_weight(self, i):
2456  r"""get_weight(Weight self, int i) -> IMP::Float"""
2457  return _IMP_isd.Weight_get_weight(self, i)
2458 
2459  def get_weights(self):
2460  r"""get_weights(Weight self) -> VectorKD"""
2461  return _IMP_isd.Weight_get_weights(self)
2462 
2463  def set_weight_lazy(self, i, wi):
2464  r"""set_weight_lazy(Weight self, int i, IMP::Float wi)"""
2465  return _IMP_isd.Weight_set_weight_lazy(self, i, wi)
2466 
2467  def set_weights_lazy(self, w):
2468  r"""set_weights_lazy(Weight self, VectorKD w)"""
2469  return _IMP_isd.Weight_set_weights_lazy(self, w)
2470 
2471  def set_weights(self, w):
2472  r"""set_weights(Weight self, VectorKD w)"""
2473  return _IMP_isd.Weight_set_weights(self, w)
2474 
2475  def get_weights_are_optimized(self):
2476  r"""get_weights_are_optimized(Weight self) -> bool"""
2477  return _IMP_isd.Weight_get_weights_are_optimized(self)
2478 
2479  def set_weights_are_optimized(self, tf):
2480  r"""set_weights_are_optimized(Weight self, bool tf)"""
2481  return _IMP_isd.Weight_set_weights_are_optimized(self, tf)
2482 
2483  def get_weight_derivative(self, i):
2484  r"""get_weight_derivative(Weight self, int i) -> IMP::Float"""
2485  return _IMP_isd.Weight_get_weight_derivative(self, i)
2486 
2487  def get_weights_derivatives(self):
2488  r"""get_weights_derivatives(Weight self) -> VectorKD"""
2489  return _IMP_isd.Weight_get_weights_derivatives(self)
2490 
2491  def add_to_weight_derivative(self, i, dwi, da):
2492  r"""add_to_weight_derivative(Weight self, int i, IMP::Float dwi, DerivativeAccumulator da)"""
2493  return _IMP_isd.Weight_add_to_weight_derivative(self, i, dwi, da)
2494 
2495  def add_to_weights_derivatives(self, dw, da):
2496  r"""add_to_weights_derivatives(Weight self, VectorKD dw, DerivativeAccumulator da)"""
2497  return _IMP_isd.Weight_add_to_weights_derivatives(self, dw, da)
2498 
2499  def add_weight_lazy(self, wi=0):
2500  r"""add_weight_lazy(Weight self, IMP::Float wi=0)"""
2501  return _IMP_isd.Weight_add_weight_lazy(self, wi)
2502 
2503  def add_weight(self, wi=0):
2504  r"""add_weight(Weight self, IMP::Float wi=0)"""
2505  return _IMP_isd.Weight_add_weight(self, wi)
2506 
2507  def get_number_of_weights(self):
2508  r"""get_number_of_weights(Weight self) -> IMP::Int"""
2509  return _IMP_isd.Weight_get_number_of_weights(self)
2510 
2511  def get_unit_simplex(self):
2512  r"""get_unit_simplex(Weight self) -> UnitSimplexKD"""
2513  return _IMP_isd.Weight_get_unit_simplex(self)
2514 
2515  def set_number_of_weights_lazy(self, nweights):
2516  r"""set_number_of_weights_lazy(Weight self, IMP::Int nweights)"""
2517  return _IMP_isd.Weight_set_number_of_weights_lazy(self, nweights)
2518 
2519  def set_number_of_weights(self, nweights):
2520  r"""set_number_of_weights(Weight self, IMP::Int nweights)"""
2521  return _IMP_isd.Weight_set_number_of_weights(self, nweights)
2522 
2523  @staticmethod
2524  def get_is_setup(*args):
2525  r"""
2526  get_is_setup(_ParticleAdaptor p) -> bool
2527  get_is_setup(Model m, ParticleIndex pi) -> bool
2528  """
2529  return _IMP_isd.Weight_get_is_setup(*args)
2530 
2531  def add_attribute(self, *args):
2532  r"""
2533  add_attribute(Weight self, FloatKey k, IMP::Float v, bool opt)
2534  add_attribute(Weight self, FloatKey a0, IMP::Float a1)
2535  add_attribute(Weight self, IntKey a0, IMP::Int a1)
2536  add_attribute(Weight self, FloatsKey a0, IMP::Floats a1)
2537  add_attribute(Weight self, IntsKey a0, IMP::Ints a1)
2538  add_attribute(Weight self, StringKey a0, IMP::String a1)
2539  add_attribute(Weight self, ParticleIndexKey a0, Particle a1)
2540  add_attribute(Weight self, ObjectKey a0, Object a1)
2541  add_attribute(Weight self, SparseFloatKey a0, IMP::Float a1)
2542  add_attribute(Weight self, SparseIntKey a0, IMP::Int a1)
2543  add_attribute(Weight self, SparseStringKey a0, IMP::String a1)
2544  add_attribute(Weight self, SparseParticleIndexKey a0, ParticleIndex a1)
2545  """
2546  return _IMP_isd.Weight_add_attribute(self, *args)
2547 
2548  def get_value(self, *args):
2549  r"""
2550  get_value(Weight self, FloatKey a0) -> IMP::Float
2551  get_value(Weight self, IntKey a0) -> IMP::Int
2552  get_value(Weight self, FloatsKey a0) -> IMP::Floats
2553  get_value(Weight self, IntsKey a0) -> IMP::Ints
2554  get_value(Weight self, StringKey a0) -> IMP::String
2555  get_value(Weight self, ParticleIndexKey a0) -> Particle
2556  get_value(Weight self, ObjectKey a0) -> Object
2557  get_value(Weight self, SparseFloatKey a0) -> IMP::Float
2558  get_value(Weight self, SparseIntKey a0) -> IMP::Int
2559  get_value(Weight self, SparseStringKey a0) -> IMP::String
2560  get_value(Weight self, SparseParticleIndexKey a0) -> ParticleIndex
2561  """
2562  return _IMP_isd.Weight_get_value(self, *args)
2563 
2564  def set_value(self, *args):
2565  r"""
2566  set_value(Weight self, FloatKey a0, IMP::Float a1)
2567  set_value(Weight self, IntKey a0, IMP::Int a1)
2568  set_value(Weight self, FloatsKey a0, IMP::Floats a1)
2569  set_value(Weight self, IntsKey a0, IMP::Ints a1)
2570  set_value(Weight self, StringKey a0, IMP::String a1)
2571  set_value(Weight self, ParticleIndexKey a0, Particle a1)
2572  set_value(Weight self, ObjectKey a0, Object a1)
2573  set_value(Weight self, SparseFloatKey a0, IMP::Float a1)
2574  set_value(Weight self, SparseIntKey a0, IMP::Int a1)
2575  set_value(Weight self, SparseStringKey a0, IMP::String a1)
2576  set_value(Weight self, SparseParticleIndexKey a0, ParticleIndex a1)
2577  """
2578  return _IMP_isd.Weight_set_value(self, *args)
2579 
2580  def remove_attribute(self, *args):
2581  r"""
2582  remove_attribute(Weight self, FloatKey a0)
2583  remove_attribute(Weight self, IntKey a0)
2584  remove_attribute(Weight self, FloatsKey a0)
2585  remove_attribute(Weight self, IntsKey a0)
2586  remove_attribute(Weight self, StringKey a0)
2587  remove_attribute(Weight self, ParticleIndexKey a0)
2588  remove_attribute(Weight self, ObjectKey a0)
2589  remove_attribute(Weight self, SparseFloatKey a0)
2590  remove_attribute(Weight self, SparseIntKey a0)
2591  remove_attribute(Weight self, SparseStringKey a0)
2592  remove_attribute(Weight self, SparseParticleIndexKey a0)
2593  """
2594  return _IMP_isd.Weight_remove_attribute(self, *args)
2595 
2596  def has_attribute(self, *args):
2597  r"""
2598  has_attribute(Weight self, FloatKey a0) -> bool
2599  has_attribute(Weight self, IntKey a0) -> bool
2600  has_attribute(Weight self, FloatsKey a0) -> bool
2601  has_attribute(Weight self, IntsKey a0) -> bool
2602  has_attribute(Weight self, StringKey a0) -> bool
2603  has_attribute(Weight self, ParticleIndexKey a0) -> bool
2604  has_attribute(Weight self, ObjectKey a0) -> bool
2605  has_attribute(Weight self, SparseFloatKey a0) -> bool
2606  has_attribute(Weight self, SparseIntKey a0) -> bool
2607  has_attribute(Weight self, SparseStringKey a0) -> bool
2608  has_attribute(Weight self, SparseParticleIndexKey a0) -> bool
2609  """
2610  return _IMP_isd.Weight_has_attribute(self, *args)
2611 
2612  def get_derivative(self, a0):
2613  r"""get_derivative(Weight self, FloatKey a0) -> double"""
2614  return _IMP_isd.Weight_get_derivative(self, a0)
2615 
2616  def get_name(self):
2617  r"""get_name(Weight self) -> std::string"""
2618  return _IMP_isd.Weight_get_name(self)
2619 
2620  def clear_caches(self):
2621  r"""clear_caches(Weight self)"""
2622  return _IMP_isd.Weight_clear_caches(self)
2623 
2624  def set_name(self, a0):
2625  r"""set_name(Weight self, std::string a0)"""
2626  return _IMP_isd.Weight_set_name(self, a0)
2627 
2628  def set_check_level(self, a0):
2629  r"""set_check_level(Weight self, IMP::CheckLevel a0)"""
2630  return _IMP_isd.Weight_set_check_level(self, a0)
2631 
2632  def add_to_derivative(self, a0, a1, a2):
2633  r"""add_to_derivative(Weight self, FloatKey a0, double a1, DerivativeAccumulator a2)"""
2634  return _IMP_isd.Weight_add_to_derivative(self, a0, a1, a2)
2635 
2636  def set_is_optimized(self, a0, a1):
2637  r"""set_is_optimized(Weight self, FloatKey a0, bool a1)"""
2638  return _IMP_isd.Weight_set_is_optimized(self, a0, a1)
2639 
2640  def get_is_optimized(self, a0):
2641  r"""get_is_optimized(Weight self, FloatKey a0) -> bool"""
2642  return _IMP_isd.Weight_get_is_optimized(self, a0)
2643 
2644  def get_check_level(self):
2645  r"""get_check_level(Weight self) -> IMP::CheckLevel"""
2646  return _IMP_isd.Weight_get_check_level(self)
2647 
2648  def __eq__(self, *args):
2649  r"""
2650  __eq__(Weight self, Weight o) -> bool
2651  __eq__(Weight self, Particle d) -> bool
2652  """
2653  return _IMP_isd.Weight___eq__(self, *args)
2654 
2655  def __ne__(self, *args):
2656  r"""
2657  __ne__(Weight self, Weight o) -> bool
2658  __ne__(Weight self, Particle d) -> bool
2659  """
2660  return _IMP_isd.Weight___ne__(self, *args)
2661 
2662  def __le__(self, *args):
2663  r"""
2664  __le__(Weight self, Weight o) -> bool
2665  __le__(Weight self, Particle d) -> bool
2666  """
2667  return _IMP_isd.Weight___le__(self, *args)
2668 
2669  def __lt__(self, *args):
2670  r"""
2671  __lt__(Weight self, Weight o) -> bool
2672  __lt__(Weight self, Particle d) -> bool
2673  """
2674  return _IMP_isd.Weight___lt__(self, *args)
2675 
2676  def __ge__(self, *args):
2677  r"""
2678  __ge__(Weight self, Weight o) -> bool
2679  __ge__(Weight self, Particle d) -> bool
2680  """
2681  return _IMP_isd.Weight___ge__(self, *args)
2682 
2683  def __gt__(self, *args):
2684  r"""
2685  __gt__(Weight self, Weight o) -> bool
2686  __gt__(Weight self, Particle d) -> bool
2687  """
2688  return _IMP_isd.Weight___gt__(self, *args)
2689 
2690  def __hash__(self):
2691  r"""__hash__(Weight self) -> std::size_t"""
2692  return _IMP_isd.Weight___hash__(self)
2693 
2694  def __str__(self):
2695  r"""__str__(Weight self) -> std::string"""
2696  return _IMP_isd.Weight___str__(self)
2697 
2698  def __repr__(self):
2699  r"""__repr__(Weight self) -> std::string"""
2700  return _IMP_isd.Weight___repr__(self)
2701 
2702  def _get_as_binary(self):
2703  r"""_get_as_binary(Weight self) -> PyObject *"""
2704  return _IMP_isd.Weight__get_as_binary(self)
2705 
2706  def _set_from_binary(self, p):
2707  r"""_set_from_binary(Weight self, PyObject * p)"""
2708  return _IMP_isd.Weight__set_from_binary(self, p)
2709 
2710  def __getstate__(self):
2711  p = self._get_as_binary()
2712  if len(self.__dict__) > 1:
2713  d = self.__dict__.copy()
2714  del d['this']
2715  p = (d, p)
2716  return p
2717 
2718  def __setstate__(self, p):
2719  if not hasattr(self, 'this'):
2720  self.__init__()
2721  if isinstance(p, tuple):
2722  d, p = p
2723  self.__dict__.update(d)
2724  return self._set_from_binary(p)
2725 
2726  __swig_destroy__ = _IMP_isd.delete_Weight
2727 
2728 # Register Weight in _IMP_isd:
2729 _IMP_isd.Weight_swigregister(Weight)
2730 cvar = _IMP_isd.cvar
2731 IMPISD_MAX_WEIGHTS = cvar.IMPISD_MAX_WEIGHTS
2732 
2733 
2734 def __lshift__(*args):
2735  r"""
2736  __lshift__(_ostream out, Nuisance n) -> _ostream
2737  __lshift__(_ostream out, Scale n) -> _ostream
2738  __lshift__(_ostream out, Switching n) -> _ostream
2739  __lshift__(_ostream out, Weight n) -> _ostream
2740  """
2741  return _IMP_isd.__lshift__(*args)
2742 class JeffreysRestraint(IMP.Restraint):
2743  r"""Proxy of C++ IMP::isd::JeffreysRestraint class."""
2744 
2745  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2746 
2747  def __init__(self, *args):
2748  r"""
2749  __init__(JeffreysRestraint self, Model m, Particle p) -> JeffreysRestraint
2750  __init__(JeffreysRestraint self) -> JeffreysRestraint
2751  """
2752  _IMP_isd.JeffreysRestraint_swiginit(self, _IMP_isd.new_JeffreysRestraint(*args))
2753 
2754  def do_get_inputs(self):
2755  r"""do_get_inputs(JeffreysRestraint self) -> IMP::ModelObjectsTemp"""
2756  return _IMP_isd.JeffreysRestraint_do_get_inputs(self)
2757 
2758  def get_version_info(self):
2759  r"""get_version_info(JeffreysRestraint self) -> VersionInfo"""
2760  return _IMP_isd.JeffreysRestraint_get_version_info(self)
2761  __swig_destroy__ = _IMP_isd.delete_JeffreysRestraint
2762 
2763  def get_index(self):
2764  r"""get_index(JeffreysRestraint self) -> ParticleIndex"""
2765  return _IMP_isd.JeffreysRestraint_get_index(self)
2766 
2767  def get_probability(self):
2768  r"""get_probability(JeffreysRestraint self) -> double"""
2769  return _IMP_isd.JeffreysRestraint_get_probability(self)
2770 
2771  def __str__(self):
2772  r"""__str__(JeffreysRestraint self) -> std::string"""
2773  return _IMP_isd.JeffreysRestraint___str__(self)
2774 
2775  def __repr__(self):
2776  r"""__repr__(JeffreysRestraint self) -> std::string"""
2777  return _IMP_isd.JeffreysRestraint___repr__(self)
2778 
2779  @staticmethod
2780  def get_from(o):
2781  return _object_cast_to_JeffreysRestraint(o)
2782 
2783 
2784  def _get_as_binary(self):
2785  r"""_get_as_binary(JeffreysRestraint self) -> PyObject *"""
2786  return _IMP_isd.JeffreysRestraint__get_as_binary(self)
2787 
2788  def _set_from_binary(self, p):
2789  r"""_set_from_binary(JeffreysRestraint self, PyObject * p)"""
2790  return _IMP_isd.JeffreysRestraint__set_from_binary(self, p)
2791 
2792  def __getstate__(self):
2793  p = self._get_as_binary()
2794  if len(self.__dict__) > 1:
2795  d = self.__dict__.copy()
2796  del d['this']
2797  p = (d, p)
2798  return p
2799 
2800  def __setstate__(self, p):
2801  if not hasattr(self, 'this'):
2802  self.__init__()
2803  if isinstance(p, tuple):
2804  d, p = p
2805  self.__dict__.update(d)
2806  return self._set_from_binary(p)
2807 
2808 
2809  def _get_jax(self, space):
2810  import jax.numpy as jnp
2811  indexes = jnp.array([self.get_index()])
2812  def score(jm):
2813  nuisance = jm['nuisance'][indexes]
2814  return jnp.sum(jnp.log(nuisance))
2815  return self._wrap_jax(score, keys=[Scale.get_scale_key()])
2816 
2817 
2818 # Register JeffreysRestraint in _IMP_isd:
2819 _IMP_isd.JeffreysRestraint_swigregister(JeffreysRestraint)
2820 class NormalSigmaPCRestraint(IMP.Restraint):
2821  r"""Proxy of C++ IMP::isd::NormalSigmaPCRestraint class."""
2822 
2823  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2824 
2825  def __init__(self, *args):
2826  r"""
2827  __init__(NormalSigmaPCRestraint self, Model m, ParticleIndex spi, double su, double alpha, std::string name="NormalSigmaPCRestraint%1%") -> NormalSigmaPCRestraint
2828  __init__(NormalSigmaPCRestraint self, Scale s, double su, double alpha, std::string name="NormalSigmaPCRestraint%1%") -> NormalSigmaPCRestraint
2829  """
2830  _IMP_isd.NormalSigmaPCRestraint_swiginit(self, _IMP_isd.new_NormalSigmaPCRestraint(*args))
2831 
2832  def get_sigma(self):
2833  r"""get_sigma(NormalSigmaPCRestraint self) -> Scale"""
2834  return _IMP_isd.NormalSigmaPCRestraint_get_sigma(self)
2835 
2836  def get_alpha(self):
2837  r"""get_alpha(NormalSigmaPCRestraint self) -> double"""
2838  return _IMP_isd.NormalSigmaPCRestraint_get_alpha(self)
2839 
2840  def get_sigma_upper(self):
2841  r"""get_sigma_upper(NormalSigmaPCRestraint self) -> double"""
2842  return _IMP_isd.NormalSigmaPCRestraint_get_sigma_upper(self)
2843 
2844  def get_probability(self):
2845  r"""get_probability(NormalSigmaPCRestraint self) -> double"""
2846  return _IMP_isd.NormalSigmaPCRestraint_get_probability(self)
2847 
2848  def do_get_inputs(self):
2849  r"""do_get_inputs(NormalSigmaPCRestraint self) -> IMP::ModelObjectsTemp"""
2850  return _IMP_isd.NormalSigmaPCRestraint_do_get_inputs(self)
2851 
2852  def get_version_info(self):
2853  r"""get_version_info(NormalSigmaPCRestraint self) -> VersionInfo"""
2854  return _IMP_isd.NormalSigmaPCRestraint_get_version_info(self)
2855  __swig_destroy__ = _IMP_isd.delete_NormalSigmaPCRestraint
2856 
2857  def __str__(self):
2858  r"""__str__(NormalSigmaPCRestraint self) -> std::string"""
2859  return _IMP_isd.NormalSigmaPCRestraint___str__(self)
2860 
2861  def __repr__(self):
2862  r"""__repr__(NormalSigmaPCRestraint self) -> std::string"""
2863  return _IMP_isd.NormalSigmaPCRestraint___repr__(self)
2864 
2865  @staticmethod
2866  def get_from(o):
2867  return _object_cast_to_NormalSigmaPCRestraint(o)
2868 
2869 
2870 # Register NormalSigmaPCRestraint in _IMP_isd:
2871 _IMP_isd.NormalSigmaPCRestraint_swigregister(NormalSigmaPCRestraint)
2872 class Distribution(IMP.Object):
2873  r"""Proxy of C++ IMP::isd::Distribution class."""
2874 
2875  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2876 
2877  def __init__(self, *args):
2878  r"""__init__(Distribution self, std::string name="Distribution %1%") -> Distribution"""
2879  if self.__class__ == Distribution:
2880  _self = None
2881  else:
2882  _self = self
2883  _IMP_isd.Distribution_swiginit(self, _IMP_isd.new_Distribution(_self, *args))
2884 
2885  if self.__class__ != Distribution:
2886  _director_objects.register(self)
2887 
2888 
2889 
2890 
2891  def get_type_name(self):
2892  r"""get_type_name(Distribution self) -> std::string"""
2893  return _IMP_isd.Distribution_get_type_name(self)
2894 
2895  def get_version_info(self):
2896  r"""get_version_info(Distribution self) -> VersionInfo"""
2897  return _IMP_isd.Distribution_get_version_info(self)
2898  __swig_destroy__ = _IMP_isd.delete_Distribution
2899 
2900  def __str__(self):
2901  r"""__str__(Distribution self) -> std::string"""
2902  return _IMP_isd.Distribution___str__(self)
2903 
2904  def __repr__(self):
2905  r"""__repr__(Distribution self) -> std::string"""
2906  return _IMP_isd.Distribution___repr__(self)
2907 
2908  @staticmethod
2909  def get_from(o):
2910  return _object_cast_to_Distribution(o)
2911 
2912 
2913  def do_show(self, out):
2914  pass
2915 
2916  @staticmethod
2917  def get_from(o):
2918  return _object_cast_to_Distribution(o)
2919 
2920  def __disown__(self):
2921  self.this.disown()
2922  _IMP_isd.disown_Distribution(self)
2923  return weakref.proxy(self)
2924 
2925  def do_destroy(self):
2926  r"""do_destroy(Distribution self)"""
2927  return _IMP_isd.Distribution_do_destroy(self)
2928 
2929 # Register Distribution in _IMP_isd:
2930 _IMP_isd.Distribution_swigregister(Distribution)
2931 class OneDimensionalDistribution(Distribution):
2932  r"""Proxy of C++ IMP::isd::OneDimensionalDistribution class."""
2933 
2934  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
2935 
2936  def do_evaluate(self, *args):
2937  r"""
2938  do_evaluate(OneDimensionalDistribution self, double v) -> double
2939  do_evaluate(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2940  """
2941  return _IMP_isd.OneDimensionalDistribution_do_evaluate(self, *args)
2942 
2943  def do_get_density(self, *args):
2944  r"""
2945  do_get_density(OneDimensionalDistribution self, double v) -> double
2946  do_get_density(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2947  """
2948  return _IMP_isd.OneDimensionalDistribution_do_get_density(self, *args)
2949 
2950  def __init__(self, *args):
2951  r"""__init__(OneDimensionalDistribution self, std::string name="OneDimensionalDistribution %1%") -> OneDimensionalDistribution"""
2952  if self.__class__ == OneDimensionalDistribution:
2953  _self = None
2954  else:
2955  _self = self
2956  _IMP_isd.OneDimensionalDistribution_swiginit(self, _IMP_isd.new_OneDimensionalDistribution(_self, *args))
2957 
2958  if self.__class__ != OneDimensionalDistribution:
2959  _director_objects.register(self)
2960 
2961 
2962 
2963 
2964  def evaluate(self, *args):
2965  r"""
2966  evaluate(OneDimensionalDistribution self, double v) -> double
2967  evaluate(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2968  """
2969  return _IMP_isd.OneDimensionalDistribution_evaluate(self, *args)
2970 
2971  def get_density(self, *args):
2972  r"""
2973  get_density(OneDimensionalDistribution self, double v) -> double
2974  get_density(OneDimensionalDistribution self, IMP::Floats const & vs) -> IMP::Floats
2975  """
2976  return _IMP_isd.OneDimensionalDistribution_get_density(self, *args)
2977 
2978  def get_type_name(self):
2979  r"""get_type_name(OneDimensionalDistribution self) -> std::string"""
2980  return _IMP_isd.OneDimensionalDistribution_get_type_name(self)
2981 
2982  def get_version_info(self):
2983  r"""get_version_info(OneDimensionalDistribution self) -> VersionInfo"""
2984  return _IMP_isd.OneDimensionalDistribution_get_version_info(self)
2985  __swig_destroy__ = _IMP_isd.delete_OneDimensionalDistribution
2986 
2987  def __str__(self):
2988  r"""__str__(OneDimensionalDistribution self) -> std::string"""
2989  return _IMP_isd.OneDimensionalDistribution___str__(self)
2990 
2991  def __repr__(self):
2992  r"""__repr__(OneDimensionalDistribution self) -> std::string"""
2993  return _IMP_isd.OneDimensionalDistribution___repr__(self)
2994 
2995  @staticmethod
2996  def get_from(o):
2997  return _object_cast_to_OneDimensionalDistribution(o)
2998 
2999 
3000  def do_show(self, out):
3001  pass
3002 
3003  @staticmethod
3004  def get_from(o):
3005  return _object_cast_to_OneDimensionalDistribution(o)
3006 
3007  def __disown__(self):
3008  self.this.disown()
3009  _IMP_isd.disown_OneDimensionalDistribution(self)
3010  return weakref.proxy(self)
3011 
3012  def do_destroy(self):
3013  r"""do_destroy(OneDimensionalDistribution self)"""
3014  return _IMP_isd.OneDimensionalDistribution_do_destroy(self)
3015 
3016 # Register OneDimensionalDistribution in _IMP_isd:
3017 _IMP_isd.OneDimensionalDistribution_swigregister(OneDimensionalDistribution)
3018 class OneDimensionalSufficientDistribution(Distribution):
3019  r"""Proxy of C++ IMP::isd::OneDimensionalSufficientDistribution class."""
3020 
3021  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3022 
3023  def do_update_sufficient_statistics(self, vs):
3024  r"""do_update_sufficient_statistics(OneDimensionalSufficientDistribution self, IMP::Floats vs)"""
3025  return _IMP_isd.OneDimensionalSufficientDistribution_do_update_sufficient_statistics(self, vs)
3026 
3027  def do_get_sufficient_statistics(self):
3028  r"""do_get_sufficient_statistics(OneDimensionalSufficientDistribution self) -> IMP::Floats"""
3029  return _IMP_isd.OneDimensionalSufficientDistribution_do_get_sufficient_statistics(self)
3030 
3031  def do_evaluate(self):
3032  r"""do_evaluate(OneDimensionalSufficientDistribution self) -> double"""
3033  return _IMP_isd.OneDimensionalSufficientDistribution_do_evaluate(self)
3034 
3035  def do_get_density(self):
3036  r"""do_get_density(OneDimensionalSufficientDistribution self) -> double"""
3037  return _IMP_isd.OneDimensionalSufficientDistribution_do_get_density(self)
3038 
3039  def __init__(self, *args):
3040  r"""__init__(OneDimensionalSufficientDistribution self, std::string name="OneDimensionalSufficientDistribution %1%") -> OneDimensionalSufficientDistribution"""
3041  if self.__class__ == OneDimensionalSufficientDistribution:
3042  _self = None
3043  else:
3044  _self = self
3045  _IMP_isd.OneDimensionalSufficientDistribution_swiginit(self, _IMP_isd.new_OneDimensionalSufficientDistribution(_self, *args))
3046 
3047  if self.__class__ != OneDimensionalSufficientDistribution:
3048  _director_objects.register(self)
3049 
3050 
3051 
3052 
3053  def update_sufficient_statistics(self, vs):
3054  r"""update_sufficient_statistics(OneDimensionalSufficientDistribution self, IMP::Floats vs)"""
3055  return _IMP_isd.OneDimensionalSufficientDistribution_update_sufficient_statistics(self, vs)
3056 
3057  def get_sufficient_statistics(self):
3058  r"""get_sufficient_statistics(OneDimensionalSufficientDistribution self) -> IMP::Floats"""
3059  return _IMP_isd.OneDimensionalSufficientDistribution_get_sufficient_statistics(self)
3060 
3061  def evaluate(self):
3062  r"""evaluate(OneDimensionalSufficientDistribution self) -> double"""
3063  return _IMP_isd.OneDimensionalSufficientDistribution_evaluate(self)
3064 
3065  def get_density(self):
3066  r"""get_density(OneDimensionalSufficientDistribution self) -> double"""
3067  return _IMP_isd.OneDimensionalSufficientDistribution_get_density(self)
3068 
3069  def get_type_name(self):
3070  r"""get_type_name(OneDimensionalSufficientDistribution self) -> std::string"""
3071  return _IMP_isd.OneDimensionalSufficientDistribution_get_type_name(self)
3072 
3073  def get_version_info(self):
3074  r"""get_version_info(OneDimensionalSufficientDistribution self) -> VersionInfo"""
3075  return _IMP_isd.OneDimensionalSufficientDistribution_get_version_info(self)
3076  __swig_destroy__ = _IMP_isd.delete_OneDimensionalSufficientDistribution
3077 
3078  def __str__(self):
3079  r"""__str__(OneDimensionalSufficientDistribution self) -> std::string"""
3080  return _IMP_isd.OneDimensionalSufficientDistribution___str__(self)
3081 
3082  def __repr__(self):
3083  r"""__repr__(OneDimensionalSufficientDistribution self) -> std::string"""
3084  return _IMP_isd.OneDimensionalSufficientDistribution___repr__(self)
3085 
3086  @staticmethod
3087  def get_from(o):
3088  return _object_cast_to_OneDimensionalSufficientDistribution(o)
3089 
3090 
3091  def do_show(self, out):
3092  pass
3093 
3094  @staticmethod
3095  def get_from(o):
3096  return _object_cast_to_OneDimensionalSufficientDistribution(o)
3097 
3098  def __disown__(self):
3099  self.this.disown()
3100  _IMP_isd.disown_OneDimensionalSufficientDistribution(self)
3101  return weakref.proxy(self)
3102 
3103  def do_destroy(self):
3104  r"""do_destroy(OneDimensionalSufficientDistribution self)"""
3105  return _IMP_isd.OneDimensionalSufficientDistribution_do_destroy(self)
3106 
3107 # Register OneDimensionalSufficientDistribution in _IMP_isd:
3108 _IMP_isd.OneDimensionalSufficientDistribution_swigregister(OneDimensionalSufficientDistribution)
3109 class FNormal(OneDimensionalSufficientDistribution):
3110  r"""Proxy of C++ IMP::isd::FNormal class."""
3111 
3112  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3113 
3114  def __init__(self, FA, JA, FM, sigma):
3115  r"""__init__(FNormal self, double FA, double JA, double FM, double sigma) -> FNormal"""
3116  _IMP_isd.FNormal_swiginit(self, _IMP_isd.new_FNormal(FA, JA, FM, sigma))
3117 
3118  def update_sufficient_statistics(self, FA):
3119  r"""update_sufficient_statistics(FNormal self, double FA)"""
3120  return _IMP_isd.FNormal_update_sufficient_statistics(self, FA)
3121 
3122  def do_update_sufficient_statistics(self, data):
3123  r"""do_update_sufficient_statistics(FNormal self, IMP::Floats data)"""
3124  return _IMP_isd.FNormal_do_update_sufficient_statistics(self, data)
3125 
3126  def do_get_sufficient_statistics(self):
3127  r"""do_get_sufficient_statistics(FNormal self) -> IMP::Floats"""
3128  return _IMP_isd.FNormal_do_get_sufficient_statistics(self)
3129 
3130  def do_evaluate(self):
3131  r"""do_evaluate(FNormal self) -> double"""
3132  return _IMP_isd.FNormal_do_evaluate(self)
3133 
3134  def evaluate_derivative_FA(self):
3135  r"""evaluate_derivative_FA(FNormal self) -> double"""
3136  return _IMP_isd.FNormal_evaluate_derivative_FA(self)
3137 
3138  def evaluate_derivative_JA(self):
3139  r"""evaluate_derivative_JA(FNormal self) -> double"""
3140  return _IMP_isd.FNormal_evaluate_derivative_JA(self)
3141 
3142  def evaluate_derivative_FM(self):
3143  r"""evaluate_derivative_FM(FNormal self) -> double"""
3144  return _IMP_isd.FNormal_evaluate_derivative_FM(self)
3145 
3146  def evaluate_derivative_sigma(self):
3147  r"""evaluate_derivative_sigma(FNormal self) -> double"""
3148  return _IMP_isd.FNormal_evaluate_derivative_sigma(self)
3149 
3150  def do_get_density(self):
3151  r"""do_get_density(FNormal self) -> double"""
3152  return _IMP_isd.FNormal_do_get_density(self)
3153 
3154  def set_FA(self, f):
3155  r"""set_FA(FNormal self, double f)"""
3156  return _IMP_isd.FNormal_set_FA(self, f)
3157 
3158  def set_JA(self, f):
3159  r"""set_JA(FNormal self, double f)"""
3160  return _IMP_isd.FNormal_set_JA(self, f)
3161 
3162  def set_FM(self, f):
3163  r"""set_FM(FNormal self, double f)"""
3164  return _IMP_isd.FNormal_set_FM(self, f)
3165 
3166  def set_sigma(self, f):
3167  r"""set_sigma(FNormal self, double f)"""
3168  return _IMP_isd.FNormal_set_sigma(self, f)
3169  __swig_destroy__ = _IMP_isd.delete_FNormal
3170 
3171  def __str__(self):
3172  r"""__str__(FNormal self) -> std::string"""
3173  return _IMP_isd.FNormal___str__(self)
3174 
3175  def __repr__(self):
3176  r"""__repr__(FNormal self) -> std::string"""
3177  return _IMP_isd.FNormal___repr__(self)
3178 
3179  @staticmethod
3180  def get_from(o):
3181  return _object_cast_to_FNormal(o)
3182 
3183 
3184 # Register FNormal in _IMP_isd:
3185 _IMP_isd.FNormal_swigregister(FNormal)
3186 class FStudentT(OneDimensionalSufficientDistribution):
3187  r"""Proxy of C++ IMP::isd::FStudentT class."""
3188 
3189  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3190 
3191  def __init__(self, *args):
3192  r"""
3193  __init__(FStudentT self, IMP::Floats FXs, IMP::Floats JXs, double FM, double sigma, double nu, std::string name="FStudentT %1%") -> FStudentT
3194  __init__(FStudentT self, double sumFX, double sumFX2, unsigned int N, double LogJX, double FM, double sigma, double nu, std::string name="FStudentT %1%") -> FStudentT
3195  """
3196  _IMP_isd.FStudentT_swiginit(self, _IMP_isd.new_FStudentT(*args))
3197 
3198  def update_sufficient_statistics(self, FXs, JXs):
3199  r"""update_sufficient_statistics(FStudentT self, IMP::Floats FXs, IMP::Floats JXs)"""
3200  return _IMP_isd.FStudentT_update_sufficient_statistics(self, FXs, JXs)
3201 
3202  def evaluate_derivative_Fx(self, Fx):
3203  r"""evaluate_derivative_Fx(FStudentT self, double Fx) -> double"""
3204  return _IMP_isd.FStudentT_evaluate_derivative_Fx(self, Fx)
3205 
3206  def evaluate_derivative_FX(self, FXs):
3207  r"""evaluate_derivative_FX(FStudentT self, IMP::Floats const FXs) -> IMP::Floats"""
3208  return _IMP_isd.FStudentT_evaluate_derivative_FX(self, FXs)
3209 
3210  def evaluate_derivative_LogJX(self):
3211  r"""evaluate_derivative_LogJX(FStudentT self) -> double"""
3212  return _IMP_isd.FStudentT_evaluate_derivative_LogJX(self)
3213 
3214  def evaluate_derivative_FM(self):
3215  r"""evaluate_derivative_FM(FStudentT self) -> double"""
3216  return _IMP_isd.FStudentT_evaluate_derivative_FM(self)
3217 
3218  def evaluate_derivative_sigma(self):
3219  r"""evaluate_derivative_sigma(FStudentT self) -> double"""
3220  return _IMP_isd.FStudentT_evaluate_derivative_sigma(self)
3221 
3222  def evaluate_derivative_nu(self):
3223  r"""evaluate_derivative_nu(FStudentT self) -> double"""
3224  return _IMP_isd.FStudentT_evaluate_derivative_nu(self)
3225 
3226  def update_cached_values(self):
3227  r"""update_cached_values(FStudentT self)"""
3228  return _IMP_isd.FStudentT_update_cached_values(self)
3229 
3230  def set_sumFX(self, v):
3231  r"""set_sumFX(FStudentT self, double v)"""
3232  return _IMP_isd.FStudentT_set_sumFX(self, v)
3233 
3234  def set_sumFX2(self, v):
3235  r"""set_sumFX2(FStudentT self, double v)"""
3236  return _IMP_isd.FStudentT_set_sumFX2(self, v)
3237 
3238  def set_N(self, v):
3239  r"""set_N(FStudentT self, unsigned int v)"""
3240  return _IMP_isd.FStudentT_set_N(self, v)
3241 
3242  def set_LogJX(self, v):
3243  r"""set_LogJX(FStudentT self, double v)"""
3244  return _IMP_isd.FStudentT_set_LogJX(self, v)
3245 
3246  def set_FM(self, v):
3247  r"""set_FM(FStudentT self, double v)"""
3248  return _IMP_isd.FStudentT_set_FM(self, v)
3249 
3250  def set_sigma(self, v):
3251  r"""set_sigma(FStudentT self, double v)"""
3252  return _IMP_isd.FStudentT_set_sigma(self, v)
3253 
3254  def set_nu(self, v):
3255  r"""set_nu(FStudentT self, double v)"""
3256  return _IMP_isd.FStudentT_set_nu(self, v)
3257 
3258  def get_sumFX(self):
3259  r"""get_sumFX(FStudentT self) -> double"""
3260  return _IMP_isd.FStudentT_get_sumFX(self)
3261 
3262  def get_sumFX2(self):
3263  r"""get_sumFX2(FStudentT self) -> double"""
3264  return _IMP_isd.FStudentT_get_sumFX2(self)
3265 
3266  def get_N(self):
3267  r"""get_N(FStudentT self) -> unsigned int"""
3268  return _IMP_isd.FStudentT_get_N(self)
3269 
3270  def get_LogJX(self):
3271  r"""get_LogJX(FStudentT self) -> double"""
3272  return _IMP_isd.FStudentT_get_LogJX(self)
3273 
3274  def get_FM(self):
3275  r"""get_FM(FStudentT self) -> double"""
3276  return _IMP_isd.FStudentT_get_FM(self)
3277 
3278  def get_sigma(self):
3279  r"""get_sigma(FStudentT self) -> double"""
3280  return _IMP_isd.FStudentT_get_sigma(self)
3281 
3282  def get_nu(self):
3283  r"""get_nu(FStudentT self) -> double"""
3284  return _IMP_isd.FStudentT_get_nu(self)
3285  __swig_destroy__ = _IMP_isd.delete_FStudentT
3286 
3287  def __str__(self):
3288  r"""__str__(FStudentT self) -> std::string"""
3289  return _IMP_isd.FStudentT___str__(self)
3290 
3291  def __repr__(self):
3292  r"""__repr__(FStudentT self) -> std::string"""
3293  return _IMP_isd.FStudentT___repr__(self)
3294 
3295  @staticmethod
3296  def get_from(o):
3297  return _object_cast_to_FStudentT(o)
3298 
3299 
3300 # Register FStudentT in _IMP_isd:
3301 _IMP_isd.FStudentT_swigregister(FStudentT)
3302 class vonMises(IMP.Object):
3303  r"""Proxy of C++ IMP::isd::vonMises class."""
3304 
3305  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3306 
3307  def __init__(self, x, mu, kappa):
3308  r"""__init__(vonMises self, double x, double mu, double kappa) -> vonMises"""
3309  _IMP_isd.vonMises_swiginit(self, _IMP_isd.new_vonMises(x, mu, kappa))
3310 
3311  def evaluate(self):
3312  r"""evaluate(vonMises self) -> double"""
3313  return _IMP_isd.vonMises_evaluate(self)
3314 
3315  def evaluate_derivative_x(self):
3316  r"""evaluate_derivative_x(vonMises self) -> double"""
3317  return _IMP_isd.vonMises_evaluate_derivative_x(self)
3318 
3319  def evaluate_derivative_mu(self):
3320  r"""evaluate_derivative_mu(vonMises self) -> double"""
3321  return _IMP_isd.vonMises_evaluate_derivative_mu(self)
3322 
3323  def evaluate_derivative_kappa(self):
3324  r"""evaluate_derivative_kappa(vonMises self) -> double"""
3325  return _IMP_isd.vonMises_evaluate_derivative_kappa(self)
3326 
3327  def density(self):
3328  r"""density(vonMises self) -> double"""
3329  return _IMP_isd.vonMises_density(self)
3330 
3331  def set_x(self, x):
3332  r"""set_x(vonMises self, double x)"""
3333  return _IMP_isd.vonMises_set_x(self, x)
3334 
3335  def set_mu(self, mu):
3336  r"""set_mu(vonMises self, double mu)"""
3337  return _IMP_isd.vonMises_set_mu(self, mu)
3338 
3339  def set_kappa(self, kappa):
3340  r"""set_kappa(vonMises self, double kappa)"""
3341  return _IMP_isd.vonMises_set_kappa(self, kappa)
3342 
3343  def get_version_info(self):
3344  r"""get_version_info(vonMises self) -> VersionInfo"""
3345  return _IMP_isd.vonMises_get_version_info(self)
3346  __swig_destroy__ = _IMP_isd.delete_vonMises
3347 
3348  def __str__(self):
3349  r"""__str__(vonMises self) -> std::string"""
3350  return _IMP_isd.vonMises___str__(self)
3351 
3352  def __repr__(self):
3353  r"""__repr__(vonMises self) -> std::string"""
3354  return _IMP_isd.vonMises___repr__(self)
3355 
3356  @staticmethod
3357  def get_from(o):
3358  return _object_cast_to_vonMises(o)
3359 
3360 
3361 # Register vonMises in _IMP_isd:
3362 _IMP_isd.vonMises_swigregister(vonMises)
3363 class vonMisesSufficient(IMP.Object):
3364  r"""Proxy of C++ IMP::isd::vonMisesSufficient class."""
3365 
3366  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3367 
3368  def __init__(self, *args):
3369  r"""
3370  __init__(vonMisesSufficient self, double chi, unsigned int N, double R0, double chiexp, double kappa) -> vonMisesSufficient
3371  __init__(vonMisesSufficient self, double chi, IMP::Floats obs, double kappa) -> vonMisesSufficient
3372  """
3373  _IMP_isd.vonMisesSufficient_swiginit(self, _IMP_isd.new_vonMisesSufficient(*args))
3374 
3375  def evaluate(self):
3376  r"""evaluate(vonMisesSufficient self) -> double"""
3377  return _IMP_isd.vonMisesSufficient_evaluate(self)
3378 
3379  def evaluate_derivative_x(self):
3380  r"""evaluate_derivative_x(vonMisesSufficient self) -> double"""
3381  return _IMP_isd.vonMisesSufficient_evaluate_derivative_x(self)
3382 
3383  def evaluate_derivative_kappa(self):
3384  r"""evaluate_derivative_kappa(vonMisesSufficient self) -> double"""
3385  return _IMP_isd.vonMisesSufficient_evaluate_derivative_kappa(self)
3386 
3387  def density(self):
3388  r"""density(vonMisesSufficient self) -> double"""
3389  return _IMP_isd.vonMisesSufficient_density(self)
3390 
3391  def get_x(self):
3392  r"""get_x(vonMisesSufficient self) -> double"""
3393  return _IMP_isd.vonMisesSufficient_get_x(self)
3394 
3395  def get_R0(self):
3396  r"""get_R0(vonMisesSufficient self) -> double"""
3397  return _IMP_isd.vonMisesSufficient_get_R0(self)
3398 
3399  def get_chiexp(self):
3400  r"""get_chiexp(vonMisesSufficient self) -> double"""
3401  return _IMP_isd.vonMisesSufficient_get_chiexp(self)
3402 
3403  def get_N(self):
3404  r"""get_N(vonMisesSufficient self) -> double"""
3405  return _IMP_isd.vonMisesSufficient_get_N(self)
3406 
3407  def get_kappa(self):
3408  r"""get_kappa(vonMisesSufficient self) -> double"""
3409  return _IMP_isd.vonMisesSufficient_get_kappa(self)
3410 
3411  def set_x(self, x):
3412  r"""set_x(vonMisesSufficient self, double x)"""
3413  return _IMP_isd.vonMisesSufficient_set_x(self, x)
3414 
3415  def set_R0(self, R0):
3416  r"""set_R0(vonMisesSufficient self, double R0)"""
3417  return _IMP_isd.vonMisesSufficient_set_R0(self, R0)
3418 
3419  def set_chiexp(self, chiexp):
3420  r"""set_chiexp(vonMisesSufficient self, double chiexp)"""
3421  return _IMP_isd.vonMisesSufficient_set_chiexp(self, chiexp)
3422 
3423  def set_N(self, N):
3424  r"""set_N(vonMisesSufficient self, unsigned int N)"""
3425  return _IMP_isd.vonMisesSufficient_set_N(self, N)
3426 
3427  def set_kappa(self, kappa):
3428  r"""set_kappa(vonMisesSufficient self, double kappa)"""
3429  return _IMP_isd.vonMisesSufficient_set_kappa(self, kappa)
3430 
3431  @staticmethod
3432  def get_sufficient_statistics(data):
3433  r"""get_sufficient_statistics(IMP::Floats data) -> IMP::Floats"""
3434  return _IMP_isd.vonMisesSufficient_get_sufficient_statistics(data)
3435 
3436  def get_version_info(self):
3437  r"""get_version_info(vonMisesSufficient self) -> VersionInfo"""
3438  return _IMP_isd.vonMisesSufficient_get_version_info(self)
3439  __swig_destroy__ = _IMP_isd.delete_vonMisesSufficient
3440 
3441  def __str__(self):
3442  r"""__str__(vonMisesSufficient self) -> std::string"""
3443  return _IMP_isd.vonMisesSufficient___str__(self)
3444 
3445  def __repr__(self):
3446  r"""__repr__(vonMisesSufficient self) -> std::string"""
3447  return _IMP_isd.vonMisesSufficient___repr__(self)
3448 
3449  @staticmethod
3450  def get_from(o):
3451  return _object_cast_to_vonMisesSufficient(o)
3452 
3453 
3454 # Register vonMisesSufficient in _IMP_isd:
3455 _IMP_isd.vonMisesSufficient_swigregister(vonMisesSufficient)
3456 class PenalizedComplexityPrior(OneDimensionalSufficientDistribution):
3457  r"""Proxy of C++ IMP::isd::PenalizedComplexityPrior class."""
3458 
3459  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3460 
3461  def __init__(self, *args):
3462  r"""__init__(PenalizedComplexityPrior self, double Dxi, double Jxi, double alpha, std::string name="PenalizedComplexityPrior %1%") -> PenalizedComplexityPrior"""
3463  _IMP_isd.PenalizedComplexityPrior_swiginit(self, _IMP_isd.new_PenalizedComplexityPrior(*args))
3464 
3465  def update_sufficient_statistics(self, Dxis, Jxis):
3466  r"""update_sufficient_statistics(PenalizedComplexityPrior self, IMP::Floats Dxis, IMP::Floats Jxis)"""
3467  return _IMP_isd.PenalizedComplexityPrior_update_sufficient_statistics(self, Dxis, Jxis)
3468 
3469  def evaluate_derivative_Dxi(self):
3470  r"""evaluate_derivative_Dxi(PenalizedComplexityPrior self) -> double"""
3471  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_Dxi(self)
3472 
3473  def evaluate_derivative_Jxi(self):
3474  r"""evaluate_derivative_Jxi(PenalizedComplexityPrior self) -> double"""
3475  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_Jxi(self)
3476 
3477  def evaluate_derivative_alpha(self):
3478  r"""evaluate_derivative_alpha(PenalizedComplexityPrior self) -> double"""
3479  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_alpha(self)
3480 
3481  def evaluate_derivative_xi(self, JJxi):
3482  r"""evaluate_derivative_xi(PenalizedComplexityPrior self, double JJxi) -> double"""
3483  return _IMP_isd.PenalizedComplexityPrior_evaluate_derivative_xi(self, JJxi)
3484 
3485  def set_Dxi(self, v):
3486  r"""set_Dxi(PenalizedComplexityPrior self, double v)"""
3487  return _IMP_isd.PenalizedComplexityPrior_set_Dxi(self, v)
3488 
3489  def set_Jxi(self, v):
3490  r"""set_Jxi(PenalizedComplexityPrior self, double v)"""
3491  return _IMP_isd.PenalizedComplexityPrior_set_Jxi(self, v)
3492 
3493  def set_alpha(self, v):
3494  r"""set_alpha(PenalizedComplexityPrior self, double v)"""
3495  return _IMP_isd.PenalizedComplexityPrior_set_alpha(self, v)
3496 
3497  def get_Dxi(self):
3498  r"""get_Dxi(PenalizedComplexityPrior self) -> double"""
3499  return _IMP_isd.PenalizedComplexityPrior_get_Dxi(self)
3500 
3501  def get_Jxi(self):
3502  r"""get_Jxi(PenalizedComplexityPrior self) -> double"""
3503  return _IMP_isd.PenalizedComplexityPrior_get_Jxi(self)
3504 
3505  def get_alpha(self):
3506  r"""get_alpha(PenalizedComplexityPrior self) -> double"""
3507  return _IMP_isd.PenalizedComplexityPrior_get_alpha(self)
3508  __swig_destroy__ = _IMP_isd.delete_PenalizedComplexityPrior
3509 
3510  def __str__(self):
3511  r"""__str__(PenalizedComplexityPrior self) -> std::string"""
3512  return _IMP_isd.PenalizedComplexityPrior___str__(self)
3513 
3514  def __repr__(self):
3515  r"""__repr__(PenalizedComplexityPrior self) -> std::string"""
3516  return _IMP_isd.PenalizedComplexityPrior___repr__(self)
3517 
3518  @staticmethod
3519  def get_from(o):
3520  return _object_cast_to_PenalizedComplexityPrior(o)
3521 
3522 
3523 # Register PenalizedComplexityPrior in _IMP_isd:
3524 _IMP_isd.PenalizedComplexityPrior_swigregister(PenalizedComplexityPrior)
3525 class vonMisesKappaJeffreysRestraint(IMP.Restraint):
3526  r"""Proxy of C++ IMP::isd::vonMisesKappaJeffreysRestraint class."""
3527 
3528  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3529 
3530  def __init__(self, m, kappa):
3531  r"""__init__(vonMisesKappaJeffreysRestraint self, Model m, Particle kappa) -> vonMisesKappaJeffreysRestraint"""
3532  _IMP_isd.vonMisesKappaJeffreysRestraint_swiginit(self, _IMP_isd.new_vonMisesKappaJeffreysRestraint(m, kappa))
3533 
3534  def do_get_inputs(self):
3535  r"""do_get_inputs(vonMisesKappaJeffreysRestraint self) -> IMP::ModelObjectsTemp"""
3536  return _IMP_isd.vonMisesKappaJeffreysRestraint_do_get_inputs(self)
3537 
3538  def get_version_info(self):
3539  r"""get_version_info(vonMisesKappaJeffreysRestraint self) -> VersionInfo"""
3540  return _IMP_isd.vonMisesKappaJeffreysRestraint_get_version_info(self)
3541  __swig_destroy__ = _IMP_isd.delete_vonMisesKappaJeffreysRestraint
3542 
3543  def get_probability(self):
3544  r"""get_probability(vonMisesKappaJeffreysRestraint self) -> double"""
3545  return _IMP_isd.vonMisesKappaJeffreysRestraint_get_probability(self)
3546 
3547  def __str__(self):
3548  r"""__str__(vonMisesKappaJeffreysRestraint self) -> std::string"""
3549  return _IMP_isd.vonMisesKappaJeffreysRestraint___str__(self)
3550 
3551  def __repr__(self):
3552  r"""__repr__(vonMisesKappaJeffreysRestraint self) -> std::string"""
3553  return _IMP_isd.vonMisesKappaJeffreysRestraint___repr__(self)
3554 
3555  @staticmethod
3556  def get_from(o):
3557  return _object_cast_to_vonMisesKappaJeffreysRestraint(o)
3558 
3559 
3560 # Register vonMisesKappaJeffreysRestraint in _IMP_isd:
3561 _IMP_isd.vonMisesKappaJeffreysRestraint_swigregister(vonMisesKappaJeffreysRestraint)
3562 class vonMisesKappaConjugateRestraint(IMP.Restraint):
3563  r"""Proxy of C++ IMP::isd::vonMisesKappaConjugateRestraint class."""
3564 
3565  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3566 
3567  def __init__(self, m, kappa, c=10.0, R0=0.0):
3568  r"""__init__(vonMisesKappaConjugateRestraint self, Model m, Particle kappa, double c=10.0, double R0=0.0) -> vonMisesKappaConjugateRestraint"""
3569  _IMP_isd.vonMisesKappaConjugateRestraint_swiginit(self, _IMP_isd.new_vonMisesKappaConjugateRestraint(m, kappa, c, R0))
3570 
3571  def do_get_inputs(self):
3572  r"""do_get_inputs(vonMisesKappaConjugateRestraint self) -> IMP::ModelObjectsTemp"""
3573  return _IMP_isd.vonMisesKappaConjugateRestraint_do_get_inputs(self)
3574 
3575  def get_version_info(self):
3576  r"""get_version_info(vonMisesKappaConjugateRestraint self) -> VersionInfo"""
3577  return _IMP_isd.vonMisesKappaConjugateRestraint_get_version_info(self)
3578  __swig_destroy__ = _IMP_isd.delete_vonMisesKappaConjugateRestraint
3579 
3580  def get_probability(self):
3581  r"""get_probability(vonMisesKappaConjugateRestraint self) -> double"""
3582  return _IMP_isd.vonMisesKappaConjugateRestraint_get_probability(self)
3583 
3584  def __str__(self):
3585  r"""__str__(vonMisesKappaConjugateRestraint self) -> std::string"""
3586  return _IMP_isd.vonMisesKappaConjugateRestraint___str__(self)
3587 
3588  def __repr__(self):
3589  r"""__repr__(vonMisesKappaConjugateRestraint self) -> std::string"""
3590  return _IMP_isd.vonMisesKappaConjugateRestraint___repr__(self)
3591 
3592  @staticmethod
3593  def get_from(o):
3594  return _object_cast_to_vonMisesKappaConjugateRestraint(o)
3595 
3596 
3597 # Register vonMisesKappaConjugateRestraint in _IMP_isd:
3598 _IMP_isd.vonMisesKappaConjugateRestraint_swigregister(vonMisesKappaConjugateRestraint)
3599 class NOERestraint(IMP.Restraint):
3600  r"""Proxy of C++ IMP::isd::NOERestraint class."""
3601 
3602  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3603 
3604  def __init__(self, m, p0, p1, sigma, gamma, Iexp):
3605  r"""__init__(NOERestraint self, Model m, Particle p0, Particle p1, Particle sigma, Particle gamma, double Iexp) -> NOERestraint"""
3606  _IMP_isd.NOERestraint_swiginit(self, _IMP_isd.new_NOERestraint(m, p0, p1, sigma, gamma, Iexp))
3607 
3608  def get_probability(self):
3609  r"""get_probability(NOERestraint self) -> double"""
3610  return _IMP_isd.NOERestraint_get_probability(self)
3611 
3612  def get_chi(self):
3613  r"""get_chi(NOERestraint self) -> double"""
3614  return _IMP_isd.NOERestraint_get_chi(self)
3615 
3616  def do_get_inputs(self):
3617  r"""do_get_inputs(NOERestraint self) -> IMP::ModelObjectsTemp"""
3618  return _IMP_isd.NOERestraint_do_get_inputs(self)
3619 
3620  def get_version_info(self):
3621  r"""get_version_info(NOERestraint self) -> VersionInfo"""
3622  return _IMP_isd.NOERestraint_get_version_info(self)
3623  __swig_destroy__ = _IMP_isd.delete_NOERestraint
3624 
3625  def __str__(self):
3626  r"""__str__(NOERestraint self) -> std::string"""
3627  return _IMP_isd.NOERestraint___str__(self)
3628 
3629  def __repr__(self):
3630  r"""__repr__(NOERestraint self) -> std::string"""
3631  return _IMP_isd.NOERestraint___repr__(self)
3632 
3633  @staticmethod
3634  def get_from(o):
3635  return _object_cast_to_NOERestraint(o)
3636 
3637 
3638 # Register NOERestraint in _IMP_isd:
3639 _IMP_isd.NOERestraint_swigregister(NOERestraint)
3640 class GaussianRestraint(IMP.Restraint):
3641  r"""Proxy of C++ IMP::isd::GaussianRestraint class."""
3642 
3643  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3644 
3645  def __init__(self, *args):
3646  r"""
3647  __init__(GaussianRestraint self, Particle x, Particle mu, Particle sigma) -> GaussianRestraint
3648  __init__(GaussianRestraint self, double x, Particle mu, Particle sigma) -> GaussianRestraint
3649  __init__(GaussianRestraint self, Particle x, double mu, Particle sigma) -> GaussianRestraint
3650  __init__(GaussianRestraint self, Particle x, Particle mu, double sigma) -> GaussianRestraint
3651  __init__(GaussianRestraint self, double x, double mu, Particle sigma) -> GaussianRestraint
3652  __init__(GaussianRestraint self, Particle x, double mu, double sigma) -> GaussianRestraint
3653  __init__(GaussianRestraint self, double x, Particle mu, double sigma) -> GaussianRestraint
3654  """
3655  _IMP_isd.GaussianRestraint_swiginit(self, _IMP_isd.new_GaussianRestraint(*args))
3656 
3657  def get_probability(self):
3658  r"""get_probability(GaussianRestraint self) -> double"""
3659  return _IMP_isd.GaussianRestraint_get_probability(self)
3660 
3661  def get_chi(self):
3662  r"""get_chi(GaussianRestraint self) -> double"""
3663  return _IMP_isd.GaussianRestraint_get_chi(self)
3664 
3665  def do_get_inputs(self):
3666  r"""do_get_inputs(GaussianRestraint self) -> IMP::ModelObjectsTemp"""
3667  return _IMP_isd.GaussianRestraint_do_get_inputs(self)
3668 
3669  def get_version_info(self):
3670  r"""get_version_info(GaussianRestraint self) -> VersionInfo"""
3671  return _IMP_isd.GaussianRestraint_get_version_info(self)
3672  __swig_destroy__ = _IMP_isd.delete_GaussianRestraint
3673 
3674  def __str__(self):
3675  r"""__str__(GaussianRestraint self) -> std::string"""
3676  return _IMP_isd.GaussianRestraint___str__(self)
3677 
3678  def __repr__(self):
3679  r"""__repr__(GaussianRestraint self) -> std::string"""
3680  return _IMP_isd.GaussianRestraint___repr__(self)
3681 
3682  @staticmethod
3683  def get_from(o):
3684  return _object_cast_to_GaussianRestraint(o)
3685 
3686 
3687 # Register GaussianRestraint in _IMP_isd:
3688 _IMP_isd.GaussianRestraint_swigregister(GaussianRestraint)
3689 class StudentTRestraint(IMP.Restraint):
3690  r"""Proxy of C++ IMP::isd::StudentTRestraint class."""
3691 
3692  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3693 
3694  def __init__(self, *args):
3695  r"""
3696  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3697  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3698  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3699  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3700  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3701  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3702  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, _ParticleIndexAdaptor mu, double sigma, double nu) -> StudentTRestraint
3703  __init__(StudentTRestraint self, Model m, _ParticleIndexAdaptor x, double mu, double sigma, double nu) -> StudentTRestraint
3704  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3705  __init__(StudentTRestraint self, Model m, double x, double mu, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3706  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3707  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3708  __init__(StudentTRestraint self, Model m, double x, double mu, double sigma, _ParticleIndexAdaptor nu) -> StudentTRestraint
3709  __init__(StudentTRestraint self, Model m, double x, double mu, _ParticleIndexAdaptor sigma, double nu) -> StudentTRestraint
3710  __init__(StudentTRestraint self, Model m, double x, _ParticleIndexAdaptor mu, double sigma, double nu) -> StudentTRestraint
3711  """
3712  _IMP_isd.StudentTRestraint_swiginit(self, _IMP_isd.new_StudentTRestraint(*args))
3713 
3714  def get_probability(self):
3715  r"""get_probability(StudentTRestraint self) -> double"""
3716  return _IMP_isd.StudentTRestraint_get_probability(self)
3717 
3718  def do_get_inputs(self):
3719  r"""do_get_inputs(StudentTRestraint self) -> IMP::ModelObjectsTemp"""
3720  return _IMP_isd.StudentTRestraint_do_get_inputs(self)
3721 
3722  def get_version_info(self):
3723  r"""get_version_info(StudentTRestraint self) -> VersionInfo"""
3724  return _IMP_isd.StudentTRestraint_get_version_info(self)
3725  __swig_destroy__ = _IMP_isd.delete_StudentTRestraint
3726 
3727  def __str__(self):
3728  r"""__str__(StudentTRestraint self) -> std::string"""
3729  return _IMP_isd.StudentTRestraint___str__(self)
3730 
3731  def __repr__(self):
3732  r"""__repr__(StudentTRestraint self) -> std::string"""
3733  return _IMP_isd.StudentTRestraint___repr__(self)
3734 
3735  @staticmethod
3736  def get_from(o):
3737  return _object_cast_to_StudentTRestraint(o)
3738 
3739 
3740 # Register StudentTRestraint in _IMP_isd:
3741 _IMP_isd.StudentTRestraint_swigregister(StudentTRestraint)
3742 class LognormalRestraint(IMP.Restraint):
3743  r"""Proxy of C++ IMP::isd::LognormalRestraint class."""
3744 
3745  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3746 
3747  def __init__(self, *args):
3748  r"""
3749  __init__(LognormalRestraint self, Particle x, Particle mu, Particle sigma) -> LognormalRestraint
3750  __init__(LognormalRestraint self, double x, Particle mu, Particle sigma) -> LognormalRestraint
3751  __init__(LognormalRestraint self, Particle x, double mu, Particle sigma) -> LognormalRestraint
3752  __init__(LognormalRestraint self, Particle x, Particle mu, double sigma) -> LognormalRestraint
3753  __init__(LognormalRestraint self, double x, double mu, Particle sigma) -> LognormalRestraint
3754  __init__(LognormalRestraint self, Particle x, double mu, double sigma) -> LognormalRestraint
3755  __init__(LognormalRestraint self, double x, Particle mu, double sigma) -> LognormalRestraint
3756  """
3757  _IMP_isd.LognormalRestraint_swiginit(self, _IMP_isd.new_LognormalRestraint(*args))
3758 
3759  def get_probability(self):
3760  r"""get_probability(LognormalRestraint self) -> double"""
3761  return _IMP_isd.LognormalRestraint_get_probability(self)
3762 
3763  def get_chi(self):
3764  r"""get_chi(LognormalRestraint self) -> double"""
3765  return _IMP_isd.LognormalRestraint_get_chi(self)
3766 
3767  def do_get_inputs(self):
3768  r"""do_get_inputs(LognormalRestraint self) -> IMP::ModelObjectsTemp"""
3769  return _IMP_isd.LognormalRestraint_do_get_inputs(self)
3770 
3771  def get_version_info(self):
3772  r"""get_version_info(LognormalRestraint self) -> VersionInfo"""
3773  return _IMP_isd.LognormalRestraint_get_version_info(self)
3774  __swig_destroy__ = _IMP_isd.delete_LognormalRestraint
3775 
3776  def __str__(self):
3777  r"""__str__(LognormalRestraint self) -> std::string"""
3778  return _IMP_isd.LognormalRestraint___str__(self)
3779 
3780  def __repr__(self):
3781  r"""__repr__(LognormalRestraint self) -> std::string"""
3782  return _IMP_isd.LognormalRestraint___repr__(self)
3783 
3784  @staticmethod
3785  def get_from(o):
3786  return _object_cast_to_LognormalRestraint(o)
3787 
3788 
3789 # Register LognormalRestraint in _IMP_isd:
3790 _IMP_isd.LognormalRestraint_swigregister(LognormalRestraint)
3791 class LognormalAmbiguousRestraint(IMP.Restraint):
3792  r"""Proxy of C++ IMP::isd::LognormalAmbiguousRestraint class."""
3793 
3794  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3795 
3796  def __init__(self, p1, p2, ki, sigmaG):
3797  r"""__init__(LognormalAmbiguousRestraint self, Particle p1, Particle p2, Particle ki, Particle sigmaG) -> LognormalAmbiguousRestraint"""
3798  _IMP_isd.LognormalAmbiguousRestraint_swiginit(self, _IMP_isd.new_LognormalAmbiguousRestraint(p1, p2, ki, sigmaG))
3799 
3800  def add_contribution(self, lexp, omega):
3801  r"""add_contribution(LognormalAmbiguousRestraint self, double lexp, Particle omega)"""
3802  return _IMP_isd.LognormalAmbiguousRestraint_add_contribution(self, lexp, omega)
3803 
3804  def get_number_of_contributions(self):
3805  r"""get_number_of_contributions(LognormalAmbiguousRestraint self) -> unsigned int"""
3806  return _IMP_isd.LognormalAmbiguousRestraint_get_number_of_contributions(self)
3807 
3808  def draw_k_from_posterior(self, kt):
3809  r"""draw_k_from_posterior(LognormalAmbiguousRestraint self, double kt)"""
3810  return _IMP_isd.LognormalAmbiguousRestraint_draw_k_from_posterior(self, kt)
3811 
3812  def get_probability(self):
3813  r"""get_probability(LognormalAmbiguousRestraint self) -> double"""
3814  return _IMP_isd.LognormalAmbiguousRestraint_get_probability(self)
3815 
3816  def do_get_inputs(self):
3817  r"""do_get_inputs(LognormalAmbiguousRestraint self) -> IMP::ModelObjectsTemp"""
3818  return _IMP_isd.LognormalAmbiguousRestraint_do_get_inputs(self)
3819 
3820  def get_version_info(self):
3821  r"""get_version_info(LognormalAmbiguousRestraint self) -> VersionInfo"""
3822  return _IMP_isd.LognormalAmbiguousRestraint_get_version_info(self)
3823  __swig_destroy__ = _IMP_isd.delete_LognormalAmbiguousRestraint
3824 
3825  def __str__(self):
3826  r"""__str__(LognormalAmbiguousRestraint self) -> std::string"""
3827  return _IMP_isd.LognormalAmbiguousRestraint___str__(self)
3828 
3829  def __repr__(self):
3830  r"""__repr__(LognormalAmbiguousRestraint self) -> std::string"""
3831  return _IMP_isd.LognormalAmbiguousRestraint___repr__(self)
3832 
3833  @staticmethod
3834  def get_from(o):
3835  return _object_cast_to_LognormalAmbiguousRestraint(o)
3836 
3837 
3838 # Register LognormalAmbiguousRestraint in _IMP_isd:
3839 _IMP_isd.LognormalAmbiguousRestraint_swigregister(LognormalAmbiguousRestraint)
3840 class AmbiguousNOERestraint(IMP.Restraint):
3841  r"""Proxy of C++ IMP::isd::AmbiguousNOERestraint class."""
3842 
3843  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3844 
3845  def __init__(self, *args):
3846  r"""
3847  __init__(AmbiguousNOERestraint self, Model m, PairContainer pc, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor gamma, double Iexp) -> AmbiguousNOERestraint
3848  __init__(AmbiguousNOERestraint self) -> AmbiguousNOERestraint
3849  """
3850  _IMP_isd.AmbiguousNOERestraint_swiginit(self, _IMP_isd.new_AmbiguousNOERestraint(*args))
3851 
3852  def get_probability(self):
3853  r"""get_probability(AmbiguousNOERestraint self) -> double"""
3854  return _IMP_isd.AmbiguousNOERestraint_get_probability(self)
3855 
3856  def get_chi(self):
3857  r"""get_chi(AmbiguousNOERestraint self) -> double"""
3858  return _IMP_isd.AmbiguousNOERestraint_get_chi(self)
3859 
3860  def do_get_inputs(self):
3861  r"""do_get_inputs(AmbiguousNOERestraint self) -> IMP::ModelObjectsTemp"""
3862  return _IMP_isd.AmbiguousNOERestraint_do_get_inputs(self)
3863 
3864  def get_version_info(self):
3865  r"""get_version_info(AmbiguousNOERestraint self) -> VersionInfo"""
3866  return _IMP_isd.AmbiguousNOERestraint_get_version_info(self)
3867  __swig_destroy__ = _IMP_isd.delete_AmbiguousNOERestraint
3868 
3869  def __str__(self):
3870  r"""__str__(AmbiguousNOERestraint self) -> std::string"""
3871  return _IMP_isd.AmbiguousNOERestraint___str__(self)
3872 
3873  def __repr__(self):
3874  r"""__repr__(AmbiguousNOERestraint self) -> std::string"""
3875  return _IMP_isd.AmbiguousNOERestraint___repr__(self)
3876 
3877  @staticmethod
3878  def get_from(o):
3879  return _object_cast_to_AmbiguousNOERestraint(o)
3880 
3881 
3882  def _get_as_binary(self):
3883  r"""_get_as_binary(AmbiguousNOERestraint self) -> PyObject *"""
3884  return _IMP_isd.AmbiguousNOERestraint__get_as_binary(self)
3885 
3886  def _set_from_binary(self, p):
3887  r"""_set_from_binary(AmbiguousNOERestraint self, PyObject * p)"""
3888  return _IMP_isd.AmbiguousNOERestraint__set_from_binary(self, p)
3889 
3890  def __getstate__(self):
3891  p = self._get_as_binary()
3892  if len(self.__dict__) > 1:
3893  d = self.__dict__.copy()
3894  del d['this']
3895  p = (d, p)
3896  return p
3897 
3898  def __setstate__(self, p):
3899  if not hasattr(self, 'this'):
3900  self.__init__()
3901  if isinstance(p, tuple):
3902  d, p = p
3903  self.__dict__.update(d)
3904  return self._set_from_binary(p)
3905 
3906 
3907 # Register AmbiguousNOERestraint in _IMP_isd:
3908 _IMP_isd.AmbiguousNOERestraint_swigregister(AmbiguousNOERestraint)
3909 class MarginalNOERestraint(IMP.Restraint):
3910  r"""Proxy of C++ IMP::isd::MarginalNOERestraint class."""
3911 
3912  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3913 
3914  def __init__(self, m):
3915  r"""__init__(MarginalNOERestraint self, Model m) -> MarginalNOERestraint"""
3916  _IMP_isd.MarginalNOERestraint_swiginit(self, _IMP_isd.new_MarginalNOERestraint(m))
3917 
3918  def add_contribution(self, *args):
3919  r"""
3920  add_contribution(MarginalNOERestraint self, Particle p1, Particle p2, double Iexp)
3921  add_contribution(MarginalNOERestraint self, PairContainer pc, double Iexp)
3922  """
3923  return _IMP_isd.MarginalNOERestraint_add_contribution(self, *args)
3924 
3925  def get_log_gammahat(self):
3926  r"""get_log_gammahat(MarginalNOERestraint self) -> double"""
3927  return _IMP_isd.MarginalNOERestraint_get_log_gammahat(self)
3928 
3929  def get_SS(self):
3930  r"""get_SS(MarginalNOERestraint self) -> double"""
3931  return _IMP_isd.MarginalNOERestraint_get_SS(self)
3932 
3933  def get_number_of_contributions(self):
3934  r"""get_number_of_contributions(MarginalNOERestraint self) -> unsigned int"""
3935  return _IMP_isd.MarginalNOERestraint_get_number_of_contributions(self)
3936 
3937  def get_probability(self):
3938  r"""get_probability(MarginalNOERestraint self) -> double"""
3939  return _IMP_isd.MarginalNOERestraint_get_probability(self)
3940 
3941  def do_get_inputs(self):
3942  r"""do_get_inputs(MarginalNOERestraint self) -> IMP::ModelObjectsTemp"""
3943  return _IMP_isd.MarginalNOERestraint_do_get_inputs(self)
3944 
3945  def get_version_info(self):
3946  r"""get_version_info(MarginalNOERestraint self) -> VersionInfo"""
3947  return _IMP_isd.MarginalNOERestraint_get_version_info(self)
3948  __swig_destroy__ = _IMP_isd.delete_MarginalNOERestraint
3949 
3950  def __str__(self):
3951  r"""__str__(MarginalNOERestraint self) -> std::string"""
3952  return _IMP_isd.MarginalNOERestraint___str__(self)
3953 
3954  def __repr__(self):
3955  r"""__repr__(MarginalNOERestraint self) -> std::string"""
3956  return _IMP_isd.MarginalNOERestraint___repr__(self)
3957 
3958  @staticmethod
3959  def get_from(o):
3960  return _object_cast_to_MarginalNOERestraint(o)
3961 
3962 
3963 # Register MarginalNOERestraint in _IMP_isd:
3964 _IMP_isd.MarginalNOERestraint_swigregister(MarginalNOERestraint)
3965 class MarginalHBondRestraint(IMP.Restraint):
3966  r"""Proxy of C++ IMP::isd::MarginalHBondRestraint class."""
3967 
3968  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
3969 
3970  def __init__(self, m):
3971  r"""__init__(MarginalHBondRestraint self, Model m) -> MarginalHBondRestraint"""
3972  _IMP_isd.MarginalHBondRestraint_swiginit(self, _IMP_isd.new_MarginalHBondRestraint(m))
3973 
3974  def add_contribution(self, *args):
3975  r"""
3976  add_contribution(MarginalHBondRestraint self, Particle p1, Particle p2, double Iexp)
3977  add_contribution(MarginalHBondRestraint self, PairContainer pc, double Iexp)
3978  """
3979  return _IMP_isd.MarginalHBondRestraint_add_contribution(self, *args)
3980 
3981  def get_logsquares(self):
3982  r"""get_logsquares(MarginalHBondRestraint self) -> double"""
3983  return _IMP_isd.MarginalHBondRestraint_get_logsquares(self)
3984 
3985  def get_number_of_contributions(self):
3986  r"""get_number_of_contributions(MarginalHBondRestraint self) -> unsigned int"""
3987  return _IMP_isd.MarginalHBondRestraint_get_number_of_contributions(self)
3988 
3989  def get_probability(self):
3990  r"""get_probability(MarginalHBondRestraint self) -> double"""
3991  return _IMP_isd.MarginalHBondRestraint_get_probability(self)
3992 
3993  def do_get_inputs(self):
3994  r"""do_get_inputs(MarginalHBondRestraint self) -> IMP::ModelObjectsTemp"""
3995  return _IMP_isd.MarginalHBondRestraint_do_get_inputs(self)
3996 
3997  def get_version_info(self):
3998  r"""get_version_info(MarginalHBondRestraint self) -> VersionInfo"""
3999  return _IMP_isd.MarginalHBondRestraint_get_version_info(self)
4000  __swig_destroy__ = _IMP_isd.delete_MarginalHBondRestraint
4001 
4002  def __str__(self):
4003  r"""__str__(MarginalHBondRestraint self) -> std::string"""
4004  return _IMP_isd.MarginalHBondRestraint___str__(self)
4005 
4006  def __repr__(self):
4007  r"""__repr__(MarginalHBondRestraint self) -> std::string"""
4008  return _IMP_isd.MarginalHBondRestraint___repr__(self)
4009 
4010  @staticmethod
4011  def get_from(o):
4012  return _object_cast_to_MarginalHBondRestraint(o)
4013 
4014 
4015 # Register MarginalHBondRestraint in _IMP_isd:
4016 _IMP_isd.MarginalHBondRestraint_swigregister(MarginalHBondRestraint)
4017 class TALOSRestraint(IMP.Restraint):
4018  r"""Proxy of C++ IMP::isd::TALOSRestraint class."""
4019 
4020  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4021 
4022  def __init__(self, *args):
4023  r"""
4024  __init__(TALOSRestraint self, Model m, IMP::Particles p, IMP::Floats data, Particle kappa) -> TALOSRestraint
4025  __init__(TALOSRestraint self, Model m, Particle p1, Particle p2, Particle p3, Particle p4, IMP::Floats data, Particle kappa) -> TALOSRestraint
4026  __init__(TALOSRestraint self, Model m, IMP::Particles p, unsigned int N, double R0, double chiexp, Particle kappa) -> TALOSRestraint
4027  __init__(TALOSRestraint self, Model m, Particle p1, Particle p2, Particle p3, Particle p4, unsigned int N, double R0, double chiexp, Particle kappa) -> TALOSRestraint
4028  """
4029  _IMP_isd.TALOSRestraint_swiginit(self, _IMP_isd.new_TALOSRestraint(*args))
4030 
4031  def get_probability(self):
4032  r"""get_probability(TALOSRestraint self) -> double"""
4033  return _IMP_isd.TALOSRestraint_get_probability(self)
4034 
4035  def get_R0(self):
4036  r"""get_R0(TALOSRestraint self) -> double"""
4037  return _IMP_isd.TALOSRestraint_get_R0(self)
4038 
4039  def get_chiexp(self):
4040  r"""get_chiexp(TALOSRestraint self) -> double"""
4041  return _IMP_isd.TALOSRestraint_get_chiexp(self)
4042 
4043  def do_get_inputs(self):
4044  r"""do_get_inputs(TALOSRestraint self) -> IMP::ModelObjectsTemp"""
4045  return _IMP_isd.TALOSRestraint_do_get_inputs(self)
4046 
4047  def get_version_info(self):
4048  r"""get_version_info(TALOSRestraint self) -> VersionInfo"""
4049  return _IMP_isd.TALOSRestraint_get_version_info(self)
4050  __swig_destroy__ = _IMP_isd.delete_TALOSRestraint
4051 
4052  def __str__(self):
4053  r"""__str__(TALOSRestraint self) -> std::string"""
4054  return _IMP_isd.TALOSRestraint___str__(self)
4055 
4056  def __repr__(self):
4057  r"""__repr__(TALOSRestraint self) -> std::string"""
4058  return _IMP_isd.TALOSRestraint___repr__(self)
4059 
4060  @staticmethod
4061  def get_from(o):
4062  return _object_cast_to_TALOSRestraint(o)
4063 
4064 
4065 # Register TALOSRestraint in _IMP_isd:
4066 _IMP_isd.TALOSRestraint_swigregister(TALOSRestraint)
4067 class RepulsiveDistancePairScore(IMP.PairScore):
4068  r"""Proxy of C++ IMP::isd::RepulsiveDistancePairScore class."""
4069 
4070  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4071 
4072  def __init__(self, d0, k):
4073  r"""__init__(RepulsiveDistancePairScore self, double d0, double k) -> RepulsiveDistancePairScore"""
4074  _IMP_isd.RepulsiveDistancePairScore_swiginit(self, _IMP_isd.new_RepulsiveDistancePairScore(d0, k))
4075 
4076  def get_rest_length(self):
4077  r"""get_rest_length(RepulsiveDistancePairScore self) -> double"""
4078  return _IMP_isd.RepulsiveDistancePairScore_get_rest_length(self)
4079 
4080  def get_stiffness(self):
4081  r"""get_stiffness(RepulsiveDistancePairScore self) -> double"""
4082  return _IMP_isd.RepulsiveDistancePairScore_get_stiffness(self)
4083 
4084  def do_get_inputs(self, m, pis):
4085  r"""do_get_inputs(RepulsiveDistancePairScore self, Model m, IMP::ParticleIndexes const & pis) -> IMP::ModelObjectsTemp"""
4086  return _IMP_isd.RepulsiveDistancePairScore_do_get_inputs(self, m, pis)
4087 
4088  def evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked=False):
4089  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"""
4090  return _IMP_isd.RepulsiveDistancePairScore_evaluate_indexes(self, m, p, da, lower_bound, upper_bound, all_indexes_checked)
4091 
4092  def evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked=False):
4093  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"""
4094  return _IMP_isd.RepulsiveDistancePairScore_evaluate_indexes_scores(self, m, p, da, lower_bound, upper_bound, score, all_indexes_checked)
4095 
4096  def evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked=False):
4097  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"""
4098  return _IMP_isd.RepulsiveDistancePairScore_evaluate_indexes_delta(self, m, p, da, indexes, score, all_indexes_checked)
4099 
4100  def evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked=False):
4101  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"""
4102  return _IMP_isd.RepulsiveDistancePairScore_evaluate_if_good_indexes(self, m, p, da, max, lower_bound, upper_bound, all_indexes_checked)
4103 
4104  def get_version_info(self):
4105  r"""get_version_info(RepulsiveDistancePairScore self) -> VersionInfo"""
4106  return _IMP_isd.RepulsiveDistancePairScore_get_version_info(self)
4107  __swig_destroy__ = _IMP_isd.delete_RepulsiveDistancePairScore
4108 
4109  def __str__(self):
4110  r"""__str__(RepulsiveDistancePairScore self) -> std::string"""
4111  return _IMP_isd.RepulsiveDistancePairScore___str__(self)
4112 
4113  def __repr__(self):
4114  r"""__repr__(RepulsiveDistancePairScore self) -> std::string"""
4115  return _IMP_isd.RepulsiveDistancePairScore___repr__(self)
4116 
4117  @staticmethod
4118  def get_from(o):
4119  return _object_cast_to_RepulsiveDistancePairScore(o)
4120 
4121 
4122 # Register RepulsiveDistancePairScore in _IMP_isd:
4123 _IMP_isd.RepulsiveDistancePairScore_swigregister(RepulsiveDistancePairScore)
4124 class AmbiguousRestraint(IMP.Restraint):
4125  r"""Proxy of C++ IMP::isd::AmbiguousRestraint class."""
4126 
4127  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4128 
4129  def __init__(self, *args):
4130  r"""
4131  __init__(AmbiguousRestraint self, Model m, int d, Restraint r0, Restraint r1) -> AmbiguousRestraint
4132  __init__(AmbiguousRestraint self, Model m, int d, IMP::Restraints rs) -> AmbiguousRestraint
4133  __init__(AmbiguousRestraint self) -> AmbiguousRestraint
4134  """
4135  _IMP_isd.AmbiguousRestraint_swiginit(self, _IMP_isd.new_AmbiguousRestraint(*args))
4136 
4137  def get_probability(self):
4138  r"""get_probability(AmbiguousRestraint self) -> double"""
4139  return _IMP_isd.AmbiguousRestraint_get_probability(self)
4140 
4141  def do_get_inputs(self):
4142  r"""do_get_inputs(AmbiguousRestraint self) -> IMP::ModelObjectsTemp"""
4143  return _IMP_isd.AmbiguousRestraint_do_get_inputs(self)
4144 
4145  def get_version_info(self):
4146  r"""get_version_info(AmbiguousRestraint self) -> VersionInfo"""
4147  return _IMP_isd.AmbiguousRestraint_get_version_info(self)
4148  __swig_destroy__ = _IMP_isd.delete_AmbiguousRestraint
4149 
4150  def __str__(self):
4151  r"""__str__(AmbiguousRestraint self) -> std::string"""
4152  return _IMP_isd.AmbiguousRestraint___str__(self)
4153 
4154  def __repr__(self):
4155  r"""__repr__(AmbiguousRestraint self) -> std::string"""
4156  return _IMP_isd.AmbiguousRestraint___repr__(self)
4157 
4158  @staticmethod
4159  def get_from(o):
4160  return _object_cast_to_AmbiguousRestraint(o)
4161 
4162 
4163  def _get_as_binary(self):
4164  r"""_get_as_binary(AmbiguousRestraint self) -> PyObject *"""
4165  return _IMP_isd.AmbiguousRestraint__get_as_binary(self)
4166 
4167  def _set_from_binary(self, p):
4168  r"""_set_from_binary(AmbiguousRestraint self, PyObject * p)"""
4169  return _IMP_isd.AmbiguousRestraint__set_from_binary(self, p)
4170 
4171  def __getstate__(self):
4172  p = self._get_as_binary()
4173  if len(self.__dict__) > 1:
4174  d = self.__dict__.copy()
4175  del d['this']
4176  p = (d, p)
4177  return p
4178 
4179  def __setstate__(self, p):
4180  if not hasattr(self, 'this'):
4181  self.__init__()
4182  if isinstance(p, tuple):
4183  d, p = p
4184  self.__dict__.update(d)
4185  return self._set_from_binary(p)
4186 
4187 
4188 # Register AmbiguousRestraint in _IMP_isd:
4189 _IMP_isd.AmbiguousRestraint_swigregister(AmbiguousRestraint)
4190 IMP_ISD_UNIVARIATE_FUNCTIONS_MINIMUM = _IMP_isd.IMP_ISD_UNIVARIATE_FUNCTIONS_MINIMUM
4191 
4192 class UnivariateFunction(IMP.Object):
4193  r"""Proxy of C++ IMP::isd::UnivariateFunction class."""
4194 
4195  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4196 
4197  def __init__(self, *args, **kwargs):
4198  raise AttributeError("No constructor defined - class is abstract")
4199 
4200  def __call__(self, *args):
4201  r"""
4202  __call__(UnivariateFunction self, IMP::Floats const & x) -> IMP::Floats
4203  __call__(UnivariateFunction self, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4204  __call__(UnivariateFunction self, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4205  """
4206  return _IMP_isd.UnivariateFunction___call__(self, *args)
4207 
4208  def has_changed(self):
4209  r"""has_changed(UnivariateFunction self) -> bool"""
4210  return _IMP_isd.UnivariateFunction_has_changed(self)
4211 
4212  def update(self):
4213  r"""update(UnivariateFunction self)"""
4214  return _IMP_isd.UnivariateFunction_update(self)
4215 
4216  def add_to_derivatives(self, x, accum):
4217  r"""add_to_derivatives(UnivariateFunction self, IMP::Floats const & x, DerivativeAccumulator accum)"""
4218  return _IMP_isd.UnivariateFunction_add_to_derivatives(self, x, accum)
4219 
4220  def add_to_particle_derivative(self, particle_no, value, accum):
4221  r"""add_to_particle_derivative(UnivariateFunction self, unsigned int particle_no, double value, DerivativeAccumulator accum)"""
4222  return _IMP_isd.UnivariateFunction_add_to_particle_derivative(self, particle_no, value, accum)
4223 
4224  def get_derivative_vector(self, particle_no, xlist):
4225  r"""get_derivative_vector(UnivariateFunction self, unsigned int particle_no, IMP::FloatsList const & xlist) -> Eigen::VectorXd"""
4226  return _IMP_isd.UnivariateFunction_get_derivative_vector(self, particle_no, xlist)
4227 
4228  def get_derivative_matrix(self, xlist, stupid):
4229  r"""get_derivative_matrix(UnivariateFunction self, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList"""
4230  return _IMP_isd.UnivariateFunction_get_derivative_matrix(self, xlist, stupid)
4231 
4232  def get_second_derivative_vector(self, *args):
4233  r"""
4234  get_second_derivative_vector(UnivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4235  get_second_derivative_vector(UnivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4236  """
4237  return _IMP_isd.UnivariateFunction_get_second_derivative_vector(self, *args)
4238 
4239  def get_ndims_x(self):
4240  r"""get_ndims_x(UnivariateFunction self) -> unsigned int"""
4241  return _IMP_isd.UnivariateFunction_get_ndims_x(self)
4242 
4243  def get_ndims_y(self):
4244  r"""get_ndims_y(UnivariateFunction self) -> unsigned int"""
4245  return _IMP_isd.UnivariateFunction_get_ndims_y(self)
4246 
4247  def get_number_of_particles(self):
4248  r"""get_number_of_particles(UnivariateFunction self) -> unsigned int"""
4249  return _IMP_isd.UnivariateFunction_get_number_of_particles(self)
4250 
4251  def get_particle_is_optimized(self, particle_no):
4252  r"""get_particle_is_optimized(UnivariateFunction self, unsigned int particle_no) -> bool"""
4253  return _IMP_isd.UnivariateFunction_get_particle_is_optimized(self, particle_no)
4254 
4255  def get_number_of_optimized_particles(self):
4256  r"""get_number_of_optimized_particles(UnivariateFunction self) -> unsigned int"""
4257  return _IMP_isd.UnivariateFunction_get_number_of_optimized_particles(self)
4258 
4259  def get_inputs(self):
4260  r"""get_inputs(UnivariateFunction self) -> IMP::ModelObjectsTemp"""
4261  return _IMP_isd.UnivariateFunction_get_inputs(self)
4262  __swig_destroy__ = _IMP_isd.delete_UnivariateFunction
4263 
4264  def __str__(self):
4265  r"""__str__(UnivariateFunction self) -> std::string"""
4266  return _IMP_isd.UnivariateFunction___str__(self)
4267 
4268  def __repr__(self):
4269  r"""__repr__(UnivariateFunction self) -> std::string"""
4270  return _IMP_isd.UnivariateFunction___repr__(self)
4271 
4272  @staticmethod
4273  def get_from(o):
4274  return _object_cast_to_UnivariateFunction(o)
4275 
4276 
4277 # Register UnivariateFunction in _IMP_isd:
4278 _IMP_isd.UnivariateFunction_swigregister(UnivariateFunction)
4279 class Linear1DFunction(UnivariateFunction):
4280  r"""Proxy of C++ IMP::isd::Linear1DFunction class."""
4281 
4282  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4283 
4284  def __init__(self, a, b):
4285  r"""__init__(Linear1DFunction self, Particle a, Particle b) -> Linear1DFunction"""
4286  _IMP_isd.Linear1DFunction_swiginit(self, _IMP_isd.new_Linear1DFunction(a, b))
4287 
4288  def __call__(self, *args):
4289  r"""
4290  __call__(Linear1DFunction self, IMP::Floats const & x) -> IMP::Floats
4291  __call__(Linear1DFunction self, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4292  __call__(Linear1DFunction self, IMP::FloatsList const & xlist, bool arg3) -> IMP::FloatsList
4293  """
4294  return _IMP_isd.Linear1DFunction___call__(self, *args)
4295 
4296  def get_second_derivative_vector(self, *args):
4297  r"""
4298  get_second_derivative_vector(Linear1DFunction self, unsigned int arg2, unsigned int arg3, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4299  get_second_derivative_vector(Linear1DFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool arg5) -> IMP::FloatsList
4300  """
4301  return _IMP_isd.Linear1DFunction_get_second_derivative_vector(self, *args)
4302 
4303  def get_version_info(self):
4304  r"""get_version_info(Linear1DFunction self) -> VersionInfo"""
4305  return _IMP_isd.Linear1DFunction_get_version_info(self)
4306  __swig_destroy__ = _IMP_isd.delete_Linear1DFunction
4307 
4308  def __str__(self):
4309  r"""__str__(Linear1DFunction self) -> std::string"""
4310  return _IMP_isd.Linear1DFunction___str__(self)
4311 
4312  def __repr__(self):
4313  r"""__repr__(Linear1DFunction self) -> std::string"""
4314  return _IMP_isd.Linear1DFunction___repr__(self)
4315 
4316  @staticmethod
4317  def get_from(o):
4318  return _object_cast_to_Linear1DFunction(o)
4319 
4320 
4321 # Register Linear1DFunction in _IMP_isd:
4322 _IMP_isd.Linear1DFunction_swigregister(Linear1DFunction)
4323 class GeneralizedGuinierPorodFunction(UnivariateFunction):
4324  r"""Proxy of C++ IMP::isd::GeneralizedGuinierPorodFunction class."""
4325 
4326  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4327 
4328  def __init__(self, G, Rg, d, s, A):
4329  r"""__init__(GeneralizedGuinierPorodFunction self, Particle G, Particle Rg, Particle d, Particle s, Particle A) -> GeneralizedGuinierPorodFunction"""
4330  _IMP_isd.GeneralizedGuinierPorodFunction_swiginit(self, _IMP_isd.new_GeneralizedGuinierPorodFunction(G, Rg, d, s, A))
4331 
4332  def __call__(self, *args):
4333  r"""
4334  __call__(GeneralizedGuinierPorodFunction self, IMP::Floats const & x) -> IMP::Floats
4335  __call__(GeneralizedGuinierPorodFunction self, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4336  __call__(GeneralizedGuinierPorodFunction self, IMP::FloatsList const & xlist, bool arg3) -> IMP::FloatsList
4337  """
4338  return _IMP_isd.GeneralizedGuinierPorodFunction___call__(self, *args)
4339 
4340  def get_second_derivative_vector(self, *args):
4341  r"""
4342  get_second_derivative_vector(GeneralizedGuinierPorodFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::VectorXd
4343  get_second_derivative_vector(GeneralizedGuinierPorodFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool arg5) -> IMP::FloatsList
4344  """
4345  return _IMP_isd.GeneralizedGuinierPorodFunction_get_second_derivative_vector(self, *args)
4346 
4347  def get_version_info(self):
4348  r"""get_version_info(GeneralizedGuinierPorodFunction self) -> VersionInfo"""
4349  return _IMP_isd.GeneralizedGuinierPorodFunction_get_version_info(self)
4350  __swig_destroy__ = _IMP_isd.delete_GeneralizedGuinierPorodFunction
4351 
4352  def __str__(self):
4353  r"""__str__(GeneralizedGuinierPorodFunction self) -> std::string"""
4354  return _IMP_isd.GeneralizedGuinierPorodFunction___str__(self)
4355 
4356  def __repr__(self):
4357  r"""__repr__(GeneralizedGuinierPorodFunction self) -> std::string"""
4358  return _IMP_isd.GeneralizedGuinierPorodFunction___repr__(self)
4359 
4360  @staticmethod
4361  def get_from(o):
4362  return _object_cast_to_GeneralizedGuinierPorodFunction(o)
4363 
4364 
4365 # Register GeneralizedGuinierPorodFunction in _IMP_isd:
4366 _IMP_isd.GeneralizedGuinierPorodFunction_swigregister(GeneralizedGuinierPorodFunction)
4367 IMP_ISD_BIVARIATE_FUNCTIONS_MINIMUM = _IMP_isd.IMP_ISD_BIVARIATE_FUNCTIONS_MINIMUM
4368 
4369 class BivariateFunction(IMP.Object):
4370  r"""Proxy of C++ IMP::isd::BivariateFunction class."""
4371 
4372  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4373 
4374  def __init__(self, *args, **kwargs):
4375  raise AttributeError("No constructor defined - class is abstract")
4376 
4377  def __call__(self, *args):
4378  r"""
4379  __call__(BivariateFunction self, IMP::Floats const & x1, IMP::Floats const & x2) -> IMP::Floats
4380  __call__(BivariateFunction self, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4381  __call__(BivariateFunction self, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4382  """
4383  return _IMP_isd.BivariateFunction___call__(self, *args)
4384 
4385  def has_changed(self):
4386  r"""has_changed(BivariateFunction self) -> bool"""
4387  return _IMP_isd.BivariateFunction_has_changed(self)
4388 
4389  def update(self):
4390  r"""update(BivariateFunction self)"""
4391  return _IMP_isd.BivariateFunction_update(self)
4392 
4393  def add_to_derivatives(self, x1, x2, accum):
4394  r"""add_to_derivatives(BivariateFunction self, IMP::Floats const & x1, IMP::Floats const & x2, DerivativeAccumulator accum)"""
4395  return _IMP_isd.BivariateFunction_add_to_derivatives(self, x1, x2, accum)
4396 
4397  def add_to_particle_derivative(self, particle_no, value, accum):
4398  r"""add_to_particle_derivative(BivariateFunction self, unsigned int particle_no, double value, DerivativeAccumulator accum)"""
4399  return _IMP_isd.BivariateFunction_add_to_particle_derivative(self, particle_no, value, accum)
4400 
4401  def get_derivative_matrix(self, *args):
4402  r"""
4403  get_derivative_matrix(BivariateFunction self, unsigned int particle_no, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4404  get_derivative_matrix(BivariateFunction self, unsigned int particle_no, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4405  """
4406  return _IMP_isd.BivariateFunction_get_derivative_matrix(self, *args)
4407 
4408  def get_second_derivative_matrix(self, *args):
4409  r"""
4410  get_second_derivative_matrix(BivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4411  get_second_derivative_matrix(BivariateFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool stupid) -> IMP::FloatsList
4412  """
4413  return _IMP_isd.BivariateFunction_get_second_derivative_matrix(self, *args)
4414 
4415  def get_ndims_x1(self):
4416  r"""get_ndims_x1(BivariateFunction self) -> unsigned int"""
4417  return _IMP_isd.BivariateFunction_get_ndims_x1(self)
4418 
4419  def get_ndims_x2(self):
4420  r"""get_ndims_x2(BivariateFunction self) -> unsigned int"""
4421  return _IMP_isd.BivariateFunction_get_ndims_x2(self)
4422 
4423  def get_ndims_y(self):
4424  r"""get_ndims_y(BivariateFunction self) -> unsigned int"""
4425  return _IMP_isd.BivariateFunction_get_ndims_y(self)
4426 
4427  def get_number_of_particles(self):
4428  r"""get_number_of_particles(BivariateFunction self) -> unsigned int"""
4429  return _IMP_isd.BivariateFunction_get_number_of_particles(self)
4430 
4431  def get_particle_is_optimized(self, particle_no):
4432  r"""get_particle_is_optimized(BivariateFunction self, unsigned int particle_no) -> bool"""
4433  return _IMP_isd.BivariateFunction_get_particle_is_optimized(self, particle_no)
4434 
4435  def get_number_of_optimized_particles(self):
4436  r"""get_number_of_optimized_particles(BivariateFunction self) -> unsigned int"""
4437  return _IMP_isd.BivariateFunction_get_number_of_optimized_particles(self)
4438 
4439  def get_inputs(self):
4440  r"""get_inputs(BivariateFunction self) -> IMP::ModelObjectsTemp"""
4441  return _IMP_isd.BivariateFunction_get_inputs(self)
4442  __swig_destroy__ = _IMP_isd.delete_BivariateFunction
4443 
4444  def __str__(self):
4445  r"""__str__(BivariateFunction self) -> std::string"""
4446  return _IMP_isd.BivariateFunction___str__(self)
4447 
4448  def __repr__(self):
4449  r"""__repr__(BivariateFunction self) -> std::string"""
4450  return _IMP_isd.BivariateFunction___repr__(self)
4451 
4452  @staticmethod
4453  def get_from(o):
4454  return _object_cast_to_BivariateFunction(o)
4455 
4456 
4457 # Register BivariateFunction in _IMP_isd:
4458 _IMP_isd.BivariateFunction_swigregister(BivariateFunction)
4459 class Covariance1DFunction(BivariateFunction):
4460  r"""Proxy of C++ IMP::isd::Covariance1DFunction class."""
4461 
4462  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4463 
4464  def __init__(self, tau, ilambda, alpha=2.0, jitter=0.0, cutoff=1e-7):
4465  r"""__init__(Covariance1DFunction self, Particle tau, Particle ilambda, double alpha=2.0, double jitter=0.0, double cutoff=1e-7) -> Covariance1DFunction"""
4466  _IMP_isd.Covariance1DFunction_swiginit(self, _IMP_isd.new_Covariance1DFunction(tau, ilambda, alpha, jitter, cutoff))
4467 
4468  def __call__(self, *args):
4469  r"""
4470  __call__(Covariance1DFunction self, IMP::Floats const & x1, IMP::Floats const & x2) -> IMP::Floats
4471  __call__(Covariance1DFunction self, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4472  __call__(Covariance1DFunction self, IMP::FloatsList const & xlist, bool arg3) -> IMP::FloatsList
4473  """
4474  return _IMP_isd.Covariance1DFunction___call__(self, *args)
4475 
4476  def get_derivative_matrix(self, *args):
4477  r"""
4478  get_derivative_matrix(Covariance1DFunction self, unsigned int particle_no, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4479  get_derivative_matrix(Covariance1DFunction self, unsigned int particle_no, IMP::FloatsList const & xlist, bool arg4) -> IMP::FloatsList
4480  """
4481  return _IMP_isd.Covariance1DFunction_get_derivative_matrix(self, *args)
4482 
4483  def get_second_derivative_matrix(self, *args):
4484  r"""
4485  get_second_derivative_matrix(Covariance1DFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist) -> Eigen::MatrixXd
4486  get_second_derivative_matrix(Covariance1DFunction self, unsigned int particle_a, unsigned int particle_b, IMP::FloatsList const & xlist, bool arg5) -> IMP::FloatsList
4487  """
4488  return _IMP_isd.Covariance1DFunction_get_second_derivative_matrix(self, *args)
4489 
4490  def get_version_info(self):
4491  r"""get_version_info(Covariance1DFunction self) -> VersionInfo"""
4492  return _IMP_isd.Covariance1DFunction_get_version_info(self)
4493  __swig_destroy__ = _IMP_isd.delete_Covariance1DFunction
4494 
4495  def __str__(self):
4496  r"""__str__(Covariance1DFunction self) -> std::string"""
4497  return _IMP_isd.Covariance1DFunction___str__(self)
4498 
4499  def __repr__(self):
4500  r"""__repr__(Covariance1DFunction self) -> std::string"""
4501  return _IMP_isd.Covariance1DFunction___repr__(self)
4502 
4503  @staticmethod
4504  def get_from(o):
4505  return _object_cast_to_Covariance1DFunction(o)
4506 
4507 
4508 # Register Covariance1DFunction in _IMP_isd:
4509 _IMP_isd.Covariance1DFunction_swigregister(Covariance1DFunction)
4510 class GaussianProcessInterpolation(IMP.Object):
4511  r"""Proxy of C++ IMP::isd::GaussianProcessInterpolation class."""
4512 
4513  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4514 
4515  def __init__(self, x, sample_mean, sample_std, n_obs, mean_function, covariance_function, sigma, sparse_cutoff=1e-7):
4516  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"""
4517  _IMP_isd.GaussianProcessInterpolation_swiginit(self, _IMP_isd.new_GaussianProcessInterpolation(x, sample_mean, sample_std, n_obs, mean_function, covariance_function, sigma, sparse_cutoff))
4518 
4519  def get_posterior_mean(self, x):
4520  r"""get_posterior_mean(GaussianProcessInterpolation self, IMP::Floats x) -> double"""
4521  return _IMP_isd.GaussianProcessInterpolation_get_posterior_mean(self, x)
4522 
4523  def get_posterior_covariance(self, x1, x2):
4524  r"""get_posterior_covariance(GaussianProcessInterpolation self, IMP::Floats x1, IMP::Floats x2) -> double"""
4525  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance(self, x1, x2)
4526 
4527  def get_posterior_covariance_matrix(self, x, arg3):
4528  r"""get_posterior_covariance_matrix(GaussianProcessInterpolation self, IMP::FloatsList x, bool arg3) -> IMP::FloatsList"""
4529  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance_matrix(self, x, arg3)
4530 
4531  def get_posterior_covariance_derivative(self, x, arg3):
4532  r"""get_posterior_covariance_derivative(GaussianProcessInterpolation self, IMP::Floats x, bool arg3) -> IMP::Floats"""
4533  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance_derivative(self, x, arg3)
4534 
4535  def get_posterior_covariance_hessian(self, x, arg3):
4536  r"""get_posterior_covariance_hessian(GaussianProcessInterpolation self, IMP::Floats x, bool arg3) -> IMP::FloatsList"""
4537  return _IMP_isd.GaussianProcessInterpolation_get_posterior_covariance_hessian(self, x, arg3)
4538 
4539  def get_inputs(self):
4540  r"""get_inputs(GaussianProcessInterpolation self) -> IMP::ModelObjectsTemp"""
4541  return _IMP_isd.GaussianProcessInterpolation_get_inputs(self)
4542 
4543  def force_mean_update(self):
4544  r"""force_mean_update(GaussianProcessInterpolation self)"""
4545  return _IMP_isd.GaussianProcessInterpolation_force_mean_update(self)
4546 
4547  def force_covariance_update(self):
4548  r"""force_covariance_update(GaussianProcessInterpolation self)"""
4549  return _IMP_isd.GaussianProcessInterpolation_force_covariance_update(self)
4550 
4551  def get_number_of_m_particles(self):
4552  r"""get_number_of_m_particles(GaussianProcessInterpolation self) -> unsigned int"""
4553  return _IMP_isd.GaussianProcessInterpolation_get_number_of_m_particles(self)
4554 
4555  def get_m_particle_is_optimized(self, i):
4556  r"""get_m_particle_is_optimized(GaussianProcessInterpolation self, unsigned int i) -> bool"""
4557  return _IMP_isd.GaussianProcessInterpolation_get_m_particle_is_optimized(self, i)
4558 
4559  def get_number_of_Omega_particles(self):
4560  r"""get_number_of_Omega_particles(GaussianProcessInterpolation self) -> unsigned int"""
4561  return _IMP_isd.GaussianProcessInterpolation_get_number_of_Omega_particles(self)
4562 
4563  def get_Omega_particle_is_optimized(self, i):
4564  r"""get_Omega_particle_is_optimized(GaussianProcessInterpolation self, unsigned int i) -> bool"""
4565  return _IMP_isd.GaussianProcessInterpolation_get_Omega_particle_is_optimized(self, i)
4566 
4567  def get_data_abscissa(self):
4568  r"""get_data_abscissa(GaussianProcessInterpolation self) -> IMP::FloatsList"""
4569  return _IMP_isd.GaussianProcessInterpolation_get_data_abscissa(self)
4570 
4571  def get_data_mean(self):
4572  r"""get_data_mean(GaussianProcessInterpolation self) -> IMP::Floats"""
4573  return _IMP_isd.GaussianProcessInterpolation_get_data_mean(self)
4574 
4575  def get_data_variance(self):
4576  r"""get_data_variance(GaussianProcessInterpolation self) -> IMP::FloatsList"""
4577  return _IMP_isd.GaussianProcessInterpolation_get_data_variance(self)
4578 
4579  def get_version_info(self):
4580  r"""get_version_info(GaussianProcessInterpolation self) -> VersionInfo"""
4581  return _IMP_isd.GaussianProcessInterpolation_get_version_info(self)
4582  __swig_destroy__ = _IMP_isd.delete_GaussianProcessInterpolation
4583 
4584  def __str__(self):
4585  r"""__str__(GaussianProcessInterpolation self) -> std::string"""
4586  return _IMP_isd.GaussianProcessInterpolation___str__(self)
4587 
4588  def __repr__(self):
4589  r"""__repr__(GaussianProcessInterpolation self) -> std::string"""
4590  return _IMP_isd.GaussianProcessInterpolation___repr__(self)
4591 
4592  @staticmethod
4593  def get_from(o):
4594  return _object_cast_to_GaussianProcessInterpolation(o)
4595 
4596 
4597 # Register GaussianProcessInterpolation in _IMP_isd:
4598 _IMP_isd.GaussianProcessInterpolation_swigregister(GaussianProcessInterpolation)
4599 class GaussianProcessInterpolationRestraint(IMP.Restraint):
4600  r"""Proxy of C++ IMP::isd::GaussianProcessInterpolationRestraint class."""
4601 
4602  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4603 
4604  def __init__(self, m, gpi):
4605  r"""__init__(GaussianProcessInterpolationRestraint self, Model m, GaussianProcessInterpolation gpi) -> GaussianProcessInterpolationRestraint"""
4606  _IMP_isd.GaussianProcessInterpolationRestraint_swiginit(self, _IMP_isd.new_GaussianProcessInterpolationRestraint(m, gpi))
4607 
4608  def get_probability(self):
4609  r"""get_probability(GaussianProcessInterpolationRestraint self) -> double"""
4610  return _IMP_isd.GaussianProcessInterpolationRestraint_get_probability(self)
4611 
4612  def set_use_cg(self, use, tol):
4613  r"""set_use_cg(GaussianProcessInterpolationRestraint self, bool use, double tol)"""
4614  return _IMP_isd.GaussianProcessInterpolationRestraint_set_use_cg(self, use, tol)
4615 
4616  def get_minus_log_normalization(self):
4617  r"""get_minus_log_normalization(GaussianProcessInterpolationRestraint self) -> double"""
4618  return _IMP_isd.GaussianProcessInterpolationRestraint_get_minus_log_normalization(self)
4619 
4620  def get_minus_exponent(self):
4621  r"""get_minus_exponent(GaussianProcessInterpolationRestraint self) -> double"""
4622  return _IMP_isd.GaussianProcessInterpolationRestraint_get_minus_exponent(self)
4623 
4624  def get_logdet_hessian(self):
4625  r"""get_logdet_hessian(GaussianProcessInterpolationRestraint self) -> double"""
4626  return _IMP_isd.GaussianProcessInterpolationRestraint_get_logdet_hessian(self)
4627 
4628  def get_hessian(self, *args):
4629  r"""
4630  get_hessian(GaussianProcessInterpolationRestraint self) -> Eigen::MatrixXd
4631  get_hessian(GaussianProcessInterpolationRestraint self, bool unused) -> IMP::FloatsList
4632  """
4633  return _IMP_isd.GaussianProcessInterpolationRestraint_get_hessian(self, *args)
4634 
4635  def do_get_inputs(self):
4636  r"""do_get_inputs(GaussianProcessInterpolationRestraint self) -> IMP::ModelObjectsTemp"""
4637  return _IMP_isd.GaussianProcessInterpolationRestraint_do_get_inputs(self)
4638 
4639  def get_version_info(self):
4640  r"""get_version_info(GaussianProcessInterpolationRestraint self) -> VersionInfo"""
4641  return _IMP_isd.GaussianProcessInterpolationRestraint_get_version_info(self)
4642  __swig_destroy__ = _IMP_isd.delete_GaussianProcessInterpolationRestraint
4643 
4644  def __str__(self):
4645  r"""__str__(GaussianProcessInterpolationRestraint self) -> std::string"""
4646  return _IMP_isd.GaussianProcessInterpolationRestraint___str__(self)
4647 
4648  def __repr__(self):
4649  r"""__repr__(GaussianProcessInterpolationRestraint self) -> std::string"""
4650  return _IMP_isd.GaussianProcessInterpolationRestraint___repr__(self)
4651 
4652  @staticmethod
4653  def get_from(o):
4654  return _object_cast_to_GaussianProcessInterpolationRestraint(o)
4655 
4656 
4657 # Register GaussianProcessInterpolationRestraint in _IMP_isd:
4658 _IMP_isd.GaussianProcessInterpolationRestraint_swigregister(GaussianProcessInterpolationRestraint)
4659 class MolecularDynamics(IMP.atom.MolecularDynamics):
4660  r"""Proxy of C++ IMP::isd::MolecularDynamics class."""
4661 
4662  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4663 
4664  def __init__(self, m=None):
4665  r"""__init__(MolecularDynamics self, Model m=None) -> MolecularDynamics"""
4666  _IMP_isd.MolecularDynamics_swiginit(self, _IMP_isd.new_MolecularDynamics(m))
4667 
4668  def __str__(self):
4669  r"""__str__(MolecularDynamics self) -> std::string"""
4670  return _IMP_isd.MolecularDynamics___str__(self)
4671 
4672  def __repr__(self):
4673  r"""__repr__(MolecularDynamics self) -> std::string"""
4674  return _IMP_isd.MolecularDynamics___repr__(self)
4675 
4676  @staticmethod
4677  def get_from(o):
4678  return _object_cast_to_MolecularDynamics(o)
4679 
4680  __swig_destroy__ = _IMP_isd.delete_MolecularDynamics
4681 
4682 # Register MolecularDynamics in _IMP_isd:
4683 _IMP_isd.MolecularDynamics_swigregister(MolecularDynamics)
4684 class MolecularDynamicsMover(IMP.core.MonteCarloMover):
4685  r"""Proxy of C++ IMP::isd::MolecularDynamicsMover class."""
4686 
4687  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4688 
4689  def __init__(self, m, nsteps=100, timestep=1.):
4690  r"""__init__(MolecularDynamicsMover self, Model m, unsigned int nsteps=100, IMP::Float timestep=1.) -> MolecularDynamicsMover"""
4691  _IMP_isd.MolecularDynamicsMover_swiginit(self, _IMP_isd.new_MolecularDynamicsMover(m, nsteps, timestep))
4692 
4693  def get_md(self):
4694  r"""get_md(MolecularDynamicsMover self) -> MolecularDynamics"""
4695  return _IMP_isd.MolecularDynamicsMover_get_md(self)
4696 
4697  def get_number_of_md_steps(self):
4698  r"""get_number_of_md_steps(MolecularDynamicsMover self) -> unsigned int"""
4699  return _IMP_isd.MolecularDynamicsMover_get_number_of_md_steps(self)
4700 
4701  def set_number_of_md_steps(self, nsteps):
4702  r"""set_number_of_md_steps(MolecularDynamicsMover self, unsigned int nsteps)"""
4703  return _IMP_isd.MolecularDynamicsMover_set_number_of_md_steps(self, nsteps)
4704 
4705  def get_version_info(self):
4706  r"""get_version_info(MolecularDynamicsMover self) -> VersionInfo"""
4707  return _IMP_isd.MolecularDynamicsMover_get_version_info(self)
4708  __swig_destroy__ = _IMP_isd.delete_MolecularDynamicsMover
4709 
4710  def __str__(self):
4711  r"""__str__(MolecularDynamicsMover self) -> std::string"""
4712  return _IMP_isd.MolecularDynamicsMover___str__(self)
4713 
4714  def __repr__(self):
4715  r"""__repr__(MolecularDynamicsMover self) -> std::string"""
4716  return _IMP_isd.MolecularDynamicsMover___repr__(self)
4717 
4718  @staticmethod
4719  def get_from(o):
4720  return _object_cast_to_MolecularDynamicsMover(o)
4721 
4722 
4723 # Register MolecularDynamicsMover in _IMP_isd:
4724 _IMP_isd.MolecularDynamicsMover_swigregister(MolecularDynamicsMover)
4725 class HybridMonteCarlo(IMP.core.MonteCarlo):
4726  r"""Proxy of C++ IMP::isd::HybridMonteCarlo class."""
4727 
4728  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4729 
4730  def __init__(self, m, kT=1.0, steps=100, timestep=1.0, persistence=1):
4731  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"""
4732  _IMP_isd.HybridMonteCarlo_swiginit(self, _IMP_isd.new_HybridMonteCarlo(m, kT, steps, timestep, persistence))
4733 
4734  def get_kinetic_energy(self):
4735  r"""get_kinetic_energy(HybridMonteCarlo self) -> IMP::Float"""
4736  return _IMP_isd.HybridMonteCarlo_get_kinetic_energy(self)
4737 
4738  def get_potential_energy(self):
4739  r"""get_potential_energy(HybridMonteCarlo self) -> IMP::Float"""
4740  return _IMP_isd.HybridMonteCarlo_get_potential_energy(self)
4741 
4742  def get_total_energy(self):
4743  r"""get_total_energy(HybridMonteCarlo self) -> IMP::Float"""
4744  return _IMP_isd.HybridMonteCarlo_get_total_energy(self)
4745 
4746  def set_timestep(self, ts):
4747  r"""set_timestep(HybridMonteCarlo self, IMP::Float ts)"""
4748  return _IMP_isd.HybridMonteCarlo_set_timestep(self, ts)
4749 
4750  def get_timestep(self):
4751  r"""get_timestep(HybridMonteCarlo self) -> double"""
4752  return _IMP_isd.HybridMonteCarlo_get_timestep(self)
4753 
4754  def set_number_of_md_steps(self, nsteps):
4755  r"""set_number_of_md_steps(HybridMonteCarlo self, unsigned int nsteps)"""
4756  return _IMP_isd.HybridMonteCarlo_set_number_of_md_steps(self, nsteps)
4757 
4758  def get_number_of_md_steps(self):
4759  r"""get_number_of_md_steps(HybridMonteCarlo self) -> unsigned int"""
4760  return _IMP_isd.HybridMonteCarlo_get_number_of_md_steps(self)
4761 
4762  def set_persistence(self, persistence=1):
4763  r"""set_persistence(HybridMonteCarlo self, unsigned int persistence=1)"""
4764  return _IMP_isd.HybridMonteCarlo_set_persistence(self, persistence)
4765 
4766  def get_persistence(self):
4767  r"""get_persistence(HybridMonteCarlo self) -> unsigned int"""
4768  return _IMP_isd.HybridMonteCarlo_get_persistence(self)
4769 
4770  def get_md(self):
4771  r"""get_md(HybridMonteCarlo self) -> MolecularDynamics"""
4772  return _IMP_isd.HybridMonteCarlo_get_md(self)
4773 
4774  def do_evaluate(self, arg2, arg3):
4775  r"""do_evaluate(HybridMonteCarlo self, IMP::ParticleIndexes const & arg2, bool arg3) -> double"""
4776  return _IMP_isd.HybridMonteCarlo_do_evaluate(self, arg2, arg3)
4777 
4778  def do_step(self):
4779  r"""do_step(HybridMonteCarlo self)"""
4780  return _IMP_isd.HybridMonteCarlo_do_step(self)
4781  __swig_destroy__ = _IMP_isd.delete_HybridMonteCarlo
4782 
4783  def __str__(self):
4784  r"""__str__(HybridMonteCarlo self) -> std::string"""
4785  return _IMP_isd.HybridMonteCarlo___str__(self)
4786 
4787  def __repr__(self):
4788  r"""__repr__(HybridMonteCarlo self) -> std::string"""
4789  return _IMP_isd.HybridMonteCarlo___repr__(self)
4790 
4791  @staticmethod
4792  def get_from(o):
4793  return _object_cast_to_HybridMonteCarlo(o)
4794 
4795 
4796 # Register HybridMonteCarlo in _IMP_isd:
4797 _IMP_isd.HybridMonteCarlo_swigregister(HybridMonteCarlo)
4798 class FretData(IMP.Object):
4799  r"""Proxy of C++ IMP::isd::FretData class."""
4800 
4801  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4802 
4803  def __init__(self, *args):
4804  r"""
4805  __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
4806  __init__(FretData self) -> FretData
4807  """
4808  _IMP_isd.FretData_swiginit(self, _IMP_isd.new_FretData(*args))
4809 
4810  def get_closest(self, vec, value):
4811  r"""get_closest(FretData self, DistBase vec, double value) -> int"""
4812  return _IMP_isd.FretData_get_closest(self, vec, value)
4813 
4814  def get_probability(self, distn, dist, sigma):
4815  r"""get_probability(FretData self, IMP::Float distn, IMP::Float dist, IMP::Float sigma) -> IMP::Float"""
4816  return _IMP_isd.FretData_get_probability(self, distn, dist, sigma)
4817 
4818  def get_kernel(self, dist, R0):
4819  r"""get_kernel(FretData self, IMP::Float dist, IMP::Float R0) -> IMP::Float"""
4820  return _IMP_isd.FretData_get_kernel(self, dist, R0)
4821 
4822  def get_marginal_element(self, d_term, d_center, sigma):
4823  r"""get_marginal_element(FretData self, IMP::Float d_term, IMP::Float d_center, IMP::Float sigma) -> IMP::FloatPair"""
4824  return _IMP_isd.FretData_get_marginal_element(self, d_term, d_center, sigma)
4825 
4826  def get_version_info(self):
4827  r"""get_version_info(FretData self) -> VersionInfo"""
4828  return _IMP_isd.FretData_get_version_info(self)
4829  __swig_destroy__ = _IMP_isd.delete_FretData
4830 
4831  def __str__(self):
4832  r"""__str__(FretData self) -> std::string"""
4833  return _IMP_isd.FretData___str__(self)
4834 
4835  def __repr__(self):
4836  r"""__repr__(FretData self) -> std::string"""
4837  return _IMP_isd.FretData___repr__(self)
4838 
4839  @staticmethod
4840  def get_from(o):
4841  return _object_cast_to_FretData(o)
4842 
4843 
4844  def _get_as_binary(self):
4845  r"""_get_as_binary(FretData self) -> PyObject *"""
4846  return _IMP_isd.FretData__get_as_binary(self)
4847 
4848  def _set_from_binary(self, p):
4849  r"""_set_from_binary(FretData self, PyObject * p)"""
4850  return _IMP_isd.FretData__set_from_binary(self, p)
4851 
4852  def __getstate__(self):
4853  p = self._get_as_binary()
4854  if len(self.__dict__) > 1:
4855  d = self.__dict__.copy()
4856  del d['this']
4857  p = (d, p)
4858  return p
4859 
4860  def __setstate__(self, p):
4861  if not hasattr(self, 'this'):
4862  self.__init__()
4863  if isinstance(p, tuple):
4864  d, p = p
4865  self.__dict__.update(d)
4866  return self._set_from_binary(p)
4867 
4868 
4869 # Register FretData in _IMP_isd:
4870 _IMP_isd.FretData_swigregister(FretData)
4871 class FretRestraint(IMP.Restraint):
4872  r"""Proxy of C++ IMP::isd::FretRestraint class."""
4873 
4874  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4875 
4876  def __init__(self, *args):
4877  r"""
4878  __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
4879  __init__(FretRestraint self, Particle kda, Particle Ida, Particle sumFi, Particle sigma0, Particle Pbl, double fexp) -> FretRestraint
4880  __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
4881  __init__(FretRestraint self) -> FretRestraint
4882  """
4883  _IMP_isd.FretRestraint_swiginit(self, _IMP_isd.new_FretRestraint(*args))
4884 
4885  def get_sumFi(self):
4886  r"""get_sumFi(FretRestraint self) -> double"""
4887  return _IMP_isd.FretRestraint_get_sumFi(self)
4888 
4889  def get_average_sigma(self, fmod):
4890  r"""get_average_sigma(FretRestraint self, double fmod) -> double"""
4891  return _IMP_isd.FretRestraint_get_average_sigma(self, fmod)
4892 
4893  def get_standard_error(self):
4894  r"""get_standard_error(FretRestraint self) -> double"""
4895  return _IMP_isd.FretRestraint_get_standard_error(self)
4896 
4897  def get_model_fretr(self):
4898  r"""get_model_fretr(FretRestraint self) -> double"""
4899  return _IMP_isd.FretRestraint_get_model_fretr(self)
4900 
4901  def get_probability(self):
4902  r"""get_probability(FretRestraint self) -> double"""
4903  return _IMP_isd.FretRestraint_get_probability(self)
4904 
4905  def get_experimental_value(self):
4906  r"""get_experimental_value(FretRestraint self) -> double"""
4907  return _IMP_isd.FretRestraint_get_experimental_value(self)
4908 
4909  def set_experimental_value(self, fexp):
4910  r"""set_experimental_value(FretRestraint self, double fexp)"""
4911  return _IMP_isd.FretRestraint_set_experimental_value(self, fexp)
4912 
4913  def do_get_inputs(self):
4914  r"""do_get_inputs(FretRestraint self) -> IMP::ModelObjectsTemp"""
4915  return _IMP_isd.FretRestraint_do_get_inputs(self)
4916 
4917  def get_version_info(self):
4918  r"""get_version_info(FretRestraint self) -> VersionInfo"""
4919  return _IMP_isd.FretRestraint_get_version_info(self)
4920  __swig_destroy__ = _IMP_isd.delete_FretRestraint
4921 
4922  def __str__(self):
4923  r"""__str__(FretRestraint self) -> std::string"""
4924  return _IMP_isd.FretRestraint___str__(self)
4925 
4926  def __repr__(self):
4927  r"""__repr__(FretRestraint self) -> std::string"""
4928  return _IMP_isd.FretRestraint___repr__(self)
4929 
4930  @staticmethod
4931  def get_from(o):
4932  return _object_cast_to_FretRestraint(o)
4933 
4934 
4935  def _get_as_binary(self):
4936  r"""_get_as_binary(FretRestraint self) -> PyObject *"""
4937  return _IMP_isd.FretRestraint__get_as_binary(self)
4938 
4939  def _set_from_binary(self, p):
4940  r"""_set_from_binary(FretRestraint self, PyObject * p)"""
4941  return _IMP_isd.FretRestraint__set_from_binary(self, p)
4942 
4943  def __getstate__(self):
4944  p = self._get_as_binary()
4945  if len(self.__dict__) > 1:
4946  d = self.__dict__.copy()
4947  del d['this']
4948  p = (d, p)
4949  return p
4950 
4951  def __setstate__(self, p):
4952  if not hasattr(self, 'this'):
4953  self.__init__()
4954  if isinstance(p, tuple):
4955  d, p = p
4956  self.__dict__.update(d)
4957  return self._set_from_binary(p)
4958 
4959 
4960 # Register FretRestraint in _IMP_isd:
4961 _IMP_isd.FretRestraint_swigregister(FretRestraint)
4962 class CysteineCrossLinkData(IMP.Object):
4963  r"""Proxy of C++ IMP::isd::CysteineCrossLinkData class."""
4964 
4965  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
4966 
4967  def __init__(self, *args):
4968  r"""
4969  __init__(CysteineCrossLinkData self, double fexp, IMP::Floats fmod_grid, IMP::Floats omega_grid, IMP::Floats omega0_grid, int prior_type=3) -> CysteineCrossLinkData
4970  __init__(CysteineCrossLinkData self) -> CysteineCrossLinkData
4971  """
4972  _IMP_isd.CysteineCrossLinkData_swiginit(self, _IMP_isd.new_CysteineCrossLinkData(*args))
4973 
4974  def get_closest(self, vec, value):
4975  r"""get_closest(CysteineCrossLinkData self, DistBase vec, double value) -> int"""
4976  return _IMP_isd.CysteineCrossLinkData_get_closest(self, vec, value)
4977 
4978  def get_omegas(self, fmods, omega0):
4979  r"""get_omegas(CysteineCrossLinkData self, IMP::Floats fmods, double omega0) -> IMP::Floats"""
4980  return _IMP_isd.CysteineCrossLinkData_get_omegas(self, fmods, omega0)
4981 
4982  def get_nonmarginal_elements(self, fexp, fmods, omega):
4983  r"""get_nonmarginal_elements(CysteineCrossLinkData self, double fexp, IMP::Floats fmods, double omega) -> IMP::Floats"""
4984  return _IMP_isd.CysteineCrossLinkData_get_nonmarginal_elements(self, fexp, fmods, omega)
4985 
4986  def get_marginal_elements(self, fmods, omega0):
4987  r"""get_marginal_elements(CysteineCrossLinkData self, IMP::Floats fmods, double omega0) -> IMP::Floats"""
4988  return _IMP_isd.CysteineCrossLinkData_get_marginal_elements(self, fmods, omega0)
4989 
4990  def get_omega(self, fmod, omega0):
4991  r"""get_omega(CysteineCrossLinkData self, double fmod, double omega0) -> double"""
4992  return _IMP_isd.CysteineCrossLinkData_get_omega(self, fmod, omega0)
4993 
4994  def get_standard_deviation(self, fmod, omega0):
4995  r"""get_standard_deviation(CysteineCrossLinkData self, double fmod, double omega0) -> double"""
4996  return _IMP_isd.CysteineCrossLinkData_get_standard_deviation(self, fmod, omega0)
4997 
4998  def get_nonmarginal_element(self, fexp, fmod, omega):
4999  r"""get_nonmarginal_element(CysteineCrossLinkData self, double fexp, double fmod, double omega) -> double"""
5000  return _IMP_isd.CysteineCrossLinkData_get_nonmarginal_element(self, fexp, fmod, omega)
5001 
5002  def get_marginal_element(self, fmod, omega0):
5003  r"""get_marginal_element(CysteineCrossLinkData self, double fmod, double omega0) -> double"""
5004  return _IMP_isd.CysteineCrossLinkData_get_marginal_element(self, fmod, omega0)
5005 
5006  def get_version_info(self):
5007  r"""get_version_info(CysteineCrossLinkData self) -> VersionInfo"""
5008  return _IMP_isd.CysteineCrossLinkData_get_version_info(self)
5009  __swig_destroy__ = _IMP_isd.delete_CysteineCrossLinkData
5010 
5011  def __str__(self):
5012  r"""__str__(CysteineCrossLinkData self) -> std::string"""
5013  return _IMP_isd.CysteineCrossLinkData___str__(self)
5014 
5015  def __repr__(self):
5016  r"""__repr__(CysteineCrossLinkData self) -> std::string"""
5017  return _IMP_isd.CysteineCrossLinkData___repr__(self)
5018 
5019  @staticmethod
5020  def get_from(o):
5021  return _object_cast_to_CysteineCrossLinkData(o)
5022 
5023 
5024  def _get_as_binary(self):
5025  r"""_get_as_binary(CysteineCrossLinkData self) -> PyObject *"""
5026  return _IMP_isd.CysteineCrossLinkData__get_as_binary(self)
5027 
5028  def _set_from_binary(self, p):
5029  r"""_set_from_binary(CysteineCrossLinkData self, PyObject * p)"""
5030  return _IMP_isd.CysteineCrossLinkData__set_from_binary(self, p)
5031 
5032  def __getstate__(self):
5033  p = self._get_as_binary()
5034  if len(self.__dict__) > 1:
5035  d = self.__dict__.copy()
5036  del d['this']
5037  p = (d, p)
5038  return p
5039 
5040  def __setstate__(self, p):
5041  if not hasattr(self, 'this'):
5042  self.__init__()
5043  if isinstance(p, tuple):
5044  d, p = p
5045  self.__dict__.update(d)
5046  return self._set_from_binary(p)
5047 
5048 
5049 # Register CysteineCrossLinkData in _IMP_isd:
5050 _IMP_isd.CysteineCrossLinkData_swigregister(CysteineCrossLinkData)
5051 class CrossLinkData(IMP.Object):
5052  r"""Proxy of C++ IMP::isd::CrossLinkData class."""
5053 
5054  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5055 
5056  def __init__(self, *args):
5057  r"""
5058  __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
5059  __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
5060  __init__(CrossLinkData self) -> CrossLinkData
5061  """
5062  _IMP_isd.CrossLinkData_swiginit(self, _IMP_isd.new_CrossLinkData(*args))
5063 
5064  def get_closest(self, vec, value):
5065  r"""get_closest(CrossLinkData self, DistBase vec, double value) -> int"""
5066  return _IMP_isd.CrossLinkData_get_closest(self, vec, value)
5067 
5068  def get_omegas(self, sigma, dists):
5069  r"""get_omegas(CrossLinkData self, double sigma, IMP::Floats dists) -> IMP::Floats"""
5070  return _IMP_isd.CrossLinkData_get_omegas(self, sigma, dists)
5071 
5072  def get_omega_prior(self, omega, omega0):
5073  r"""get_omega_prior(CrossLinkData self, double omega, double omega0) -> double"""
5074  return _IMP_isd.CrossLinkData_get_omega_prior(self, omega, omega0)
5075 
5076  def get_nonmarginal_elements(self, sigmai, dists):
5077  r"""get_nonmarginal_elements(CrossLinkData self, double sigmai, IMP::Floats dists) -> IMP::Floats"""
5078  return _IMP_isd.CrossLinkData_get_nonmarginal_elements(self, sigmai, dists)
5079 
5080  def get_marginal_elements(self, sigma, dists):
5081  r"""get_marginal_elements(CrossLinkData self, double sigma, IMP::Floats dists) -> IMP::Floats"""
5082  return _IMP_isd.CrossLinkData_get_marginal_elements(self, sigma, dists)
5083 
5084  def get_marginal_maximum(self, *args):
5085  r"""
5086  get_marginal_maximum(CrossLinkData self, double sigma) -> double
5087  get_marginal_maximum(CrossLinkData self) -> double
5088  """
5089  return _IMP_isd.CrossLinkData_get_marginal_maximum(self, *args)
5090 
5091  def get_version_info(self):
5092  r"""get_version_info(CrossLinkData self) -> VersionInfo"""
5093  return _IMP_isd.CrossLinkData_get_version_info(self)
5094  __swig_destroy__ = _IMP_isd.delete_CrossLinkData
5095 
5096  def __str__(self):
5097  r"""__str__(CrossLinkData self) -> std::string"""
5098  return _IMP_isd.CrossLinkData___str__(self)
5099 
5100  def __repr__(self):
5101  r"""__repr__(CrossLinkData self) -> std::string"""
5102  return _IMP_isd.CrossLinkData___repr__(self)
5103 
5104  @staticmethod
5105  def get_from(o):
5106  return _object_cast_to_CrossLinkData(o)
5107 
5108 
5109  def _get_as_binary(self):
5110  r"""_get_as_binary(CrossLinkData self) -> PyObject *"""
5111  return _IMP_isd.CrossLinkData__get_as_binary(self)
5112 
5113  def _set_from_binary(self, p):
5114  r"""_set_from_binary(CrossLinkData self, PyObject * p)"""
5115  return _IMP_isd.CrossLinkData__set_from_binary(self, p)
5116 
5117  def __getstate__(self):
5118  p = self._get_as_binary()
5119  if len(self.__dict__) > 1:
5120  d = self.__dict__.copy()
5121  del d['this']
5122  p = (d, p)
5123  return p
5124 
5125  def __setstate__(self, p):
5126  if not hasattr(self, 'this'):
5127  self.__init__()
5128  if isinstance(p, tuple):
5129  d, p = p
5130  self.__dict__.update(d)
5131  return self._set_from_binary(p)
5132 
5133 
5134 # Register CrossLinkData in _IMP_isd:
5135 _IMP_isd.CrossLinkData_swigregister(CrossLinkData)
5136 class CysteineCrossLinkRestraint(IMP.Restraint):
5137  r"""Proxy of C++ IMP::isd::CysteineCrossLinkRestraint class."""
5138 
5139  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5140 
5141  def __init__(self, *args):
5142  r"""
5143  __init__(CysteineCrossLinkRestraint self, Model m, _ParticleIndexAdaptor beta, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor epsilon, _ParticleIndexAdaptor weight, CrossLinkData data, double fexp) -> CysteineCrossLinkRestraint
5144  __init__(CysteineCrossLinkRestraint self, Model m, _ParticleIndexAdaptor beta, _ParticleIndexAdaptor sigma, _ParticleIndexAdaptor epsilon, _ParticleIndexAdaptor weight, CrossLinkData data, CysteineCrossLinkData ccldata) -> CysteineCrossLinkRestraint
5145  __init__(CysteineCrossLinkRestraint self) -> CysteineCrossLinkRestraint
5146  """
5147  _IMP_isd.CysteineCrossLinkRestraint_swiginit(self, _IMP_isd.new_CysteineCrossLinkRestraint(*args))
5148 
5149  def get_probability(self):
5150  r"""get_probability(CysteineCrossLinkRestraint self) -> double"""
5151  return _IMP_isd.CysteineCrossLinkRestraint_get_probability(self)
5152 
5153  def get_standard_error(self):
5154  r"""get_standard_error(CysteineCrossLinkRestraint self) -> double"""
5155  return _IMP_isd.CysteineCrossLinkRestraint_get_standard_error(self)
5156 
5157  def get_frequencies(self):
5158  r"""get_frequencies(CysteineCrossLinkRestraint self) -> IMP::Floats"""
5159  return _IMP_isd.CysteineCrossLinkRestraint_get_frequencies(self)
5160 
5161  def get_model_frequency(self):
5162  r"""get_model_frequency(CysteineCrossLinkRestraint self) -> double"""
5163  return _IMP_isd.CysteineCrossLinkRestraint_get_model_frequency(self)
5164 
5165  def get_distances(self):
5166  r"""get_distances(CysteineCrossLinkRestraint self) -> IMP::Floats"""
5167  return _IMP_isd.CysteineCrossLinkRestraint_get_distances(self)
5168 
5169  def get_truncated_normalization(self, mean, sigma):
5170  r"""get_truncated_normalization(CysteineCrossLinkRestraint self, double mean, double sigma) -> double"""
5171  return _IMP_isd.CysteineCrossLinkRestraint_get_truncated_normalization(self, mean, sigma)
5172 
5173  def get_normal_pdf(self, mean, sigma, x):
5174  r"""get_normal_pdf(CysteineCrossLinkRestraint self, double mean, double sigma, double x) -> double"""
5175  return _IMP_isd.CysteineCrossLinkRestraint_get_normal_pdf(self, mean, sigma, x)
5176 
5177  def add_contribution(self, *args):
5178  r"""
5179  add_contribution(CysteineCrossLinkRestraint self, _ParticleIndexAdaptor p1, _ParticleIndexAdaptor p2)
5180  add_contribution(CysteineCrossLinkRestraint self, IMP::ParticleIndexes p1, IMP::ParticleIndexes p2)
5181  """
5182  return _IMP_isd.CysteineCrossLinkRestraint_add_contribution(self, *args)
5183 
5184  def get_CB_coordinates(self, ps):
5185  r"""get_CB_coordinates(CysteineCrossLinkRestraint self, IMP::ParticleIndexes const & ps) -> Vector3D"""
5186  return _IMP_isd.CysteineCrossLinkRestraint_get_CB_coordinates(self, ps)
5187 
5188  def get_number_of_contributions(self):
5189  r"""get_number_of_contributions(CysteineCrossLinkRestraint self) -> unsigned int"""
5190  return _IMP_isd.CysteineCrossLinkRestraint_get_number_of_contributions(self)
5191 
5192  def do_get_inputs(self):
5193  r"""do_get_inputs(CysteineCrossLinkRestraint self) -> IMP::ModelObjectsTemp"""
5194  return _IMP_isd.CysteineCrossLinkRestraint_do_get_inputs(self)
5195 
5196  def get_version_info(self):
5197  r"""get_version_info(CysteineCrossLinkRestraint self) -> VersionInfo"""
5198  return _IMP_isd.CysteineCrossLinkRestraint_get_version_info(self)
5199  __swig_destroy__ = _IMP_isd.delete_CysteineCrossLinkRestraint
5200 
5201  def __str__(self):
5202  r"""__str__(CysteineCrossLinkRestraint self) -> std::string"""
5203  return _IMP_isd.CysteineCrossLinkRestraint___str__(self)
5204 
5205  def __repr__(self):
5206  r"""__repr__(CysteineCrossLinkRestraint self) -> std::string"""
5207  return _IMP_isd.CysteineCrossLinkRestraint___repr__(self)
5208 
5209  @staticmethod
5210  def get_from(o):
5211  return _object_cast_to_CysteineCrossLinkRestraint(o)
5212 
5213 
5214  def _get_as_binary(self):
5215  r"""_get_as_binary(CysteineCrossLinkRestraint self) -> PyObject *"""
5216  return _IMP_isd.CysteineCrossLinkRestraint__get_as_binary(self)
5217 
5218  def _set_from_binary(self, p):
5219  r"""_set_from_binary(CysteineCrossLinkRestraint self, PyObject * p)"""
5220  return _IMP_isd.CysteineCrossLinkRestraint__set_from_binary(self, p)
5221 
5222  def __getstate__(self):
5223  p = self._get_as_binary()
5224  if len(self.__dict__) > 1:
5225  d = self.__dict__.copy()
5226  del d['this']
5227  p = (d, p)
5228  return p
5229 
5230  def __setstate__(self, p):
5231  if not hasattr(self, 'this'):
5232  self.__init__()
5233  if isinstance(p, tuple):
5234  d, p = p
5235  self.__dict__.update(d)
5236  return self._set_from_binary(p)
5237 
5238 
5239 # Register CysteineCrossLinkRestraint in _IMP_isd:
5240 _IMP_isd.CysteineCrossLinkRestraint_swigregister(CysteineCrossLinkRestraint)
5241 class WeightMover(IMP.core.MonteCarloMover):
5242  r"""Proxy of C++ IMP::isd::WeightMover class."""
5243 
5244  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5245 
5246  def __init__(self, w, radius):
5247  r"""__init__(WeightMover self, Particle w, IMP::Float radius) -> WeightMover"""
5248  _IMP_isd.WeightMover_swiginit(self, _IMP_isd.new_WeightMover(w, radius))
5249 
5250  def set_radius(self, radius):
5251  r"""set_radius(WeightMover self, IMP::Float radius)"""
5252  return _IMP_isd.WeightMover_set_radius(self, radius)
5253 
5254  def get_radius(self):
5255  r"""get_radius(WeightMover self) -> IMP::Float"""
5256  return _IMP_isd.WeightMover_get_radius(self)
5257 
5258  def get_version_info(self):
5259  r"""get_version_info(WeightMover self) -> VersionInfo"""
5260  return _IMP_isd.WeightMover_get_version_info(self)
5261  __swig_destroy__ = _IMP_isd.delete_WeightMover
5262 
5263  def __str__(self):
5264  r"""__str__(WeightMover self) -> std::string"""
5265  return _IMP_isd.WeightMover___str__(self)
5266 
5267  def __repr__(self):
5268  r"""__repr__(WeightMover self) -> std::string"""
5269  return _IMP_isd.WeightMover___repr__(self)
5270 
5271  @staticmethod
5272  def get_from(o):
5273  return _object_cast_to_WeightMover(o)
5274 
5275 
5276 # Register WeightMover in _IMP_isd:
5277 _IMP_isd.WeightMover_swigregister(WeightMover)
5278 class WeightRestraint(IMP.Restraint):
5279  r"""Proxy of C++ IMP::isd::WeightRestraint class."""
5280 
5281  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5282 
5283  def __init__(self, w, wmin, wmax, kappa):
5284  r"""__init__(WeightRestraint self, Particle w, IMP::Float wmin, IMP::Float wmax, IMP::Float kappa) -> WeightRestraint"""
5285  _IMP_isd.WeightRestraint_swiginit(self, _IMP_isd.new_WeightRestraint(w, wmin, wmax, kappa))
5286 
5287  def do_get_inputs(self):
5288  r"""do_get_inputs(WeightRestraint self) -> IMP::ModelObjectsTemp"""
5289  return _IMP_isd.WeightRestraint_do_get_inputs(self)
5290 
5291  def get_version_info(self):
5292  r"""get_version_info(WeightRestraint self) -> VersionInfo"""
5293  return _IMP_isd.WeightRestraint_get_version_info(self)
5294  __swig_destroy__ = _IMP_isd.delete_WeightRestraint
5295 
5296  def __str__(self):
5297  r"""__str__(WeightRestraint self) -> std::string"""
5298  return _IMP_isd.WeightRestraint___str__(self)
5299 
5300  def __repr__(self):
5301  r"""__repr__(WeightRestraint self) -> std::string"""
5302  return _IMP_isd.WeightRestraint___repr__(self)
5303 
5304  @staticmethod
5305  def get_from(o):
5306  return _object_cast_to_WeightRestraint(o)
5307 
5308 
5309 # Register WeightRestraint in _IMP_isd:
5310 _IMP_isd.WeightRestraint_swigregister(WeightRestraint)
5311 class AtomicCrossLinkMSRestraint(IMP.Restraint):
5312  r"""Proxy of C++ IMP::isd::AtomicCrossLinkMSRestraint class."""
5313 
5314  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5315 
5316  def __init__(self, *args):
5317  r"""
5318  __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
5319  __init__(AtomicCrossLinkMSRestraint self) -> AtomicCrossLinkMSRestraint
5320  """
5321  _IMP_isd.AtomicCrossLinkMSRestraint_swiginit(self, _IMP_isd.new_AtomicCrossLinkMSRestraint(*args))
5322 
5323  def add_contribution(self, ppi, sigmas):
5324  r"""add_contribution(AtomicCrossLinkMSRestraint self, IMP::ParticleIndexPair const & ppi, IMP::ParticleIndexPair const & sigmas)"""
5325  return _IMP_isd.AtomicCrossLinkMSRestraint_add_contribution(self, ppi, sigmas)
5326 
5327  def evaluate_for_contributions(self, c, accum):
5328  r"""evaluate_for_contributions(AtomicCrossLinkMSRestraint self, IMP::Ints c, DerivativeAccumulator accum) -> IMP::Float"""
5329  return _IMP_isd.AtomicCrossLinkMSRestraint_evaluate_for_contributions(self, c, accum)
5330 
5331  def get_number_of_contributions(self):
5332  r"""get_number_of_contributions(AtomicCrossLinkMSRestraint self) -> unsigned int"""
5333  return _IMP_isd.AtomicCrossLinkMSRestraint_get_number_of_contributions(self)
5334 
5335  def get_contribution(self, i):
5336  r"""get_contribution(AtomicCrossLinkMSRestraint self, int i) -> IMP::ParticleIndexPair"""
5337  return _IMP_isd.AtomicCrossLinkMSRestraint_get_contribution(self, i)
5338 
5339  def get_contribution_sigmas(self, i):
5340  r"""get_contribution_sigmas(AtomicCrossLinkMSRestraint self, int i) -> IMP::ParticleIndexPair"""
5341  return _IMP_isd.AtomicCrossLinkMSRestraint_get_contribution_sigmas(self, i)
5342 
5343  def get_psi(self):
5344  r"""get_psi(AtomicCrossLinkMSRestraint self) -> ParticleIndex"""
5345  return _IMP_isd.AtomicCrossLinkMSRestraint_get_psi(self)
5346 
5347  def do_get_inputs(self):
5348  r"""do_get_inputs(AtomicCrossLinkMSRestraint self) -> IMP::ModelObjectsTemp"""
5349  return _IMP_isd.AtomicCrossLinkMSRestraint_do_get_inputs(self)
5350 
5351  def show(self, out):
5352  r"""show(AtomicCrossLinkMSRestraint self, _ostream out)"""
5353  return _IMP_isd.AtomicCrossLinkMSRestraint_show(self, out)
5354 
5355  def set_slope(self, slope):
5356  r"""set_slope(AtomicCrossLinkMSRestraint self, IMP::Float slope)"""
5357  return _IMP_isd.AtomicCrossLinkMSRestraint_set_slope(self, slope)
5358 
5359  def set_part_of_log_score(self, hey):
5360  r"""set_part_of_log_score(AtomicCrossLinkMSRestraint self, bool hey)"""
5361  return _IMP_isd.AtomicCrossLinkMSRestraint_set_part_of_log_score(self, hey)
5362 
5363  def get_version_info(self):
5364  r"""get_version_info(AtomicCrossLinkMSRestraint self) -> VersionInfo"""
5365  return _IMP_isd.AtomicCrossLinkMSRestraint_get_version_info(self)
5366  __swig_destroy__ = _IMP_isd.delete_AtomicCrossLinkMSRestraint
5367 
5368  def __str__(self):
5369  r"""__str__(AtomicCrossLinkMSRestraint self) -> std::string"""
5370  return _IMP_isd.AtomicCrossLinkMSRestraint___str__(self)
5371 
5372  def __repr__(self):
5373  r"""__repr__(AtomicCrossLinkMSRestraint self) -> std::string"""
5374  return _IMP_isd.AtomicCrossLinkMSRestraint___repr__(self)
5375 
5376  @staticmethod
5377  def get_from(o):
5378  return _object_cast_to_AtomicCrossLinkMSRestraint(o)
5379 
5380 
5381  def _get_as_binary(self):
5382  r"""_get_as_binary(AtomicCrossLinkMSRestraint self) -> PyObject *"""
5383  return _IMP_isd.AtomicCrossLinkMSRestraint__get_as_binary(self)
5384 
5385  def _set_from_binary(self, p):
5386  r"""_set_from_binary(AtomicCrossLinkMSRestraint self, PyObject * p)"""
5387  return _IMP_isd.AtomicCrossLinkMSRestraint__set_from_binary(self, p)
5388 
5389  def __getstate__(self):
5390  p = self._get_as_binary()
5391  if len(self.__dict__) > 1:
5392  d = self.__dict__.copy()
5393  del d['this']
5394  p = (d, p)
5395  return p
5396 
5397  def __setstate__(self, p):
5398  if not hasattr(self, 'this'):
5399  self.__init__()
5400  if isinstance(p, tuple):
5401  d, p = p
5402  self.__dict__.update(d)
5403  return self._set_from_binary(p)
5404 
5405 
5406 # Register AtomicCrossLinkMSRestraint in _IMP_isd:
5407 _IMP_isd.AtomicCrossLinkMSRestraint_swigregister(AtomicCrossLinkMSRestraint)
5408 class GaussianEMRestraint(IMP.Restraint):
5409  r"""Proxy of C++ IMP::isd::GaussianEMRestraint class."""
5410 
5411  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5412 
5413  def __init__(self, *args):
5414  r"""
5415  __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
5416  __init__(GaussianEMRestraint self) -> GaussianEMRestraint
5417  """
5418  _IMP_isd.GaussianEMRestraint_swiginit(self, _IMP_isd.new_GaussianEMRestraint(*args))
5419 
5420  def get_probability(self):
5421  r"""get_probability(GaussianEMRestraint self) -> double"""
5422  return _IMP_isd.GaussianEMRestraint_get_probability(self)
5423 
5425  r"""get_cross_correlation_coefficient(GaussianEMRestraint self) -> double"""
5426  return _IMP_isd.GaussianEMRestraint_get_cross_correlation_coefficient(self)
5427 
5428  def set_density_filename(self, density_fn):
5429  r"""set_density_filename(GaussianEMRestraint self, std::string density_fn)"""
5430  return _IMP_isd.GaussianEMRestraint_set_density_filename(self, density_fn)
5431 
5432  def compute_initial_scores(self):
5433  r"""compute_initial_scores(GaussianEMRestraint self)"""
5434  return _IMP_isd.GaussianEMRestraint_compute_initial_scores(self)
5435 
5436  def set_slope(self, s):
5437  r"""set_slope(GaussianEMRestraint self, IMP::Float s)"""
5438  return _IMP_isd.GaussianEMRestraint_set_slope(self, s)
5439 
5440  def get_slope(self):
5441  r"""get_slope(GaussianEMRestraint self) -> IMP::Float"""
5442  return _IMP_isd.GaussianEMRestraint_get_slope(self)
5443 
5444  def do_get_inputs(self):
5445  r"""do_get_inputs(GaussianEMRestraint self) -> IMP::ModelObjectsTemp"""
5446  return _IMP_isd.GaussianEMRestraint_do_get_inputs(self)
5447 
5448  def show(self, out):
5449  r"""show(GaussianEMRestraint self, _ostream out)"""
5450  return _IMP_isd.GaussianEMRestraint_show(self, out)
5451 
5452  def get_version_info(self):
5453  r"""get_version_info(GaussianEMRestraint self) -> VersionInfo"""
5454  return _IMP_isd.GaussianEMRestraint_get_version_info(self)
5455  __swig_destroy__ = _IMP_isd.delete_GaussianEMRestraint
5456 
5457  def __str__(self):
5458  r"""__str__(GaussianEMRestraint self) -> std::string"""
5459  return _IMP_isd.GaussianEMRestraint___str__(self)
5460 
5461  def __repr__(self):
5462  r"""__repr__(GaussianEMRestraint self) -> std::string"""
5463  return _IMP_isd.GaussianEMRestraint___repr__(self)
5464 
5465  @staticmethod
5466  def get_from(o):
5467  return _object_cast_to_GaussianEMRestraint(o)
5468 
5469 
5470  def _get_as_binary(self):
5471  r"""_get_as_binary(GaussianEMRestraint self) -> PyObject *"""
5472  return _IMP_isd.GaussianEMRestraint__get_as_binary(self)
5473 
5474  def _set_from_binary(self, p):
5475  r"""_set_from_binary(GaussianEMRestraint self, PyObject * p)"""
5476  return _IMP_isd.GaussianEMRestraint__set_from_binary(self, p)
5477 
5478  def __getstate__(self):
5479  p = self._get_as_binary()
5480  if len(self.__dict__) > 1:
5481  d = self.__dict__.copy()
5482  del d['this']
5483  p = (d, p)
5484  return p
5485 
5486  def __setstate__(self, p):
5487  if not hasattr(self, 'this'):
5488  self.__init__()
5489  if isinstance(p, tuple):
5490  d, p = p
5491  self.__dict__.update(d)
5492  return self._set_from_binary(p)
5493 
5494 
5495 # Register GaussianEMRestraint in _IMP_isd:
5496 _IMP_isd.GaussianEMRestraint_swigregister(GaussianEMRestraint)
5497 class GaussianAnchorEMRestraint(ISDRestraint):
5498  r"""Proxy of C++ IMP::isd::GaussianAnchorEMRestraint class."""
5499 
5500  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5501 
5502  def __init__(self, *args):
5503  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"""
5504  _IMP_isd.GaussianAnchorEMRestraint_swiginit(self, _IMP_isd.new_GaussianAnchorEMRestraint(*args))
5505 
5506  def get_density_particles(self):
5507  r"""get_density_particles(GaussianAnchorEMRestraint self) -> IMP::ParticlesTemp"""
5508  return _IMP_isd.GaussianAnchorEMRestraint_get_density_particles(self)
5509  __swig_destroy__ = _IMP_isd.delete_GaussianAnchorEMRestraint
5510 
5511  def __str__(self):
5512  r"""__str__(GaussianAnchorEMRestraint self) -> std::string"""
5513  return _IMP_isd.GaussianAnchorEMRestraint___str__(self)
5514 
5515  def __repr__(self):
5516  r"""__repr__(GaussianAnchorEMRestraint self) -> std::string"""
5517  return _IMP_isd.GaussianAnchorEMRestraint___repr__(self)
5518 
5519  @staticmethod
5520  def get_from(o):
5521  return _object_cast_to_GaussianAnchorEMRestraint(o)
5522 
5523 
5524 # Register GaussianAnchorEMRestraint in _IMP_isd:
5525 _IMP_isd.GaussianAnchorEMRestraint_swigregister(GaussianAnchorEMRestraint)
5526 class GammaPrior(IMP.Restraint):
5527  r"""Proxy of C++ IMP::isd::GammaPrior class."""
5528 
5529  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5530 
5531  def __init__(self, *args):
5532  r"""__init__(GammaPrior self, Model m, Particle p, IMP::Float k, IMP::Float theta, std::string name="GammaPrior%1%") -> GammaPrior"""
5533  _IMP_isd.GammaPrior_swiginit(self, _IMP_isd.new_GammaPrior(*args))
5534 
5535  def evaluate_at(self, val):
5536  r"""evaluate_at(GammaPrior self, IMP::Float val) -> double"""
5537  return _IMP_isd.GammaPrior_evaluate_at(self, val)
5538 
5539  def do_get_inputs(self):
5540  r"""do_get_inputs(GammaPrior self) -> IMP::ModelObjectsTemp"""
5541  return _IMP_isd.GammaPrior_do_get_inputs(self)
5542 
5543  def get_version_info(self):
5544  r"""get_version_info(GammaPrior self) -> VersionInfo"""
5545  return _IMP_isd.GammaPrior_get_version_info(self)
5546  __swig_destroy__ = _IMP_isd.delete_GammaPrior
5547 
5548  def get_probability(self):
5549  r"""get_probability(GammaPrior self) -> double"""
5550  return _IMP_isd.GammaPrior_get_probability(self)
5551 
5552  def __str__(self):
5553  r"""__str__(GammaPrior self) -> std::string"""
5554  return _IMP_isd.GammaPrior___str__(self)
5555 
5556  def __repr__(self):
5557  r"""__repr__(GammaPrior self) -> std::string"""
5558  return _IMP_isd.GammaPrior___repr__(self)
5559 
5560  @staticmethod
5561  def get_from(o):
5562  return _object_cast_to_GammaPrior(o)
5563 
5564 
5565 # Register GammaPrior in _IMP_isd:
5566 _IMP_isd.GammaPrior_swigregister(GammaPrior)
5567 
5568 def sample_points_from_density(dmap_orig, npoints, threshold=0.0):
5569  r"""sample_points_from_density(DensityMap dmap_orig, int npoints, IMP::Float threshold=0.0) -> IMP::FloatsList"""
5570  return _IMP_isd.sample_points_from_density(dmap_orig, npoints, threshold)
5571 class ResidueProteinProximityRestraint(IMP.Restraint):
5572  r"""Proxy of C++ IMP::isd::ResidueProteinProximityRestraint class."""
5573 
5574  thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
5575 
5576  def __init__(self, *args):
5577  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"""
5578  _IMP_isd.ResidueProteinProximityRestraint_swiginit(self, _IMP_isd.new_ResidueProteinProximityRestraint(*args))
5579 
5580  def add_pairs_container(self, pc):
5581  r"""add_pairs_container(ResidueProteinProximityRestraint self, PairContainer pc)"""
5582  return _IMP_isd.ResidueProteinProximityRestraint_add_pairs_container(self, pc)
5583 
5584  def add_contribution_particles(self, ppis1, ppis2):
5585  r"""add_contribution_particles(ResidueProteinProximityRestraint self, IMP::ParticleIndexes const ppis1, IMP::ParticleIndexes const ppis2)"""
5586  return _IMP_isd.ResidueProteinProximityRestraint_add_contribution_particles(self, ppis1, ppis2)
5587 
5588  def evaluate_for_contributions(self, c):
5589  r"""evaluate_for_contributions(ResidueProteinProximityRestraint self, IMP::Ints c) -> double"""
5590  return _IMP_isd.ResidueProteinProximityRestraint_evaluate_for_contributions(self, c)
5591 
5592  def get_number_of_contributions(self):
5593  r"""get_number_of_contributions(ResidueProteinProximityRestraint self) -> unsigned int"""
5594  return _IMP_isd.ResidueProteinProximityRestraint_get_number_of_contributions(self)
5595 
5596  def set_sigma(self, sigma):
5597  r"""set_sigma(ResidueProteinProximityRestraint self, double sigma)"""
5598  return _IMP_isd.ResidueProteinProximityRestraint_set_sigma(self, sigma)
5599 
5600  def set_cutoff(self, cutoff):
5601  r"""set_cutoff(ResidueProteinProximityRestraint self, double cutoff)"""
5602  return _IMP_isd.ResidueProteinProximityRestraint_set_cutoff(self, cutoff)
5603 
5604  def set_max_score(self, max_score):
5605  r"""set_max_score(ResidueProteinProximityRestraint self, double max_score)"""
5606  return _IMP_isd.ResidueProteinProximityRestraint_set_max_score(self, max_score)
5607 
5608  def set_yi(self, yi):
5609  r"""set_yi(ResidueProteinProximityRestraint self, double yi)"""
5610  return _IMP_isd.ResidueProteinProximityRestraint_set_yi(self, yi)
5611 
5612  def set_interpolation_factor(self, interpolation_factor):
5613  r"""set_interpolation_factor(ResidueProteinProximityRestraint self, double interpolation_factor)"""
5614  return _IMP_isd.ResidueProteinProximityRestraint_set_interpolation_factor(self, interpolation_factor)
5615 
5616  def set_part_of_log_score(self, hey):
5617  r"""set_part_of_log_score(ResidueProteinProximityRestraint self, bool hey)"""
5618  return _IMP_isd.ResidueProteinProximityRestraint_set_part_of_log_score(self, hey)
5619 
5620  def do_get_inputs(self):
5621  r"""do_get_inputs(ResidueProteinProximityRestraint self) -> IMP::ModelObjectsTemp"""
5622  return _IMP_isd.ResidueProteinProximityRestraint_do_get_inputs(self)
5623 
5624  def get_version_info(self):
5625  r"""get_version_info(ResidueProteinProximityRestraint self) -> VersionInfo"""
5626  return _IMP_isd.ResidueProteinProximityRestraint_get_version_info(self)
5627  __swig_destroy__ = _IMP_isd.delete_ResidueProteinProximityRestraint
5628 
5629  def __str__(self):
5630  r"""__str__(ResidueProteinProximityRestraint self) -> std::string"""
5631  return _IMP_isd.ResidueProteinProximityRestraint___str__(self)
5632 
5633  def __repr__(self):
5634  r"""__repr__(ResidueProteinProximityRestraint self) -> std::string"""
5635  return _IMP_isd.ResidueProteinProximityRestraint___repr__(self)
5636 
5637  @staticmethod
5638  def get_from(o):
5639  return _object_cast_to_ResidueProteinProximityRestraint(o)
5640 
5641 
5642 # Register ResidueProteinProximityRestraint in _IMP_isd:
5643 _IMP_isd.ResidueProteinProximityRestraint_swigregister(ResidueProteinProximityRestraint)
5644 
5645 def get_module_name():
5646  r"""get_module_name() -> std::string const"""
5647  return _IMP_isd.get_module_name()
5648 
5649 def get_module_version():
5650  r"""get_module_version() -> std::string const"""
5651  return _IMP_isd.get_module_version()
5652 
5653 def get_example_path(fname):
5654  r"""get_example_path(std::string fname) -> std::string"""
5655  return _IMP_isd.get_example_path(fname)
5656 
5657 def get_data_path(fname):
5658  r"""get_data_path(std::string fname) -> std::string"""
5659  return _IMP_isd.get_data_path(fname)
5660 
5661 from . import _version_check
5662 _version_check.check_version(get_module_version())
5663 __version__ = get_module_version()
5664 
5665 
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:270
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:274
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:206
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