void archive_options_extract::set_selection(const mask & selection) { NLS_SWAP_IN; try { archive_option_destroy_mask(x_selection); x_selection = selection.clone(); if(x_selection == NULL) throw Ememory("archive_options_extract::set_selection"); } catch(...) { NLS_SWAP_OUT; throw; } NLS_SWAP_OUT; }
void archive_options_merge::set_ea_mask(const mask & ea_mask) { NLS_SWAP_IN; try { archive_option_destroy_mask(x_ea_mask); x_ea_mask = ea_mask.clone(); if(x_ea_mask == NULL) throw Ememory("archive_options_merge::set_ea_mask"); } catch(...) { NLS_SWAP_OUT; throw; } NLS_SWAP_OUT; }
void archive_options_merge::set_subtree(const mask & subtree) { NLS_SWAP_IN; try { archive_option_destroy_mask(x_subtree); x_subtree = subtree.clone(); if(x_subtree == NULL) throw Ememory("archive_options_merge::set_subtree"); } catch(...) { NLS_SWAP_OUT; throw; } NLS_SWAP_OUT; }
void archive_options_create::set_compr_mask(const mask & compr_mask) { NLS_SWAP_IN; try { archive_option_destroy_mask(x_compr_mask); x_compr_mask = compr_mask.clone(); if(x_compr_mask == NULL) throw Ememory("archive_options_create::set_compr_mask"); } catch(...) { NLS_SWAP_OUT; throw; } NLS_SWAP_OUT; }
void archive_options_create::set_backup_hook(const std::string & execute, const mask & which_files) { NLS_SWAP_IN; try { archive_option_destroy_mask(x_backup_hook_file_mask); x_backup_hook_file_mask = which_files.clone(); if(x_backup_hook_file_mask == NULL) throw Ememory("archive_options_create::set_backup_hook"); x_backup_hook_file_execute = execute; } catch(...) { NLS_SWAP_OUT; throw; } NLS_SWAP_OUT; }
KFR_SINTRIN vec<T, N> select(const mask<T, N>& m, const vec<T, N>& x, const vec<T, N>& y) { return y ^ ((x ^ y) & m.asvec()); }
KFR_SINTRIN vec<T, N> select(const mask<T, N>& a, const vec<T, N>& b, const vec<T, N>& c) { return concat(select(low(a.asvec()).asmask(), low(b), low(c)), select(high(a.asvec()).asmask(), high(b), high(c))); }
KFR_SINTRIN vec<T, N> select(const mask<T, N>& a, const vec<T, N>& b, const vec<T, N>& c) { return slice<0, N>(select(expand_simd(a.asvec()).asmask(), expand_simd(b), expand_simd(c))); }
KFR_INTRINSIC vec<Tout, N> select(const mask<T1, N>& m, const T2& x, const T3& y) { static_assert(sizeof(T1) == sizeof(Tout), "select: incompatible types"); return intrinsics::select(bitcast<Tout>(m.asvec()).asmask(), innercast<Tout>(x), innercast<Tout>(y)); }