38 const double *coords1,
const int *cand1,
39 int nat2,
const int *typ2,
40 const double *coords2,
const int *cand2,
41 double distThreshold,
double **rotMat,
42 double **trans,
int **perm,
43 double *hausdorffDist,
int *ierr);
45 const double *coords1,
int nat2,
46 const int *typ2,
const double *coords2,
47 const double *lat,
double distThreshold,
48 int **found,
double **dists);
50 void (*)(
int nat,
const int *typ,
const double *coords,
double threshold,
51 int prescreenIh,
int *n_mat,
double **mat,
int **perm,
char **op,
52 int **n,
int **p,
double **ax,
double **angle,
double **dH,
53 char **pg,
int *n_prin_ax,
double **prin_ax,
int *cerr);
94 template <
typename Fn> Fn
load_sym(
const char *name)
const {
void(*)(int nat1, const int *typ1, const double *coords1, const int *cand1, int nat2, const int *typ2, const double *coords2, const int *cand2, double distThreshold, double **rotMat, double **trans, int **perm, double *hausdorffDist, int *ierr) libira_match_fn
void require_loaded() const
Throws std::runtime_error if libira is not available.
void(*)(int nat, const int *typ, const double *coords, double threshold, int prescreenIh, int *n_mat, double **mat, int **perm, char **op, int **n, int **p, double **ax, double **angle, double **dH, char **pg, int *n_prin_ax, double **prin_ax, int *cerr) libira_compute_all_fn
std::mutex library_mutex
Global mutex to ensure only one thread accesses IRA library at a time.
libira_compute_all_fn get_compute_all_fn() const
void(*)(int nat1, const int *typ1, const double *coords1, int nat2, const int *typ2, const double *coords2, const double *lat, double distThreshold, int **found, double **dists) libira_cshda_pbc_fn
Fn load_sym(const char *name) const
Try to load a symbol; returns nullptr on failure.
IRAResource(const IRAResource &)=delete
Non-copyable, non-movable.
libira_get_nmax_fn libira_get_nmax_
libira_match_fn libira_match_
libira_get_nmax_fn get_get_nmax_fn() const
libira_compute_all_fn libira_compute_all_
bool is_loaded() const noexcept
True if libira was successfully loaded.
static IRAResource & instance()
Singleton accessor (Meyer's pattern).
libira_cshda_pbc_fn get_cshda_pbc_fn() const
libira_cshda_pbc_fn libira_cshda_pbc_
int(*)() libira_get_nmax_fn
libira_match_fn get_match_fn() const
IRAResource & operator=(const IRAResource &)=delete
void * sym(Handle h, const char *name) noexcept
RAII resource manager for the ARTn C library with global synchronization.
IRAResource & get_ira_resource()
Global access to thread-safe IRA resource.