From 8251eba9559a8e0dd817418fe199174f4fcff443 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ne=C4=8Dada?= Date: Wed, 22 Jan 2020 17:07:15 +0200 Subject: [PATCH] WIP translation booster Former-commit-id: 4ed4c1f7c7948013c4b89bf6cb4c665d541ca3d8 --- qpms/scatsys_translation_booster.c | 22 +++++++++++++++++++++- qpms/scatsystem.h | 3 +++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/qpms/scatsys_translation_booster.c b/qpms/scatsys_translation_booster.c index 5a49429..a67c52c 100644 --- a/qpms/scatsys_translation_booster.c +++ b/qpms/scatsys_translation_booster.c @@ -27,9 +27,29 @@ static inline uoppid_t pairarr_len(qpms_ss_pi_t pn_total) { typedef struct qpms_scatsys_translation_booster { double *r; // Unique distances array, indices are ppid_t - ppid_t *r_map; // FIXME + size_t r_count; // Number of different interparticle distances (length of r[]) + size_t *r_map; // maps pairs to the corresponding distances (index of uoppid_t type) } qpms_scatsys_translation_booster_t; +struct uoppid_r_pair { + double r; + uoppid_t id; +} + +size_t sort_and_eliminate(void *base, size_t nmemb, size_t size, + int (*compar)(const void *, const void *)) { + qsort(base, nmemb, size, compar); + _Bool eliminate; + QPMS_CRASHING_CALLOC(eliminate, nmemb, sizeof(_Bool)); + size_t left = 0; + + TODO zde; + + free(eliminate); + return left; +} + + struct qpms_scatsys_translation_booster *qpms_scatsys_translation_booster_create( const qpms_scatsys_ss *ss) { const qpms_ss_pi_t np = ss->p_count; diff --git a/qpms/scatsystem.h b/qpms/scatsystem.h index 5023fc2..5771e10 100644 --- a/qpms/scatsystem.h +++ b/qpms/scatsystem.h @@ -134,6 +134,9 @@ typedef struct qpms_ss_derived_tmatrix_t { struct qpms_trans_calculator; struct qpms_scatsys_translation_booster; +void qpms_scatsys_translation_booster_free(struct qpms_scatsys_translation_booster *); +struct qpms_scatsys_translation_booster *qpms_scatsys_translation_booster_create( + const qpms_scatsys_ss *ss); typedef struct qpms_scatsys_t { struct qpms_epsmu_generator_t medium; ///< Optical properties of the background medium.