.. _program_listing_file_include_cmb_dataset.h: Program Listing for File cmb_dataset.h ====================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/cmb_dataset.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: c /* * * Copyright (c) Asbjørn M. Bonvik 1994, 1995, 2025-26. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef CIMBA_CMB_DATASET_H #define CIMBA_CMB_DATASET_H #include "cmb_assert.h" #include "cmb_datasummary.h" /* May not always get defined from math.h, but we need it here */ #ifndef M_PI #define M_PI 3.14159265358979323 #endif struct cmb_dataset { uint64_t cookie; uint64_t cursize; uint64_t count; double min; double max; double *xa; }; extern struct cmb_dataset *cmb_dataset_create(void); extern void cmb_dataset_initialize(struct cmb_dataset *dsp); extern void cmb_dataset_reset(struct cmb_dataset *dsp); extern void cmb_dataset_terminate(struct cmb_dataset *dsp); extern uint64_t cmb_dataset_copy(struct cmb_dataset *tgt, const struct cmb_dataset *src); extern uint64_t cmb_dataset_merge(struct cmb_dataset *tgt, const struct cmb_dataset *s1, const struct cmb_dataset *s2); extern void cmb_dataset_destroy(struct cmb_dataset *dsp); extern void cmb_dataset_sort(const struct cmb_dataset *dsp); extern uint64_t cmb_dataset_add(struct cmb_dataset *dsp, double x); extern uint64_t cmb_dataset_summarize(const struct cmb_dataset *dsp, struct cmb_datasummary *dsump); [[maybe_unused]] static inline uint64_t cmb_dataset_count(const struct cmb_dataset *dsp) { cmb_assert_release(dsp != NULL); return dsp->count; } [[maybe_unused]] static inline double cmb_dataset_min(const struct cmb_dataset *dsp) { cmb_assert_release(dsp != NULL); return dsp->min; } [[maybe_unused]] static inline double cmb_dataset_max(const struct cmb_dataset *dsp) { cmb_assert_release(dsp != NULL); return dsp->max; } extern double cmb_dataset_median(const struct cmb_dataset *dsp); extern void cmb_dataset_fivenum_print(const struct cmb_dataset *dsp, FILE *fp, bool lead_ins); extern void cmb_dataset_histogram_print(const struct cmb_dataset *dsp, FILE *fp, unsigned num_bins, double low_lim, double high_lim); extern void cmb_dataset_print(const struct cmb_dataset *dsp, FILE *fp); extern void cmb_dataset_ACF(const struct cmb_dataset *dsp, unsigned n, double *acf); extern void cmb_dataset_PACF(const struct cmb_dataset *dsp, unsigned n, double *pacf, double *acf); extern void cmb_dataset_correlogram_print(const struct cmb_dataset *dsp, FILE *fp, unsigned n, double *acf); #endif /* CIMBA_CMB_DATASET_H */