[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

updated vspline package data to upstream version 0.4.1



Dear Sébastien, dear group!

After roughly one year of tweaking, I've settled on vspline 0.4.1 as a version which I'd like to release to debian. Most of the development effort went into behind-the-scenes changes, making the backend more capable and stable, while the high-level interface via the transform-type functions has remained roughly the same.

The most significant modification is my handling of vector data: Previously, my strategy was to only use Vc for vectorization, and produce scalar code if Vc was not available. Now, if Vc is absent, I switch from Vc's vector objects to similarly-shaped small aggregates (using vigra::TinyVectors), which result in small, vector-friendly inner loops. The effect is that even without Vc's explicit vector code, vector code is still produced by the compiler's autovectorization stage. On the code side this has the pleasant effect that I don't need to differentiate between scalar and vector code: I can just use the vector code throughout. With this new strategy, most of vspline's bulk data operations are now roughly as fast without Vc as with Vc - the exception being bulk evaluations, where the Vc code is still often faster, most likely due to my code using Vc's explicit hardware gather/scatter operations.

Apart from that, I have made great efforts to make the code as robust and generic as possible, and I've also worked on precision, recalculating all b-spline-related constants in high-precision arithmetic (using GNU GMP, see bootstrap.cc), raising the maximal spline degree vspline can handle to 45.

I hope my updates to the package data are all as they should be, and I'd like to ask you, Sébastien, to take a look and, if everything is well, build and upload the package. If anything is amiss, please let me know.

With fond regards
Kay F. Jahnke


Reply to: