From 1ec776c8a854e9c3642599e8b82b797f641aeb99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ne=C4=8Dada?= Date: Sun, 14 Jul 2019 20:50:27 +0300 Subject: [PATCH] New qpms_normalisation_t also in scatsystem.c; python module now compiles. Former-commit-id: ac877f894c124660f399bb3e70ed05ca42f565cb --- qpms/CMakeLists.txt | 2 +- qpms/qpms_c.pyx | 2 +- qpms/scatsystem.c | 14 +++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/qpms/CMakeLists.txt b/qpms/CMakeLists.txt index d216360..4e18059 100644 --- a/qpms/CMakeLists.txt +++ b/qpms/CMakeLists.txt @@ -12,7 +12,7 @@ include_directories(${DIRS}) add_library (qpms translations.c tmatrices.c vecprint.c vswf.c wigner.c lattices2d.c gaunt.c error.c legendre.c symmetries.c vecprint.c - bessel.c own_zgemm.c parsing.c) + bessel.c own_zgemm.c parsing.c scatsystem.c) use_c99() set(LIBS ${LIBS} ${GSL_LIBRARIES} ${GSLCBLAS_LIBRARIES}) diff --git a/qpms/qpms_c.pyx b/qpms/qpms_c.pyx index f158954..2d6323a 100644 --- a/qpms/qpms_c.pyx +++ b/qpms/qpms_c.pyx @@ -722,7 +722,7 @@ cdef class BaseSpec: if 'norm' in kwargs.keys(): self.s.norm = kwargs['norm'] else: - self.s.norm = QPMS_NORMALISATION_NORM_POWER | QPMS_NORMALISATION_CSPHASE + self.s.norm = (QPMS_NORMALISATION_NORM_POWER | QPMS_NORMALISATION_CSPHASE) # set the other metadata cdef qpms_l_t l self.s.lMax_L = -1 diff --git a/qpms/scatsystem.c b/qpms/scatsystem.c index 65a166d..e30f94e 100644 --- a/qpms/scatsystem.c +++ b/qpms/scatsystem.c @@ -431,10 +431,10 @@ void qpms_scatsys_free(qpms_scatsys_t *ss) { // (perhaps just use qpms_normalisation_t_factor() at the right places) static inline void check_norm_compat(const qpms_vswf_set_spec_t *s) { - switch (qpms_normalisation_t_normonly(s->norm)) { - case QPMS_NORMALISATION_POWER: + switch (s->norm & QPMS_NORMALISATION_NORM_BITS) { + case QPMS_NORMALISATION_NORM_POWER: break; - case QPMS_NORMALISATION_SPHARM: + case QPMS_NORMALISATION_NORM_SPHARM: break; default: abort(); // Only SPHARM and POWER norms are supported right now. @@ -447,7 +447,7 @@ complex double *qpms_orbit_action_matrix(complex double *target, assert(sym); assert(g < sym->order); assert(sym->rep3d); assert(ot); assert(ot->size > 0); - check_norm_compat(bspec); + // check_norm_compat(bspec); not needed here, the qpms_irot3_uvswfi_dense should complain if necessary const size_t n = bspec->n; const qpms_gmi_t N = ot->size; if (target == NULL) @@ -491,7 +491,7 @@ complex double *qpms_orbit_irrep_projector_matrix(complex double *target, assert(sym->rep3d); assert(ot); assert(ot->size > 0); assert(iri < sym->nirreps); assert(sym->irreps); - check_norm_compat(bspec); + // check_norm_compat(bspec); // probably not needed here, let the called functions complain if necessary, but CHEKME const size_t n = bspec->n; const qpms_gmi_t N = ot->size; if (target == NULL) @@ -545,7 +545,7 @@ complex double *qpms_orbit_irrep_basis(size_t *basis_size, assert(sym->rep3d); assert(ot); assert(ot->size > 0); assert(iri < sym->nirreps); assert(sym->irreps); - check_norm_compat(bspec); + check_norm_compat(bspec); // Here I'm not sure; CHECKME const size_t n = bspec->n; const qpms_gmi_t N = ot->size; const bool newtarget = (target == NULL); @@ -1451,7 +1451,7 @@ complex double *qpms_scatsys_build_modeproblem_matrix_irrep_packed_parallelR( for(long thi = 0; thi < nthreads; ++thi) QPMS_ENSURE_SUCCESS(pthread_create(thread_ids + thi, NULL, qpms_scatsys_build_modeproblem_matrix_irrep_packed_parallelR_thread, - &arg)); + (void *) &arg)); for(long thi = 0; thi < nthreads; ++thi) { void *retval; QPMS_ENSURE_SUCCESS(pthread_join(thread_ids[thi], &retval));