AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
ModularInt.hpp File Reference

A simple class to handle arithmetic on modular integers. More...

Classes

class  axom::slam::ModularInt< SizePolicy >
 This class is a wrapper around an int and encapsulates modular arithmetic with a given modulus. More...
 

Namespaces

 axom
 
 axom::slam
 

Functions

template<typename SizePolicy >
ModularInt< SizePolicy > axom::slam::operator+ (const ModularInt< SizePolicy > &zn, const int n)
 
template<typename SizePolicy >
ModularInt< SizePolicy > axom::slam::operator+ (const int n, const ModularInt< SizePolicy > &zn)
 
template<typename SizePolicy >
ModularInt< SizePolicy > axom::slam::operator- (const ModularInt< SizePolicy > &zn, const int n)
 
template<typename SizePolicy >
ModularInt< SizePolicy > axom::slam::operator- (const int n, const ModularInt< SizePolicy > &zn)
 
template<typename SizePolicy >
ModularInt< SizePolicy > axom::slam::operator* (const ModularInt< SizePolicy > &zn, const int n)
 
template<typename SizePolicy >
ModularInt< SizePolicy > axom::slam::operator* (const int n, const ModularInt< SizePolicy > &zn)
 

Detailed Description

A simple class to handle arithmetic on modular integers.

Modular integers simplify cyclic indexing over a range. We allow the max number to be set during compile time or at runtime