Пример #1
0
	virtual Type 	infereSigType (const vector<Type>& args)
	{
		assert (args.size() == arity());
		interval i = args[0]->getInterval();
		if (i.valid & i.lo>0) {
			return castInterval(floatCast(args[0]), interval(log(i.lo), log(i.hi)));
		} else {
			return floatCast(args[0]);
		}
	}
Пример #2
0
  virtual Type infereSigType(const vector<Type>& args)
  {
    assert(args.size() == arity());
    // return castInterval(floatCast(args[0]|args[1]), interval()); // temporary !!!
    // return castInterval(args[0]|args[1], interval()); // temporary !!!

    interval i = args[0]->getInterval();
    interval j = args[1]->getInterval();
    return castInterval(args[0] | args[1], pow(i, j));
  }
Пример #3
0
	virtual Type 	infereSigType (const vector<Type>& args)
	{
		assert (args.size() == 1);
		return castInterval(floatCast(args[0]), interval(-1,1));
	}