Some people might have noticed that there is a project called VDT, which implements the same algorithms for sine, cosine, and friends as does Vc. The difference is that Vc implements the functions only for float_v and double_v, whereas VDT only defines float and double implementations. Still the algorithms are the same. So on Tuesday afternoon Danilo and I sat down at CERN for a chat about merging those efforts. And I'm very happy to announce that we'll work towards merging those efforts.

The plan is to have exactly one implementation of the algorithms that can work for float, double, float_v, and double_v. This will hopefully increase the quality and visibility for both projects. VDT should not get a dependency on Vc, though. VDT is perfectly usable and interesting without Vc - so that makes sense. Vc, on the other hand, can incorporate VDT releases into its own releases to provide the necessary implementations for math functions. There are still many open details, but the plan is solid. So, yay for more collaboration and efficient code sharing!

Vc 0.7.0 is ready. This release has seen major polishing, making it more intuitive and portable than any previous Vc release.

The compiler support was greatly improved:

GCC from version 4.1 on can compile Vc

clang 3.2

ICC 13.x

MSVC 2010 and 2012 are nearly fully supported. Full support is targeted for Vc 0.7.1.

The trigonometric functions have been reworked, leading to much higher precision. This came at the cost of speed. Vc 0.8 will look at more improvements and compromises in this area.

A major feature in 0.7 is the way operators are implemented. The Vc types now follow the C/C++ standards much closer how types implicitly convert when two different types are used with an operator. Examples for builtin types:

Vc was too picky before 0.7 and OTOH did some implicit conversions that could lead to unexpected results. For example int_v * float would lead to the float getting converted to int_v instead of the int_v getting converted to float_v and the float broadcast to another float_v. I.e. old behavior:

This is the first, and hopefully only, release candidate for Vc 0.7.0. This release has seen major polishing, making it more intuitive and portable than any previous Vc release.

The compiler support was greatly improved:

GCC from version 4.1 on can compile Vc

clang 3.2

ICC 13.x

MSVC 2010 and 2012 are nearly fully supported. Full support is targeted for Vc 0.7.1.

The trigonometric functions have been reworked, leading to much higher precision. This came at the cost of speed. Vc 0.8 will look at more compromises in this area.

A major feature in 0.7 is the way operators are implemented. The Vc types now follow the C/C++ standards much closer how types implicitly convert when two different types are used with an operator. Examples for builtin types:

Vc was too picky before 0.7 and OTOH did some implicit conversions that could lead to unexpected results. For example int_v * float would lead to the float getting converted to int_v instead of the int_v getting converted to float_v and the float broadcast to another float_v. I.e. old behavior:

With the latest Krita release depending on the development version of Vc, packagers have been asking for a release. And since I have not been able to follow my plan of release often (the "early" part worked...), I take that as a good reason to finally make a cut and move todo items to the next version.

One major issue for Vc 0.7 was the full support for more compilers. For Vc 0.7.0 I will thus skip full MSVC support. It will be good enough for most users, but a few unit tests are still failing. I hope to be able to get this fixed soon and release a Vc 0.7.1 then.

I just upgraded CDash to 2.0.2 and reset the complete database. All recent dashboard submissions where somehow broken. Finally the dashboard and the CTest submissions are working correctly again.

Feel free to set up nightly or even continuous builds yourself. Most appreciated would be builds with ICC, builds with out-of-the-box compilers on a great variety of Linux distris, and Windows builds! Contact me via mail or on IRC if you need help.