IMP
2.0.1
The Integrative Modeling Platform
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
IMP
IMP Documentation
Application Index
Argument Index
Class Examples
Modeling of GroEL with cnmultifit
Modeling of 3sfd with EMageFit
EMageFit protocol
EMageFit scripts and tools
Factory Index
Determination of a Nup133 structure with FoXS
Function Examples
Example design discussion
Developer Guide
Change History
Installation
Introduction
Mailing lists
Multithreaded evaluation using OpenMP
Integrative docking utility programs
Docking of PCSK9 with idock
Dependencies between objects
Module Index
Modeling of 3sfd with multifit
Deprecated List
Modules
Namespaces
Classes
Files
File List
__init__.py
algebra/__init__.py
atom/__init__.py
base/__init__.py
benchmark/__init__.py
cgal/__init__.py
cnmultifit/__init__.py
container/__init__.py
core/__init__.py
display/__init__.py
domino/__init__.py
em/__init__.py
em2d/__init__.py
example/__init__.py
gsl/__init__.py
isd/__init__.py
kernel/__init__.py
kmeans/__init__.py
misc/__init__.py
modeller/__init__.py
multifit/__init__.py
parallel/__init__.py
pepdock/__init__.py
restrainer/__init__.py
rmf/__init__.py
rotamer/__init__.py
saxs/__init__.py
score_functor/__init__.py
scratch/__init__.py
statistics/__init__.py
system/__init__.py
test/__init__.py
_display.py
_graph_show.py
_histogram.py
_interaction_graph.py
_main.py
_optimization.py
_pivy.py
_randomize.py
_representation.py
_restraint.py
algebra/_version_check.py
atom/_version_check.py
base/_version_check.py
benchmark/_version_check.py
cgal/_version_check.py
cnmultifit/_version_check.py
container/_version_check.py
core/_version_check.py
display/_version_check.py
domino/_version_check.py
em/_version_check.py
em2d/_version_check.py
example/_version_check.py
gsl/_version_check.py
isd/_version_check.py
kernel/_version_check.py
kmeans/_version_check.py
misc/_version_check.py
modeller/_version_check.py
multifit/_version_check.py
parallel/_version_check.py
pepdock/_version_check.py
restrainer/_version_check.py
rmf/_version_check.py
rotamer/_version_check.py
saxs/_version_check.py
score_functor/_version_check.py
scratch/_version_check.py
statistics/_version_check.py
system/_version_check.py
test/_version_check.py
_xml_parser.py
AbstractGrid.py
add_fit_rmsd.py
AddScores.h
algebra.h
algebra_config.h
algebra_macros.h
align.py
align2D.h
AlignmentParams.h
AlignSymmetric.h
AllBipartitePairContainer.h
AllPairContainer.h
AmbiguousNOERestraint.h
AmbiguousRestraint.h
analysis.h
Analysis.py
analyze_convergence.py
anchor_graph.h
anchor_utilities.h
anchors.py
anchors_reader.h
angle_decorators.h
AngleRestraint.h
AngleSingletonScore.h
AngleTripletScore.h
argminmax.py
Array.h
assess_dope.py
Assignment.h
assignment_containers.h
assignment_tables.h
associations.h
atom/Atom.h
Atom.h
atom_config.h
atom_io.h
atom_links.h
atom_macros.h
atomicDomino.py
atomicDominoUtilities.py
AttributeSingletonScore.h
BallMover.h
base.h
base_config.h
base_macros.h
base_types.h
kernel/base_types.h
basic_display.py
basic_geometry.py
basic_optimization.py
basic_setup.py
benchmark.h
benchmark_config.h
benchmark_macros.h
BerendsenThermostatOptimizerState.h
BildWriter.h
bipartite_nonbonded_interactions.py
bivariate_functions.h
blame.h
bond_decorators.h
bond_graph.h
BondedPairFilter.h
BondEndpointsRefiner.h
BondPairContainer.h
BondSingletonScore.h
BoundingBox3DSingletonScore.h
BoundingBoxD.h
BoxSweepClosePairsFinder.h
bracket_macros.h
BranchAndBoundSampler.h
brownian_statistics.py
BrownianDynamics.h
build.py
buildxlinks.py
cache.h
CenteredMat.h
CentroidOfRefined.h
cg_pdb.py
cgal.h
cgal_config.h
Chain.h
chain.py
Charged.h
charmm_forcefield.py
charmm_forcefield_verbose.py
charmm_segment_topology.h
charmm_topology.h
CHARMMAtom.h
CHARMMParameters.h
CHARMMStereochemistryRestraint.h
check_macros.h
ChecksScoreState.h
ChildrenRefiner.h
chimera_models.py
ChimeraWriter.h
ChiScore.h
ChiScoreLog.h
close_pairs_finder_macros.h
CloseBipartitePairContainer.h
ClosedCubicSpline.h
ClosePairContainer.h
ClosePairsFinder.h
ClosePairsPairScore.h
cluster.py
cluster_coarse.py
clustering_macros.h
clustering_of_pdb_models.py
CMMWriter.h
cn_rmsd.h
cnmultifit.h
cnmultifit.py
cnmultifit_config.h
CnSymmAxisDetector.h
coarse_molecule.h
CoarseCC.h
CoarseCCatIntervals.h
CoarseConvolution.h
collision_cross_section.py
CollisionCrossSection.h
Color.h
Colored.h
CommonEndpointPairFilter.h
comparison_macros.h
compat_subprocess.py
compatibility.h
compiler_macros.h
ComplementarityRestraint.h
complex_assembly.h
complex_to_anchor_graph.py
compute_chi.cpp
Cone3D.h
Configuration.h
kernel/Configuration.h
ConfigurationSet.h
kernel/ConfigurationSet.h
core/ConjugateGradients.h
gsl/ConjugateGradients.h
ConnectingPairContainer.h
connectivity.py
connectivity_restraint.py
ConnectivityRestraint.h
connolly_surface.h
ConsecutivePairContainer.h
ConstantRestraint.h
algebra/constants.h
atom/constants.h
constants.h
kernel/constants.h
Constraint.h
kernel/Constraint.h
ConstVector.h
container.h
container_base.h
kernel/container_base.h
container_config.h
container_macros.h
kernel/container_macros.h
convert_spider_to_jpg.py
converters.h
Copy.h
core.h
core_config.h
core_macros.h
Cosine.h
CoulombPairScore.h
counting.h
cover_particles.py
CoverBond.h
CoverRefined.h
CreateLogContext.h
creating_restraints.h
csv_related.py
cube.py
custom_filter.py
custom_hierarchy.py
CustomXYZR.h
Cylinder3D.h
Database.py
DataObject.h
DataPointsAssignment.h
decay.py
DecayPairContainerOptimizerState.h
declare_Geometry.h
declare_Model.h
kernel/declare_Model.h
declare_Object.h
declare_PairContainer.h
kernel/declare_PairContainer.h
declare_Particle.h
kernel/declare_Particle.h
declare_QuadContainer.h
kernel/declare_QuadContainer.h
declare_Restraint.h
kernel/declare_Restraint.h
declare_RestraintSet.h
kernel/declare_RestraintSet.h
declare_ScoringFunction.h
kernel/declare_ScoringFunction.h
declare_SingletonContainer.h
kernel/declare_SingletonContainer.h
declare_TripletContainer.h
kernel/declare_TripletContainer.h
Decorator.h
kernel/Decorator.h
decorator_macros.h
kernel/decorator_macros.h
def.h
density_analysis.h
density_map_volumetrics.h
density_utilities.h
density_utils.h
DensityDataPoints.h
DensityFillingRestraint.h
DensityHeader.h
DensityMap.h
cnmultifit_tools/dependencies.py
em_tools/dependencies.py
EMageFit/dependencies.py
example_app/dependencies.py
foxs/dependencies.py
integrative_docking/dependencies.py
ligand_score/dependencies.py
multifit_tools/dependencies.py
pdb_tools/dependencies.py
rmf_tools/dependencies.py
saxs_merge/dependencies.py
saxs_tools/dependencies.py
dependency_graph.h
kernel/dependency_graph.h
dependency_graph.py
DependencyScoreState.h
deprecation.h
deprecation_macros.h
DerivativeAccumulator.h
kernel/DerivativeAccumulator.h
DerivativeCalculator.h
DerivativesFromRefined.h
DerivativesToRefined.h
DiameterRestraint.h
Diffusion.h
DihedralRestraint.h
dihedrals.h
DihedralSingletonScore.h
DiscreteSampler.h
display.h
display_config.h
display_log.py
display_macros.h
displaying_ensembles.py
distance.h
distance_pair_score_macros.h
core/DistancePairScore.h
score_functor/DistancePairScore.h
DistanceRestraint.h
DistanceToSingletonScore.h
DistributePairsScoreState.h
DistributeQuadsScoreState.h
DistributeSingletonsScoreState.h
DistributeTripletsScoreState.h
Distribution.h
dock_with_crosslinks.py
Domain.h
domino.h
domino_approach.py
domino_config.h
domino_filter_tables.h
domino_filters.h
domino_macros.h
domino_particle_states.h
DominoModel.py
DominoSampler.h
Dope.h
dope_and_excluded_volume.cpp
DopePairScore.h
doxygen.h
kernel/doxygen.h
doxygen_macros.h
DummyRestraint.h
DynamicListPairContainer.h
DynamicListQuadContainer.h
DynamicListSingletonContainer.h
DynamicListTripletContainer.h
eigen_analysis.h
element.h
Ellipsoid3D.h
em.h
em2d.h
em2d_config.h
Em2DRestraint.h
em_config.h
em_images_conversion.py
em_restraint.py
emagefit.py
emagefit_cluster.py
emagefit_dock.py
emagefit_score.py
em/embedding.h
statistics/embedding.h
embedding_macros.h
embeddings.h
EMReaderWriter.h
endian.h
ensemble_analysis.h
Entry.py
enums.h
envelope_penetration.h
EnvelopeFitRestraint.h
EnvelopePenetrationRestraint.h
EnvelopeScore.h
estimate_threshold_from_molecular_mass.py
estimates.h
EventPairsOptimizerState.h
EventQuadsOptimizerState.h
EventSingletonsOptimizerState.h
EventTripletsOptimizerState.h
example.h
example_config.h
ExampleComplexRestraint.h
ExampleConstraint.h
ExampleDecorator.h
ExamplePairScore.h
ExampleRefCounted.h
ExampleRestraint.h
ExampleSingletonModifier.h
ExampleSubsetFilterTable.h
ExampleTemplateClass.h
ExampleUnaryFunction.h
base/exception.h
exception.h
kernel/exception.h
excluded_volume.py
ExcludedVolumeRestraint.h
exp.h
fft_based_rigid_fitting.h
FFToperations.h
fifobased_loader.py
FIFOBasedGrid.py
base/file.h
file.h
kernel/file.h
filebased_loader.py
FileBasedGrid.py
filenames_manipulation.h
filter_close_pairs.py
FilterGeometry.h
Fine2DRegistrationRestraint.h
fit_fft.py
fit_restraint.py
FitParameters.h
FitRestraint.h
fitting_clustering.h
fitting_solutions_reader_writer.h
fitting_states.h
fitting_tools.h
fitting_utils.h
FittingSolutionRecord.h
FixedRefiner.h
flags.h
FloatIndex.h
kernel/FloatIndex.h
FNormal.h
force_fields.h
ForceFieldParameters.h
FormFactorTable.h
foxs.cpp
Fragment.h
frames.h
functor.h
kernel/functor.h
GaussianProcessInterpolation.h
GaussianProcessInterpolationRestraint.h
GaussianProcessInterpolationRestraintSparse.h
GaussianProcessInterpolationSparse.h
GaussianRestraint.h
generate_density_map_of_fixed_dimension.py
container/generic.h
core/generic.h
generic.h
kernel/generic.h
geometric_alignment.h
geometric_primitive_macros.h
GeometricHash.h
GeometricPrimitiveD.h
geometry.h
algebra/geometry.py
rmf/geometry.py
geometry_io.h
geometry_macros.h
GeometryProcessor.h
GeometrySet.h
graph.py
graph_macros.h
grid_embeddings.h
grid_indexes.h
grid_ranges.h
grid_space.py
grid_storages.h
grid_utility.h
GridClosePairsFinder.h
GridD.h
gsl.h
gsl_config.h
GSLOptimizer.h
core/Harmonic.h
score_functor/Harmonic.h
core/HarmonicLowerBound.h
score_functor/HarmonicLowerBound.h
core/HarmonicUpperBound.h
score_functor/HarmonicUpperBound.h
HarmonicWell.h
hash.h
hash_macros.h
header_converters.h
hierarchical_clustering.h
atom/Hierarchy.h
core/Hierarchy.h
hierarchy_tools.h
Histogram.h
HistogramD.h
History.py
hosts.py
HybridMonteCarlo.h
idock.py
Image.h
image_processing.h
ImageHeader.h
ImageReaderWriter.h
IMP.h
imp_example_app.cpp
imp_restraints_in_modeller.py
ImproperSingletonScore.h
InContainerPairFilter.h
InContainerQuadFilter.h
InContainerSingletonFilter.h
InContainerTripletFilter.h
incremental_mc.py
IncrementalScoringFunction.h
Index.h
indexes.py
input_output.h
kernel/input_output.h
input_output_macros.h
kernel/input_output_macros.h
InputAdaptor.h
interactive.h
interactive.py
interactive_with_containers.py
algebra/io.h
io.h
kernel/io.h
isd.h
isd_config.h
ISDRestraint.h
JeffreysRestraint.h
JPGImageReaderWriter.h
kernel.h
kernel_config.h
KernelParameters.h
kernel/Key.h
Key.h
kernel/key_macros.h
key_macros.h
kmeans/KMeans.h
KMeans.h
kmeans.py
kmeans_config.h
kmeans_example.py
LangevinThermostatOptimizerState.h
LeavesRefiner.h
LennardJones.h
LennardJonesPairScore.h
ligand_score.cpp
Linear.h
LinearFit.h
LinearLowerBound.h
link.py
link_macros.h
links.h
ListPairContainer.h
ListQuadContainer.h
ListSingletonContainer.h
ListTripletContainer.h
live_objects.h
load_modeller_model.py
load_protein_restrain_bonds.py
local_distance.py
local_fitting.py
base/log.h
kernel/log.h
log.h
log.py
log_macros.h
logfile.py
LogicalORRestraint.h
LognormalRestraint.h
LogOptimizerState.h
LogPairScore.h
LowestRefinedPairScore.h
kernel/macros.h
macros.h
MaintainScaleOrderConstraint.h
map.h
map2pca.py
MapDistanceTransform.h
MapReaderWriter.h
MarginalHBondRestraint.h
MarginalNOERestraint.h
marina_party.py
markers.py
masking.h
Mass.h
master_communicator.py
math.h
MCCGSampler.h
doc/examples/domino/merge_tree.py
lib/IMP/multifit/merge_tree.py
merge_tree_utils.h
Metric.h
metric_clustering.h
metric_macros.h
metrics.h
MinimumPairRestraint.h
MinimumPairScore.h
MinimumQuadRestraint.h
MinimumQuadScore.h
MinimumRestraint.h
MinimumSingletonRestraint.h
MinimumSingletonScore.h
MinimumTripletRestraint.h
MinimumTripletScore.h
misc.h
misc_config.h
kernel/Model.h
Model.h
model_interaction.h
model_statistics.h
modeller.h
modeller_config.h
modeller_restraints_in_imp.py
kernel/ModelObject.h
ModelObject.h
models.py
mol2.h
mol2pca.py
MolCnSymmAxisDetector.h
molecular_hierarchy.py
atom/MolecularDynamics.h
isd/MolecularDynamics.h
MolecularDynamicsMover.h
Molecule.h
monte_carlo_macros.h
MonteCarlo.h
MonteCarloMover.h
MonteCarloRelativeMoves.py
Mover.h
mover_macros.h
MoverBase.h
MoveStatisticsScoreState.h
MRCReaderWriter.h
ms_connectivity_restraint.py
MSConnectivityRestraint.h
multifit.h
multifit.py
multifit_config.h
MultipleBinormalRestraint.h
multiresolution.py
multiscale.py
MultivariateFNormalSufficient.h
MultivariateFNormalSufficientSparse.h
NearestNeighborsClosePairsFinder.h
NOERestraint.h
nonbonded_interactions.py
NonCopyable.h
NormalMover.h
Nuisance.h
NuisanceRangeModifier.h
nullptr.h
nullptr_macros.h
nup84.py
nup84_complex_in_bead_representation.py
base/Object.h
kernel/Object.h
Object.h
object_cast.h
object_macros.h
core/OpenCubicSpline.h
score_functor/OpenCubicSpline.h
opencv_interface.h
optimize_balls.py
optimize_em2d_with_montecarlo.py
kernel/Optimizer.h
Optimizer.h
kernel/optimizer_macros.h
optimizer_macros.h
kernel/optimizer_state_macros.h
optimizer_state_macros.h
kernel/OptimizerState.h
OptimizerState.h
optimizing.h
Order.h
OrderedDict.py
osPeptideDocker.py
kernel/pair_macros.h
pair_macros.h
pair_predicates.h
pair_restraint.py
PairConstraint.h
kernel/PairContainer.h
PairContainer.h
PairContainerSet.h
PairContainerStatistics.h
kernel/PairDerivativeModifier.h
PairDerivativeModifier.h
kernel/PairModifier.h
PairModifier.h
kernel/PairPredicate.h
PairPredicate.h
PairRestraint.h
PairsConstraint.h
kernel/PairScore.h
PairScore.h
PairsOptimizerState.h
PairsRestraint.h
ParabolicFit.h
parallel.h
parallel_config.h
cnmultifit/param.py
multifit/param.py
kernel/Particle.h
Particle.h
particle_geometry.h
kernel/particle_index.h
particle_index.h
particle_io.h
particle_states.h
kernel/ParticleTuple.h
ParticleTuple.h
partitional_clustering_macros.h
PartitionalClustering.h
PartitionalClusteringWithCenter.h
path_reader_writer.h
pca_based_rigid_fitting.h
PCAAligner.h
PCAFitRestraint.h
pdb.h
pdb.py
pdb2density.py
pdb_check.cpp
pdb_rmf.cpp
pepdock.h
pepdock_config.h
peptideDocker.py
periodic_optimizer_state_macros.h
PeriodicOptimizerState.h
piecewise_linear_distribution.h
Plane3D.h
point_clustering.h
base/Pointer.h
kernel/Pointer.h
Pointer.h
PolarResamplingParameters.h
PredicatePairsRestraint.h
PredicateQuadsRestraint.h
predicates.h
PredicateSingletonsRestraint.h
PredicateTripletsRestraint.h
primitive_geometries.h
Profile.h
profile.py
profile_fit.py
ProfileFitter.h
Profiler.h
project.h
ProjectionFinder.h
ProjectionMask.h
ProjectionParameters.h
protein_anchors_mapping_reader.h
protein_ligand_score.h
proteomics.py
proteomics_em_alignment_atomic.h
proteomics_reader.h
PymolWriter.h
PyroGrid.py
PyroHandlerLoader.py
PyroUtils.py
algebra/python_only.h
atom/python_only.h
core/python_only.h
display/python_only.h
kernel/python_only.h
python_only.h
statistics/python_only.h
kernel/quad_macros.h
quad_macros.h
quad_predicates.h
QuadConstraint.h
kernel/QuadContainer.h
QuadContainer.h
QuadContainerSet.h
QuadContainerStatistics.h
kernel/QuadDerivativeModifier.h
QuadDerivativeModifier.h
kernel/QuadModifier.h
QuadModifier.h
kernel/QuadPredicate.h
QuadPredicate.h
QuadraticClosePairsFinder.h
QuadRestraint.h
QuadsConstraint.h
kernel/QuadScore.h
QuadScore.h
QuadsOptimizerState.h
QuadsRestraint.h
QuasiNewton.h
multifit/RadiusOfGyrationRestraint.h
saxs/RadiusOfGyrationRestraint.h
RAII.h
raii_macros.h
base/random.h
kernel/random.h
random.h
randomize_rigid_body.py
randomizing.h
range_restriction.py
RecursivePartitionalClusteringEmbedding.h
RecursivePartitionalClusteringMetric.h
ref_counted_macros.h
base/RefCounted.h
kernel/RefCounted.h
RefCounted.h
reference.py
ReferenceFrame3D.h
refine_fft.py
RefinedPairsPairScore.h
kernel/Refiner.h
Refiner.h
kernel/refiner_macros.h
refiner_macros.h
Reflection3D.h
RegistrationResult.h
RelativePositionMover.h
RemoveRigidMotionOptimizerState.h
RemoveTranslationOptimizerState.h
Replica.py
RepulsiveDistancePairScore.h
resample_density.py
Residue.h
restrain_diameter.py
restrain_in_sphere.py
restrain_minimum_distance.py
restrainer.h
restrainer_config.h
kernel/Restraint.h
Restraint.h
saxs/Restraint.h
restraint_cache.py
restraint_geometry.h
restraint_io.h
kernel/restraint_macros.h
restraint_macros.h
restraints.py
kernel/RestraintSet.h
RestraintSet.h
RestraintsScoringFunction.h
rg.cpp
rigid_bodies.h
rigid_bodies.py
rigid_body_and_excluded_volume_restraint.py
rigid_body_excluded_volume.py
rigid_body_geometries.h
rigid_brownian_dynamics.py
rigid_collisions.py
rigid_fitting.h
RigidBodiesImageFitRestraint.h
RigidBodyDistancePairScore.h
RigidBodyMover.h
RigidClosePairsFinder.h
rmf.h
rmf_color.cpp
rmf_config.h
rmf_display.cpp
RMFWriter.h
rmsd.py
RMSDClustering.h
ro.py
rotamer.h
rotamer_config.h
rotamer_pdb.py
rotamer_pdb2.py
RotamerCalculator.h
RotamerLibrary.h
Rotation2D.h
Rotation3D.h
SameResiduePairFilter.h
SampledDensityMap.h
kernel/Sampler.h
Sampler.h
kernel/sampler_macros.h
sampler_macros.h
sampling.py
save_assignments.py
SaveOptimizerState.h
saxs.h
saxs_config.h
saxs_merge.py
saxs_restraint.py
Scale.h
kernel/scoped.h
scoped.h
Score.h
score.py
score_functor.h
score_functor_config.h
score_protein_with_ligand.py
kernel/score_state_macros.h
score_state_macros.h
kernel/ScoreAccumulator.h
ScoreAccumulator.h
scores2D.h
kernel/ScoreState.h
ScoreState.h
ScoreUnaryFunction.h
kernel/scoring_function_macros.h
scoring_function_macros.h
kernel/ScoringFunction.h
ScoringFunction.h
scratch.h
scratch_config.h
secondary_structure_reader.h
SecondaryStructureResidue.h
Segment3D.h
Selection.h
SerialMover.h
serialPeptideDocker.py
set.h
SetCheckState.h
SetLogState.h
SettingsData.h
setup.py
shared_functions.py
Shift.h
shortest_segment.h
show_particles_as_spheres.py
Showable.h
showable_macros.h
simple_connectivity_on_molecules.py
simple_connectivity_on_rigid_bodies.py
simple_diameter.py
simple_distance.py
simple_em_fit.py
simple_excluded_volume.py
simple_links.h
Simplex.h
simplex.py
simplify_restraint.h
simulate_density_from_pdb.py
simulation.py
Simulator.h
kernel/singleton_macros.h
singleton_macros.h
singleton_predicates.h
SingletonConstraint.h
kernel/SingletonContainer.h
SingletonContainer.h
SingletonContainerSet.h
SingletonContainerStatistics.h
kernel/SingletonDerivativeModifier.h
SingletonDerivativeModifier.h
kernel/SingletonModifier.h
SingletonModifier.h
kernel/SingletonPredicate.h
SingletonPredicate.h
SingletonRestraint.h
SingletonsConstraint.h
kernel/SingletonScore.h
SingletonScore.h
SingletonsOptimizerState.h
SingletonsRestraint.h
six_particles_optimization.py
slave_handler.py
slavestate.py
Slice.h
SlidingPriorRestraint.h
smoothing_functions.h
SoftCylinderPairScore.h
solutions_io.py
SolventAccessibleSurface.h
Sphere3D.h
SphereD.h
SphereDistance.h
SphereDistancePairScore.h
SpherePatch3D.h
SphericalVector3D.h
SpiderHeader.h
SpiderImageReaderWriter.h
SpiderReaderWriter.h
standard_grids.h
StateAdaptor.h
Statistical.h
StatisticalPairScore.h
statistics.h
Statistics.py
statistics_config.h
SteepestDescent.h
StereochemistryPairFilter.h
structure_from_sequence.py
subproc.py
Subset.h
subset_filters.h
subset_graphs.h
subset_scores.h
surface.py
SurfaceShellDensityMap.h
swap_macros.h
swig_macros.h
Switching.h
symmetric_multifit.h
symmetry.h
symmetry.py
symmetry_utils.h
system.h
system_config.h
TableRefiner.h
TALOSReader.py
TALOSRestraint.h
tasks.py
TBLReader.py
test.h
thread_macros.h
threads.h
TIFFImageReaderWriter.h
tracking.h
Transform.h
Transformation2D.h
Transformation3D.h
TransformationClustering.h
TransformedDistancePairScore.h
transforms.py
Triangle3D.h
kernel/triplet_macros.h
triplet_macros.h
triplet_predicates.h
TripletConstraint.h
kernel/TripletContainer.h
TripletContainer.h
TripletContainerSet.h
TripletContainerStatistics.h
kernel/TripletDerivativeModifier.h
TripletDerivativeModifier.h
kernel/TripletModifier.h
TripletModifier.h
kernel/TripletPredicate.h
TripletPredicate.h
TripletRestraint.h
TripletsConstraint.h
kernel/TripletScore.h
TripletScore.h
TripletsOptimizerState.h
TripletsRestraint.h
TruncatedHarmonic.h
TuneRex.py
tuple_macros.h
Typed.h
TypedPairScore.h
types.h
kernel/unary_function_macros.h
unary_function_macros.h
kernel/UnaryFunction.h
UnaryFunction.h
UnaryFunctionEvaluate.h
kernel/Undecorator.h
Undecorator.h
univariate_functions.h
util.py
algebra/utility.h
base/utility.h
benchmark/utility.h
core/utility.h
domino/utility.h
kernel/utility.h
saxs/utility.h
statistics/utility.h
utility.h
utility.py
utility_macros.h
utils.py
validate_profile.cpp
Value.h
value_macros.h
Vector.h
Vector2D.h
Vector3D.h
vector_generators.h
vector_metrics.h
vector_property_map.h
vector_search.h
VectorD.h
VelocityScalingOptimizerState.h
base/VersionInfo.h
kernel/VersionInfo.h
VersionInfo.h
view_density_header.py
VolumeRestraint.h
vonMises.h
vonMisesKappaConjugateRestraint.h
vonMisesKappaJeffreysRestraint.h
vonMisesSufficient.h
Voxel.h
warning_macros.h
WarningContext.h
base/WeakPointer.h
kernel/WeakPointer.h
WeakPointer.h
weighted_excluded_volume.h
WeightedExcludedVolumeRestraint.h
WeightScore.h
WormLikeChain.h
write_a_metric.py
write_a_restraint.py
write_an_optimizer_state.py
Writer.h
writer_macros.h
XplorReaderWriter.h
XYZ.h
XYZ_Decorator.py
XYZR.h
XYZR_Decorator.py
File Members
Examples
benchmark_macros.h
Go to the documentation of this file.
1
/**
2
* \file IMP/benchmark/benchmark_macros.h
3
* \brief Various general useful macros for IMP.
4
*
5
* Copyright 2007-2013 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPBENCHMARK_MACROS_H
10
#define IMPBENCHMARK_MACROS_H
11
12
#include <IMP/benchmark/benchmark_config.h>
13
#include <
IMP/base/flags.h
>
14
#include <boost/timer.hpp>
15
#include <boost/scoped_ptr.hpp>
16
#include "internal/control.h"
17
#include "internal/flags.h"
18
#include <
IMP/base/exception.h
>
19
#include <boost/date_time/posix_time/posix_time.hpp>
20
#include <boost/date_time/posix_time/posix_time_types.hpp>
21
#include <boost/date_time/posix_time/posix_time_duration.hpp>
22
23
#if IMP_BASE_HAS_GPERFTOOLS
24
#include <gperftools/profiler.h>
25
#endif
26
#if IMP_BASE_HAS_TCMALLOC_HEAPPROFILER
27
#include <gperftools/heap-profiler.h>
28
#endif
29
#if IMP_BASE_HAS_TCMALLOC_HEAPCHECKER
30
#include <gperftools/heap-checker.h>
31
#endif
32
33
#define IMP_BENCHMARK_RUN \
34
++IMP::benchmark::internal::current_benchmark; \
35
if ((IMP::benchmark::internal::run_only <0 \
36
|| (IMP::benchmark::internal::run_only>=0 \
37
&& IMP::benchmark::internal::run_only \
38
== IMP::benchmark::internal::current_benchmark)))
39
40
#if IMP_BASE_HAS_GPERFTOOLS
41
#define IMP_BENCHMARK_CPU_PROFILING_BEGIN \
42
if (IMP::benchmark::internal::cpu_profile_benchmarks) { \
43
ProfilerStart(IMP::benchmark::internal::get_file_name(".pprof").c_str()); \
44
}
45
#define IMP_BENCHMARK_CPU_PROFILING_END \
46
if (IMP::benchmark::internal::cpu_profile_benchmarks) { \
47
ProfilerStop(); \
48
}
49
#else
50
#define IMP_BENCHMARK_CPU_PROFILING_BEGIN
51
#define IMP_BENCHMARK_CPU_PROFILING_END
52
#endif
53
54
#if IMP_BASE_HAS_TCMALLOC_HEAPPROFILER
55
#define IMP_BENCHMARK_HEAP_PROFILING_BEGIN \
56
if (IMP::benchmark::internal::heap_profile_benchmarks) { \
57
HeapProfilerStart(IMP::benchmark::internal \
58
::get_file_name(".hprof").c_str()); \
59
}
60
#define IMP_BENCHMARK_HEAP_PROFILING_END \
61
if (IMP::benchmark::internal::heap_profile_benchmarks) { \
62
HeapProfilerStop(); \
63
}
64
#else
65
#define IMP_BENCHMARK_HEAP_PROFILING_BEGIN
66
#define IMP_BENCHMARK_HEAP_PROFILING_END
67
#endif
68
69
#if IMP_BASE_HAS_TCMALLOC_HEAPCHECKER
70
#define IMP_BENCHMARK_HEAP_CHECKING_BEGIN \
71
boost::scoped_ptr<HeapLeakChecker> heap_checker; \
72
if (IMP::benchmark::internal::heap_check_benchmarks) { \
73
heap_checker.reset(new HeapLeakChecker(IMP::benchmark \
74
::internal::get_file_name("").c_str())); \
75
}
76
#define IMP_BENCHMARK_HEAP_CHECKING_END \
77
if (IMP::benchmark::internal::heap_check_benchmarks) { \
78
if (!heap_checker->NoLeaks()) std::cerr << "Leaks found\n"; \
79
heap_checker.reset(nullptr); \
80
}
81
#else
82
#define IMP_BENCHMARK_HEAP_CHECKING_BEGIN
83
#define IMP_BENCHMARK_HEAP_CHECKING_END
84
#endif
85
86
#define IMP_BENCHMARK_PROFILING_BEGIN \
87
IMP_BENCHMARK_CPU_PROFILING_BEGIN \
88
IMP_BENCHMARK_HEAP_CHECKING_BEGIN \
89
IMP_BENCHMARK_HEAP_PROFILING_BEGIN
90
91
#define IMP_BENCHMARK_PROFILING_END \
92
IMP_BENCHMARK_CPU_PROFILING_END \
93
IMP_BENCHMARK_HEAP_CHECKING_END \
94
IMP_BENCHMARK_HEAP_PROFILING_END
95
96
97
//! Time the given command and assign the time of one iteration to the variable
98
/** The units for the time are in seconds. See also IMP_TIME_N */
99
#define IMP_TIME(block, timev) \
100
IMP_BENCHMARK_RUN { \
101
boost::timer imp_timer; \
102
unsigned int imp_reps=0; \
103
IMP_BENCHMARK_PROFILING_BEGIN; \
104
try { \
105
do { \
106
block; \
107
++imp_reps; \
108
} while (imp_timer.elapsed() < 2.5 && !IMP::base::run_quick_test); \
109
} catch (const IMP::base::Exception &e) { \
110
std::cerr<< "Caught exception " \
111
<< e.what() << std::endl; \
112
} \
113
IMP_BENCHMARK_PROFILING_END; \
114
timev= imp_timer.elapsed()/imp_reps; \
115
} else { \
116
timev=-1; \
117
}
118
119
//! Time the given command and assign the time of one iteration to the variable
120
/** The units for the time are in seconds. See also IMP_TIME_N */
121
#define IMP_WALLTIME(block, timev) \
122
IMP_BENCHMARK_RUN { \
123
using namespace boost::posix_time; \
124
ptime start=microsec_clock::local_time(); \
125
unsigned int imp_reps=0; \
126
IMP_BENCHMARK_PROFILING_BEGIN; \
127
try { \
128
do { \
129
block; \
130
++imp_reps; \
131
} while (microsec_clock::local_time()-start < seconds(2) \
132
&& !IMP::base::run_quick_test); \
133
} catch (const IMP::base::Exception &e) { \
134
std::cerr<< "Caught exception " \
135
<< e.what() << std::endl; \
136
} \
137
IMP_BENCHMARK_PROFILING_END; \
138
timev= (microsec_clock::local_time()-start) \
139
.total_milliseconds()/1000.0 \
140
/imp_reps; \
141
} else { \
142
timev=-1; \
143
}
144
145
//! Time the given command and assign the time of one iteration to the variable
146
/** The units for the time are in seconds. The bit of code is run
147
exact N times. See also IMP_TIME */
148
#define IMP_TIME_N(block, timev, N) \
149
IMP_BENCHMARK_RUN { \
150
boost::timer imp_timer; \
151
IMP_BENCHMARK_PROFILING_BEGIN; \
152
for (unsigned int i=0; i< (N); ++i) { \
153
try { \
154
block; \
155
} catch (const IMP::base::Exception &e) { \
156
std::cerr<< "Caught exception " \
157
<< e.what() << std::endl; \
158
break; \
159
} \
160
if (IMP::base::run_quick_test) break; \
161
} \
162
IMP_BENCHMARK_PROFILING_END; \
163
timev= imp_timer.elapsed()/(N); \
164
} else { \
165
timev=-1; \
166
}
167
168
169
#endif
/* IMPBENCHMARK_MACROS_H */