souffle
2.0.2-371-g6315b36
|
Go to the documentation of this file.
119 default:
return false;
128 #define CASE_NUMERIC(op) \
129 case AggregateOp::op: \
130 if (type == TypeAttribute::Signed) return AggregateOp::op; \
131 if (type == TypeAttribute::Unsigned) return AggregateOp::U##op; \
132 if (type == TypeAttribute::Float) return AggregateOp::F##op; \
133 fatal("invalid overload");
137 fatal(
"agg op is not overloadable");
#define UNREACHABLE_BAD_CASE_ANALYSIS
AggregateOp convertOverloadedAggregator(const AggregateOp op, const TypeAttribute type)
Convert aggregator to a give type.
AggregateOp
Types of aggregation functions.
std::pair< uint8_t, uint8_t > aggregateArity(AggregateOp op)
std::ostream & operator<<(std::ostream &os, AggregateOp op)
TypeAttribute getTypeAttributeAggregate(const AggregateOp op)
Get return type of the aggregate.
void fatal(const char *format, const Args &... args)
bool isOverloadedAggregator(const AggregateOp op)