├── .coveragerc ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── documentation.yml │ └── feature_request.yml ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ ├── lint.yml │ ├── pr.yaml │ ├── pypi-publish.yml │ └── test_doc.yml ├── .gitignore ├── CITATION.cff ├── LICENSE ├── Makefile ├── README.rst ├── docs ├── Makefile ├── _static │ ├── favicon.ico │ ├── hoi-logo.png │ ├── jax_cgpu_entropy.png │ ├── jax_cgpu_oinfo.png │ ├── logo.svg │ └── style.css ├── _templates │ ├── autosummary │ │ ├── class.rst │ │ ├── function.rst │ │ └── layout.html │ └── layout.html ├── api │ ├── api_core.rst │ ├── api_metrics.rst │ ├── api_plot.rst │ ├── api_sim.rst │ ├── api_utils.rst │ └── modules.rst ├── conf.py ├── contributor_guide.rst ├── contributors.rst ├── glossary.rst ├── index.rst ├── install.rst ├── jax.rst ├── make.bat ├── quickstart.rst ├── refs.bib └── theory.rst ├── examples ├── README.txt ├── it │ ├── README.txt │ ├── plot_entropies.py │ ├── plot_entropies_mvar.py │ ├── plot_entropy_high_dimensional.py │ ├── plot_mi.py │ ├── plot_mi_high_dimensional.py │ └── tuto_core.py ├── metrics │ ├── README.txt │ ├── plot_infotopo.py │ ├── plot_oinfo.py │ ├── plot_rsi.py │ ├── plot_syn_phiID.py │ └── plot_syn_red_mmi.py ├── miscellaneous │ ├── README.txt │ ├── plot_inspect_results.py │ └── tuto_jax.py ├── statistics │ ├── README.txt │ └── plot_bootstrapping.py └── tutorials │ ├── README.txt │ ├── plot_ml_vs_it.py │ └── plot_sim_red_syn.py ├── hoi ├── __init__.py ├── core │ ├── __init__.py │ ├── combinatory.py │ ├── entropies.py │ ├── mi.py │ └── tests │ │ ├── test_combinatory.py │ │ ├── test_entropies.py │ │ └── test_mi.py ├── metrics │ ├── __init__.py │ ├── base_hoi.py │ ├── do_tot.py │ ├── dtc.py │ ├── gradient_oinfo.py │ ├── info_tot.py │ ├── infotopo.py │ ├── oinfo.py │ ├── phiid_atoms.py │ ├── phiid_red.py │ ├── red_mmi.py │ ├── rsi.py │ ├── sinfo.py │ ├── syn_mmi.py │ ├── tc.py │ └── tests │ │ └── test_metrics.py ├── plot │ ├── __init__.py │ └── landscape.py ├── simulation │ ├── __init__.py │ ├── simulate_hoi_gauss.py │ └── tests │ │ └── test_simulate_hoi_gauss.py └── utils │ ├── __init__.py │ ├── logging.py │ ├── multicores.py │ ├── progressbar.py │ ├── stats.py │ └── tests │ ├── test_progressbar.py │ └── test_stats.py ├── pyproject.toml ├── requirements.txt ├── setup.cfg └── setup.py /.coveragerc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.coveragerc -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/ISSUE_TEMPLATE/bug_report.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/ISSUE_TEMPLATE/documentation.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/ISSUE_TEMPLATE/feature_request.yml -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/workflows/lint.yml -------------------------------------------------------------------------------- /.github/workflows/pr.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/workflows/pr.yaml -------------------------------------------------------------------------------- /.github/workflows/pypi-publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/workflows/pypi-publish.yml -------------------------------------------------------------------------------- /.github/workflows/test_doc.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.github/workflows/test_doc.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/.gitignore -------------------------------------------------------------------------------- /CITATION.cff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/CITATION.cff -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/Makefile -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/README.rst -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/_static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_static/favicon.ico -------------------------------------------------------------------------------- /docs/_static/hoi-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_static/hoi-logo.png -------------------------------------------------------------------------------- /docs/_static/jax_cgpu_entropy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_static/jax_cgpu_entropy.png -------------------------------------------------------------------------------- /docs/_static/jax_cgpu_oinfo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_static/jax_cgpu_oinfo.png -------------------------------------------------------------------------------- /docs/_static/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_static/logo.svg -------------------------------------------------------------------------------- /docs/_static/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_static/style.css -------------------------------------------------------------------------------- /docs/_templates/autosummary/class.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_templates/autosummary/class.rst -------------------------------------------------------------------------------- /docs/_templates/autosummary/function.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_templates/autosummary/function.rst -------------------------------------------------------------------------------- /docs/_templates/autosummary/layout.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_templates/autosummary/layout.html -------------------------------------------------------------------------------- /docs/_templates/layout.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/_templates/layout.html -------------------------------------------------------------------------------- /docs/api/api_core.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/api/api_core.rst -------------------------------------------------------------------------------- /docs/api/api_metrics.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/api/api_metrics.rst -------------------------------------------------------------------------------- /docs/api/api_plot.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/api/api_plot.rst -------------------------------------------------------------------------------- /docs/api/api_sim.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/api/api_sim.rst -------------------------------------------------------------------------------- /docs/api/api_utils.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/api/api_utils.rst -------------------------------------------------------------------------------- /docs/api/modules.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/api/modules.rst -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/contributor_guide.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/contributor_guide.rst -------------------------------------------------------------------------------- /docs/contributors.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/contributors.rst -------------------------------------------------------------------------------- /docs/glossary.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/glossary.rst -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/install.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/install.rst -------------------------------------------------------------------------------- /docs/jax.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/jax.rst -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/make.bat -------------------------------------------------------------------------------- /docs/quickstart.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/quickstart.rst -------------------------------------------------------------------------------- /docs/refs.bib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/refs.bib -------------------------------------------------------------------------------- /docs/theory.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/docs/theory.rst -------------------------------------------------------------------------------- /examples/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/README.txt -------------------------------------------------------------------------------- /examples/it/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/it/README.txt -------------------------------------------------------------------------------- /examples/it/plot_entropies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/it/plot_entropies.py -------------------------------------------------------------------------------- /examples/it/plot_entropies_mvar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/it/plot_entropies_mvar.py -------------------------------------------------------------------------------- /examples/it/plot_entropy_high_dimensional.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/it/plot_entropy_high_dimensional.py -------------------------------------------------------------------------------- /examples/it/plot_mi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/it/plot_mi.py -------------------------------------------------------------------------------- /examples/it/plot_mi_high_dimensional.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/it/plot_mi_high_dimensional.py -------------------------------------------------------------------------------- /examples/it/tuto_core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/it/tuto_core.py -------------------------------------------------------------------------------- /examples/metrics/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/metrics/README.txt -------------------------------------------------------------------------------- /examples/metrics/plot_infotopo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/metrics/plot_infotopo.py -------------------------------------------------------------------------------- /examples/metrics/plot_oinfo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/metrics/plot_oinfo.py -------------------------------------------------------------------------------- /examples/metrics/plot_rsi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/metrics/plot_rsi.py -------------------------------------------------------------------------------- /examples/metrics/plot_syn_phiID.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/metrics/plot_syn_phiID.py -------------------------------------------------------------------------------- /examples/metrics/plot_syn_red_mmi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/metrics/plot_syn_red_mmi.py -------------------------------------------------------------------------------- /examples/miscellaneous/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/miscellaneous/README.txt -------------------------------------------------------------------------------- /examples/miscellaneous/plot_inspect_results.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/miscellaneous/plot_inspect_results.py -------------------------------------------------------------------------------- /examples/miscellaneous/tuto_jax.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/miscellaneous/tuto_jax.py -------------------------------------------------------------------------------- /examples/statistics/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/statistics/README.txt -------------------------------------------------------------------------------- /examples/statistics/plot_bootstrapping.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/statistics/plot_bootstrapping.py -------------------------------------------------------------------------------- /examples/tutorials/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/tutorials/README.txt -------------------------------------------------------------------------------- /examples/tutorials/plot_ml_vs_it.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/tutorials/plot_ml_vs_it.py -------------------------------------------------------------------------------- /examples/tutorials/plot_sim_red_syn.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/examples/tutorials/plot_sim_red_syn.py -------------------------------------------------------------------------------- /hoi/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/__init__.py -------------------------------------------------------------------------------- /hoi/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/core/__init__.py -------------------------------------------------------------------------------- /hoi/core/combinatory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/core/combinatory.py -------------------------------------------------------------------------------- /hoi/core/entropies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/core/entropies.py -------------------------------------------------------------------------------- /hoi/core/mi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/core/mi.py -------------------------------------------------------------------------------- /hoi/core/tests/test_combinatory.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/core/tests/test_combinatory.py -------------------------------------------------------------------------------- /hoi/core/tests/test_entropies.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/core/tests/test_entropies.py -------------------------------------------------------------------------------- /hoi/core/tests/test_mi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/core/tests/test_mi.py -------------------------------------------------------------------------------- /hoi/metrics/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/__init__.py -------------------------------------------------------------------------------- /hoi/metrics/base_hoi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/base_hoi.py -------------------------------------------------------------------------------- /hoi/metrics/do_tot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/do_tot.py -------------------------------------------------------------------------------- /hoi/metrics/dtc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/dtc.py -------------------------------------------------------------------------------- /hoi/metrics/gradient_oinfo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/gradient_oinfo.py -------------------------------------------------------------------------------- /hoi/metrics/info_tot.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/info_tot.py -------------------------------------------------------------------------------- /hoi/metrics/infotopo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/infotopo.py -------------------------------------------------------------------------------- /hoi/metrics/oinfo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/oinfo.py -------------------------------------------------------------------------------- /hoi/metrics/phiid_atoms.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/phiid_atoms.py -------------------------------------------------------------------------------- /hoi/metrics/phiid_red.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/phiid_red.py -------------------------------------------------------------------------------- /hoi/metrics/red_mmi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/red_mmi.py -------------------------------------------------------------------------------- /hoi/metrics/rsi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/rsi.py -------------------------------------------------------------------------------- /hoi/metrics/sinfo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/sinfo.py -------------------------------------------------------------------------------- /hoi/metrics/syn_mmi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/syn_mmi.py -------------------------------------------------------------------------------- /hoi/metrics/tc.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/tc.py -------------------------------------------------------------------------------- /hoi/metrics/tests/test_metrics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/metrics/tests/test_metrics.py -------------------------------------------------------------------------------- /hoi/plot/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/plot/__init__.py -------------------------------------------------------------------------------- /hoi/plot/landscape.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/plot/landscape.py -------------------------------------------------------------------------------- /hoi/simulation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/simulation/__init__.py -------------------------------------------------------------------------------- /hoi/simulation/simulate_hoi_gauss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/simulation/simulate_hoi_gauss.py -------------------------------------------------------------------------------- /hoi/simulation/tests/test_simulate_hoi_gauss.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/simulation/tests/test_simulate_hoi_gauss.py -------------------------------------------------------------------------------- /hoi/utils/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/utils/__init__.py -------------------------------------------------------------------------------- /hoi/utils/logging.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/utils/logging.py -------------------------------------------------------------------------------- /hoi/utils/multicores.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hoi/utils/progressbar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/utils/progressbar.py -------------------------------------------------------------------------------- /hoi/utils/stats.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/utils/stats.py -------------------------------------------------------------------------------- /hoi/utils/tests/test_progressbar.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/utils/tests/test_progressbar.py -------------------------------------------------------------------------------- /hoi/utils/tests/test_stats.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/hoi/utils/tests/test_stats.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/requirements.txt -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/setup.cfg -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainets/hoi/HEAD/setup.py --------------------------------------------------------------------------------