30 ((
double* restr)&inval)[1] *= -1;
34 return ((
double* restr)&inval)[0];
37 return ((
double* restr)&inval)[1];
41 r = ((
double* restr)&inval)[0];
42 i = ((
double* restr)&inval)[1];
47 for(
size_t i = 1; i < s-1; i++){
53 inline double energy(
double* v,
size_t s){
54 double sum = v[0]*v[0];
55 for(
size_t i = 1; i < s-1; i++){
62 T
trap(T* restr v,
size_t s){
65 for(
size_t i=1; i < s-1; i++){
68 sum += (v[0] + v[s-1])/2.0;
84 inline std::vector<T>
appendvec(std::vector<T> a,
const std::vector<T>& b){
85 a.insert(a.begin(), b.begin(), b.end());
88 template<
class T,
size_t N>
89 inline std::vector<T>
makevec(
const T(& array)[N]){
90 return std::vector<T>(array, array+N);
92 template<
class T,
size_t N>
93 inline std::vector<T>
make_append(
const T (&array)[N],
const std::vector<T>& b){