Beispiel #1
0
// 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;
}
Beispiel #2
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));
	}
Beispiel #3
0
 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));
 }
Beispiel #4
0
		bool is_player() { return (mask & genmask(Component::PLAYER)) == genmask(Component::PLAYER); }