BTW, if you updated IMP this morning, you probably should do so again as there was a subtle bug that only appeared in fast builds.
- runtime dimensional geometric objects have been added. These include IMP::algebra::VectorKD, IMP::algebra::BoundingBoxKD and IMP::algebra::SphereKD. The IMP::statistics::Embedding classes now use IMP::algebra::VectorKD instead of Floats. The sparse grids also support variable dimensions as to the nearest neighbor searches.
- IMP::atom::DopePairScore has been added to \imp.
- IMP::atom::CHARMMStereochemistryRestraint provides a high-level simplified interface to the bonded part of the CHARMM forcefield.
- \imp modules are now built by first combining all the .cpp files into one, and then building that file. This greatly accelerates building of a module from scratch as build time is dominated by parsing headers. This does change the semantics of .cpp files as they see headers included by and functions declared by an arbitrary subset of other .cpp files. For now they are still required to be able to be compiled separately. To get the only behavior back either globally or on a per-module basis, see the percppcompilation parameter to scons.
- Instructions and scripts have been added for building modules and things externally to the \imp build. See the installation guide.
- IMP::atom::CHARMMParameters can now automatically map CHARMM-style atom and residue naming to PDB-style, so CHARMM topology files can be used unmodified.
- IMP::atom::CHARMMTopology::add_sequence() provides a simple way to generate a topology from a string of amino acid one-letter codes.
- IMP::atom::CHARMMTopology::add_coordinates() will generate atomic Cartesian coordinates from CHARMM internal coordinate information.
- IMP::atom::CHARMMTopology::add_missing_atoms() and IMP::atom::remove_charmm_untyped_atoms() can now be used to ensure that atoms read from a PDB file match the CHARMM topology.
- building of deprecated functionality is now false by default
- the IMP_COMPARISONS(), IMP_COMPARISONS_1(), IMP_COMPARISONS_2() macros now take the name of the class as an additional (first) argument. This avoids the formerly needed, \c This typedef and makes them more consistent with the other macros in \imp.
- modules can now be built externally to the \imp svn in addition to applications and biological systems. To do so, create a directory with your module in a subdir containing links to the \imp SConscript file and scons_tools and a config.py that has information needed to run \imp (eg an appropriate \c pythonpath, \c ldpath).
- removed IMP::algebra::GridD::get_index(VectorD) as it wasn't very safe (in that vectors coordinates can get rounded between the IMP::algebra::GridD::get_has_index() and IMP::algebra::GridD::get_index() calls. Use IMP::algebra::GridD::get_nearest_index() or IMP::algebra::GridD::get_extended_index() or IMP::algebra::GridD::operator[]() instead.