ALPSCore reference
propagation.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1998-2018 ALPS Collaboration. See COPYRIGHT.TXT
3  * All rights reserved. Use is subject to license terms. See LICENSE.TXT
4  * For use in publications, see ACKNOWLEDGE.TXT
5  */
6 #pragma once
7 
8 #include <Eigen/Core>
9 
10 #include <alps/alea/complex_op.hpp>
11 
12 // TODO maybe a better way?
13 #include <alps/alea/mean.hpp>
14 #include <alps/alea/variance.hpp>
15 #include <alps/alea/covariance.hpp>
16 #include <alps/alea/autocorr.hpp>
17 #include <alps/alea/batch.hpp>
18 
19 namespace alps { namespace alea {
20 
27 struct no_prop { };
28 
44 {
45  linear_prop() : dx_(0) { }
46 
47  linear_prop(double dx) : dx_(dx) { assert(dx >= 0); }
48 
49  double dx() const { return dx_; }
50 
51 private:
52  double dx_;
53 };
54 
61 {
62  sampling_prop(size_t nsamples=1024) : nsamples_(nsamples) { }
63 
64  size_t nsamples() const { return nsamples_; }
65 
66 private:
67  size_t nsamples_;
68 };
69 
79 struct jackknife_prop { };
80 
87 {
88  bootstrap_prop(size_t nsamples=1024) : nsamples_(nsamples) { }
89 
90  size_t nsamples() const { return nsamples_; }
91 
92 private:
93  size_t nsamples_;
94 };
95 
107 template <typename T>
108 typename eigen<T>::matrix jacobian(const transformer<T> &f, column<T> x, double dx);
109 
110 
114 template <typename T>
116 
117 }}
double dx() const
Definition: propagation.hpp:49
sampling_prop(size_t nsamples=1024)
Definition: propagation.hpp:62
eigen< T >::matrix jacobian(const transformer< T > &f, column< T > x, double dx)
Definition: propagation.cpp:13
batch_data< T > jackknife(const batch_data< T > &in, const transformer< T > &tf)
Definition: propagation.cpp:37
size_t nsamples() const
Definition: propagation.hpp:90
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > matrix
Definition: util.hpp:49
size_t nsamples() const
Definition: propagation.hpp:64
bootstrap_prop(size_t nsamples=1024)
Definition: propagation.hpp:88