Vector Classes 1.3.1

Vc is a free software library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets. Thus an application written with Vc can be compiled for: * AVX and AVX2 * SSE2 up to SSE4.2 or SSE4a * Scalar * MIC

Tags c++ library simd vectorization data-parallel
License BSDL
State stable

Recent Releases

1.3.109 Mar 2017 14:00 minor bugfix: * `swap(v i , v j )` did not compile. Vc 1.3.1 overloads the `swap` function and thus enables swapping scalars into/out of vector and mask objects. * The spline example has moved to the new Vc-examples-nonfree repository since it has a license that restricts redistribution.
1.3.028 Oct 2016 13:31 major bugfix: * 64-bit MS VisualStudio 2015 support. (See #119 for some of the gory details.) * ICC 17 support (#143). * GCC 6 support (#125). * Workarounds for bad ICC code-gen (#135). Now Vc not only works correctly when compiled with ICC, but also performs as good (or better) as GCC and Clang. * Safer and more restrictive subscripting on `Vector` and `Mask`. There is a minor source compatibility break involved, since `Vector::operator ` returned lvalue references before Vc 1.3 and returns a smart reference (rvalue) now. This change reduces the chance of miscompilation internal compiler errors and reduces the reliance on non-standard C++ extensions. * Support for `x32` compilation (like x86_64 but with 32-bit pointers). * Added scatter interface to `SimdArray` (thanks to Kay Jahnke). * `simd_cast` properly works with ADL now (i.e. you don't have to write fully qualified `Vc::simd_cast` anymore). * Added `simd_for_each_n` (thanks to Hartmut Kaiser).
1.520 Aug 2015 18:05 major feature: Regexp support (using Oniguruma)! A proper module system. Destructuring syntax ( . as first, second, foo, bar ... ). Math functions. An online streaming parser. Minimal I/O builtions (inputs, debug). Try/catch for catching and handling errors. Tail call optimization (TCO), which allows efficient recursion in jq. A variety of new control structure builtins (e.g., while(cond; exp), repeat(exp), until(cond; next)), many of which internally use TCO. An enhanced form of reduce : foreach exp as name (init_exp; update_exp; extract_exp) . The ability to read module data files. Aupport for application/json-seq (RFC7464). A large variety of new utility functions, many being community contributions (e.g., bsearch , for binary searching arrays). Datetime functions. A variety of performance enhancements. Def( a): ...; is now allowed as an equivalent of def(a): a as a ...; test and build improvements, including gcov support.
3.019 Jun 2015 12:25 feature: ne is now fully 64-bit, and needs to be compiled by a C99-compliant compiler. Files can be of any size, provided that enough core memory is available. ne is able to read from named pipes. You can even pipe content into ne: it will be opened as the first document. It is now possible to interrupt searches (it used to be possible just to interrupt global replace actions). Word wrap has been reverted to pre-2.5: it preserves just whitespace, and it doesn't reparagraph at each line split or join. Paragraph keeps the usual smart features preserving comments, etc.
2.621 Apr 2015 06:05 major feature: Requesters (filenames, help, autocompletions, etc.) do progressive "fuzzy match" by typed characters, backspace. Document requester (F4) opens with cursor on the current document. Docs with unsaved changes are bold, flagged with "". F2/F3 reorder documents. Tab in Syntax command displays requester of extant syntax recognizers. You can now use AutoComplete in command line prompts. New SaveAll command saves all modified documents. Warns before saving over a file that was modified since the buffer was last loaded or saved. New command to join parens/braces/brackets as character pairs known to MatchBracket. New example macros: aspell, DeleteSOL. Add to special leading characters for re-wrapping Paragraphs. WordWrap no longer waits for the cursor to hit the right margin; it wraps on insertions and deletions now. Updates to ruby, erb, python, conf, many other syntax recognizers. Added these recognizers from the Joe project: ant batch classic_pascal comment_todo csharp debian differences elixir erlang git-commit go haml htmlerb ini iptables js json md powershell pp prolog properties sieve typescript whitespace YAML.