Program Listing for File lattice3D.hpp¶
↰ Return to documentation for file (src_qcm/lattice3D.hpp)
#ifndef lattice_h
#define lattice_h
#include <iostream>
#include <vector>
#include <utility>
#include "vector3D.hpp"
#include "basis3D.hpp"
struct lattice3D
{
size_t D;
vector<vector3D<int64_t>> e;
int64_t vol;
matrix<double> M;
lattice3D() {}
lattice3D(vector<vector3D<int64_t>> _e) : e(_e) {init();}
lattice3D(vector<int64_t> _e);
void read(istream &fin);
void trivial();
void init();
std::pair<vector3D<int64_t>, vector3D<int64_t>> fold(const vector3D<int64_t> &r);
void dual(basis3D &x);
vector3D<double> to(vector3D<int64_t> v);
vector3D<double> from(vector3D<double> v);
friend std::ostream & operator<<(std::ostream &flux, lattice3D &latt);
};
#endif