Halide 19.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
ModulusRemainder.h File Reference

Routines for statically determining what expressions are divisible by. More...

#include <cstdint>
#include "Util.h"

Go to the source code of this file.

Classes

struct  Halide::Internal::ModulusRemainder
 The result of modulus_remainder analysis. More...
 

Namespaces

namespace  Halide
 This file defines the class FunctionDAG, which is our representation of a Halide pipeline, and contains methods to using Halide's bounds tools to query properties of it.
 
namespace  Halide::Internal
 

Functions

ModulusRemainder Halide::Internal::operator+ (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator- (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator* (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator/ (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator% (const ModulusRemainder &a, const ModulusRemainder &b)
 
ModulusRemainder Halide::Internal::operator+ (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator- (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator* (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator/ (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::operator% (const ModulusRemainder &a, int64_t b)
 
ModulusRemainder Halide::Internal::modulus_remainder (const Expr &e)
 For things like alignment analysis, often it's helpful to know if an integer expression is some multiple of a constant plus some other constant.
 
ModulusRemainder Halide::Internal::modulus_remainder (const Expr &e, const Scope< ModulusRemainder > &scope)
 If we have alignment information about external variables, we can let the analysis know about that using this version of modulus_remainder:
 
void Halide::Internal::modulus_remainder_test ()
 
int64_t Halide::Internal::gcd (int64_t, int64_t)
 The greatest common divisor of two integers.
 
int64_t Halide::Internal::lcm (int64_t, int64_t)
 The least common multiple of two integers.
 
HALIDE_MUST_USE_RESULT bool Halide::Internal::reduce_expr_modulo (const Expr &e, int64_t modulus, int64_t *remainder)
 Reduce an expression modulo some integer.
 
HALIDE_MUST_USE_RESULT bool Halide::Internal::reduce_expr_modulo (const Expr &e, int64_t modulus, int64_t *remainder, const Scope< ModulusRemainder > &scope)
 Reduce an expression modulo some integer.
 

Detailed Description

Routines for statically determining what expressions are divisible by.

Definition in file ModulusRemainder.h.