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