STORMM Source Documentation
Loading...
Searching...
No Matches
rounding.h
1// -*-c++-*-
2#ifndef STORMM_ROUNDING_H
3#define STORMM_ROUNDING_H
4
5#include <cmath>
6#include <vector>
7#include "copyright.h"
8#include "Constants/behavior.h"
9#include "Constants/symbol_values.h"
10#include "DataTypes/common_types.h"
11#include "math_enumerators.h"
12
13namespace stormm {
14namespace stmath {
15
16using constants::CartesianDimension;
17using constants::UnitCellAxis;
18using symbols::pi;
19using symbols::pi_f;
20using symbols::near_to_one_f;
21using symbols::near_to_one_lf;
22
29template <typename T> T roundUp(T jagged, T increment);
30
31
36template <typename T> T roundDown(T jagged, T increment);
37
46std::vector<uint> primeFactors(ullint number, const std::vector<uint> &primes, int n_primes = 0);
47
50std::vector<uint> primeFactorCounts(ullint number, const std::vector<uint> &primes,
51 int n_primes = 0);
52
60ulint getSmallestLot(int element_size, int increment, int n_primes = 8);
61
73ullint nearestFactor(ullint number, ullint target, const std::vector<uint> &primes,
74 LimitApproach approach, int n_primes = 0);
75
83size_t getPaddedMemorySize(size_t length, size_t growth_increment, size_t element_size = 1);
84
97template <typename Tcalc>
98Tcalc angleVerification(const Tcalc costheta, const Tcalc* crabbc, const Tcalc* crbccd,
99 const Tcalc* bc, const Tcalc* scr);
100
114void partition(int n, int pmax, const std::vector<int> &pref, const std::vector<int> &dscr,
115 std::vector<int> *result);
116
117std::vector<int> partition(int n, int pmax, const std::vector<int> &pref,
118 const std::vector<int> &dscr);
120
139int sanctionedDensityGridDimension(ullint big_product, const double* invu, UnitCellAxis edge,
140 const std::vector<uint> &primes, double max_spacing = 1.0);
141
142int sanctionedDensityGridDimension(ullint big_product, const double* inv, CartesianDimension edge,
143 const std::vector<uint> &primes, double max_spacing = 1.0);
145
146} // namespace stmath
147} // namespace stormm
148
149#include "rounding.tpp"
150
151#endif