|
souffle
2.0.2-371-g6315b36
|
#include "FunctorOps.h"#include "souffle/utility/FunctionalUtil.h"#include "souffle/utility/MiscUtil.h"#include <cassert>#include <cctype>#include <map>#include <memory>#include <ostream>#include <utility>#include <vector>
Go to the source code of this file.
Namespaces | |
| souffle | |
Macros | |
| #define | OP_1(op, t0, tDst) { functorOpNameSymbol(FOp::op), {TAttr::t0}, TAttr::tDst, FOp::op } |
| #define | OP_1_INTEGRAL(op) OP_1_MONO(op, Signed), OP_1_MONO(U##op, Unsigned) |
| #define | OP_1_MONO(op, ty) OP_1(op, ty, ty) |
| #define | OP_2(op, t0, t1, tDst, multi) { functorOpNameSymbol(FOp::op), {TAttr::t0, TAttr::t1}, TAttr::tDst, FOp::op, false, multi } |
| #define | OP_2_INTEGRAL(op) OP_2_INTEGRAL_EX(op, false) |
| #define | OP_2_INTEGRAL_EX(op, multi) OP_2_MONO(op, Signed, multi), OP_2_MONO(U##op, Unsigned, multi) |
| #define | OP_2_MONO(op, ty, multi) OP_2(op, ty, ty, ty, multi) |
| #define | OP_2_NUMERIC(op) OP_2_MONO(F##op, Float, false), OP_2_INTEGRAL(op) |
| #define | OP_2_NUMERIC_MULTI(op) OP_2_MONO(F##op, Float, true), OP_2_INTEGRAL_EX(op, true) |
| #define | OP_3(op, t0, t1, t2, tDst, multi) { functorOpNameSymbol(FOp::op), {TAttr::t0, TAttr::t1, TAttr::t2}, TAttr::tDst, FOp::op, false, multi } |
| #define | OP_3_INTEGRAL_EX(op, multi) OP_3_MONO(op, Signed, multi), OP_3_MONO(U##op, Unsigned, multi) |
| #define | OP_3_MONO(op, ty, multi) OP_3(op, ty, ty, ty, ty, multi) |
| #define | OP_3_NUMERIC_MULTI(op) OP_3_MONO(F##op, Float, true), OP_3_INTEGRAL_EX(op, true) |
| #define | VARIADIC(op, ty) { functorOpNameLegacy(FOp::op), {TAttr::ty}, TAttr::ty, FOp::op, true } |
| #define | VARIADIC_ORDERED(op) VARIADIC(op, Signed), VARIADIC(U##op, Unsigned), VARIADIC(F##op, Float), VARIADIC(S##op, Symbol) |
Functions | |
| IntrinsicFunctors | souffle::functorBuiltIn (FunctorOp op) |
| IntrinsicFunctors | souffle::functorBuiltIn (std::string_view symbol) |
| IntrinsicFunctors | souffle::functorBuiltIn (std::string_view symbol, const std::vector< TypeAttribute > ¶ms) |
| FunctorOp | souffle::getMaxOp (const std::string &type) |
| FunctorOp | souffle::getMinOp (const std::string &type) |
| Given a type of an an attribute it returns the appropriate min/max functor operation. More... | |
| bool | souffle::isFunctorMultiResult (FunctorOp op) |
| bool | souffle::isInfixFunctorOp (const FunctorOp op) |
| bool | souffle::isInfixFunctorOp (std::string_view symbol) |
| Determines whether a functor should be written using infix notation (e.g. More... | |
| bool | souffle::isValidFunctorOpArity (std::string_view symbol, size_t arity) |
| std::ostream & | souffle::operator<< (std::ostream &os, FunctorOp op) |
| #define OP_1 | ( | op, | |
| t0, | |||
| tDst | |||
| ) | { functorOpNameSymbol(FOp::op), {TAttr::t0}, TAttr::tDst, FOp::op } |
Definition at line 135 of file FunctorOps.cpp.
Definition at line 145 of file FunctorOps.cpp.
| #define OP_1_MONO | ( | op, | |
| ty | |||
| ) | OP_1(op, ty, ty) |
Definition at line 142 of file FunctorOps.cpp.
| #define OP_2 | ( | op, | |
| t0, | |||
| t1, | |||
| tDst, | |||
| multi | |||
| ) | { functorOpNameSymbol(FOp::op), {TAttr::t0, TAttr::t1}, TAttr::tDst, FOp::op, false, multi } |
Definition at line 137 of file FunctorOps.cpp.
| #define OP_2_INTEGRAL | ( | op | ) | OP_2_INTEGRAL_EX(op, false) |
Definition at line 148 of file FunctorOps.cpp.
| #define OP_2_INTEGRAL_EX | ( | op, | |
| multi | |||
| ) | OP_2_MONO(op, Signed, multi), OP_2_MONO(U##op, Unsigned, multi) |
Definition at line 146 of file FunctorOps.cpp.
| #define OP_2_MONO | ( | op, | |
| ty, | |||
| multi | |||
| ) | OP_2(op, ty, ty, ty, multi) |
Definition at line 143 of file FunctorOps.cpp.
| #define OP_2_NUMERIC | ( | op | ) | OP_2_MONO(F##op, Float, false), OP_2_INTEGRAL(op) |
Definition at line 149 of file FunctorOps.cpp.
| #define OP_2_NUMERIC_MULTI | ( | op | ) | OP_2_MONO(F##op, Float, true), OP_2_INTEGRAL_EX(op, true) |
Definition at line 150 of file FunctorOps.cpp.
| #define OP_3 | ( | op, | |
| t0, | |||
| t1, | |||
| t2, | |||
| tDst, | |||
| multi | |||
| ) | { functorOpNameSymbol(FOp::op), {TAttr::t0, TAttr::t1, TAttr::t2}, TAttr::tDst, FOp::op, false, multi } |
Definition at line 139 of file FunctorOps.cpp.
| #define OP_3_INTEGRAL_EX | ( | op, | |
| multi | |||
| ) | OP_3_MONO(op, Signed, multi), OP_3_MONO(U##op, Unsigned, multi) |
Definition at line 147 of file FunctorOps.cpp.
| #define OP_3_MONO | ( | op, | |
| ty, | |||
| multi | |||
| ) | OP_3(op, ty, ty, ty, ty, multi) |
Definition at line 144 of file FunctorOps.cpp.
| #define OP_3_NUMERIC_MULTI | ( | op | ) | OP_3_MONO(F##op, Float, true), OP_3_INTEGRAL_EX(op, true) |
Definition at line 151 of file FunctorOps.cpp.
| #define VARIADIC | ( | op, | |
| ty | |||
| ) | { functorOpNameLegacy(FOp::op), {TAttr::ty}, TAttr::ty, FOp::op, true } |
Definition at line 152 of file FunctorOps.cpp.
1.8.17