5#ifndef TRKVKALVRTCORE_TRKVKALUTILS_H
6#define TRKVKALVRTCORE_TRKVKALUTILS_H
7#include "boost/core/noinit_adaptor.hpp"
15 double X;
double Y;
double Z;
17 void Set(
double arr[3])
noexcept {
X=arr[0];
Y=arr[1];
Z=arr[2]; }
23 inline void cfdcopy(
double *source,
double *target,
int n)
24 { std::copy(source, source + n, target); }
27 {
return sqrt( (V2[0]-V1[0])*(V2[0]-V1[0]) + (V2[1]-V1[1])*(V2[1]-V1[1]) + (V2[2]-V1[2])*(V2[2]-V1[2]) ); }
36 if (
sign >=0)
return value;
37 if (
sign < 0)
return -value;
40 if (
sign >=0)
return -value;
41 if (
sign < 0)
return value;
50 using noinit_vector = std::vector<T, boost::noinit_adaptor<std::allocator<T> > >;
constexpr int pow(int base, int exp) noexcept
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< T, boost::noinit_adaptor< std::allocator< T > > > noinit_vector
A variant on std::vector which leaves its contents uninitialized by default.
void cfdcopy(double *source, double *target, int n)
double cfddist3D(double *V1, double *V2)
double d_sign(double value, double sign)
double Dist3D(Vect3DF &v) const noexcept
void Set(double arr[3]) noexcept