static int qopqdp_lattice_gc(lua_State *L) { lattice_t *lat = qopqdp_check_lattice(L, -1); if(lat->doGC) { if(lat->timeslices) { QDP_destroy_subset(lat->timeslices); lat->timeslices = NULL; } if(lat->staggered) { QDP_destroy_subset(lat->staggered); lat->staggered = NULL; } for(int i=0; i<=lat->nd; i++) { if(lat->eodir[i]) { QDP_destroy_subset(lat->eodir[i]); lat->eodir[i] = NULL; } } free(lat->eodir); //if(lat->rs) { //QDP_destroy_S(lat->rs); //lat->rs = NULL; //} if(lat->qlat!=QDP_get_default_lattice()) { QDP_destroy_lattice(lat->qlat); lat->qlat = NULL; } } return 0; }
void qhmc_qopqdp_subsetGroup_free(lua_State *L, subsetGroup_t *sg) { if(sg) { QDP_destroy_subset(sg->qgroup); free(sg); } }