diff options
Diffstat (limited to '226/main.cpp')
-rw-r--r-- | 226/main.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/226/main.cpp b/226/main.cpp new file mode 100644 index 0000000..9584e60 --- /dev/null +++ b/226/main.cpp @@ -0,0 +1,32 @@ +#include "include/praktable.hpp" +#include "include/prakphys.hpp" + +using table = prak::table<f64>; +using f64p = prak::pvalue<f64>; +using f64v = std::vector<f64>; +using vecarg = const std::vector<f64> &; +using argvec = const std::vector<f64> &; + +void ex1(std::string file) { + table t(file); + t .apply(prak::avg<f64>, {"T1", "T2", "T3"}, "T") + .apply([](vecarg a){ + return std::sqrt(std::pow(prak::stddev<f64>({a[0], a[1], a[2]}), 2) + + std::pow(prak::avg<f64>({a[3], a[4], a[5]}), 2)/3.0); + }, {"T1", "T2", "T3", "sT1", "sT2", "sT3"}, "sT") + .add_columns({"Tv", "sTv", "Te", "sTe"}) + .add_columns({"svpr", "sepr"}, 6e3) + .multiply_column("vpr", 1e3) + .multiply_column("epr", conv::eV_to_J<f64>) + .apply_function([](vecarg a){return prak::m_e<f64> * a[0] * a[0] / (2 * prak::k<f64>);}, {"vpr"}, {"svpr"}, "Tv", "sTv") + .apply_function([](vecarg a){return 2 * a[0] / prak::k<f64>;}, {"epr"}, {"sepr"}, "Te", "sTe") + .delete_cols({"svpr", "sepr", "sTe"}) + .write_plot("T(U).plot", "U", "T", "sT") + .write_plot("Tv(U).plot", "U", "Tv", "sTv") + .print(); +} + +int main() { + ex1("data"); + return 0; +} |