Lines Matching defs:Polynomial

109 /// First Order Polynomial on an n-Bit Integer Value
111 /// Polynomial(Value) = Value * B + A + E*2^(n-e)
123 /// addition (see Proof(1) in Polynomial::mul). Further, both operations
165 class Polynomial {
187 Polynomial(Value *V) : V(V) {
196 Polynomial(const APInt &A, unsigned ErrorMSBs = 0)
199 Polynomial(unsigned BitWidth, uint64_t A, unsigned ErrorMSBs = 0)
202 Polynomial() = default;
226 Polynomial &add(const APInt &C) {
253 Polynomial &mul(const APInt &C) {
330 Polynomial &lshr(const APInt &C) {
492 Polynomial &sextOrTrunc(unsigned n) {
515 bool isCompatibleTo(const Polynomial &o) const {
520 // If neither Polynomial has the Coefficient B.
544 Polynomial operator-(const Polynomial &o) const {
547 return Polynomial();
552 return Polynomial(A - o.A, std::max(ErrorMSBs, o.ErrorMSBs));
556 Polynomial operator-(uint64_t C) const {
557 Polynomial Result(*this);
563 Polynomial operator+(uint64_t C) const {
564 Polynomial Result(*this);
570 bool isProvenEqualTo(const Polynomial &o) {
572 Polynomial r = *this - o;
623 static raw_ostream &operator<<(raw_ostream &OS, const Polynomial &S) {
632 /// 1) The memory address loaded into the element as Polynomial
646 /// Offset Polynomial.
647 Polynomial Ofs;
653 ElementInfo(Polynomial Offset = Polynomial(), LoadInst *LI = nullptr)
872 Polynomial Offset;
907 static void computePolynomialBinOp(BinaryOperator &BO, Polynomial &Result) {
940 Result = Polynomial(&BO);
947 static void computePolynomial(Value &V, Polynomial &Result) {
951 Result = Polynomial(&V);
954 /// Compute the Polynomial representation of a Pointer type.
960 static void computePolynomialFromPointer(Value &Ptr, Polynomial &Result,
966 Result = Polynomial();
982 Polynomial(PointerBits, 0);
994 Result = Polynomial(BaseOffset);
1012 Result = Polynomial();
1037 Polynomial(DL.getIndexSizeInBits(PtrTy->getPointerAddressSpace()), 0);