Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
TissueForge::util Namespace Reference

Tissue Forge utilities. More...

Classes

class  CompileFlags
 
struct  Differentiator
 
class  PerformanceTimer
 
class  WallTime
 

Enumerations

enum  InstructionSetFlags : std::int64_t {
  IS_3DNOW = 1ll << 0 , IS_3DNOWEXT = 1ll << 1 , IS_ABM = 1ll << 2 , IS_ADX = 1ll << 3 ,
  IS_AES = 1ll << 4 , IS_AVX = 1ll << 5 , IS_AVX2 = 1ll << 6 , IS_AVX512CD = 1ll << 7 ,
  IS_AVX512ER = 1ll << 8 , IS_AVX512F = 1ll << 9 , IS_AVX512PF = 1ll << 10 , IS_BMI1 = 1ll << 11 ,
  IS_BMI2 = 1ll << 12 , IS_CLFSH = 1ll << 13 , IS_CMPXCHG16B = 1ll << 14 , IS_CX8 = 1ll << 15 ,
  IS_ERMS = 1ll << 16 , IS_F16C = 1ll << 17 , IS_FMA = 1ll << 18 , IS_FSGSBASE = 1ll << 19 ,
  IS_FXSR = 1ll << 20 , IS_HLE = 1ll << 21 , IS_INVPCID = 1ll << 23 , IS_LAHF = 1ll << 24 ,
  IS_LZCNT = 1ll << 25 , IS_MMX = 1ll << 26 , IS_MMXEXT = 1ll << 27 , IS_MONITOR = 1ll << 28 ,
  IS_MOVBE = 1ll << 28 , IS_MSR = 1ll << 29 , IS_OSXSAVE = 1ll << 30 , IS_PCLMULQDQ = 1ll << 31 ,
  IS_POPCNT = 1ll << 32 , IS_PREFETCHWT1 = 1ll << 33 , IS_RDRAND = 1ll << 34 , IS_RDSEED = 1ll << 35 ,
  IS_RDTSCP = 1ll << 36 , IS_RTM = 1ll << 37 , IS_SEP = 1ll << 38 , IS_SHA = 1ll << 39 ,
  IS_SSE = 1ll << 40 , IS_SSE2 = 1ll << 41 , IS_SSE3 = 1ll << 42 , IS_SSE41 = 1ll << 43 ,
  IS_SSE42 = 1ll << 44 , IS_SSE4a = 1ll << 45 , IS_SSSE3 = 1ll << 46 , IS_SYSCALL = 1ll << 47 ,
  IS_TBM = 1ll << 48 , IS_XOP = 1ll << 49 , IS_XSAVE = 1ll << 50
}
 

Functions

Magnum::Color3 Color3_Parse (const std::string &str)
 
template<typename XType, typename DivType>
XType mod (XType x, DivType divisor)
 
template<typename TA, typename TN>
TA flooredDivision (TA a, TN n)
 
template<typename TA, typename TN>
TA flooredModulo (TA a, TN n)
 
template<typename TA, typename TN>
TA loopIndex (TA index, TN range)
 
template<typename Vec, typename Val>
int indexOf (const Vec &vec, const Val &val)
 
template<typename ContainerType, typename SizeType>
ContainerType::value_type wrappedAt (ContainerType &container, SizeType index)
 
template<typename Type, typename Klass>
constexpr size_t offset_of (Type Klass::*member)
 
std::unordered_map< std::string bool > getFeaturesMap ()
 
double wallTime ()
 
double CPUTime ()
 
uint64_t nextPrime (const uint64_t &start_prime)
 
std::vector< uint64_t > findPrimes (const uint64_t &start_prime, int n)
 Get prime numbers, beginning with a starting prime number.
 
template<typename T>
std::vector< T > unique (const std::vector< T > &vec)
 Get the unique elements of a vector.
 

Variables

const char * color3_Names []
 

Detailed Description

Tissue Forge utilities.

Function Documentation

◆ findPrimes()

std::vector< uint64_t > TissueForge::util::findPrimes ( const uint64_t & start_prime,
int n )

Get prime numbers, beginning with a starting prime number.

Parameters
start_primeStarting prime number
nNumber of prime numbers to get
Returns
std::vector<uint64_t>

◆ indexOf()

template<typename Vec, typename Val>
int TissueForge::util::indexOf ( const Vec & vec,
const Val & val )

searches for the item in the container. If the item is found, returns the index, otherwise returns -1.

◆ mod()

template<typename XType, typename DivType>
XType TissueForge::util::mod ( XType x,
DivType divisor )

modulus for negative numbers

General mod for integer or floating point

int mod(int x, int divisor) { int m = x % divisor; return m + (m < 0 ? divisor : 0); }

◆ unique()

template<typename T>
std::vector< T > TissueForge::util::unique ( const std::vector< T > & vec)

Get the unique elements of a vector.

Template Parameters
Telement type
Parameters
vecvector of elements
Returns
std::vector<T> unique elements