2#include "ff/precision.h"
14 static_assert(std::is_same<F, float>::value or std::is_same<F, double>::value,
"");
15 return static_cast<F
>(
static_cast<long long>(g)) / 0x100000000ull;
22 static_assert(std::is_same<F, float>::value or std::is_same<F, double>::value,
"");
30 static_assert(std::is_same<F, float>::value or std::is_same<F, double>::value,
"");
62template <
class T,
size_t Nincr>
65 static constexpr size_t N = Nincr;
72template <
size_t Nincr>
75 static constexpr size_t N = Nincr;
94typedef VirialBufferTraits::type (*
VirialBuffer)[VirialBufferTraits::value];
F toFloatingPoint(fixed g)
Converts a fixed-point value g to floating-point value on host.
Definition: energybuffer.h:12
#define TINKER_EXTERN
Definition: macro.h:108
grad_prec * gy
Gradient of valence terms; also works as total gradient array.
grad_prec * gx
Gradient of valence terms; also works as total gradient array.
grad_prec * gz
Gradient of valence terms; also works as total gradient array.
fixed type
Definition: energybuffer.h:77
T type
Definition: energybuffer.h:67
static constexpr size_t value
Definition: energybuffer.h:66
static constexpr size_t N
Definition: energybuffer.h:65
CountBufferTraits::type * CountBuffer
Definition: energybuffer.h:92
void virialReduce(virial_prec(&)[VirialBufferTraits::N], const VirialBuffer b)
BufferTraits< v_prec, 6 > VirialBufferTraits
Definition: energybuffer.h:91
void bufferAllocate(int flag, EnergyBuffer *pe, VirialBuffer *pv, grad_prec **px, grad_prec **py, grad_prec **pz)
void virialReshape(virial_prec(&output)[9], const virial_prec(&input)[VirialBufferTraits::N])
Transforms the shape of a virial variable.
void bufferDeallocate(int flag, EnergyBuffer e, VirialBuffer v, grad_prec *gx, grad_prec *gy, grad_prec *gz)
EnergyBufferTraits::type * EnergyBuffer
Definition: energybuffer.h:93
BufferTraits< e_prec, 1 > EnergyBufferTraits
Definition: energybuffer.h:90
BufferTraits< int, 1 > CountBufferTraits
Definition: energybuffer.h:89
int countReduce(const CountBuffer b)
VirialBufferTraits::type(* VirialBuffer)[VirialBufferTraits::value]
Definition: energybuffer.h:94
energy_prec energyReduce(const EnergyBuffer b)
Definition: energybuffer.h:64
constexpr size_t pow2Ge(size_t val)
A power of 2 that is greater than or equal to val.
Definition: pow2.h:46
mixed virial_prec
Definition: precision.h:98
fixed grad_prec
Definition: precision.h:103
mixed energy_prec
Floating-point type for total energies.
Definition: precision.h:97
unsigned long long fixed
Definition: precision.h:68