Example #1
0
void sexpr::display(std::ostream & out) const {
    if (!is_composite())
        display_atom(out);
    vector<std::pair<sexpr_composite const *, unsigned> > todo;
    todo.push_back(std::make_pair(static_cast<sexpr_composite const *>(this), 0));
    while (!todo.empty()) {
    loop:
        sexpr_composite const * n = todo.back().first;
        unsigned & idx = todo.back().second;
        unsigned num = n->get_num_children();
        while (idx < num) {
            sexpr const * child = n->get_child(idx);
            if (idx == 0)
                out << "(";
            else
                out << " ";
            idx++;
            if (child->is_composite()) {
                todo.push_back(std::make_pair(static_cast<sexpr_composite const *>(child), 0));
                goto loop;
            }
            else {
                child->display_atom(out);
            }
        }
        out << ")";
        todo.pop_back();
    }
}
Example #2
0
bool t_trie::add (const t_value_type & candidate,
                  bool purge_composites,
                  bool check_composite) {
    if (check_composite && is_composite(candidate))
        return false;

    if (purge_composites)
        this->purge_composites(candidate, candidate.begin());

    return add(candidate, candidate.begin(), check_composite);
}
int miller_rabin(ull n)
{
	if(n==2)
		return 1;
	if( (n%2==0 && n!=2) || (n%3==0 && n!=3) || (n%5==0 && n!=5) )
		return 0;
	ull d=n-1,s=0,x,i,a;
	while(!(d%2))
	{
		d>>=1;
		s++;
	}
	for(i=0;i<iterations;i++)
	{
		a=rand()%(n-2)+2;
		if(is_composite(a,d,n,s))
			return 0;
	}
	return 1;
}
Example #4
0
bool t_trie::is_composite (const t_value_type & candidate,
                           bool strict) const {
    return is_composite(candidate, candidate.begin(), strict);
}
Example #5
0
SharedRefPtr<ParseResult> DataTypeClassNameParser::parse_with_composite(const std::string& type, const NativeDataTypes& native_types) {
  Parser parser(type, 0);

  std::string next;
  parser.get_next_name(&next);

  if (!is_composite(next)) {
    DataType::ConstPtr data_type = parse_one(type, native_types);
    if (!data_type) {
      return SharedRefPtr<ParseResult>();
    }
    return SharedRefPtr<ParseResult>(new ParseResult(data_type, is_reversed(next)));
  }

  TypeParamsVec sub_class_names;

  if (!parser.get_type_params(&sub_class_names)) {
    return SharedRefPtr<ParseResult>();
  }

  if (sub_class_names.empty()) {
    LOG_ERROR("Expected at least one subclass type for a composite type");
    return SharedRefPtr<ParseResult>();
  }

  ParseResult::CollectionMap collections;
  const std::string& last = sub_class_names.back();
  size_t count = sub_class_names.size();
  if (is_collection(last)) {
    count--;

    Parser collection_parser(last, 0);
    collection_parser.get_next_name();
    NameAndTypeParamsVec params;
    if (!collection_parser.get_collection_params(&params)) {
      return SharedRefPtr<ParseResult>();
    }

    for (NameAndTypeParamsVec::const_iterator i = params.begin(),
         end = params.end(); i != end; ++i) {
      DataType::ConstPtr data_type = parse_one(i->second, native_types);
      if (!data_type) {
        return SharedRefPtr<ParseResult>();
      }
      collections[i->first] = data_type;
    }
  }

  DataType::Vec types;
  ParseResult::ReversedVec reversed;
  for (size_t i = 0; i < count; ++i) {
    DataType::ConstPtr data_type = parse_one(sub_class_names[i], native_types);
    if (!data_type) {
      return SharedRefPtr<ParseResult>();
    }
    types.push_back(data_type);
    reversed.push_back(is_reversed(sub_class_names[i]));
  }

  return SharedRefPtr<ParseResult>(new ParseResult(true, types, reversed, collections));
}
Example #6
0
unsigned sexpr::get_num_children() const {
    SASSERT(is_composite());
    return static_cast<sexpr_composite const *>(this)->m_num_chilren;
}
Example #7
0
int print_properties_num(longnum num)
{
	printf("%llu:\nprime factors: ", num);
	print_prime_factors(num);
	printf("\n");

	if ( is_abundant(num) ) printf(" abundant");
	if ( is_amicable(num) ) printf(" amicable");
	if ( is_apocalyptic_power(num) ) printf(" apocalyptic_power");
	if ( is_aspiring(num) ) printf(" aspiring");
	if ( is_automorphic(num) ) printf(" automorphic");
	if ( is_cake(num) ) printf(" cake");
	if ( is_carmichael(num) ) printf(" carmichael");
	if ( is_catalan(num) ) printf(" catalan");
	if ( is_composite(num) ) printf(" composite");
	if ( is_compositorial(num) ) printf(" compositorial");
	if ( is_cube(num) ) printf(" cube");
	if ( is_deficient(num) ) printf(" deficient");
	if ( is_easy_to_remember(num) ) printf(" easy_to_remember");
	if ( is_ecci1(num) ) printf(" ecci1");
	if ( is_ecci2(num) ) printf(" ecci2");
	if ( is_even(num) ) printf(" even");
	if ( is_evil(num) ) printf(" evil");
	if ( is_factorial(num) ) printf(" factorial");
	if ( is_fermat(num) ) printf(" fermat");
	if ( is_fibonacci(num) ) printf(" fibonacci");
	if ( is_google(num) ) printf(" google");
	if ( is_happy(num) ) printf(" happy");
	if ( is_hungry(num) ) printf(" hungry");
	if ( is_hypotenuse(num) ) printf(" hypotenuse");
	if ( is_lazy_caterer(num) ) printf(" lazy_caterer");
	if ( is_lucky(num) ) printf(" lucky");
	if ( is_mersenne_prime(num) ) printf(" mersenne_prime");
	if ( is_mersenne(num) ) printf(" mersenne");
	if ( is_narcissistic(num) ) printf(" narcissistic");
	if ( is_odd(num) ) printf(" odd");
	if ( is_odious(num) ) printf(" odious");
	if ( is_palindrome(num) ) printf(" palindrome");
	if ( is_palindromic_prime(num) ) printf(" palindromic_prime");
	if ( is_parasite(num) ) printf(" parasite");
	if ( is_pentagonal(num) ) printf(" pentagonal");
	if ( is_perfect(num) ) printf(" perfect");
	if ( is_persistent(num) ) printf(" persistent");
	if ( is_power_of_2(num) ) printf(" power_of_2");
	if ( is_powerful(num) ) printf(" powerful");
	if ( is_practical(num) ) printf(" practical");
	if ( is_prime(num) ) printf(" prime");
	if ( is_primorial(num) ) printf(" primorial");
	if ( is_product_perfect(num) ) printf(" product_perfect");
	if ( is_pronic(num) ) printf(" pronic");
	if ( is_repdigit(num) ) printf(" repdigit");
	if ( is_repunit(num) ) printf(" repunit");
	if ( is_smith(num) ) printf(" smith");
	if ( is_sociable(num) ) printf(" sociable");
	if ( is_square_free(num) ) printf(" square_free");
	if ( is_square(num) ) printf(" square");
	if ( is_tetrahedral(num) ) printf(" tetrahedral");
	if ( is_triangular(num) ) printf(" triangular");
	if ( is_twin(num) ) printf(" twin");
	if ( is_ulam(num) ) printf(" ulam");
	if ( is_undulating(num) ) printf(" undulating");
	if ( is_untouchable(num) ) printf(" untouchable");
	if ( is_vampire(num) ) printf(" vampire");
	if ( is_weird(num) ) printf(" weird");

	printf("\n\n");
	return 0;
}