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