/* * The Npic library * * Copyright (C) 2003 Edouard Thiel * * This library is free software under the terms of the * GNU Lesser General Public License (LGPL) version 2.1. */ /* * mask_gsym.h - 22/01/2004 * * Computation of all G-symmetries for generating a half or full mask. */ #ifndef NPIC__MASK_GSYM_H #define NPIC__MASK_GSYM_H #define NPIC_GSYM_MAX 20 typedef struct { int dim, /* Dimension and coordinates */ x[NPIC_GSYM_MAX], /* (x[1], x[2], ..., x[dim]) */ half, /* Compute 1: half, 0: full mask */ dir[NPIC_GSYM_MAX], /* Direction and position for */ pos[NPIC_GSYM_MAX], /* Johnson's permutation algorithm */ k, kmax, /* Number of sign combination */ bin_mask; /* Binary mask to forbid combinations */ } Npic_gsym; /* PUBLIC */ void NpicGsymPermuInit (Npic_gsym *gs); int NpicGsymPermuNext (Npic_gsym *gs); void NpicGsymCombiInit (Npic_gsym *gs); int NpicGsymCombiNext (Npic_gsym *gs); void NpicGsymInit (Npic_gsym *gs); int NpicGsymNext (Npic_gsym *gs); void NpicGsymPrint (Npic_gsym *gs); /* PRIVATE */ #endif /* NPIC__MASK_GSYM_H */