// Main int main(int argc, char *argv[]) { if (argc != 2) { usage( argv[0], NULL ); exit(0); } if (getprefix(argv[1]) ) { if (splitpref()) { if ( convert_left_right() ) { write_banner(); printf("\n%18s --> %s\n", MSG_TYPE, ident_type(w) ); write_8w_compr( w, MSG_COMPRESSED ); printf("/%d\n", preflen); write_8w( w, MSG_EXPANDED ); if (preflen != 128) { convb2t( w, tpref); genmask(preflen, tmask); genmask(128, tw); logic_xor(tmask, tw, tt); convt2b(tt, t); logic_and(tpref, tmask, tw); convt2b(tw, w); write_8w( w, MSG_BLOCK_BEGIN ); logic_or(tw, tt, tq); convt2b(tq, q); write_8w( q, MSG_BLOCK_END ); printf("\n"); line_centr_text(MSG_ZOOM_BLK_BIN, '~'); printf("\n\n"); write_area_zoom(tw,preflen); write_area_zoom(tq,preflen); write_ptr_zoom(tq,preflen); } printf("\n"); } else usage(argv[0], MSG_ERR_TOO_MANY_WORDS ); } else usage(argv[0], MSG_ERR_WRONG_USE ); } else usage(argv[0], MSG_ERR_INV_CHR ); return 0; }
static inline void kernel_log(const A0& a0, A0& dk, A0& hfsq, A0& s, A0& R, A0& f) { typedef typename meta::as_integer<A0, signed>::type int_type; typedef typename meta::scalar_of<A0>::type sA0; A0 x; int_type k; boost::fusion::vector_tie(x, k) = fast_frexp(a0); // fast_frexp(a0, x, k); const int_type x_lt_sqrthf = is_greater(Sqrt_2o_2<A0>(), x)?Mone<int_type>():Zero<int_type>(); k += x_lt_sqrthf; f = minusone(x+b_and(x, genmask(x_lt_sqrthf))); dk = tofloat(k); s = f/add(Two<A0>(),f); A0 z = sqr(s); A0 w = sqr(z); A0 t1= w*horner<NT2_HORNER_COEFF_T(sA0, 3, (0x3fc39a09d078c69fll, 0x3fcc71c51d8e78afll, 0x3fd999999997fa04ll) )> (w); A0 t2= z*horner<NT2_HORNER_COEFF_T(sA0, 4, (0x3fc2f112df3e5244ll, 0x3fc7466496cb03dell, 0x3fd2492494229359ll, 0x3fe5555555555593ll) )> (w); R = t2+t1; hfsq = mul(Half<A0>(), sqr(f)); }
typename dispatch::meta::as_integer<T>::type logical_mask(logical<T> const& t) { return bitwise_cast<typename dispatch::meta::as_integer<T>::type>(genmask(t)); }
bool is_player() { return (mask & genmask(Component::PLAYER)) == genmask(Component::PLAYER); }