STORMM Source Documentation
Loading...
Searching...
No Matches
scaling.h
1// -*-c++-*-
2#ifndef STORMM_SCALING_H
3#define STORMM_SCALING_H
4
5#include "copyright.h"
6#include "DataTypes/common_types.h"
7
8namespace stormm {
9namespace constants {
10
13constexpr llint kilo = 1024LL;
14constexpr llint mega = kilo * kilo;
15constexpr llint giga = mega * kilo;
16constexpr size_t kilo_zu = 1024LLU;
17constexpr size_t mega_zu = kilo_zu * kilo_zu;
18constexpr size_t giga_zu = mega_zu * kilo_zu;
20
22constexpr double small = 1.0e-8;
23constexpr float small_f = small;
24
26constexpr double tiny = 1.0e-10;
27constexpr float tiny_f = tiny;
28
30constexpr double verytiny = 1.0e-12;
31constexpr float verytiny_f = verytiny;
32
35constexpr int int_byte_count_int = sizeof(int);
36constexpr int int_bit_count_int = int_byte_count_int * 8;
37constexpr int uint_byte_count_int = sizeof(unsigned int);
38constexpr int uint_bit_count_int = uint_byte_count_int * 8;
39constexpr int llint_byte_count_int = sizeof(long long int);
40constexpr int llint_bit_count_int = llint_byte_count_int * 8;
41constexpr int ullint_byte_count_int = sizeof(unsigned long long int);
42constexpr int ullint_bit_count_int = ullint_byte_count_int * 8;
43constexpr int ushort_byte_count_int = sizeof(unsigned short int);
44constexpr int ushort_bit_count_int = ushort_byte_count_int * 8;
45constexpr size_t int_byte_count_zu = sizeof(int);
46constexpr size_t int_bit_count_zu = int_byte_count_int * 8;
47constexpr size_t uint_byte_count_zu = sizeof(unsigned int);
48constexpr size_t uint_bit_count_zu = uint_byte_count_zu * 8LLU;
49constexpr size_t llint_byte_count_zu = sizeof(long long int);
50constexpr size_t llint_bit_count_zu = llint_byte_count_int * 8LLU;
51constexpr size_t ullint_byte_count_zu = sizeof(unsigned long long int);
52constexpr size_t ullint_bit_count_zu = ullint_byte_count_zu * 8LLU;
53constexpr size_t ushort_byte_count_zu = sizeof(unsigned short int);
54constexpr size_t ushort_bit_count_zu = ushort_byte_count_zu * 8LLU;
56
60constexpr double time_step_factor = 0.0204548282808729546544679323005766491405665874481201171875;
61constexpr float time_step_factor_f = time_step_factor;
63
64} // namespace constants
65} // namespace stormm
66
67namespace stormm {
68using constants::int_byte_count_int;
69using constants::int_bit_count_int;
70using constants::uint_byte_count_int;
71using constants::uint_bit_count_int;
72using constants::ullint_byte_count_int;
73using constants::ullint_bit_count_int;
74using constants::ushort_byte_count_int;
75using constants::ushort_bit_count_int;
76using constants::int_byte_count_zu;
77using constants::int_bit_count_zu;
78using constants::uint_byte_count_zu;
79using constants::uint_bit_count_zu;
80using constants::ullint_byte_count_zu;
81using constants::ullint_bit_count_zu;
82using constants::ushort_byte_count_zu;
83using constants::ushort_bit_count_zu;
84} // namespace stormm
85
86#endif