llvm/mlir/lib/Analysis/Presburger/QuasiPolynomial.cpp

//===- QuasiPolynomial.cpp - Quasipolynomial Class --------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "mlir/Analysis/Presburger/QuasiPolynomial.h"
#include "mlir/Analysis/Presburger/Fraction.h"
#include "mlir/Analysis/Presburger/PresburgerSpace.h"

usingnamespacemlir;
usingnamespacepresburger;

QuasiPolynomial::QuasiPolynomial(
    unsigned numVars, ArrayRef<Fraction> coeffs,
    ArrayRef<std::vector<SmallVector<Fraction>>> aff)
    :{}

/// Define a quasipolynomial which is a single constant.
QuasiPolynomial::QuasiPolynomial(unsigned numVars, const Fraction &constant)
    :{}

QuasiPolynomial QuasiPolynomial::operator+(const QuasiPolynomial &x) const {}

QuasiPolynomial QuasiPolynomial::operator-(const QuasiPolynomial &x) const {}

QuasiPolynomial QuasiPolynomial::operator*(const QuasiPolynomial &x) const {}

QuasiPolynomial QuasiPolynomial::operator/(const Fraction &x) const {}

// Removes terms which evaluate to zero from the expression and
// integrate affine functions which are constants into the
// coefficients.
QuasiPolynomial QuasiPolynomial::simplify() {}

QuasiPolynomial QuasiPolynomial::collectTerms() {}

Fraction QuasiPolynomial::getConstantTerm() {}