Still some rough edges:
1) double tab[]={.1,.2,.3}; Point_d p(tab+0,tab+3); lazily stores
iterators to tab, so tab had better still be alive when we need
update_exact.
2) One functor (point on a sphere) cannot be done exactly exactly with
a representation center+squared radius.
3) Several hacks that make this not as generic as it should be.