3
0
mirror of https://github.com/triqs/dft_tools synced 2024-12-23 12:55:17 +01:00
dft_tools/c++/app4triqs/toto.hpp

99 lines
2.0 KiB
C++
Raw Normal View History

#pragma once
#include <triqs/gfs.hpp>
namespace app4triqs {
/**
* A very useful and important class
*
* @note A Useful note
*/
class toto {
2018-11-21 22:52:55 +01:00
int i = 0;
public:
toto() = default;
/**
* Construct from integer
*
2019-04-23 19:33:57 +02:00
* @param i_ a scalar :math:`G(\tau)`
*/
explicit toto(int i_) : i(i_) {}
~toto() = default;
// Copy/Move construction
toto(toto const &) = default;
toto(toto &&) = default;
/// Copy/Move assignment
toto &operator=(toto const &) = default;
toto &operator=(toto &&) = default;
/// Simple accessor
int get_i() const { return i; }
2019-04-23 19:33:57 +02:00
/**
* A simple function with :math:`G(\tau)`
*
* @param u Nothing useful
*/
int f(int u) { return u; }
2019-04-23 19:33:57 +02:00
/// Arithmetic operations
toto operator+(toto const &b) const;
toto &operator+=(toto const &b);
/// Comparison
bool operator==(toto const &b) const;
/// HDF5
static std::string hdf5_scheme() { return "Toto"; }
friend void h5_write(triqs::h5::group grp, std::string subgroup_name, toto const &m);
friend void h5_read(triqs::h5::group grp, std::string subgroup_name, toto &m);
/// Serialization
2019-04-25 19:52:22 +02:00
template <class Archive> void serialize(Archive &ar, const unsigned int) { ar &i; }
};
/**
* Chain digits of two integers
*
2019-04-25 21:48:21 +02:00
* @head A set of functions that implement chaining
*
* @tail Do I really need to explain more ?
*
2019-04-23 19:33:57 +02:00
* @param i The first integer
* @param j The second integer
* @return An integer containing the digits of both i and j
*
* @remark
*/
int chain(int i, int j);
2019-04-25 21:48:21 +02:00
/**
* Chain digits of three integers
*
* @param i The first integer
* @param j The second integer
* @param k The third integer
* @return An integer containing the digits of both i and j
*
* @remark
*/
int chain(int i, int j, int k);
/**
* Chain digits of one integers
*
* @param i The first integer
*
* @remark
*/
int chain(int i);
} // namespace app4triqs