datastructs_mod.f90 Source File


This file depends on

sourcefile~~datastructs_mod.f90~~EfferentGraph sourcefile~datastructs_mod.f90 datastructs_mod.f90 sourcefile~base.f90 base.f90 sourcefile~datastructs_mod.f90->sourcefile~base.f90 sourcefile~hash.f90 hash.f90 sourcefile~datastructs_mod.f90->sourcefile~hash.f90 sourcefile~histograms.f90 histograms.f90 sourcefile~datastructs_mod.f90->sourcefile~histograms.f90 sourcefile~lists.f90 lists.f90 sourcefile~datastructs_mod.f90->sourcefile~lists.f90 sourcefile~logger.f90 logger.f90 sourcefile~datastructs_mod.f90->sourcefile~logger.f90 sourcefile~measures.f90 measures.f90 sourcefile~datastructs_mod.f90->sourcefile~measures.f90 sourcefile~samplers.f90 samplers.f90 sourcefile~datastructs_mod.f90->sourcefile~samplers.f90 sourcefile~kinds.f90 kinds.f90 sourcefile~base.f90->sourcefile~kinds.f90 sourcefile~hash.f90->sourcefile~kinds.f90 sourcefile~histograms.f90->sourcefile~kinds.f90 sourcefile~dynamical_list.f90 dynamical_list.f90 sourcefile~lists.f90->sourcefile~dynamical_list.f90 sourcefile~fixed_list.f90 fixed_list.f90 sourcefile~lists.f90->sourcefile~fixed_list.f90 sourcefile~lists.f90->sourcefile~kinds.f90 sourcefile~maxheap.f90 maxheap.f90 sourcefile~lists.f90->sourcefile~maxheap.f90 sourcefile~logger.f90->sourcefile~kinds.f90 sourcefile~measures.f90->sourcefile~kinds.f90 sourcefile~samplers.f90->sourcefile~base.f90 sourcefile~btree.f90 btree.f90 sourcefile~samplers.f90->sourcefile~btree.f90 sourcefile~samplers.f90->sourcefile~kinds.f90 sourcefile~rejection.f90 rejection.f90 sourcefile~samplers.f90->sourcefile~rejection.f90 sourcefile~rejection_maxheap.f90 rejection_maxheap.f90 sourcefile~samplers.f90->sourcefile~rejection_maxheap.f90 sourcefile~rejection_maxheap_composition.f90 rejection_maxheap_composition.f90 sourcefile~samplers.f90->sourcefile~rejection_maxheap_composition.f90 sourcefile~rejection_maxheap_two_classes.f90 rejection_maxheap_two_classes.f90 sourcefile~samplers.f90->sourcefile~rejection_maxheap_two_classes.f90 sourcefile~rejection_two_classes.f90 rejection_two_classes.f90 sourcefile~samplers.f90->sourcefile~rejection_two_classes.f90 sourcefile~btree.f90->sourcefile~base.f90 sourcefile~btree.f90->sourcefile~kinds.f90 sourcefile~dynamical_list.f90->sourcefile~kinds.f90 sourcefile~fixed_list.f90->sourcefile~kinds.f90 sourcefile~maxheap.f90->sourcefile~kinds.f90 sourcefile~rejection.f90->sourcefile~base.f90 sourcefile~rejection.f90->sourcefile~lists.f90 sourcefile~rejection.f90->sourcefile~kinds.f90 sourcefile~rejection_maxheap.f90->sourcefile~base.f90 sourcefile~rejection_maxheap.f90->sourcefile~lists.f90 sourcefile~rejection_maxheap.f90->sourcefile~kinds.f90 sourcefile~rejection_maxheap_composition.f90->sourcefile~base.f90 sourcefile~rejection_maxheap_composition.f90->sourcefile~lists.f90 sourcefile~rejection_maxheap_composition.f90->sourcefile~btree.f90 sourcefile~rejection_maxheap_composition.f90->sourcefile~kinds.f90 sourcefile~rejection_maxheap_composition.f90->sourcefile~rejection_maxheap.f90 sourcefile~rejection_maxheap_two_classes.f90->sourcefile~base.f90 sourcefile~rejection_maxheap_two_classes.f90->sourcefile~lists.f90 sourcefile~rejection_maxheap_two_classes.f90->sourcefile~kinds.f90 sourcefile~rejection_maxheap_two_classes.f90->sourcefile~rejection_maxheap.f90 sourcefile~rejection_two_classes.f90->sourcefile~base.f90 sourcefile~rejection_two_classes.f90->sourcefile~lists.f90 sourcefile~rejection_two_classes.f90->sourcefile~kinds.f90 sourcefile~rejection_two_classes.f90->sourcefile~rejection.f90

Source Code

module datastructs_mod
    use datastructs_hash_mod, only: djb2
    use datastructs_lists_mod, only: dynamical_list, fixed_list, maxheap, &
                         dynamical_list_t, fixed_list_t, maxheap_t, &
                         unique_values, new_fixed_list_pointer
    use datastructs_samplers_base_mod, only : sampler_base_t
    use datastructs_samplers_mod, only: choose_sampler, sampler_choices
    use datastructs_measures_mod, only : statistical_measure_t, measure_controller_t
    use datastructs_histograms_mod, only : weighted_histogram_t
    use datastructs_logger_mod, only : log_unit, set_verbose, set_level, set_output_unit, set_error_unit, set_unit_defaults, log_write, LOG_ERROR, LOG_WARNING, LOG_INFO, LOG_DEBUG, LOGGER_OK
    implicit none
    private

    !> Hash functions
    public :: djb2

    !> Lists and maxheap constructors
    public :: dynamical_list, fixed_list, maxheap

    !> Derived types for lists and maxheap
    public :: dynamical_list_t, fixed_list_t, maxheap_t

    !> Utility functions for lists and maxheap
    public :: unique_values, new_fixed_list_pointer

    !> Base type for all samplers
    public :: sampler_base_t

    !> Choose a sampler based on the selected algorithm
    public :: choose_sampler, sampler_choices

    !> Statistical measures
    public :: statistical_measure_t, measure_controller_t, weighted_histogram_t

    !> Logger
    public :: log_unit, set_verbose, set_level, set_output_unit, set_error_unit, set_unit_defaults, log_write, LOG_ERROR, LOG_WARNING, LOG_INFO, LOG_DEBUG, LOGGER_OK
end module datastructs_mod