From 8c5b6b28e69fcb9977aa5966ae161c086f00291d Mon Sep 17 00:00:00 2001 From: Donjan Rodic <donjan@dyx.ch> Date: Mon, 18 Apr 2016 10:29:51 +0200 Subject: [PATCH] small fixes --- exercises/ex03_solution/trising_cpp/Makefile | 2 ++ .../trising_cpp/trFieldIsingTimeEvolution.cpp | 16 ++++++++-------- exercises/ex04_solution/heised_cpp/heised.cpp | 5 +++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/exercises/ex03_solution/trising_cpp/Makefile b/exercises/ex03_solution/trising_cpp/Makefile index e185a51..388677d 100644 --- a/exercises/ex03_solution/trising_cpp/Makefile +++ b/exercises/ex03_solution/trising_cpp/Makefile @@ -8,3 +8,5 @@ magnetization.txt: trFieldIsingTimeEvolution.x trFieldIsingTimeEvolution.x: trFieldIsingTimeEvolution.cpp g++ -O2 -o trFieldIsingTimeEvolution.x trFieldIsingTimeEvolution.cpp +clean: + rm -f magnetization.png magnetization.txt trFieldIsingTimeEvolution.x diff --git a/exercises/ex03_solution/trising_cpp/trFieldIsingTimeEvolution.cpp b/exercises/ex03_solution/trising_cpp/trFieldIsingTimeEvolution.cpp index e34750c..6b4360c 100644 --- a/exercises/ex03_solution/trising_cpp/trFieldIsingTimeEvolution.cpp +++ b/exercises/ex03_solution/trising_cpp/trFieldIsingTimeEvolution.cpp @@ -32,7 +32,7 @@ param_vector_t precomputeCosines(const param_vector_t &hx, double dt){ for(int r = 0; r<hx.size(); ++r){ res[r] = std::cos(dt*hx[r]); } - + return res; } @@ -42,7 +42,7 @@ Vector precomputeSines(const param_vector_t &hx, double dt){ for(int r = 0; r<hx.size(); ++r){ res[r] = I * std::sin(dt*hx[r]); } - + return res; } @@ -57,7 +57,7 @@ void tstep_diag(unsigned l, const param_vector_t &j, double dt, Vector& x) for( int r = 0; r < l - 1; ++r ) { jtotal += ((s >> r)^(s >> (r+1)))&1 ? -j[r] : j[r]; // check if spins are parallel at site r and r+1 - } + } x[s] *= std::exp(I*jtotal*dt); } } @@ -80,7 +80,7 @@ void evolve(unsigned l, const param_vector_t &j, const param_vector_t &hx, doubl template <class Vector> void printMagnetization(unsigned l, const Vector& v, std::ostream& outputStream) -{ +{ state_t dim = 1 << l; for(int r=0; r<l; r++){ double m(0); @@ -107,14 +107,14 @@ int main(){ // Starting configuration state_t initialInd = 1<<5; state_vector_t x(0., 1 << l); - x[initialInd] = 1; + x[initialInd] = 1; printMagnetization(l,x,std::cout); // Do time evolution - for(int n=1; n<=nmeas; ++n){ + for(int n=1; n<=nmeas; ++n){ evolve(l, j, hx, dt, nstep, x); - printMagnetization(l,x,std::cout); + printMagnetization(l,x,std::cout); } - + return 0; } diff --git a/exercises/ex04_solution/heised_cpp/heised.cpp b/exercises/ex04_solution/heised_cpp/heised.cpp index cdea1fe..aafd46f 100644 --- a/exercises/ex04_solution/heised_cpp/heised.cpp +++ b/exercises/ex04_solution/heised_cpp/heised.cpp @@ -21,8 +21,9 @@ class SpinHalfBasis { public: enum { NOT_FOUND=-1 }; - typedef unsigned State; - typedef unsigned Index; + typedef unsigned int State; + //~ typedef unsigned int Index; // C++ 98/03 + using Index = unsigned int; // C++ 11/14/17/... SpinHalfBasis(unsigned l, unsigned nups); -- GitLab