{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.NszaiF3k/b1/dune-common_2.9.0-8_armhf.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.NszaiF3k/b2/dune-common_2.9.0-8_armhf.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,4 +1,4 @@\n \n 512ee69e4b8c95a2d7c46fb74662e923 532588 debug optional libdune-common-dev-dbgsym_2.9.0-8_armhf.deb\n 7fa183cbfd395045d011aea7339caf80 376192 libdevel optional libdune-common-dev_2.9.0-8_armhf.deb\n- 7832b19421c54472ef825bb6137b1924 3066116 doc optional libdune-common-doc_2.9.0-8_all.deb\n+ 53161a6b27bd1cf8e1503cdb95e56afa 3064752 doc optional libdune-common-doc_2.9.0-8_all.deb\n"}, {"source1": "libdune-common-doc_2.9.0-8_all.deb", "source2": "libdune-common-doc_2.9.0-8_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r-- 0 0 0 4 2024-11-07 15:59:08.000000 debian-binary\n--rw-r--r-- 0 0 0 26992 2024-11-07 15:59:08.000000 control.tar.xz\n--rw-r--r-- 0 0 0 3038932 2024-11-07 15:59:08.000000 data.tar.xz\n+-rw-r--r-- 0 0 0 26912 2024-11-07 15:59:08.000000 control.tar.xz\n+-rw-r--r-- 0 0 0 3037648 2024-11-07 15:59:08.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}, {"source1": "line order", "source2": "line order", "unified_diff": "@@ -25,28 +25,29 @@\n usr/share/doc/libdune-common-doc/doxygen/a00011.html\n usr/share/doc/libdune-common-doc/doxygen/a00011_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00014.html\n usr/share/doc/libdune-common-doc/doxygen/a00014_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00017.html\n usr/share/doc/libdune-common-doc/doxygen/a00017_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00020.html\n+usr/share/doc/libdune-common-doc/doxygen/a00020_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00023.html\n usr/share/doc/libdune-common-doc/doxygen/a00023_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00026.html\n usr/share/doc/libdune-common-doc/doxygen/a00026_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00029.html\n usr/share/doc/libdune-common-doc/doxygen/a00029_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00032.html\n usr/share/doc/libdune-common-doc/doxygen/a00032_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00035.html\n usr/share/doc/libdune-common-doc/doxygen/a00035_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00038.html\n usr/share/doc/libdune-common-doc/doxygen/a00038_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00041.html\n-usr/share/doc/libdune-common-doc/doxygen/a00044.html\n+usr/share/doc/libdune-common-doc/doxygen/a00041_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00047.html\n usr/share/doc/libdune-common-doc/doxygen/a00047_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00050.html\n usr/share/doc/libdune-common-doc/doxygen/a00050_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00053.html\n usr/share/doc/libdune-common-doc/doxygen/a00053_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00056.html\n@@ -87,25 +88,26 @@\n usr/share/doc/libdune-common-doc/doxygen/a00110.html\n usr/share/doc/libdune-common-doc/doxygen/a00110_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00113.html\n usr/share/doc/libdune-common-doc/doxygen/a00113_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00116.html\n usr/share/doc/libdune-common-doc/doxygen/a00116_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00119.html\n+usr/share/doc/libdune-common-doc/doxygen/a00119_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00122.html\n usr/share/doc/libdune-common-doc/doxygen/a00122_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00125.html\n usr/share/doc/libdune-common-doc/doxygen/a00125_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00128.html\n usr/share/doc/libdune-common-doc/doxygen/a00128_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00131.html\n-usr/share/doc/libdune-common-doc/doxygen/a00131_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00134.html\n usr/share/doc/libdune-common-doc/doxygen/a00134_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00137.html\n+usr/share/doc/libdune-common-doc/doxygen/a00137_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00140.html\n usr/share/doc/libdune-common-doc/doxygen/a00140_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00143.html\n usr/share/doc/libdune-common-doc/doxygen/a00143_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00146.html\n usr/share/doc/libdune-common-doc/doxygen/a00146_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00149.html\n@@ -113,51 +115,49 @@\n usr/share/doc/libdune-common-doc/doxygen/a00152.html\n usr/share/doc/libdune-common-doc/doxygen/a00152_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00155.html\n usr/share/doc/libdune-common-doc/doxygen/a00155_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00158.html\n usr/share/doc/libdune-common-doc/doxygen/a00158_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00161.html\n+usr/share/doc/libdune-common-doc/doxygen/a00161_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00164.html\n-usr/share/doc/libdune-common-doc/doxygen/a00164_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00167.html\n usr/share/doc/libdune-common-doc/doxygen/a00167_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00170.html\n usr/share/doc/libdune-common-doc/doxygen/a00170_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00173.html\n usr/share/doc/libdune-common-doc/doxygen/a00173_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00176.html\n usr/share/doc/libdune-common-doc/doxygen/a00176_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00179.html\n-usr/share/doc/libdune-common-doc/doxygen/a00179_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00182.html\n-usr/share/doc/libdune-common-doc/doxygen/a00182_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00185.html\n usr/share/doc/libdune-common-doc/doxygen/a00185_source.html\n+usr/share/doc/libdune-common-doc/doxygen/a00188.html\n usr/share/doc/libdune-common-doc/doxygen/a00191.html\n-usr/share/doc/libdune-common-doc/doxygen/a00191_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00194.html\n usr/share/doc/libdune-common-doc/doxygen/a00194_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00197.html\n usr/share/doc/libdune-common-doc/doxygen/a00197_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00200.html\n usr/share/doc/libdune-common-doc/doxygen/a00200_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00203.html\n usr/share/doc/libdune-common-doc/doxygen/a00203_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00206.html\n usr/share/doc/libdune-common-doc/doxygen/a00206_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00209.html\n+usr/share/doc/libdune-common-doc/doxygen/a00209_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00212.html\n usr/share/doc/libdune-common-doc/doxygen/a00212_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00215.html\n usr/share/doc/libdune-common-doc/doxygen/a00215_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00218.html\n usr/share/doc/libdune-common-doc/doxygen/a00218_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00221.html\n-usr/share/doc/libdune-common-doc/doxygen/a00221_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00224.html\n usr/share/doc/libdune-common-doc/doxygen/a00224_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00227.html\n usr/share/doc/libdune-common-doc/doxygen/a00227_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00230.html\n usr/share/doc/libdune-common-doc/doxygen/a00230_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00233.html\n@@ -177,20 +177,20 @@\n usr/share/doc/libdune-common-doc/doxygen/a00254.html\n usr/share/doc/libdune-common-doc/doxygen/a00254_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00257.html\n usr/share/doc/libdune-common-doc/doxygen/a00257_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00260.html\n usr/share/doc/libdune-common-doc/doxygen/a00260_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00263.html\n-usr/share/doc/libdune-common-doc/doxygen/a00263_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00266.html\n usr/share/doc/libdune-common-doc/doxygen/a00266_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00269.html\n usr/share/doc/libdune-common-doc/doxygen/a00269_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00272.html\n+usr/share/doc/libdune-common-doc/doxygen/a00272_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00275.html\n usr/share/doc/libdune-common-doc/doxygen/a00275_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00278.html\n usr/share/doc/libdune-common-doc/doxygen/a00278_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00281.html\n usr/share/doc/libdune-common-doc/doxygen/a00281_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00284.html\n@@ -230,15 +230,14 @@\n usr/share/doc/libdune-common-doc/doxygen/a00335.html\n usr/share/doc/libdune-common-doc/doxygen/a00335_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00338.html\n usr/share/doc/libdune-common-doc/doxygen/a00338_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00341.html\n usr/share/doc/libdune-common-doc/doxygen/a00341_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00344.html\n-usr/share/doc/libdune-common-doc/doxygen/a00344_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00347.html\n usr/share/doc/libdune-common-doc/doxygen/a00347_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00350.html\n usr/share/doc/libdune-common-doc/doxygen/a00350_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00353.html\n usr/share/doc/libdune-common-doc/doxygen/a00353_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00356.html\n@@ -246,29 +245,30 @@\n usr/share/doc/libdune-common-doc/doxygen/a00359.html\n usr/share/doc/libdune-common-doc/doxygen/a00359_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00362.html\n usr/share/doc/libdune-common-doc/doxygen/a00362_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00365.html\n usr/share/doc/libdune-common-doc/doxygen/a00365_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00368.html\n+usr/share/doc/libdune-common-doc/doxygen/a00368_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00371.html\n usr/share/doc/libdune-common-doc/doxygen/a00371_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00374.html\n-usr/share/doc/libdune-common-doc/doxygen/a00374_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00377.html\n usr/share/doc/libdune-common-doc/doxygen/a00377_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00380.html\n usr/share/doc/libdune-common-doc/doxygen/a00380_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00383.html\n usr/share/doc/libdune-common-doc/doxygen/a00383_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00386.html\n usr/share/doc/libdune-common-doc/doxygen/a00386_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00389.html\n usr/share/doc/libdune-common-doc/doxygen/a00389_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00392.html\n+usr/share/doc/libdune-common-doc/doxygen/a00392_source.html\n usr/share/doc/libdune-common-doc/doxygen/a00395.html\n usr/share/doc/libdune-common-doc/doxygen/a00396.html\n usr/share/doc/libdune-common-doc/doxygen/a00397.html\n usr/share/doc/libdune-common-doc/doxygen/a00397.png\n usr/share/doc/libdune-common-doc/doxygen/a00398.html\n usr/share/doc/libdune-common-doc/doxygen/a00398.png\n usr/share/doc/libdune-common-doc/doxygen/a00399.html\n"}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -26,259 +26,259 @@\n -rw-r--r-- 0 root (0) root (0) 2825 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/buildsystem/html/search.html\n -rw-r--r-- 0 root (0) root (0) 10550 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/buildsystem/html/searchindex.js\n -rw-r--r-- 0 root (0) root (0) 2092 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/changelog.Debian.gz\n -rw-r--r-- 0 root (0) root (0) 7231 2022-10-20 18:41:15.000000 ./usr/share/doc/libdune-common-doc/changelog.gz\n -rw-r--r-- 0 root (0) root (0) 9815 2023-01-12 15:06:30.000000 ./usr/share/doc/libdune-common-doc/copyright\n drwxr-xr-x 0 root (0) root (0) 0 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/\n -rw-r--r-- 0 root (0) root (0) 3045 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00002.html\n--rw-r--r-- 0 root (0) root (0) 7783 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008.html\n--rw-r--r-- 0 root (0) root (0) 12397 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008_source.html\n--rw-r--r-- 0 root (0) root (0) 6662 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011.html\n--rw-r--r-- 0 root (0) root (0) 52852 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011_source.html\n--rw-r--r-- 0 root (0) root (0) 5458 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014.html\n--rw-r--r-- 0 root (0) root (0) 8314 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014_source.html\n--rw-r--r-- 0 root (0) root (0) 6380 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017.html\n--rw-r--r-- 0 root (0) root (0) 19421 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017_source.html\n--rw-r--r-- 0 root (0) root (0) 6970 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00020.html\n--rw-r--r-- 0 root (0) root (0) 13585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023.html\n--rw-r--r-- 0 root (0) root (0) 94215 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023_source.html\n--rw-r--r-- 0 root (0) root (0) 16771 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026.html\n--rw-r--r-- 0 root (0) root (0) 48543 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026_source.html\n--rw-r--r-- 0 root (0) root (0) 14770 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029.html\n--rw-r--r-- 0 root (0) root (0) 23217 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029_source.html\n--rw-r--r-- 0 root (0) root (0) 5214 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032.html\n--rw-r--r-- 0 root (0) root (0) 15233 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032_source.html\n--rw-r--r-- 0 root (0) root (0) 5668 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035.html\n--rw-r--r-- 0 root (0) root (0) 10965 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035_source.html\n--rw-r--r-- 0 root (0) root (0) 7919 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038.html\n--rw-r--r-- 0 root (0) root (0) 126603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038_source.html\n--rw-r--r-- 0 root (0) root (0) 3899 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00041.html\n--rw-r--r-- 0 root (0) root (0) 4128 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00044.html\n--rw-r--r-- 0 root (0) root (0) 7494 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047.html\n--rw-r--r-- 0 root (0) root (0) 31467 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047_source.html\n--rw-r--r-- 0 root (0) root (0) 5278 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050.html\n--rw-r--r-- 0 root (0) root (0) 22235 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050_source.html\n--rw-r--r-- 0 root (0) root (0) 8704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053.html\n--rw-r--r-- 0 root (0) root (0) 26496 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053_source.html\n--rw-r--r-- 0 root (0) root (0) 4125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00056.html\n--rw-r--r-- 0 root (0) root (0) 5347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059.html\n--rw-r--r-- 0 root (0) root (0) 33493 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059_source.html\n--rw-r--r-- 0 root (0) root (0) 4310 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062.html\n--rw-r--r-- 0 root (0) root (0) 17898 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062_source.html\n--rw-r--r-- 0 root (0) root (0) 8194 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065.html\n--rw-r--r-- 0 root (0) root (0) 41231 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065_source.html\n--rw-r--r-- 0 root (0) root (0) 5275 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068.html\n--rw-r--r-- 0 root (0) root (0) 11331 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068_source.html\n--rw-r--r-- 0 root (0) root (0) 7356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071.html\n--rw-r--r-- 0 root (0) root (0) 9909 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071_source.html\n--rw-r--r-- 0 root (0) root (0) 9721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074.html\n--rw-r--r-- 0 root (0) root (0) 240955 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074_source.html\n--rw-r--r-- 0 root (0) root (0) 8690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077.html\n--rw-r--r-- 0 root (0) root (0) 15576 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077_source.html\n--rw-r--r-- 0 root (0) root (0) 4655 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080.html\n--rw-r--r-- 0 root (0) root (0) 7486 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080_source.html\n--rw-r--r-- 0 root (0) root (0) 45125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083.html\n--rw-r--r-- 0 root (0) root (0) 15704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083_source.html\n--rw-r--r-- 0 root (0) root (0) 5043 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086.html\n--rw-r--r-- 0 root (0) root (0) 6951 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086_source.html\n--rw-r--r-- 0 root (0) root (0) 7721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089.html\n--rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089_source.html\n--rw-r--r-- 0 root (0) root (0) 14995 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092.html\n--rw-r--r-- 0 root (0) root (0) 142940 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092_source.html\n--rw-r--r-- 0 root (0) root (0) 7345 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095.html\n--rw-r--r-- 0 root (0) root (0) 18651 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095_source.html\n--rw-r--r-- 0 root (0) root (0) 12096 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098.html\n--rw-r--r-- 0 root (0) root (0) 108064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098_source.html\n--rw-r--r-- 0 root (0) root (0) 26419 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101.html\n--rw-r--r-- 0 root (0) root (0) 61788 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101_source.html\n--rw-r--r-- 0 root (0) root (0) 14506 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104.html\n--rw-r--r-- 0 root (0) root (0) 54081 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104_source.html\n--rw-r--r-- 0 root (0) root (0) 7124 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107.html\n--rw-r--r-- 0 root (0) root (0) 23206 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107_source.html\n--rw-r--r-- 0 root (0) root (0) 10991 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110.html\n--rw-r--r-- 0 root (0) root (0) 22884 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110_source.html\n--rw-r--r-- 0 root (0) root (0) 20708 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113.html\n--rw-r--r-- 0 root (0) root (0) 66287 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113_source.html\n--rw-r--r-- 0 root (0) root (0) 4366 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116.html\n--rw-r--r-- 0 root (0) root (0) 5137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116_source.html\n--rw-r--r-- 0 root (0) root (0) 4748 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00119.html\n--rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122.html\n--rw-r--r-- 0 root (0) root (0) 33175 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122_source.html\n--rw-r--r-- 0 root (0) root (0) 60433 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125.html\n--rw-r--r-- 0 root (0) root (0) 127266 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125_source.html\n--rw-r--r-- 0 root (0) root (0) 8828 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128.html\n--rw-r--r-- 0 root (0) root (0) 15690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128_source.html\n--rw-r--r-- 0 root (0) root (0) 21252 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00131.html\n--rw-r--r-- 0 root (0) root (0) 132735 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00131_source.html\n--rw-r--r-- 0 root (0) root (0) 5654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134.html\n--rw-r--r-- 0 root (0) root (0) 7234 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134_source.html\n--rw-r--r-- 0 root (0) root (0) 8394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00137.html\n--rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140.html\n--rw-r--r-- 0 root (0) root (0) 7626 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140_source.html\n--rw-r--r-- 0 root (0) root (0) 5777 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143.html\n--rw-r--r-- 0 root (0) root (0) 10089 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143_source.html\n--rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146.html\n--rw-r--r-- 0 root (0) root (0) 7628 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146_source.html\n--rw-r--r-- 0 root (0) root (0) 5384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149.html\n--rw-r--r-- 0 root (0) root (0) 8943 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149_source.html\n--rw-r--r-- 0 root (0) root (0) 4672 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152.html\n--rw-r--r-- 0 root (0) root (0) 6796 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152_source.html\n--rw-r--r-- 0 root (0) root (0) 17652 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155.html\n--rw-r--r-- 0 root (0) root (0) 42086 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155_source.html\n--rw-r--r-- 0 root (0) root (0) 5767 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158.html\n--rw-r--r-- 0 root (0) root (0) 16722 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158_source.html\n--rw-r--r-- 0 root (0) root (0) 3949 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00161.html\n--rw-r--r-- 0 root (0) root (0) 6781 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00164.html\n--rw-r--r-- 0 root (0) root (0) 8264 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00164_source.html\n--rw-r--r-- 0 root (0) root (0) 3372 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167.html\n--rw-r--r-- 0 root (0) root (0) 88030 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167_source.html\n--rw-r--r-- 0 root (0) root (0) 17902 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170.html\n--rw-r--r-- 0 root (0) root (0) 167223 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170_source.html\n--rw-r--r-- 0 root (0) root (0) 4768 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173.html\n--rw-r--r-- 0 root (0) root (0) 14349 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173_source.html\n--rw-r--r-- 0 root (0) root (0) 6176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176.html\n--rw-r--r-- 0 root (0) root (0) 8812 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176_source.html\n--rw-r--r-- 0 root (0) root (0) 6187 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00179.html\n--rw-r--r-- 0 root (0) root (0) 17742 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00179_source.html\n--rw-r--r-- 0 root (0) root (0) 24039 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00182.html\n--rw-r--r-- 0 root (0) root (0) 42064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00182_source.html\n--rw-r--r-- 0 root (0) root (0) 9861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185.html\n--rw-r--r-- 0 root (0) root (0) 20797 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185_source.html\n--rw-r--r-- 0 root (0) root (0) 6713 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00191.html\n--rw-r--r-- 0 root (0) root (0) 11004 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00191_source.html\n--rw-r--r-- 0 root (0) root (0) 14005 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194.html\n--rw-r--r-- 0 root (0) root (0) 86153 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194_source.html\n--rw-r--r-- 0 root (0) root (0) 81300 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197.html\n--rw-r--r-- 0 root (0) root (0) 145342 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197_source.html\n--rw-r--r-- 0 root (0) root (0) 3818 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200.html\n--rw-r--r-- 0 root (0) root (0) 6526 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200_source.html\n--rw-r--r-- 0 root (0) root (0) 13871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203.html\n--rw-r--r-- 0 root (0) root (0) 20199 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203_source.html\n--rw-r--r-- 0 root (0) root (0) 33483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206.html\n--rw-r--r-- 0 root (0) root (0) 357109 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206_source.html\n--rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00209.html\n--rw-r--r-- 0 root (0) root (0) 6807 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212.html\n--rw-r--r-- 0 root (0) root (0) 12871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212_source.html\n--rw-r--r-- 0 root (0) root (0) 17516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215.html\n--rw-r--r-- 0 root (0) root (0) 45459 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215_source.html\n--rw-r--r-- 0 root (0) root (0) 5125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218.html\n--rw-r--r-- 0 root (0) root (0) 29707 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218_source.html\n--rw-r--r-- 0 root (0) root (0) 8196 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00221.html\n--rw-r--r-- 0 root (0) root (0) 148986 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00221_source.html\n--rw-r--r-- 0 root (0) root (0) 7265 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224.html\n--rw-r--r-- 0 root (0) root (0) 14139 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224_source.html\n--rw-r--r-- 0 root (0) root (0) 5325 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227.html\n--rw-r--r-- 0 root (0) root (0) 10220 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227_source.html\n--rw-r--r-- 0 root (0) root (0) 5980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230.html\n--rw-r--r-- 0 root (0) root (0) 21115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230_source.html\n--rw-r--r-- 0 root (0) root (0) 6819 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233.html\n--rw-r--r-- 0 root (0) root (0) 100137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233_source.html\n--rw-r--r-- 0 root (0) root (0) 11654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236.html\n--rw-r--r-- 0 root (0) root (0) 55191 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236_source.html\n--rw-r--r-- 0 root (0) root (0) 7195 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239.html\n--rw-r--r-- 0 root (0) root (0) 151469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239_source.html\n--rw-r--r-- 0 root (0) root (0) 6229 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242.html\n--rw-r--r-- 0 root (0) root (0) 21246 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242_source.html\n--rw-r--r-- 0 root (0) root (0) 6556 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245.html\n--rw-r--r-- 0 root (0) root (0) 18103 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245_source.html\n--rw-r--r-- 0 root (0) root (0) 4959 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248.html\n--rw-r--r-- 0 root (0) root (0) 6605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248_source.html\n--rw-r--r-- 0 root (0) root (0) 4993 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251.html\n--rw-r--r-- 0 root (0) root (0) 31445 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251_source.html\n--rw-r--r-- 0 root (0) root (0) 4394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254.html\n--rw-r--r-- 0 root (0) root (0) 6435 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254_source.html\n--rw-r--r-- 0 root (0) root (0) 5603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257.html\n--rw-r--r-- 0 root (0) root (0) 9347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257_source.html\n--rw-r--r-- 0 root (0) root (0) 9499 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260.html\n--rw-r--r-- 0 root (0) root (0) 250589 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260_source.html\n--rw-r--r-- 0 root (0) root (0) 5115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00263.html\n--rw-r--r-- 0 root (0) root (0) 9512 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00263_source.html\n--rw-r--r-- 0 root (0) root (0) 8170 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266.html\n--rw-r--r-- 0 root (0) root (0) 63385 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266_source.html\n--rw-r--r-- 0 root (0) root (0) 13605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269.html\n--rw-r--r-- 0 root (0) root (0) 28676 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269_source.html\n--rw-r--r-- 0 root (0) root (0) 4979 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00272.html\n--rw-r--r-- 0 root (0) root (0) 6158 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275.html\n--rw-r--r-- 0 root (0) root (0) 19960 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275_source.html\n--rw-r--r-- 0 root (0) root (0) 24718 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278.html\n--rw-r--r-- 0 root (0) root (0) 121580 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278_source.html\n--rw-r--r-- 0 root (0) root (0) 5356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281.html\n--rw-r--r-- 0 root (0) root (0) 41539 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281_source.html\n--rw-r--r-- 0 root (0) root (0) 5049 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284.html\n--rw-r--r-- 0 root (0) root (0) 23176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284_source.html\n--rw-r--r-- 0 root (0) root (0) 10687 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287.html\n--rw-r--r-- 0 root (0) root (0) 108967 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287_source.html\n--rw-r--r-- 0 root (0) root (0) 3384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290.html\n--rw-r--r-- 0 root (0) root (0) 51921 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290_source.html\n--rw-r--r-- 0 root (0) root (0) 14288 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293.html\n--rw-r--r-- 0 root (0) root (0) 63256 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293_source.html\n--rw-r--r-- 0 root (0) root (0) 6384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296.html\n--rw-r--r-- 0 root (0) root (0) 16097 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296_source.html\n--rw-r--r-- 0 root (0) root (0) 6856 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299.html\n--rw-r--r-- 0 root (0) root (0) 112071 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299_source.html\n--rw-r--r-- 0 root (0) root (0) 5247 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302.html\n--rw-r--r-- 0 root (0) root (0) 9926 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302_source.html\n--rw-r--r-- 0 root (0) root (0) 20821 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305.html\n--rw-r--r-- 0 root (0) root (0) 29928 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305_source.html\n--rw-r--r-- 0 root (0) root (0) 6240 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308.html\n--rw-r--r-- 0 root (0) root (0) 6782 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308_source.html\n--rw-r--r-- 0 root (0) root (0) 9141 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311.html\n--rw-r--r-- 0 root (0) root (0) 172723 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311_source.html\n--rw-r--r-- 0 root (0) root (0) 5984 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314.html\n--rw-r--r-- 0 root (0) root (0) 51317 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314_source.html\n--rw-r--r-- 0 root (0) root (0) 3658 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317.html\n--rw-r--r-- 0 root (0) root (0) 4980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317_source.html\n--rw-r--r-- 0 root (0) root (0) 9019 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320.html\n--rw-r--r-- 0 root (0) root (0) 52516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320_source.html\n--rw-r--r-- 0 root (0) root (0) 5638 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323.html\n--rw-r--r-- 0 root (0) root (0) 33611 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323_source.html\n--rw-r--r-- 0 root (0) root (0) 6398 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326.html\n--rw-r--r-- 0 root (0) root (0) 33437 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326_source.html\n--rw-r--r-- 0 root (0) root (0) 19865 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329.html\n--rw-r--r-- 0 root (0) root (0) 179606 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329_source.html\n--rw-r--r-- 0 root (0) root (0) 11616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332.html\n--rw-r--r-- 0 root (0) root (0) 101374 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332_source.html\n--rw-r--r-- 0 root (0) root (0) 6612 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335.html\n--rw-r--r-- 0 root (0) root (0) 19861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335_source.html\n--rw-r--r-- 0 root (0) root (0) 13149 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338.html\n--rw-r--r-- 0 root (0) root (0) 178064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338_source.html\n--rw-r--r-- 0 root (0) root (0) 7409 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341.html\n--rw-r--r-- 0 root (0) root (0) 33439 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341_source.html\n--rw-r--r-- 0 root (0) root (0) 6505 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00344.html\n--rw-r--r-- 0 root (0) root (0) 39913 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00344_source.html\n--rw-r--r-- 0 root (0) root (0) 8399 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347.html\n--rw-r--r-- 0 root (0) root (0) 46563 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347_source.html\n--rw-r--r-- 0 root (0) root (0) 6585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350.html\n--rw-r--r-- 0 root (0) root (0) 46321 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350_source.html\n--rw-r--r-- 0 root (0) root (0) 7592 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353.html\n--rw-r--r-- 0 root (0) root (0) 136353 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353_source.html\n--rw-r--r-- 0 root (0) root (0) 6616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356.html\n--rw-r--r-- 0 root (0) root (0) 58092 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356_source.html\n--rw-r--r-- 0 root (0) root (0) 8766 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359.html\n--rw-r--r-- 0 root (0) root (0) 71932 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359_source.html\n--rw-r--r-- 0 root (0) root (0) 11420 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362.html\n--rw-r--r-- 0 root (0) root (0) 290483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362_source.html\n--rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365.html\n--rw-r--r-- 0 root (0) root (0) 4983 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365_source.html\n--rw-r--r-- 0 root (0) root (0) 23075 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00368.html\n--rw-r--r-- 0 root (0) root (0) 5082 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371.html\n--rw-r--r-- 0 root (0) root (0) 8080 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371_source.html\n--rw-r--r-- 0 root (0) root (0) 19607 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00374.html\n--rw-r--r-- 0 root (0) root (0) 104969 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00374_source.html\n--rw-r--r-- 0 root (0) root (0) 8731 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377.html\n--rw-r--r-- 0 root (0) root (0) 61450 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377_source.html\n--rw-r--r-- 0 root (0) root (0) 8323 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380.html\n--rw-r--r-- 0 root (0) root (0) 40740 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380_source.html\n--rw-r--r-- 0 root (0) root (0) 6586 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383.html\n--rw-r--r-- 0 root (0) root (0) 44038 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383_source.html\n--rw-r--r-- 0 root (0) root (0) 8836 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386.html\n--rw-r--r-- 0 root (0) root (0) 10533 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386_source.html\n--rw-r--r-- 0 root (0) root (0) 17882 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389.html\n--rw-r--r-- 0 root (0) root (0) 79073 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389_source.html\n--rw-r--r-- 0 root (0) root (0) 9165 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00392.html\n+-rw-r--r-- 0 root (0) root (0) 8196 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008.html\n+-rw-r--r-- 0 root (0) root (0) 148986 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00008_source.html\n+-rw-r--r-- 0 root (0) root (0) 7783 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011.html\n+-rw-r--r-- 0 root (0) root (0) 12397 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00011_source.html\n+-rw-r--r-- 0 root (0) root (0) 5275 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014.html\n+-rw-r--r-- 0 root (0) root (0) 11331 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00014_source.html\n+-rw-r--r-- 0 root (0) root (0) 6240 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017.html\n+-rw-r--r-- 0 root (0) root (0) 6782 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00017_source.html\n+-rw-r--r-- 0 root (0) root (0) 3372 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00020.html\n+-rw-r--r-- 0 root (0) root (0) 88030 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00020_source.html\n+-rw-r--r-- 0 root (0) root (0) 8828 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023.html\n+-rw-r--r-- 0 root (0) root (0) 15690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00023_source.html\n+-rw-r--r-- 0 root (0) root (0) 4655 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026.html\n+-rw-r--r-- 0 root (0) root (0) 7486 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00026_source.html\n+-rw-r--r-- 0 root (0) root (0) 17882 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029.html\n+-rw-r--r-- 0 root (0) root (0) 79073 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00029_source.html\n+-rw-r--r-- 0 root (0) root (0) 7124 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032.html\n+-rw-r--r-- 0 root (0) root (0) 23206 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00032_source.html\n+-rw-r--r-- 0 root (0) root (0) 5603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035.html\n+-rw-r--r-- 0 root (0) root (0) 9347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00035_source.html\n+-rw-r--r-- 0 root (0) root (0) 19865 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038.html\n+-rw-r--r-- 0 root (0) root (0) 179606 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00038_source.html\n+-rw-r--r-- 0 root (0) root (0) 7409 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00041.html\n+-rw-r--r-- 0 root (0) root (0) 33439 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00041_source.html\n+-rw-r--r-- 0 root (0) root (0) 11616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047.html\n+-rw-r--r-- 0 root (0) root (0) 101374 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00047_source.html\n+-rw-r--r-- 0 root (0) root (0) 8766 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050.html\n+-rw-r--r-- 0 root (0) root (0) 71932 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00050_source.html\n+-rw-r--r-- 0 root (0) root (0) 3658 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053.html\n+-rw-r--r-- 0 root (0) root (0) 4980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00053_source.html\n+-rw-r--r-- 0 root (0) root (0) 23075 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00056.html\n+-rw-r--r-- 0 root (0) root (0) 11420 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059.html\n+-rw-r--r-- 0 root (0) root (0) 290483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00059_source.html\n+-rw-r--r-- 0 root (0) root (0) 6398 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062.html\n+-rw-r--r-- 0 root (0) root (0) 33437 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00062_source.html\n+-rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065.html\n+-rw-r--r-- 0 root (0) root (0) 4983 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00065_source.html\n+-rw-r--r-- 0 root (0) root (0) 7592 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068.html\n+-rw-r--r-- 0 root (0) root (0) 136353 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00068_source.html\n+-rw-r--r-- 0 root (0) root (0) 9141 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071.html\n+-rw-r--r-- 0 root (0) root (0) 172723 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00071_source.html\n+-rw-r--r-- 0 root (0) root (0) 5984 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074.html\n+-rw-r--r-- 0 root (0) root (0) 51317 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00074_source.html\n+-rw-r--r-- 0 root (0) root (0) 5638 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077.html\n+-rw-r--r-- 0 root (0) root (0) 33611 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00077_source.html\n+-rw-r--r-- 0 root (0) root (0) 6585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080.html\n+-rw-r--r-- 0 root (0) root (0) 46321 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00080_source.html\n+-rw-r--r-- 0 root (0) root (0) 9019 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083.html\n+-rw-r--r-- 0 root (0) root (0) 52516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00083_source.html\n+-rw-r--r-- 0 root (0) root (0) 8399 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086.html\n+-rw-r--r-- 0 root (0) root (0) 46563 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00086_source.html\n+-rw-r--r-- 0 root (0) root (0) 13149 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089.html\n+-rw-r--r-- 0 root (0) root (0) 178064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00089_source.html\n+-rw-r--r-- 0 root (0) root (0) 6505 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092.html\n+-rw-r--r-- 0 root (0) root (0) 39913 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00092_source.html\n+-rw-r--r-- 0 root (0) root (0) 6616 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095.html\n+-rw-r--r-- 0 root (0) root (0) 58092 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00095_source.html\n+-rw-r--r-- 0 root (0) root (0) 6612 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098.html\n+-rw-r--r-- 0 root (0) root (0) 19861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00098_source.html\n+-rw-r--r-- 0 root (0) root (0) 3384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101.html\n+-rw-r--r-- 0 root (0) root (0) 51921 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00101_source.html\n+-rw-r--r-- 0 root (0) root (0) 7919 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104.html\n+-rw-r--r-- 0 root (0) root (0) 126603 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00104_source.html\n+-rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107.html\n+-rw-r--r-- 0 root (0) root (0) 33175 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00107_source.html\n+-rw-r--r-- 0 root (0) root (0) 5247 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110.html\n+-rw-r--r-- 0 root (0) root (0) 9926 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00110_source.html\n+-rw-r--r-- 0 root (0) root (0) 6807 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113.html\n+-rw-r--r-- 0 root (0) root (0) 12871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00113_source.html\n+-rw-r--r-- 0 root (0) root (0) 6229 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116.html\n+-rw-r--r-- 0 root (0) root (0) 21246 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00116_source.html\n+-rw-r--r-- 0 root (0) root (0) 8690 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00119.html\n+-rw-r--r-- 0 root (0) root (0) 15576 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00119_source.html\n+-rw-r--r-- 0 root (0) root (0) 17516 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122.html\n+-rw-r--r-- 0 root (0) root (0) 45459 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00122_source.html\n+-rw-r--r-- 0 root (0) root (0) 6586 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125.html\n+-rw-r--r-- 0 root (0) root (0) 44038 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00125_source.html\n+-rw-r--r-- 0 root (0) root (0) 16771 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128.html\n+-rw-r--r-- 0 root (0) root (0) 48543 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00128_source.html\n+-rw-r--r-- 0 root (0) root (0) 9165 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00131.html\n+-rw-r--r-- 0 root (0) root (0) 5043 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134.html\n+-rw-r--r-- 0 root (0) root (0) 6951 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00134_source.html\n+-rw-r--r-- 0 root (0) root (0) 26419 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00137.html\n+-rw-r--r-- 0 root (0) root (0) 61788 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00137_source.html\n+-rw-r--r-- 0 root (0) root (0) 6556 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140.html\n+-rw-r--r-- 0 root (0) root (0) 18103 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00140_source.html\n+-rw-r--r-- 0 root (0) root (0) 5278 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143.html\n+-rw-r--r-- 0 root (0) root (0) 22235 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00143_source.html\n+-rw-r--r-- 0 root (0) root (0) 6781 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146.html\n+-rw-r--r-- 0 root (0) root (0) 8264 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00146_source.html\n+-rw-r--r-- 0 root (0) root (0) 14770 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149.html\n+-rw-r--r-- 0 root (0) root (0) 23217 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00149_source.html\n+-rw-r--r-- 0 root (0) root (0) 9721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152.html\n+-rw-r--r-- 0 root (0) root (0) 240955 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00152_source.html\n+-rw-r--r-- 0 root (0) root (0) 14506 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155.html\n+-rw-r--r-- 0 root (0) root (0) 54081 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00155_source.html\n+-rw-r--r-- 0 root (0) root (0) 5115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158.html\n+-rw-r--r-- 0 root (0) root (0) 9512 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00158_source.html\n+-rw-r--r-- 0 root (0) root (0) 5082 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00161.html\n+-rw-r--r-- 0 root (0) root (0) 8080 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00161_source.html\n+-rw-r--r-- 0 root (0) root (0) 6970 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00164.html\n+-rw-r--r-- 0 root (0) root (0) 14995 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167.html\n+-rw-r--r-- 0 root (0) root (0) 142940 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00167_source.html\n+-rw-r--r-- 0 root (0) root (0) 20821 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170.html\n+-rw-r--r-- 0 root (0) root (0) 29928 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00170_source.html\n+-rw-r--r-- 0 root (0) root (0) 6176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173.html\n+-rw-r--r-- 0 root (0) root (0) 8812 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00173_source.html\n+-rw-r--r-- 0 root (0) root (0) 7721 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176.html\n+-rw-r--r-- 0 root (0) root (0) 10469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00176_source.html\n+-rw-r--r-- 0 root (0) root (0) 3949 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00179.html\n+-rw-r--r-- 0 root (0) root (0) 8394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00182.html\n+-rw-r--r-- 0 root (0) root (0) 5347 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185.html\n+-rw-r--r-- 0 root (0) root (0) 33493 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00185_source.html\n+-rw-r--r-- 0 root (0) root (0) 4128 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00188.html\n+-rw-r--r-- 0 root (0) root (0) 4979 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00191.html\n+-rw-r--r-- 0 root (0) root (0) 4993 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194.html\n+-rw-r--r-- 0 root (0) root (0) 31445 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00194_source.html\n+-rw-r--r-- 0 root (0) root (0) 6158 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197.html\n+-rw-r--r-- 0 root (0) root (0) 19960 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00197_source.html\n+-rw-r--r-- 0 root (0) root (0) 7345 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200.html\n+-rw-r--r-- 0 root (0) root (0) 18651 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00200_source.html\n+-rw-r--r-- 0 root (0) root (0) 6187 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203.html\n+-rw-r--r-- 0 root (0) root (0) 17742 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00203_source.html\n+-rw-r--r-- 0 root (0) root (0) 6384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206.html\n+-rw-r--r-- 0 root (0) root (0) 16097 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00206_source.html\n+-rw-r--r-- 0 root (0) root (0) 8194 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00209.html\n+-rw-r--r-- 0 root (0) root (0) 41231 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00209_source.html\n+-rw-r--r-- 0 root (0) root (0) 8323 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212.html\n+-rw-r--r-- 0 root (0) root (0) 40740 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00212_source.html\n+-rw-r--r-- 0 root (0) root (0) 3818 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215.html\n+-rw-r--r-- 0 root (0) root (0) 6526 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00215_source.html\n+-rw-r--r-- 0 root (0) root (0) 8836 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218.html\n+-rw-r--r-- 0 root (0) root (0) 10533 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00218_source.html\n+-rw-r--r-- 0 root (0) root (0) 4125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00221.html\n+-rw-r--r-- 0 root (0) root (0) 4768 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224.html\n+-rw-r--r-- 0 root (0) root (0) 14349 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00224_source.html\n+-rw-r--r-- 0 root (0) root (0) 14288 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227.html\n+-rw-r--r-- 0 root (0) root (0) 63256 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00227_source.html\n+-rw-r--r-- 0 root (0) root (0) 8704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230.html\n+-rw-r--r-- 0 root (0) root (0) 26496 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00230_source.html\n+-rw-r--r-- 0 root (0) root (0) 5384 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233.html\n+-rw-r--r-- 0 root (0) root (0) 8943 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00233_source.html\n+-rw-r--r-- 0 root (0) root (0) 17652 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236.html\n+-rw-r--r-- 0 root (0) root (0) 42086 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00236_source.html\n+-rw-r--r-- 0 root (0) root (0) 5777 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239.html\n+-rw-r--r-- 0 root (0) root (0) 10089 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00239_source.html\n+-rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242.html\n+-rw-r--r-- 0 root (0) root (0) 7628 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00242_source.html\n+-rw-r--r-- 0 root (0) root (0) 4672 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245.html\n+-rw-r--r-- 0 root (0) root (0) 6796 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00245_source.html\n+-rw-r--r-- 0 root (0) root (0) 4678 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248.html\n+-rw-r--r-- 0 root (0) root (0) 7626 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00248_source.html\n+-rw-r--r-- 0 root (0) root (0) 6380 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251.html\n+-rw-r--r-- 0 root (0) root (0) 19421 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00251_source.html\n+-rw-r--r-- 0 root (0) root (0) 13871 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254.html\n+-rw-r--r-- 0 root (0) root (0) 20199 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00254_source.html\n+-rw-r--r-- 0 root (0) root (0) 24039 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257.html\n+-rw-r--r-- 0 root (0) root (0) 42064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00257_source.html\n+-rw-r--r-- 0 root (0) root (0) 81300 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260.html\n+-rw-r--r-- 0 root (0) root (0) 145342 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00260_source.html\n+-rw-r--r-- 0 root (0) root (0) 3649 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00263.html\n+-rw-r--r-- 0 root (0) root (0) 9861 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266.html\n+-rw-r--r-- 0 root (0) root (0) 20797 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00266_source.html\n+-rw-r--r-- 0 root (0) root (0) 33483 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269.html\n+-rw-r--r-- 0 root (0) root (0) 357109 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00269_source.html\n+-rw-r--r-- 0 root (0) root (0) 14005 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00272.html\n+-rw-r--r-- 0 root (0) root (0) 86153 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00272_source.html\n+-rw-r--r-- 0 root (0) root (0) 6713 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275.html\n+-rw-r--r-- 0 root (0) root (0) 11004 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00275_source.html\n+-rw-r--r-- 0 root (0) root (0) 11654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278.html\n+-rw-r--r-- 0 root (0) root (0) 55191 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00278_source.html\n+-rw-r--r-- 0 root (0) root (0) 9499 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281.html\n+-rw-r--r-- 0 root (0) root (0) 250589 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00281_source.html\n+-rw-r--r-- 0 root (0) root (0) 5980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284.html\n+-rw-r--r-- 0 root (0) root (0) 21115 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00284_source.html\n+-rw-r--r-- 0 root (0) root (0) 5458 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287.html\n+-rw-r--r-- 0 root (0) root (0) 8314 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00287_source.html\n+-rw-r--r-- 0 root (0) root (0) 5668 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290.html\n+-rw-r--r-- 0 root (0) root (0) 10965 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00290_source.html\n+-rw-r--r-- 0 root (0) root (0) 5049 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293.html\n+-rw-r--r-- 0 root (0) root (0) 23176 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00293_source.html\n+-rw-r--r-- 0 root (0) root (0) 7265 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296.html\n+-rw-r--r-- 0 root (0) root (0) 14139 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00296_source.html\n+-rw-r--r-- 0 root (0) root (0) 10991 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299.html\n+-rw-r--r-- 0 root (0) root (0) 22884 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00299_source.html\n+-rw-r--r-- 0 root (0) root (0) 17902 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302.html\n+-rw-r--r-- 0 root (0) root (0) 167223 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00302_source.html\n+-rw-r--r-- 0 root (0) root (0) 6662 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305.html\n+-rw-r--r-- 0 root (0) root (0) 52852 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00305_source.html\n+-rw-r--r-- 0 root (0) root (0) 21252 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308.html\n+-rw-r--r-- 0 root (0) root (0) 132735 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00308_source.html\n+-rw-r--r-- 0 root (0) root (0) 13585 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311.html\n+-rw-r--r-- 0 root (0) root (0) 94215 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00311_source.html\n+-rw-r--r-- 0 root (0) root (0) 10687 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314.html\n+-rw-r--r-- 0 root (0) root (0) 108967 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00314_source.html\n+-rw-r--r-- 0 root (0) root (0) 45125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317.html\n+-rw-r--r-- 0 root (0) root (0) 15704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00317_source.html\n+-rw-r--r-- 0 root (0) root (0) 4366 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320.html\n+-rw-r--r-- 0 root (0) root (0) 5137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00320_source.html\n+-rw-r--r-- 0 root (0) root (0) 4959 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323.html\n+-rw-r--r-- 0 root (0) root (0) 6605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00323_source.html\n+-rw-r--r-- 0 root (0) root (0) 5214 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326.html\n+-rw-r--r-- 0 root (0) root (0) 15233 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00326_source.html\n+-rw-r--r-- 0 root (0) root (0) 5356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329.html\n+-rw-r--r-- 0 root (0) root (0) 41539 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00329_source.html\n+-rw-r--r-- 0 root (0) root (0) 6819 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332.html\n+-rw-r--r-- 0 root (0) root (0) 100137 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00332_source.html\n+-rw-r--r-- 0 root (0) root (0) 20708 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335.html\n+-rw-r--r-- 0 root (0) root (0) 66287 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00335_source.html\n+-rw-r--r-- 0 root (0) root (0) 8731 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338.html\n+-rw-r--r-- 0 root (0) root (0) 61450 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00338_source.html\n+-rw-r--r-- 0 root (0) root (0) 8170 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341.html\n+-rw-r--r-- 0 root (0) root (0) 63385 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00341_source.html\n+-rw-r--r-- 0 root (0) root (0) 3899 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00344.html\n+-rw-r--r-- 0 root (0) root (0) 5767 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347.html\n+-rw-r--r-- 0 root (0) root (0) 16722 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00347_source.html\n+-rw-r--r-- 0 root (0) root (0) 7356 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350.html\n+-rw-r--r-- 0 root (0) root (0) 9909 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00350_source.html\n+-rw-r--r-- 0 root (0) root (0) 4310 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353.html\n+-rw-r--r-- 0 root (0) root (0) 17898 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00353_source.html\n+-rw-r--r-- 0 root (0) root (0) 4394 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356.html\n+-rw-r--r-- 0 root (0) root (0) 6435 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00356_source.html\n+-rw-r--r-- 0 root (0) root (0) 5654 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359.html\n+-rw-r--r-- 0 root (0) root (0) 7234 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00359_source.html\n+-rw-r--r-- 0 root (0) root (0) 12096 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362.html\n+-rw-r--r-- 0 root (0) root (0) 108064 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00362_source.html\n+-rw-r--r-- 0 root (0) root (0) 7494 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365.html\n+-rw-r--r-- 0 root (0) root (0) 31467 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00365_source.html\n+-rw-r--r-- 0 root (0) root (0) 5125 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00368.html\n+-rw-r--r-- 0 root (0) root (0) 29707 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00368_source.html\n+-rw-r--r-- 0 root (0) root (0) 7195 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371.html\n+-rw-r--r-- 0 root (0) root (0) 151469 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00371_source.html\n+-rw-r--r-- 0 root (0) root (0) 4748 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00374.html\n+-rw-r--r-- 0 root (0) root (0) 5325 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377.html\n+-rw-r--r-- 0 root (0) root (0) 10220 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00377_source.html\n+-rw-r--r-- 0 root (0) root (0) 24718 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380.html\n+-rw-r--r-- 0 root (0) root (0) 121580 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00380_source.html\n+-rw-r--r-- 0 root (0) root (0) 13605 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383.html\n+-rw-r--r-- 0 root (0) root (0) 28676 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00383_source.html\n+-rw-r--r-- 0 root (0) root (0) 6856 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386.html\n+-rw-r--r-- 0 root (0) root (0) 112071 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00386_source.html\n+-rw-r--r-- 0 root (0) root (0) 19607 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389.html\n+-rw-r--r-- 0 root (0) root (0) 104969 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00389_source.html\n+-rw-r--r-- 0 root (0) root (0) 60433 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00392.html\n+-rw-r--r-- 0 root (0) root (0) 127266 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00392_source.html\n -rw-r--r-- 0 root (0) root (0) 7897 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00395.html\n -rw-r--r-- 0 root (0) root (0) 5736 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00396.html\n -rw-r--r-- 0 root (0) root (0) 261282 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00397.html\n -rw-r--r-- 0 root (0) root (0) 27946 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00397.png\n -rw-r--r-- 0 root (0) root (0) 39665 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00398.html\n -rw-r--r-- 0 root (0) root (0) 2473 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00398.png\n -rw-r--r-- 0 root (0) root (0) 9343 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/a00399.html\n@@ -1127,15 +1127,15 @@\n -rw-r--r-- 0 root (0) root (0) 5016 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_ade7f944fd3a163752f5cc1af55c988a_dep.png\n -rw-r--r-- 0 root (0) root (0) 4572 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_be46aaae597ce098e36afa8d6ef4f49b.html\n -rw-r--r-- 0 root (0) root (0) 2402 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_be46aaae597ce098e36afa8d6ef4f49b_dep.png\n -rw-r--r-- 0 root (0) root (0) 48471 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_e151556194dc695299293609645e9437.html\n -rw-r--r-- 0 root (0) root (0) 8980 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_e151556194dc695299293609645e9437_dep.png\n -rw-r--r-- 0 root (0) root (0) 3669 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dir_e68e8157741866f444e17edd764ebbae.html\n -rw-r--r-- 0 root (0) root (0) 45631 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/doxygen.css\n--rw-r--r-- 0 root (0) root (0) 149308 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dune-common.tag.gz\n+-rw-r--r-- 0 root (0) root (0) 149383 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dune-common.tag.gz\n -rw-r--r-- 0 root (0) root (0) 7704 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/dynsections.js\n -rw-r--r-- 0 root (0) root (0) 51296 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/files.html\n -rw-r--r-- 0 root (0) root (0) 1145 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_0.png\n -rw-r--r-- 0 root (0) root (0) 1167 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_0_dark.png\n -rw-r--r-- 0 root (0) root (0) 1153 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_1.png\n -rw-r--r-- 0 root (0) root (0) 403 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_10.png\n -rw-r--r-- 0 root (0) root (0) 422 2024-11-07 15:59:08.000000 ./usr/share/doc/libdune-common-doc/doxygen/form_10_dark.png\n"}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00008.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00008.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: shared_ptr.hh File Reference\n+dune-common: bitsetvector.hh File Reference\n \n \n \n \n \n \n \n@@ -71,57 +71,59 @@\n \n \n \n
\n
\n Classes |\n-Namespaces |\n-Functions
\n-
shared_ptr.hh File Reference
\n+Namespaces
\n+
bitsetvector.hh File Reference
\n \n
\n \n-

This file implements several utilities related to std::shared_ptr. \n+

Efficient implementation of a dynamic array of static arrays of booleans. \n More...

\n-
#include <memory>
\n-#include <dune/common/typetraits.hh>
\n+
#include <vector>
\n+#include <bitset>
\n+#include <iostream>
\n+#include <algorithm>
\n+#include <dune/common/boundschecking.hh>
\n+#include <dune/common/genericiterator.hh>
\n+#include <dune/common/exceptions.hh>
\n
\n

Go to the source code of this file.

\n \n \n-\n-\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n \n

\n Classes

struct  Dune::null_deleter< T >
 implements the Deleter concept of shared_ptr without deleting anything More...
class  Dune::BitSetVectorConstReference< block_size, Alloc >
 A proxy class that acts as a const reference to a single bitset in a BitSetVector. More...
 
class  Dune::BitSetVectorReference< block_size, Alloc >
 A proxy class that acts as a mutable reference to a single bitset in a BitSetVector. More...
 
struct  Dune::const_reference< BitSetVectorReference< block_size, Alloc > >
 
struct  Dune::const_reference< BitSetVectorConstReference< block_size, Alloc > >
 
struct  Dune::mutable_reference< BitSetVectorReference< block_size, Alloc > >
 
struct  Dune::mutable_reference< BitSetVectorConstReference< block_size, Alloc > >
 
class  Dune::BitSetVector< block_size, Allocator >
 A dynamic array of blocks of booleans. More...
 
\n \n \n \n \n-

\n Namespaces

namespace  Dune
 Dune namespace.
 
\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n

\n-Functions

template<typename T >
std::shared_ptr< T > Dune::stackobject_to_shared_ptr (T &t)
 Create a shared_ptr for a stack-allocated object.
 
template<class T >
auto Dune::wrap_or_move (T &&t)
 Capture R-value reference to shared_ptr.
 
template<class T >
auto Dune::wrap_or_move (T &t)
 Capture L-value reference to std::shared_ptr.
 
\n

Detailed Description

\n-

This file implements several utilities related to std::shared_ptr.

\n-
Author
Markus Blatt
\n+

Efficient implementation of a dynamic array of static arrays of booleans.

\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,40 +1,48 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-shared_ptr.hh File Reference\n-This file implements several utilities related to std::shared_ptr. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include \n-#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+bitsetvector.hh File Reference\n+Efficient implementation of a dynamic array of static arrays of booleans.\n+_\bM_\bo_\br_\be_\b._\b._\b.\n+#include \n+#include \n+#include \n+#include \n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bb_\bo_\bu_\bn_\bd_\bs_\bc_\bh_\be_\bc_\bk_\bi_\bn_\bg_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bg_\be_\bn_\be_\br_\bi_\bc_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b<_\b _\bT_\b _\b>\n-\u00a0 implements the Deleter concept of shared_ptr without deleting anything\n- _\bM_\bo_\br_\be_\b._\b._\b.\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>\n+\u00a0 A proxy class that acts as a const reference to a single bitset in a\n+ _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>\n+\u00a0 A proxy class that acts as a mutable reference to a single bitset in a\n+ _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>\n+ _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bm_\bu_\bt_\ba_\bb_\bl_\be_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bm_\bu_\bt_\ba_\bb_\bl_\be_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc\n+ _\b>_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>\n+\u00a0 A dynamic array of blocks of booleans. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0 _\bD_\bu_\bn_\be namespace.\n \u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template\n-std::shared_ptr< T >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br (T &t)\n-\u00a0 Create a shared_ptr for a stack-allocated object.\n-\u00a0\n-template\n- auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be (T &&t)\n-\u00a0 Capture R-value reference to shared_ptr.\n-\u00a0\n-template\n- auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be (T &t)\n-\u00a0 Capture L-value reference to std::shared_ptr.\n-\u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file implements several utilities related to std::shared_ptr.\n- Author\n- Markus Blatt\n+Efficient implementation of a dynamic array of static arrays of booleans.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00008_source.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00008_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: shared_ptr.hh Source File\n+dune-common: bitsetvector.hh Source File\n \n \n \n \n \n \n \n@@ -74,72 +74,787 @@\n \n
\n \n
\n
\n
\n-
shared_ptr.hh
\n+
bitsetvector.hh
\n
\n
\n Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
\n
2// vi: set et ts=4 sw=2 sts=2:
\n
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n-
5
\n-
6#ifndef DUNE_SHARED_PTR_HH
\n-
7#define DUNE_SHARED_PTR_HH
\n-
8
\n-
9#include <memory>
\n-
10
\n-\n-
17namespace Dune
\n-
18{
\n-
47 template<class T>
\n-
\n-\n-
49 {
\n-
50 void operator() (T*) const {}
\n-
51 };
\n+
5#ifndef DUNE_BLOCK_BITFIELD_HH
\n+
6#define DUNE_BLOCK_BITFIELD_HH
\n+
7
\n+
12#include <vector>
\n+
13#include <bitset>
\n+
14#include <iostream>
\n+
15#include <algorithm>
\n+
16
\n+\n+\n+\n+
20
\n+
21namespace Dune {
\n+
22
\n+
23 template <int block_size, class Alloc> class BitSetVector;
\n+
24 template <int block_size, class Alloc> class BitSetVectorReference;
\n+
25
\n+
36 template <int block_size, class Alloc>
\n+
\n+\n+
38 {
\n+
39 protected:
\n+
40
\n+\n+
42 friend class Dune::BitSetVector<block_size, Alloc>;
\n+
43
\n+
\n+
44 BitSetVectorConstReference(const BitSetVector& blockBitField_, int block_number_) :
\n+
45 blockBitField(blockBitField_),
\n+
46 block_number(block_number_)
\n+
47 {
\n+
48 DUNE_ASSERT_BOUNDS(blockBitField_.size() > static_cast<size_t>(block_number_));
\n+
49 }
\n+
\n+
50
\n+\n+
53
\n+
54 public:
\n+
55
\n+
56 typedef std::bitset<block_size> bitset;
\n+
57
\n+
58 // bitset interface typedefs
\n+
59 typedef typename std::vector<bool, Alloc>::const_reference reference;
\n+
60 typedef typename std::vector<bool, Alloc>::const_reference const_reference;
\n+
61 typedef size_t size_type;
\n+
62
\n+
\n+\n+
65 {
\n+
66 bitset b = *this;
\n+
67 b <<= n;
\n+
68 return b;
\n+
69 }
\n
\n-
52
\n-
71 template<typename T>
\n+
70
\n
\n-
72 inline std::shared_ptr<T> stackobject_to_shared_ptr(T & t)
\n-
73 {
\n-
74 return std::shared_ptr<T>(&t, null_deleter<T>());
\n-
75 }
\n-
\n-
76
\n-
77
\n-
95 template<class T>
\n-
\n-
96 auto wrap_or_move(T&& t)
\n-
97 {
\n-
98 return std::make_shared<std::decay_t<T>>(std::forward<T>(t));
\n-
99 }
\n-
\n-
100
\n-
118 template<class T>
\n-
\n-
119 auto wrap_or_move(T& t)
\n-
120 {
\n-\n-
122 }
\n-
\n-
123
\n-
124}
\n-
125#endif
\n-
Traits for type conversions and type information.
\n+\n+
73 {
\n+
74 bitset b = *this;
\n+
75 b >>= n;
\n+
76 return b;
\n+
77 }
\n+
\n+
78
\n+
\n+\n+
81 {
\n+
82 bitset b = *this;
\n+
83 b.flip();
\n+
84 return b;
\n+
85 }
\n+
\n+
86
\n+
\n+\n+
89 {
\n+
90 return block_size;
\n+
91 }
\n+
\n+
92
\n+
\n+\n+
95 {
\n+
96 size_type n = 0;
\n+
97 for(size_type i=0; i<block_size; ++i)
\n+
98 n += getBit(i);
\n+
99 return n;
\n+
100 }
\n+
\n+
101
\n+
\n+
103 bool any() const
\n+
104 {
\n+
105 return count();
\n+
106 }
\n+
\n+
107
\n+
\n+
109 bool none() const
\n+
110 {
\n+
111 return ! any();
\n+
112 }
\n+
\n+
113
\n+
\n+
115 bool all() const
\n+
116 {
\n+
117 for(size_type i=0; i<block_size; ++i)
\n+
118 if(not test(i))
\n+
119 return false;
\n+
120 return true;
\n+
121 }
\n+
\n+
122
\n+
\n+
124 bool test(size_type n) const
\n+
125 {
\n+
126 return getBit(n);
\n+
127 }
\n+
\n+
128
\n+
\n+\n+
131 {
\n+
132 return getBit(i);
\n+
133 }
\n+
\n+
134
\n+
\n+
136 operator bitset() const
\n+
137 {
\n+
138 return blockBitField.getRepr(block_number);
\n+
139 }
\n+
\n+
140
\n+
\n+
142 bool operator== (const bitset& bs) const
\n+
143 {
\n+
144 return equals(bs);
\n+
145 }
\n+
\n+
146
\n+
\n+\n+
149 {
\n+
150 return equals(bs);
\n+
151 }
\n+
\n+
152
\n+
\n+
154 bool operator!= (const bitset& bs) const
\n+
155 {
\n+
156 return ! equals(bs);
\n+
157 }
\n+
\n+
158
\n+
\n+\n+
161 {
\n+
162 return ! equals(bs);
\n+
163 }
\n+
\n+
164
\n+
\n+
171 friend std::ostream& operator<< (std::ostream& s, const BitSetVectorConstReference& v)
\n+
172 {
\n+
173 s << "(";
\n+
174 for(int i=0; i<block_size; ++i)
\n+
175 s << v[i];
\n+
176 s << ")";
\n+
177 return s;
\n+
178 }
\n+
\n+
179
\n+
180 protected:
\n+\n+\n+
183
\n+
\n+\n+
185 {
\n+
186 return blockBitField.getBit(block_number,i);
\n+
187 }
\n+
\n+
188
\n+
189 template<class BS>
\n+
\n+
190 bool equals(const BS & bs) const
\n+
191 {
\n+
192 bool eq = true;
\n+
193 for(int i=0; i<block_size; ++i)
\n+
194 eq &= (getBit(i) == bs[i]);
\n+
195 return eq;
\n+
196 }
\n+
\n+
197
\n+
198 private:
\n+
203 void operator & () = delete;
\n+
204
\n+
205 friend class BitSetVectorReference<block_size, Alloc>;
\n+
206 };
\n+
\n+
207
\n+
220 template <int block_size, class Alloc>
\n+
\n+
221 class BitSetVectorReference : public BitSetVectorConstReference<block_size,Alloc>
\n+
222 {
\n+
223 protected:
\n+
224
\n+\n+
226 friend class Dune::BitSetVector<block_size, Alloc>;
\n+
227
\n+\n+
229
\n+
\n+
230 BitSetVectorReference(BitSetVector& blockBitField_, int block_number_) :
\n+
231 BitSetVectorConstReference(blockBitField_, block_number_),
\n+
232 blockBitField(blockBitField_)
\n+
233 {}
\n+
\n+
234
\n+
235 public:
\n+
236 typedef std::bitset<block_size> bitset;
\n+
237
\n+
241 typedef typename std::vector<bool, Alloc>::reference reference;
\n+
243 typedef typename std::vector<bool, Alloc>::const_reference const_reference;
\n+
245
\n+
247 typedef size_t size_type;
\n+
248
\n+
\n+\n+
251 {
\n+
252 for(int i=0; i<block_size; ++i)
\n+
253 getBit(i) = b;
\n+
254 return (*this);
\n+
255 }
\n+
\n+
256
\n+
\n+\n+
259 {
\n+
260 for(int i=0; i<block_size; ++i)
\n+
261 getBit(i) = b.test(i);
\n+
262 return (*this);
\n+
263 }
\n+
\n+
264
\n+
\n+\n+
267 {
\n+
268 for(int i=0; i<block_size; ++i)
\n+
269 getBit(i) = b.test(i);
\n+
270 return (*this);
\n+
271 }
\n+
\n+
272
\n+
\n+\n+
275 {
\n+
276 for(int i=0; i<block_size; ++i)
\n+
277 getBit(i) = b.test(i);
\n+
278 return (*this);
\n+
279 }
\n+
\n+
280
\n+
\n+\n+
283 {
\n+
284 for (size_type i=0; i<block_size; i++)
\n+
285 getBit(i) = (test(i) & x.test(i));
\n+
286 return *this;
\n+
287 }
\n+
\n+
288
\n+
\n+\n+
291 {
\n+
292 for (size_type i=0; i<block_size; i++)
\n+
293 getBit(i) = (test(i) & x.test(i));
\n+
294 return *this;
\n+
295 }
\n+
\n+
296
\n+
\n+\n+
299 {
\n+
300 for (size_type i=0; i<block_size; i++)
\n+
301 getBit(i) = (test(i) | x.test(i));
\n+
302 return *this;
\n+
303 }
\n+
\n+
304
\n+
\n+\n+
307 {
\n+
308 for (size_type i=0; i<block_size; i++)
\n+
309 getBit(i) = (test(i) | x.test(i));
\n+
310 return *this;
\n+
311 }
\n+
\n+
312
\n+
\n+\n+
315 {
\n+
316 for (size_type i=0; i<block_size; i++)
\n+
317 getBit(i) = (test(i) ^ x.test(i));
\n+
318 return *this;
\n+
319 }
\n+
\n+
320
\n+
321 private:
\n+
322
\n+
323 // For some reason, the following variant of operator^= triggers an ICE or a hanging
\n+
324 // compiler on Debian 9 with GCC 6.3 and full optimizations enabled (-O3).
\n+
325 // The only way to reliably avoid the issue is by making sure that the compiler does not
\n+
326 // see the XOR in the context of the function, so here is a little helper that will normally
\n+
327 // be inlined, but not on the broken compiler. This incurs a substantial overhead (a function
\n+
328 // call), but until someone else has a better idea, it's the only way to make it work reliably.
\n+
329
\n+
330 static bool xor_helper(bool a, bool b)
\n+
331#if defined(__GNUC__) && ! defined(__clang__) && __GNUC__ == 6 && __GNUC_MINOR__ == 3 && __cplusplus \\
\n+
332 == 201402L
\n+
333 __attribute__((noinline))
\n+
334#endif
\n+
335 ;
\n+
336
\n+
337 public:
\n+
338
\n+
\n+\n+
341 {
\n+
342 // This uses the helper from above to hoist the actual XOR computation out of the function for
\n+
343 // the buggy version of GCC.
\n+
344 for (size_type i=0; i<block_size; i++)
\n+
345 getBit(i) = xor_helper(test(i),x.test(i));
\n+
346 return *this;
\n+
347 }
\n+
\n+
348
\n+
\n+\n+
351 {
\n+
352 for (size_type i=0; i<block_size-n; i++)
\n+
353 getBit(i) = test(i+n);
\n+
354 return *this;
\n+
355 }
\n+
\n+
356
\n+
\n+\n+
359 {
\n+
360 for (size_type i=0; i<block_size-n; i++)
\n+
361 getBit(i+n) = test(i);
\n+
362 return *this;
\n+
363 }
\n+
\n+
364
\n+
\n+\n+
367 {
\n+
368 for (size_type i=0; i<block_size; i++)
\n+
369 set(i);
\n+
370 return *this;
\n+
371 }
\n+
\n+
372
\n+
\n+\n+
375 {
\n+
376 for (size_type i=0; i<block_size; i++)
\n+
377 flip(i);
\n+
378 return *this;
\n+
379 }
\n+
\n+
380
\n+
\n+\n+
383 {
\n+
384 *this = false;
\n+
385 return *this;
\n+
386 }
\n+
\n+
387
\n+
\n+\n+
390 {
\n+
391 getBit(n) = val;
\n+
392 return *this;
\n+
393 }
\n+
\n+
394
\n+
\n+\n+
397 {
\n+
398 set(n, false);
\n+
399 return *this;
\n+
400 }
\n+
\n+
401
\n+
\n+\n+
404 {
\n+
405 getBit(n).flip();
\n+
406 return *this;
\n+
407 }
\n+
\n+
408
\n+\n+
410 using BitSetVectorConstReference::operator[];
\n+
411
\n+
\n+\n+
414 {
\n+
415 return getBit(i);
\n+
416 }
\n+
\n+
417
\n+
418 protected:
\n+\n+
420
\n+\n+
422
\n+
\n+\n+
424 {
\n+
425 return blockBitField.getBit(this->block_number,i);
\n+
426 }
\n+
\n+
427 };
\n+
\n+
428
\n+
429 // implementation of helper - I put it into the template to avoid having
\n+
430 // to compile it in a dedicated compilation unit
\n+
431 template<int block_size, class Alloc>
\n+
432 bool BitSetVectorReference<block_size,Alloc>::xor_helper(bool a, bool b)
\n+
433 {
\n+
434 return a ^ b;
\n+
435 }
\n+
436
\n+
440 template<int block_size, class Alloc>
\n+
\n+
441 struct const_reference< BitSetVectorReference<block_size,Alloc> >
\n+
442 {
\n+\n+
444 };
\n+
\n+
445
\n+
446 template<int block_size, class Alloc>
\n+
\n+
447 struct const_reference< BitSetVectorConstReference<block_size,Alloc> >
\n+
448 {
\n+\n+
450 };
\n+
\n+
451
\n+
452 template<int block_size, class Alloc>
\n+
\n+
453 struct mutable_reference< BitSetVectorReference<block_size,Alloc> >
\n+
454 {
\n+\n+
456 };
\n+
\n+
457
\n+
458 template<int block_size, class Alloc>
\n+
\n+\n+
460 {
\n+\n+
462 };
\n+
\n+
463
\n+
467 template <int block_size, class Allocator=std::allocator<bool> >
\n+
\n+
468 class BitSetVector : private std::vector<bool, Allocator>
\n+
469 {
\n+
471 typedef std::vector<bool, Allocator> BlocklessBaseClass;
\n+
472
\n+
473 public:
\n+
476
\n+
478 typedef std::bitset<block_size> value_type;
\n+
479
\n+\n+
482
\n+\n+
485
\n+\n+
488
\n+\n+
491
\n+
493 typedef typename std::vector<bool, Allocator>::size_type size_type;
\n+
494
\n+
496 typedef Allocator allocator_type;
\n+
498
\n+\n+\n+
504
\n+
\n+\n+
507 return iterator(*this, 0);
\n+
508 }
\n+
\n+
509
\n+
\n+\n+
512 return const_iterator(*this, 0);
\n+
513 }
\n+
\n+
514
\n+
\n+\n+
517 return iterator(*this, size());
\n+
518 }
\n+
\n+
519
\n+
\n+\n+
522 return const_iterator(*this, size());
\n+
523 }
\n+
\n+
524
\n+
\n+\n+
527 BlocklessBaseClass()
\n+
528 {}
\n+
\n+
529
\n+
\n+
531 BitSetVector(const BlocklessBaseClass& blocklessBitField) :
\n+
532 BlocklessBaseClass(blocklessBitField)
\n+
533 {
\n+
534 if (blocklessBitField.size()%block_size != 0)
\n+
535 DUNE_THROW(RangeError, "Vector size is not a multiple of the block size!");
\n+
536 }
\n+
\n+
537
\n+
\n+
541 explicit BitSetVector(int n) :
\n+
542 BlocklessBaseClass(n*block_size)
\n+
543 {}
\n+
\n+
544
\n+
\n+
546 BitSetVector(int n, bool v) :
\n+
547 BlocklessBaseClass(n*block_size,v)
\n+
548 {}
\n+
\n+
549
\n+
\n+
551 void clear()
\n+
552 {
\n+
553 BlocklessBaseClass::clear();
\n+
554 }
\n+
\n+
555
\n+
\n+
557 void resize(int n, bool v = bool())
\n+
558 {
\n+
559 BlocklessBaseClass::resize(n*block_size, v);
\n+
560 }
\n+
\n+
561
\n+
\n+\n+
564 {
\n+
565 return BlocklessBaseClass::size()/block_size;
\n+
566 }
\n+
\n+
567
\n+
\n+
569 void setAll() {
\n+
570 this->assign(BlocklessBaseClass::size(), true);
\n+
571 }
\n+
\n+
572
\n+
\n+
574 void unsetAll() {
\n+
575 this->assign(BlocklessBaseClass::size(), false);
\n+
576 }
\n+
\n+
577
\n+
\n+\n+
580 {
\n+
581 return reference(*this, i);
\n+
582 }
\n+
\n+
583
\n+
\n+\n+
586 {
\n+
587 return const_reference(*this, i);
\n+
588 }
\n+
\n+
589
\n+
\n+\n+
592 {
\n+
593 return reference(*this, size()-1);
\n+
594 }
\n+
\n+
595
\n+
\n+\n+
598 {
\n+
599 return const_reference(*this, size()-1);
\n+
600 }
\n+
\n+
601
\n+
\n+\n+
604 {
\n+
605 return std::count(BlocklessBaseClass::begin(), BlocklessBaseClass::end(), true);
\n+
606 }
\n+
\n+
607
\n+
\n+\n+
610 {
\n+
611 size_type n = 0;
\n+
612 size_type blocks = size();
\n+
613 for(size_type i=0; i<blocks; ++i)
\n+
614 n += getBit(i,j);
\n+
615 return n;
\n+
616 }
\n+
\n+
617
\n+
\n+
619 friend std::ostream& operator<< (std::ostream& s, const BitSetVector& v)
\n+
620 {
\n+
621 for (size_t i=0; i<v.size(); i++)
\n+
622 s << v[i] << " ";
\n+
623 return s;
\n+
624 }
\n+
\n+
625
\n+
626 private:
\n+
627
\n+
629 value_type getRepr(int i) const
\n+
630 {
\n+
631 value_type bits;
\n+
632 for(int j=0; j<block_size; ++j)
\n+
633 bits.set(j, getBit(i,j));
\n+
634 return bits;
\n+
635 }
\n+
636
\n+
637 typename std::vector<bool>::reference getBit(size_type i, size_type j) {
\n+
638 DUNE_ASSERT_BOUNDS(j < block_size);
\n+\n+
640 return BlocklessBaseClass::operator[](i*block_size+j);
\n+
641 }
\n+
642
\n+
643 typename std::vector<bool>::const_reference getBit(size_type i, size_type j) const {
\n+
644 DUNE_ASSERT_BOUNDS(j < block_size);
\n+\n+
646 return BlocklessBaseClass::operator[](i*block_size+j);
\n+
647 }
\n+
648
\n+
649 friend class BitSetVectorReference<block_size,Allocator>;
\n+
650 friend class BitSetVectorConstReference<block_size,Allocator>;
\n+
651 };
\n+
\n+
652
\n+
653} // namespace Dune
\n+
654
\n+
655#endif
\n+
Macro for wrapping boundary checks.
\n+
Implements a generic iterator class for writing stl conformant iterators.
\n+
A few common exception classes.
\n+
#define DUNE_ASSERT_BOUNDS(cond)
If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do nothing.
Definition boundschecking.hh:30
\n+
#define DUNE_THROW(E, m)
Definition exceptions.hh:218
\n
Dune namespace.
Definition alignedallocator.hh:13
\n-
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
\n-
auto wrap_or_move(T &&t)
Capture R-value reference to shared_ptr.
Definition shared_ptr.hh:96
\n-
implements the Deleter concept of shared_ptr without deleting anything
Definition shared_ptr.hh:49
\n-
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
\n-
void operator()(T *) const
Definition shared_ptr.hh:50
\n+
void assign(T &dst, const T &src, bool mask)
masked Simd assignment (scalar version)
Definition simd.hh:447
\n+
A dynamic array of blocks of booleans.
Definition bitsetvector.hh:469
\n+
const_reference operator[](int i) const
Return const reference to i-th block.
Definition bitsetvector.hh:585
\n+
iterator begin()
Returns a iterator pointing to the beginning of the vector.
Definition bitsetvector.hh:506
\n+
BitSetVectorConstReference< block_size, Allocator > * const_pointer
Const pointer to a small block of bits.
Definition bitsetvector.hh:490
\n+
const_iterator end() const
Returns a const_iterator pointing to the end of the vector.
Definition bitsetvector.hh:521
\n+
BitSetVectorReference< block_size, Allocator > reference
Reference to a small block of bits.
Definition bitsetvector.hh:481
\n+
size_type countmasked(int j) const
Returns the number of set bits, while each block is masked with 1<<i.
Definition bitsetvector.hh:609
\n+
BitSetVectorConstReference< block_size, Allocator > const_reference
Const reference to a small block of bits.
Definition bitsetvector.hh:484
\n+
iterator end()
Returns an iterator pointing to the end of the vector.
Definition bitsetvector.hh:516
\n+
size_type count() const
Returns the number of bits that are set.
Definition bitsetvector.hh:603
\n+
BitSetVector()
Default constructor.
Definition bitsetvector.hh:526
\n+
void setAll()
Sets all entries to true
Definition bitsetvector.hh:569
\n+
Dune::GenericIterator< const BitSetVector< block_size, Allocator >, const value_type, const_reference, std::ptrdiff_t, ForwardIteratorFacade > const_iterator
Definition bitsetvector.hh:502
\n+
std::bitset< block_size > value_type
Type of the values stored by the container.
Definition bitsetvector.hh:478
\n+
reference back()
Return reference to last block.
Definition bitsetvector.hh:591
\n+
BitSetVector(const BlocklessBaseClass &blocklessBitField)
Construction from an unblocked bitfield.
Definition bitsetvector.hh:531
\n+
friend std::ostream & operator<<(std::ostream &s, const BitSetVector &v)
Send bitfield to an output stream.
Definition bitsetvector.hh:619
\n+
const_reference back() const
Return const reference to last block.
Definition bitsetvector.hh:597
\n+
void clear()
Erases all of the elements.
Definition bitsetvector.hh:551
\n+
BitSetVectorReference< block_size, Allocator > * pointer
Pointer to a small block of bits.
Definition bitsetvector.hh:487
\n+
reference operator[](int i)
Return reference to i-th block.
Definition bitsetvector.hh:579
\n+
size_type size() const
Return the number of blocks.
Definition bitsetvector.hh:563
\n+
std::vector< bool, Allocator >::size_type size_type
size type
Definition bitsetvector.hh:493
\n+
BitSetVector(int n, bool v)
Constructor which initializes the field with true or false.
Definition bitsetvector.hh:546
\n+
const_iterator begin() const
Returns a const_iterator pointing to the beginning of the vector.
Definition bitsetvector.hh:511
\n+
Dune::GenericIterator< BitSetVector< block_size, Allocator >, value_type, reference, std::ptrdiff_t, ForwardIteratorFacade > iterator
Definition bitsetvector.hh:501
\n+
void resize(int n, bool v=bool())
Resize field.
Definition bitsetvector.hh:557
\n+
Allocator allocator_type
The type of the allocator.
Definition bitsetvector.hh:496
\n+
BitSetVector(int n)
Definition bitsetvector.hh:541
\n+
void unsetAll()
Sets all entries to false
Definition bitsetvector.hh:574
\n+
A proxy class that acts as a mutable reference to a single bitset in a BitSetVector.
Definition bitsetvector.hh:222
\n+
bool test(size_type n) const
Returns true if bit n is set.
Definition bitsetvector.hh:124
\n+
BitSetVectorReference & operator=(const BitSetVectorConstReference &b)
Assignment from BitSetVectorConstReference.
Definition bitsetvector.hh:266
\n+
reference operator[](size_type i)
Return reference to the i-th bit.
Definition bitsetvector.hh:413
\n+
BitSetVectorReference & reset(size_type n)
Clears bit n.
Definition bitsetvector.hh:396
\n+
BitSetVectorReference & operator<<=(size_type n)
Left shift.
Definition bitsetvector.hh:350
\n+
Dune::BitSetVector< block_size, Alloc > BitSetVector
Definition bitsetvector.hh:225
\n+
std::vector< bool, Alloc >::const_reference const_reference
A proxy class that acts as a const reference to a single bit.
Definition bitsetvector.hh:243
\n+
BitSetVectorReference & operator=(const BitSetVectorReference &b)
Assignment from BitSetVectorReference.
Definition bitsetvector.hh:274
\n+
reference getBit(size_type i)
Definition bitsetvector.hh:423
\n+
BitSetVectorReference & operator&=(const BitSetVectorConstReference &x)
Bitwise and (for BitSetVectorConstReference and BitSetVectorReference)
Definition bitsetvector.hh:290
\n+
BitSetVectorReference(BitSetVector &blockBitField_, int block_number_)
Definition bitsetvector.hh:230
\n+
size_t size_type
size_type typedef (an unsigned integral type)
Definition bitsetvector.hh:247
\n+
BitSetVectorReference & operator=(const bitset &b)
Assignment from bitset.
Definition bitsetvector.hh:258
\n+
Dune::BitSetVectorConstReference< block_size, Alloc > BitSetVectorConstReference
Definition bitsetvector.hh:228
\n+
BitSetVectorReference & reset()
Clears every bit.
Definition bitsetvector.hh:382
\n+
BitSetVector & blockBitField
Definition bitsetvector.hh:419
\n+
BitSetVectorReference & operator|=(const BitSetVectorConstReference &x)
Bitwise inclusive or (for BitSetVectorConstReference and BitSetVectorReference)
Definition bitsetvector.hh:306
\n+
BitSetVectorReference & set(size_type n, int val=1)
Sets bit n if val is nonzero, and clears bit n if val is zero.
Definition bitsetvector.hh:389
\n+
std::bitset< block_size > bitset
Definition bitsetvector.hh:236
\n+
BitSetVectorReference & operator^=(const bitset &x)
Bitwise exclusive or (for bitset).
Definition bitsetvector.hh:314
\n+
std::vector< bool, Alloc >::reference reference
Definition bitsetvector.hh:241
\n+
BitSetVectorReference & operator|=(const bitset &x)
Bitwise inclusive or (for bitset)
Definition bitsetvector.hh:298
\n+
BitSetVectorReference & operator>>=(size_type n)
Right shift.
Definition bitsetvector.hh:358
\n+
BitSetVectorReference & operator^=(const BitSetVectorConstReference &x)
Bitwise exclusive or (for BitSetVectorConstReference and BitSetVectorReference)
Definition bitsetvector.hh:340
\n+
BitSetVectorReference & flip(size_type n)
Flips bit n.
Definition bitsetvector.hh:403
\n+
BitSetVectorReference & flip()
Flips the value of every bit.
Definition bitsetvector.hh:374
\n+
BitSetVectorReference & set()
Sets every bit.
Definition bitsetvector.hh:366
\n+
BitSetVectorReference & operator&=(const bitset &x)
Bitwise and (for bitset).
Definition bitsetvector.hh:282
\n+
BitSetVectorReference & operator=(bool b)
Assignment from bool, sets each bit in the bitset to b.
Definition bitsetvector.hh:250
\n+
A proxy class that acts as a const reference to a single bitset in a BitSetVector.
Definition bitsetvector.hh:38
\n+
bool operator==(const bitset &bs) const
Equality of reference and std::bitset.
Definition bitsetvector.hh:142
\n+
bool test(size_type n) const
Returns true if bit n is set.
Definition bitsetvector.hh:124
\n+
const_reference operator[](size_type i) const
Return reference to the i-th bit.
Definition bitsetvector.hh:130
\n+
bitset operator<<(size_type n) const
Returns a copy of *this shifted left by n bits.
Definition bitsetvector.hh:64
\n+
BitSetVectorConstReference & operator=(const BitSetVectorConstReference &b)
hide assignment operator
\n+
BitSetVectorConstReference(const BitSetVector &blockBitField_, int block_number_)
Definition bitsetvector.hh:44
\n+
const BitSetVector & blockBitField
Definition bitsetvector.hh:181
\n+
bitset operator>>(size_type n) const
Returns a copy of *this shifted right by n bits.
Definition bitsetvector.hh:72
\n+
const_reference getBit(size_type i) const
Definition bitsetvector.hh:184
\n+
bool operator!=(const bitset &bs) const
Inequality of reference and std::bitset.
Definition bitsetvector.hh:154
\n+
bool equals(const BS &bs) const
Definition bitsetvector.hh:190
\n+
Dune::BitSetVector< block_size, Alloc > BitSetVector
Definition bitsetvector.hh:41
\n+
std::bitset< block_size > bitset
Definition bitsetvector.hh:56
\n+
bool all() const
Returns true if all bits are set.
Definition bitsetvector.hh:115
\n+
size_t size_type
Definition bitsetvector.hh:61
\n+
bitset operator~() const
Returns a copy of *this with all of its bits flipped.
Definition bitsetvector.hh:80
\n+
std::vector< bool, Alloc >::const_reference reference
Definition bitsetvector.hh:59
\n+
size_type size() const
Returns block_size.
Definition bitsetvector.hh:88
\n+
size_type count() const
Returns the number of bits that are set.
Definition bitsetvector.hh:94
\n+
bool none() const
Returns true if no bits are set.
Definition bitsetvector.hh:109
\n+
bool any() const
Returns true if any bits are set.
Definition bitsetvector.hh:103
\n+
int block_number
Definition bitsetvector.hh:182
\n+
std::vector< bool, Alloc >::const_reference const_reference
Definition bitsetvector.hh:60
\n+
friend std::ostream & operator<<(std::ostream &s, const BitSetVectorConstReference &v)
Definition bitsetvector.hh:171
\n+
BitSetVectorConstReference< block_size, Alloc > type
Definition bitsetvector.hh:443
\n+
BitSetVectorConstReference< block_size, Alloc > type
Definition bitsetvector.hh:449
\n+
BitSetVectorReference< block_size, Alloc > type
Definition bitsetvector.hh:455
\n+
BitSetVectorReference< block_size, Alloc > type
Definition bitsetvector.hh:461
\n+
Default exception class for range errors.
Definition exceptions.hh:254
\n+
Get the 'const' version of a reference to a mutable object.
Definition genericiterator.hh:87
\n+
get the 'mutable' version of a reference to a const object
Definition genericiterator.hh:116
\n+
Generic class for stl-conforming iterators for container classes with operator[].
Definition genericiterator.hh:153
\n+
Base class for stl conformant forward iterators.
Definition iteratorfacades.hh:141
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,74 +1,936 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-shared_ptr.hh\n+bitsetvector.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5\n-6#ifndef DUNE_SHARED_PTR_HH\n-7#define DUNE_SHARED_PTR_HH\n-8\n-9#include \n-10\n-11#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n-17namespace _\bD_\bu_\bn_\be\n-18{\n-47 template\n-_\b4_\b8 struct _\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br\n-49 {\n-_\b5_\b0 void _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b(_\b)_\b (T*) const {}\n-51 };\n-52\n-71 template\n-_\b7_\b2 inline std::shared_ptr _\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br(T & t)\n+5#ifndef DUNE_BLOCK_BITFIELD_HH\n+6#define DUNE_BLOCK_BITFIELD_HH\n+7\n+12#include \n+13#include \n+14#include \n+15#include \n+16\n+17#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bb_\bo_\bu_\bn_\bd_\bs_\bc_\bh_\be_\bc_\bk_\bi_\bn_\bg_\b._\bh_\bh>\n+18#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bg_\be_\bn_\be_\br_\bi_\bc_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b._\bh_\bh>\n+19#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh>\n+20\n+21namespace _\bD_\bu_\bn_\be {\n+22\n+23 template class BitSetVector;\n+24 template class BitSetVectorReference;\n+25\n+36 template \n+_\b3_\b7 class _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+38 {\n+39 protected:\n+40\n+_\b4_\b1 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b> _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br;\n+42 friend class _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br;\n+43\n+_\b4_\b4 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(const _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br& blockBitField_, int\n+block_number_) :\n+45 _\bb_\bl_\bo_\bc_\bk_\bB_\bi_\bt_\bF_\bi_\be_\bl_\bd(blockBitField_),\n+46 _\bb_\bl_\bo_\bc_\bk_\b__\bn_\bu_\bm_\bb_\be_\br(block_number_)\n+47 {\n+48 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(blockBitField_._\bs_\bi_\bz_\be() > static_cast\n+(block_number_));\n+49 }\n+50\n+_\b5_\b2 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be& _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=(const _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be & b);\n+53\n+54 public:\n+55\n+_\b5_\b6 typedef std::bitset _\bb_\bi_\bt_\bs_\be_\bt;\n+57\n+58 // bitset interface typedefs\n+_\b5_\b9 typedef typename std::vector::const_reference _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+_\b6_\b0 typedef typename std::vector::const_reference _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+_\b6_\b1 typedef size_t _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be;\n+62\n+_\b6_\b4 _\bb_\bi_\bt_\bs_\be_\bt _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n) const\n+65 {\n+66 _\bb_\bi_\bt_\bs_\be_\bt b = *this;\n+67 b <<= n;\n+68 return b;\n+69 }\n+70\n+_\b7_\b2 _\bb_\bi_\bt_\bs_\be_\bt _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b>_\b>(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n) const\n 73 {\n-74 return std::shared_ptr(&t, _\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b<_\bT_\b>());\n-75 }\n-76\n-77\n-95 template\n-_\b9_\b6 auto _\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be(T&& t)\n-97 {\n-98 return std::make_shared>(std::forward(t));\n-99 }\n-100\n-118 template\n-_\b1_\b1_\b9 auto _\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be(T& t)\n-120 {\n-121 return _\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br(t);\n-122 }\n-123\n-124}\n-125#endif\n-_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\n-Traits for type conversions and type information.\n+74 _\bb_\bi_\bt_\bs_\be_\bt b = *this;\n+75 b >>= n;\n+76 return b;\n+77 }\n+78\n+_\b8_\b0 _\bb_\bi_\bt_\bs_\be_\bt _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b~() const\n+81 {\n+82 _\bb_\bi_\bt_\bs_\be_\bt b = *this;\n+83 b.flip();\n+84 return b;\n+85 }\n+86\n+_\b8_\b8 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bs_\bi_\bz_\be() const\n+89 {\n+90 return block_size;\n+91 }\n+92\n+_\b9_\b4 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bc_\bo_\bu_\bn_\bt() const\n+95 {\n+96 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n = 0;\n+97 for(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i=0; i\n+_\b1_\b9_\b0 bool _\be_\bq_\bu_\ba_\bl_\bs(const BS & bs) const\n+191 {\n+192 bool eq = true;\n+193 for(int i=0; i;\n+206 };\n+207\n+220 template \n+_\b2_\b2_\b1 class _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be : public\n+_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+222 {\n+223 protected:\n+224\n+_\b2_\b2_\b5 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b> _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br;\n+226 friend class _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br;\n+227\n+_\b2_\b2_\b8 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\b>\n+_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+229\n+_\b2_\b3_\b0 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br& blockBitField_, int block_number_) :\n+231 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be(blockBitField_, block_number_),\n+232 _\bb_\bl_\bo_\bc_\bk_\bB_\bi_\bt_\bF_\bi_\be_\bl_\bd(blockBitField_)\n+233 {}\n+234\n+235 public:\n+_\b2_\b3_\b6 typedef std::bitset _\bb_\bi_\bt_\bs_\be_\bt;\n+237\n+_\b2_\b4_\b1 typedef typename std::vector::reference _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+_\b2_\b4_\b3 typedef typename std::vector::const_reference _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+245\n+_\b2_\b4_\b7 typedef size_t _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be;\n+248\n+_\b2_\b5_\b0 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be& _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=(bool b)\n+251 {\n+252 for(int i=0; i_\b>_\b=(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n)\n+359 {\n+360 for (_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i=0; i_\bb_\bl_\bo_\bc_\bk_\b__\bn_\bu_\bm_\bb_\be_\br,i);\n+426 }\n+427 };\n+428\n+429 // implementation of helper - I put it into the template to avoid having\n+430 // to compile it in a dedicated compilation unit\n+431 template\n+432 bool BitSetVectorReference::xor_helper(bool a, bool b)\n+433 {\n+434 return a ^ b;\n+435 }\n+436\n+440 template\n+_\b4_\b4_\b1 struct _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be< _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be >\n+442 {\n+_\b4_\b4_\b3 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\b> _\bt_\by_\bp_\be;\n+444 };\n+445\n+446 template\n+_\b4_\b4_\b7 struct _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be< _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be >\n+448 {\n+_\b4_\b4_\b9 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\b> _\bt_\by_\bp_\be;\n+450 };\n+451\n+452 template\n+_\b4_\b5_\b3 struct _\bm_\bu_\bt_\ba_\bb_\bl_\be_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be< _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be >\n+454 {\n+_\b4_\b5_\b5 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\b> _\bt_\by_\bp_\be;\n+456 };\n+457\n+458 template\n+_\b4_\b5_\b9 struct _\bm_\bu_\bt_\ba_\bb_\bl_\be_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be< _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be >\n+460 {\n+_\b4_\b6_\b1 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\b> _\bt_\by_\bp_\be;\n+462 };\n+463\n+467 template >\n+_\b4_\b6_\b8 class _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br : private std::vector\n+469 {\n+471 typedef std::vector BlocklessBaseClass;\n+472\n+473 public:\n+476\n+_\b4_\b7_\b8 typedef std::bitset _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be;\n+479\n+_\b4_\b8_\b1 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b> _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+482\n+_\b4_\b8_\b4 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b> _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+485\n+_\b4_\b8_\b7 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b>* _\bp_\bo_\bi_\bn_\bt_\be_\br;\n+488\n+_\b4_\b9_\b0 typedef _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b>* _\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br;\n+491\n+_\b4_\b9_\b3 typedef typename std::vector::size_type _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be;\n+494\n+_\b4_\b9_\b6 typedef Allocator _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be;\n+498\n+_\b5_\b0_\b1 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\bi_\bc_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b<_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b>,\n+_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be, _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be, std::ptrdiff_t, _\bF_\bo_\br_\bw_\ba_\br_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bF_\ba_\bc_\ba_\bd_\be> _\bi_\bt_\be_\br_\ba_\bt_\bo_\br;\n+_\b5_\b0_\b2 typedef _\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\bi_\bc_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\b<_\bc_\bo_\bn_\bs_\bt_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b<_\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b>,\n+const _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be, _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be, std::ptrdiff_t, _\bF_\bo_\br_\bw_\ba_\br_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bF_\ba_\bc_\ba_\bd_\be>\n+_\bc_\bo_\bn_\bs_\bt_\b__\bi_\bt_\be_\br_\ba_\bt_\bo_\br;\n+504\n+_\b5_\b0_\b6 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\be_\bg_\bi_\bn(){\n+507 return _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, 0);\n+508 }\n+509\n+_\b5_\b1_\b1 _\bc_\bo_\bn_\bs_\bt_\b__\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\bb_\be_\bg_\bi_\bn() const {\n+512 return _\bc_\bo_\bn_\bs_\bt_\b__\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, 0);\n+513 }\n+514\n+_\b5_\b1_\b6 _\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bn_\bd(){\n+517 return _\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, _\bs_\bi_\bz_\be());\n+518 }\n+519\n+_\b5_\b2_\b1 _\bc_\bo_\bn_\bs_\bt_\b__\bi_\bt_\be_\br_\ba_\bt_\bo_\br _\be_\bn_\bd() const {\n+522 return _\bc_\bo_\bn_\bs_\bt_\b__\bi_\bt_\be_\br_\ba_\bt_\bo_\br(*this, _\bs_\bi_\bz_\be());\n+523 }\n+524\n+_\b5_\b2_\b6 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br() :\n+527 BlocklessBaseClass()\n+528 {}\n+529\n+_\b5_\b3_\b1 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br(const BlocklessBaseClass& blocklessBitField) :\n+532 BlocklessBaseClass(blocklessBitField)\n+533 {\n+534 if (blocklessBitField.size()%block_size != 0)\n+535 _\bD_\bU_\bN_\bE_\b__\bT_\bH_\bR_\bO_\bW(_\bR_\ba_\bn_\bg_\be_\bE_\br_\br_\bo_\br, \"Vector size is not a multiple of the block size!\");\n+536 }\n+537\n+_\b5_\b4_\b1 explicit _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br(int n) :\n+542 BlocklessBaseClass(n*block_size)\n+543 {}\n+544\n+_\b5_\b4_\b6 _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br(int n, bool v) :\n+547 BlocklessBaseClass(n*block_size,v)\n+548 {}\n+549\n+_\b5_\b5_\b1 void _\bc_\bl_\be_\ba_\br()\n+552 {\n+553 BlocklessBaseClass::clear();\n+554 }\n+555\n+_\b5_\b5_\b7 void _\br_\be_\bs_\bi_\bz_\be(int n, bool v = bool())\n+558 {\n+559 BlocklessBaseClass::resize(n*block_size, v);\n+560 }\n+561\n+_\b5_\b6_\b3 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bs_\bi_\bz_\be() const\n+564 {\n+565 return BlocklessBaseClass::size()/block_size;\n+566 }\n+567\n+_\b5_\b6_\b9 void _\bs_\be_\bt_\bA_\bl_\bl() {\n+570 this->_\ba_\bs_\bs_\bi_\bg_\bn(BlocklessBaseClass::size(), true);\n+571 }\n+572\n+_\b5_\b7_\b4 void _\bu_\bn_\bs_\be_\bt_\bA_\bl_\bl() {\n+575 this->_\ba_\bs_\bs_\bi_\bg_\bn(BlocklessBaseClass::size(), false);\n+576 }\n+577\n+_\b5_\b7_\b9 _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b](int i)\n+580 {\n+581 return _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be(*this, i);\n+582 }\n+583\n+_\b5_\b8_\b5 _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b](int i) const\n+586 {\n+587 return _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be(*this, i);\n+588 }\n+589\n+_\b5_\b9_\b1 _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bb_\ba_\bc_\bk()\n+592 {\n+593 return _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be(*this, _\bs_\bi_\bz_\be()-1);\n+594 }\n+595\n+_\b5_\b9_\b7 _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bb_\ba_\bc_\bk() const\n+598 {\n+599 return _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be(*this, _\bs_\bi_\bz_\be()-1);\n+600 }\n+601\n+_\b6_\b0_\b3 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bc_\bo_\bu_\bn_\bt() const\n+604 {\n+605 return std::count(BlocklessBaseClass::begin(), BlocklessBaseClass::end(),\n+true);\n+606 }\n+607\n+_\b6_\b0_\b9 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bc_\bo_\bu_\bn_\bt_\bm_\ba_\bs_\bk_\be_\bd(int j) const\n+610 {\n+611 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n = 0;\n+612 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be blocks = _\bs_\bi_\bz_\be();\n+613 for(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i=0; i::reference getBit(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i, _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be j) {\n+638 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(j < block_size);\n+639 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(i < _\bs_\bi_\bz_\be());\n+640 return BlocklessBaseClass::operator[](i*block_size+j);\n+641 }\n+642\n+_\b6_\b4_\b3 typename std::vector::const_reference getBit(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i, _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n+j) const {\n+644 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(j < block_size);\n+645 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(i < _\bs_\bi_\bz_\be());\n+646 return BlocklessBaseClass::operator[](i*block_size+j);\n+647 }\n+648\n+649 friend class _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+650 friend class _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n+651 };\n+652\n+653} // namespace Dune\n+654\n+655#endif\n+_\bb_\bo_\bu_\bn_\bd_\bs_\bc_\bh_\be_\bc_\bk_\bi_\bn_\bg_\b._\bh_\bh\n+Macro for wrapping boundary checks.\n+_\bg_\be_\bn_\be_\br_\bi_\bc_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b._\bh_\bh\n+Implements a generic iterator class for writing stl conformant iterators.\n+_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh\n+A few common exception classes.\n+_\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS\n+#define DUNE_ASSERT_BOUNDS(cond)\n+If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do\n+nothing.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn boundschecking.hh:30\n+_\bD_\bU_\bN_\bE_\b__\bT_\bH_\bR_\bO_\bW\n+#define DUNE_THROW(E, m)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn exceptions.hh:218\n _\bD_\bu_\bn_\be\n Dune namespace.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn alignedallocator.hh:13\n-_\bD_\bu_\bn_\be_\b:_\b:_\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br\n-std::shared_ptr< T > stackobject_to_shared_ptr(T &t)\n-Create a shared_ptr for a stack-allocated object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:72\n-_\bD_\bu_\bn_\be_\b:_\b:_\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be\n-auto wrap_or_move(T &&t)\n-Capture R-value reference to shared_ptr.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:96\n-_\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br\n-implements the Deleter concept of shared_ptr without deleting anything\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:49\n-_\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b:_\b:_\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br\n-std::shared_ptr< T > stackobject_to_shared_ptr(T &t)\n-Create a shared_ptr for a stack-allocated object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:72\n-_\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b(_\b)\n-void operator()(T *) const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:50\n+_\bD_\bu_\bn_\be_\b:_\b:_\ba_\bs_\bs_\bi_\bg_\bn\n+void assign(T &dst, const T &src, bool mask)\n+masked Simd assignment (scalar version)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn simd.hh:447\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br\n+A dynamic array of blocks of booleans.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:469\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b]\n+const_reference operator[](int i) const\n+Return const reference to i-th block.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:585\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bb_\be_\bg_\bi_\bn\n+iterator begin()\n+Returns a iterator pointing to the beginning of the vector.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:506\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br\n+BitSetVectorConstReference< block_size, Allocator > * const_pointer\n+Const pointer to a small block of bits.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:490\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\be_\bn_\bd\n+const_iterator end() const\n+Returns a const_iterator pointing to the end of the vector.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:521\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+BitSetVectorReference< block_size, Allocator > reference\n+Reference to a small block of bits.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:481\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bu_\bn_\bt_\bm_\ba_\bs_\bk_\be_\bd\n+size_type countmasked(int j) const\n+Returns the number of set bits, while each block is masked with 1< const_reference\n+Const reference to a small block of bits.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:484\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\be_\bn_\bd\n+iterator end()\n+Returns an iterator pointing to the end of the vector.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:516\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bu_\bn_\bt\n+size_type count() const\n+Returns the number of bits that are set.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:603\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br\n+BitSetVector()\n+Default constructor.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:526\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\be_\bt_\bA_\bl_\bl\n+void setAll()\n+Sets all entries to true\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:569\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n+Dune::GenericIterator< const BitSetVector< block_size, Allocator >, const\n+value_type, const_reference, std::ptrdiff_t, ForwardIteratorFacade >\n+const_iterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:502\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be\n+std::bitset< block_size > value_type\n+Type of the values stored by the container.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:478\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bb_\ba_\bc_\bk\n+reference back()\n+Return reference to last block.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:591\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br\n+BitSetVector(const BlocklessBaseClass &blocklessBitField)\n+Construction from an unblocked bitfield.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:531\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<\n+friend std::ostream & operator<<(std::ostream &s, const BitSetVector &v)\n+Send bitfield to an output stream.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:619\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bb_\ba_\bc_\bk\n+const_reference back() const\n+Return const reference to last block.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:597\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bl_\be_\ba_\br\n+void clear()\n+Erases all of the elements.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:551\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\be_\br\n+BitSetVectorReference< block_size, Allocator > * pointer\n+Pointer to a small block of bits.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:487\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b]\n+reference operator[](int i)\n+Return reference to i-th block.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:579\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be\n+size_type size() const\n+Return the number of blocks.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:563\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n+std::vector< bool, Allocator >::size_type size_type\n+size type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:493\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br\n+BitSetVector(int n, bool v)\n+Constructor which initializes the field with true or false.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:546\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bb_\be_\bg_\bi_\bn\n+const_iterator begin() const\n+Returns a const_iterator pointing to the beginning of the vector.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:511\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bi_\bt_\be_\br_\ba_\bt_\bo_\br\n+Dune::GenericIterator< BitSetVector< block_size, Allocator >, value_type,\n+reference, std::ptrdiff_t, ForwardIteratorFacade > iterator\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:501\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\br_\be_\bs_\bi_\bz_\be\n+void resize(int n, bool v=bool())\n+Resize field.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:557\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be\n+Allocator allocator_type\n+The type of the allocator.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:496\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br\n+BitSetVector(int n)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:541\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bu_\bn_\bs_\be_\bt_\bA_\bl_\bl\n+void unsetAll()\n+Sets all entries to false\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:574\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+A proxy class that acts as a mutable reference to a single bitset in a\n+BitSetVector.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:222\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bt_\be_\bs_\bt\n+bool test(size_type n) const\n+Returns true if bit n is set.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:124\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n+BitSetVectorReference & operator=(const BitSetVectorConstReference &b)\n+Assignment from BitSetVectorConstReference.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:266\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b]\n+reference operator[](size_type i)\n+Return reference to the i-th bit.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:413\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\br_\be_\bs_\be_\bt\n+BitSetVectorReference & reset(size_type n)\n+Clears bit n.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:396\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<_\b=\n+BitSetVectorReference & operator<<=(size_type n)\n+Left shift.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:350\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br\n+Dune::BitSetVector< block_size, Alloc > BitSetVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:225\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+std::vector< bool, Alloc >::const_reference const_reference\n+A proxy class that acts as a const reference to a single bit.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:243\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n+BitSetVectorReference & operator=(const BitSetVectorReference &b)\n+Assignment from BitSetVectorReference.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:274\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bg_\be_\bt_\bB_\bi_\bt\n+reference getBit(size_type i)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:423\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b&_\b=\n+BitSetVectorReference & operator&=(const BitSetVectorConstReference &x)\n+Bitwise and (for BitSetVectorConstReference and BitSetVectorReference)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:290\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+BitSetVectorReference(BitSetVector &blockBitField_, int block_number_)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:230\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n+size_t size_type\n+size_type typedef (an unsigned integral type)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:247\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n+BitSetVectorReference & operator=(const bitset &b)\n+Assignment from bitset.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:258\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+Dune::BitSetVectorConstReference< block_size, Alloc >\n+BitSetVectorConstReference\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:228\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\br_\be_\bs_\be_\bt\n+BitSetVectorReference & reset()\n+Clears every bit.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:382\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bb_\bl_\bo_\bc_\bk_\bB_\bi_\bt_\bF_\bi_\be_\bl_\bd\n+BitSetVector & blockBitField\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:419\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b|_\b=\n+BitSetVectorReference & operator|=(const BitSetVectorConstReference &x)\n+Bitwise inclusive or (for BitSetVectorConstReference and BitSetVectorReference)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:306\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bs_\be_\bt\n+BitSetVectorReference & set(size_type n, int val=1)\n+Sets bit n if val is nonzero, and clears bit n if val is zero.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:389\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bb_\bi_\bt_\bs_\be_\bt\n+std::bitset< block_size > bitset\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:236\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b^_\b=\n+BitSetVectorReference & operator^=(const bitset &x)\n+Bitwise exclusive or (for bitset).\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:314\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+std::vector< bool, Alloc >::reference reference\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:241\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b|_\b=\n+BitSetVectorReference & operator|=(const bitset &x)\n+Bitwise inclusive or (for bitset)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:298\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b>_\b>_\b=\n+BitSetVectorReference & operator>>=(size_type n)\n+Right shift.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:358\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b^_\b=\n+BitSetVectorReference & operator^=(const BitSetVectorConstReference &x)\n+Bitwise exclusive or (for BitSetVectorConstReference and BitSetVectorReference)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:340\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bf_\bl_\bi_\bp\n+BitSetVectorReference & flip(size_type n)\n+Flips bit n.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:403\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bf_\bl_\bi_\bp\n+BitSetVectorReference & flip()\n+Flips the value of every bit.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:374\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bs_\be_\bt\n+BitSetVectorReference & set()\n+Sets every bit.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:366\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b&_\b=\n+BitSetVectorReference & operator&=(const bitset &x)\n+Bitwise and (for bitset).\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:282\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n+BitSetVectorReference & operator=(bool b)\n+Assignment from bool, sets each bit in the bitset to b.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:250\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+A proxy class that acts as a const reference to a single bitset in a\n+BitSetVector.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:38\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=\n+bool operator==(const bitset &bs) const\n+Equality of reference and std::bitset.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:142\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bt_\be_\bs_\bt\n+bool test(size_type n) const\n+Returns true if bit n is set.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:124\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b]\n+const_reference operator[](size_type i) const\n+Return reference to the i-th bit.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:130\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<\n+bitset operator<<(size_type n) const\n+Returns a copy of *this shifted left by n bits.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:64\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n+BitSetVectorConstReference & operator=(const BitSetVectorConstReference &b)\n+hide assignment operator\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+BitSetVectorConstReference(const BitSetVector &blockBitField_, int\n+block_number_)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:44\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bb_\bl_\bo_\bc_\bk_\bB_\bi_\bt_\bF_\bi_\be_\bl_\bd\n+const BitSetVector & blockBitField\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:181\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b>_\b>\n+bitset operator>>(size_type n) const\n+Returns a copy of *this shifted right by n bits.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:72\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bg_\be_\bt_\bB_\bi_\bt\n+const_reference getBit(size_type i) const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:184\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=\n+bool operator!=(const bitset &bs) const\n+Inequality of reference and std::bitset.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:154\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\be_\bq_\bu_\ba_\bl_\bs\n+bool equals(const BS &bs) const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:190\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br\n+Dune::BitSetVector< block_size, Alloc > BitSetVector\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:41\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bb_\bi_\bt_\bs_\be_\bt\n+std::bitset< block_size > bitset\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:56\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\ba_\bl_\bl\n+bool all() const\n+Returns true if all bits are set.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:115\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n+size_t size_type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:61\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b~\n+bitset operator~() const\n+Returns a copy of *this with all of its bits flipped.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:80\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+std::vector< bool, Alloc >::const_reference reference\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:59\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bs_\bi_\bz_\be\n+size_type size() const\n+Returns block_size.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:88\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bc_\bo_\bu_\bn_\bt\n+size_type count() const\n+Returns the number of bits that are set.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:94\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bn_\bo_\bn_\be\n+bool none() const\n+Returns true if no bits are set.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:109\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\ba_\bn_\by\n+bool any() const\n+Returns true if any bits are set.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:103\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bb_\bl_\bo_\bc_\bk_\b__\bn_\bu_\bm_\bb_\be_\br\n+int block_number\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:182\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+std::vector< bool, Alloc >::const_reference const_reference\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:60\n+_\bD_\bu_\bn_\be_\b:_\b:_\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b<_\b<\n+friend std::ostream & operator<<(std::ostream &s, const\n+BitSetVectorConstReference &v)\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:171\n+_\bD_\bu_\bn_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>_\b _\b>_\b:_\b:_\bt_\by_\bp_\be\n+BitSetVectorConstReference< block_size, Alloc > type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:443\n+_\bD_\bu_\bn_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>_\b _\b>_\b:_\b:_\bt_\by_\bp_\be\n+BitSetVectorConstReference< block_size, Alloc > type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:449\n+_\bD_\bu_\bn_\be_\b:_\b:_\bm_\bu_\bt_\ba_\bb_\bl_\be_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>_\b _\b>_\b:_\b:_\bt_\by_\bp_\be\n+BitSetVectorReference< block_size, Alloc > type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:455\n+_\bD_\bu_\bn_\be_\b:_\b:_\bm_\bu_\bt_\ba_\bb_\bl_\be_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bB_\bi_\bt_\bS_\be_\bt_\bV_\be_\bc_\bt_\bo_\br_\bC_\bo_\bn_\bs_\bt_\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be_\b<_\b _\bb_\bl_\bo_\bc_\bk_\b__\bs_\bi_\bz_\be_\b,_\b _\bA_\bl_\bl_\bo_\bc_\b _\b>_\b _\b>_\b:_\b:\n+_\bt_\by_\bp_\be\n+BitSetVectorReference< block_size, Alloc > type\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn bitsetvector.hh:461\n+_\bD_\bu_\bn_\be_\b:_\b:_\bR_\ba_\bn_\bg_\be_\bE_\br_\br_\bo_\br\n+Default exception class for range errors.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn exceptions.hh:254\n+_\bD_\bu_\bn_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+Get the 'const' version of a reference to a mutable object.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn genericiterator.hh:87\n+_\bD_\bu_\bn_\be_\b:_\b:_\bm_\bu_\bt_\ba_\bb_\bl_\be_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n+get the 'mutable' version of a reference to a const object\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn genericiterator.hh:116\n+_\bD_\bu_\bn_\be_\b:_\b:_\bG_\be_\bn_\be_\br_\bi_\bc_\bI_\bt_\be_\br_\ba_\bt_\bo_\br\n+Generic class for stl-conforming iterators for container classes with operator\n+[].\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn genericiterator.hh:153\n+_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bo_\br_\bw_\ba_\br_\bd_\bI_\bt_\be_\br_\ba_\bt_\bo_\br_\bF_\ba_\bc_\ba_\bd_\be\n+Base class for stl conformant forward iterators.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn iteratorfacades.hh:141\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00011.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00011.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: dynvector.hh File Reference\n+dune-common: shared_ptr.hh File Reference\n \n \n \n \n \n \n \n@@ -71,55 +71,57 @@\n \n
\n \n
\n
\n Classes |\n-Namespaces
\n-
dynvector.hh File Reference
\n+Namespaces |\n+Functions
\n+
shared_ptr.hh File Reference
\n \n
\n \n-

This file implements a dense vector with a dynamic size. \n+

This file implements several utilities related to std::shared_ptr. \n More...

\n-
#include <cmath>
\n-#include <cstddef>
\n-#include <cstdlib>
\n-#include <complex>
\n-#include <cstring>
\n-#include <initializer_list>
\n-#include <limits>
\n-#include <utility>
\n-#include "boundschecking.hh"
\n-#include "exceptions.hh"
\n-#include "genericiterator.hh"
\n-#include <vector>
\n-#include "densevector.hh"
\n+
#include <memory>
\n+#include <dune/common/typetraits.hh>
\n
\n

Go to the source code of this file.

\n \n \n-\n-\n-\n-\n-\n-\n+\n+\n \n

\n Classes

struct  Dune::DenseMatVecTraits< DynamicVector< K, Allocator > >
 
struct  Dune::FieldTraits< DynamicVector< K, Allocator > >
 
class  Dune::DynamicVector< K, Allocator >
 Construct a vector with a dynamic size. More...
struct  Dune::null_deleter< T >
 implements the Deleter concept of shared_ptr without deleting anything More...
 
\n \n \n \n \n+

\n Namespaces

namespace  Dune
 Dune namespace.
 
\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n

\n+Functions

template<typename T >
std::shared_ptr< T > Dune::stackobject_to_shared_ptr (T &t)
 Create a shared_ptr for a stack-allocated object.
 
template<class T >
auto Dune::wrap_or_move (T &&t)
 Capture R-value reference to shared_ptr.
 
template<class T >
auto Dune::wrap_or_move (T &t)
 Capture L-value reference to std::shared_ptr.
 
\n

Detailed Description

\n-

This file implements a dense vector with a dynamic size.

\n+

This file implements several utilities related to std::shared_ptr.

\n+
Author
Markus Blatt
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,40 +1,40 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n-dynvector.hh File Reference\n-_\bC_\bo_\bm_\bm_\bo_\bn \u00bb _\bD_\be_\bn_\bs_\be_\b _\bM_\ba_\bt_\br_\bi_\bx_\b _\ba_\bn_\bd_\b _\bV_\be_\bc_\bt_\bo_\br_\b _\bT_\be_\bm_\bp_\bl_\ba_\bt_\be_\b _\bL_\bi_\bb_\br_\ba_\br_\by\n-This file implements a dense vector with a dynamic size. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include \n-#include \n-#include \n-#include \n-#include \n-#include \n-#include \n-#include \n-#include \"_\bb_\bo_\bu_\bn_\bd_\bs_\bc_\bh_\be_\bc_\bk_\bi_\bn_\bg_\b._\bh_\bh\"\n-#include \"_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh\"\n-#include \"_\bg_\be_\bn_\be_\br_\bi_\bc_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b._\bh_\bh\"\n-#include \n-#include \"_\bd_\be_\bn_\bs_\be_\bv_\be_\bc_\bt_\bo_\br_\b._\bh_\bh\"\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+shared_ptr.hh File Reference\n+This file implements several utilities related to std::shared_ptr. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include \n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bM_\ba_\bt_\bV_\be_\bc_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>\n-\u00a0 Construct a vector with a dynamic size. _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b<_\b _\bT_\b _\b>\n+\u00a0 implements the Deleter concept of shared_ptr without deleting anything\n+ _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0 _\bD_\bu_\bn_\be namespace.\n \u00a0\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+template\n+std::shared_ptr< T >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br (T &t)\n+\u00a0 Create a shared_ptr for a stack-allocated object.\n+\u00a0\n+template\n+ auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be (T &&t)\n+\u00a0 Capture R-value reference to shared_ptr.\n+\u00a0\n+template\n+ auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be (T &t)\n+\u00a0 Capture L-value reference to std::shared_ptr.\n+\u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-This file implements a dense vector with a dynamic size.\n+This file implements several utilities related to std::shared_ptr.\n+ Author\n+ Markus Blatt\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00011_source.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00011_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: dynvector.hh Source File\n+dune-common: shared_ptr.hh Source File\n \n \n \n \n \n \n \n@@ -74,271 +74,72 @@\n \n
\n \n
\n
\n
\n-
dynvector.hh
\n+
shared_ptr.hh
\n
\n
\n Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
\n
2// vi: set et ts=4 sw=2 sts=2:
\n
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n-
5#ifndef DUNE_DYNVECTOR_HH
\n-
6#define DUNE_DYNVECTOR_HH
\n-
7
\n-
8#include <cmath>
\n-
9#include <cstddef>
\n-
10#include <cstdlib>
\n-
11#include <complex>
\n-
12#include <cstring>
\n-
13#include <initializer_list>
\n-
14#include <limits>
\n-
15#include <utility>
\n-
16
\n-
17#include "boundschecking.hh"
\n-
18#include "exceptions.hh"
\n-
19#include "genericiterator.hh"
\n-
20
\n-
21#include <vector>
\n-
22#include "densevector.hh"
\n-
23
\n-
24namespace Dune {
\n-
25
\n-
34 template< class K, class Allocator > class DynamicVector;
\n-
35 template< class K, class Allocator >
\n-
\n-
36 struct DenseMatVecTraits< DynamicVector< K, Allocator > >
\n-
37 {
\n-\n-
39 typedef std::vector< K, Allocator > container_type;
\n-
40 typedef K value_type;
\n-
41 typedef typename container_type::size_type size_type;
\n-
42 };
\n-
\n-
43
\n-
44 template< class K, class Allocator >
\n-
\n-
45 struct FieldTraits< DynamicVector< K, Allocator > >
\n-
46 {
\n-\n-\n-
49 };
\n-
\n-
50
\n-
57 template< class K, class Allocator = std::allocator< K > >
\n-
\n-
58 class DynamicVector : public DenseVector< DynamicVector< K, Allocator > >
\n-
59 {
\n-
60 std::vector< K, Allocator > _data;
\n-
61
\n-\n-
63 public:
\n-
64 typedef typename Base::size_type size_type;
\n-
65 typedef typename Base::value_type value_type;
\n-
66
\n-
67 typedef std::vector< K, Allocator > container_type;
\n-
68
\n-
69 typedef Allocator allocator_type;
\n-
70
\n-
\n-\n-
73 _data( a )
\n-
74 {}
\n-
\n-
75
\n-
\n-\n-
77 _data( n, value_type(), a )
\n-
78 {}
\n-
\n-
79
\n-
\n-\n-
82 _data( n, c, a )
\n-
83 {}
\n-
\n-
84
\n-
\n-
86 DynamicVector (std::initializer_list<K> const &l) :
\n-
87 _data(l)
\n-
88 {}
\n-
\n-
89
\n-
\n-\n-
92 Base(), _data(x._data)
\n-
93 {}
\n+
5
\n+
6#ifndef DUNE_SHARED_PTR_HH
\n+
7#define DUNE_SHARED_PTR_HH
\n+
8
\n+
9#include <memory>
\n+
10
\n+\n+
17namespace Dune
\n+
18{
\n+
47 template<class T>
\n+
\n+\n+
49 {
\n+
50 void operator() (T*) const {}
\n+
51 };
\n
\n-
94
\n+
52
\n+
71 template<typename T>
\n+
\n+
72 inline std::shared_ptr<T> stackobject_to_shared_ptr(T & t)
\n+
73 {
\n+
74 return std::shared_ptr<T>(&t, null_deleter<T>());
\n+
75 }
\n+
\n+
76
\n+
77
\n+
95 template<class T>
\n
\n-\n-
97 _data(std::move(x._data))
\n-
98 {}
\n-
\n-
99
\n-
100 template< class T >
\n-
\n-\n-
102 _data(x.begin(), x.end(), x.get_allocator())
\n-
103 {}
\n-
\n-
104
\n-
106 template< class X >
\n-
\n-\n-
108 _data(a)
\n-
109 {
\n-
110 const size_type n = x.size();
\n-
111 _data.reserve(n);
\n-
112 for( size_type i =0; i<n ;++i)
\n-
113 _data.push_back( x[ i ] );
\n-
114 }
\n-
\n-
115
\n-
116 using Base::operator=;
\n-
117
\n+
96 auto wrap_or_move(T&& t)
\n+
97 {
\n+
98 return std::make_shared<std::decay_t<T>>(std::forward<T>(t));
\n+
99 }
\n+
\n+
100
\n+
118 template<class T>
\n
\n-\n-
120 {
\n-
121 _data = other._data;
\n-
122 return *this;
\n-
123 }
\n-
\n-
124
\n-
\n-\n-
127 {
\n-
128 _data = std::move(other._data);
\n-
129 return *this;
\n-
130 }
\n-
\n-
131
\n-
132 //==== forward some methods of std::vector
\n-
\n-\n-
138 {
\n-
139 return _data.capacity();
\n-
140 }
\n-
\n-
\n-\n-
142 {
\n-
143 _data.resize(n,c);
\n-
144 }
\n-
\n-
\n-\n-
146 {
\n-
147 _data.reserve(n);
\n-
148 }
\n-
\n-
149
\n-
150 //==== make this thing a vector
\n-
151 size_type size() const { return _data.size(); }
\n-
\n-\n-\n-
154 return _data[i];
\n-
155 }
\n-
\n-
\n-
156 const K & operator[](size_type i) const {
\n-\n-
158 return _data[i];
\n-
159 }
\n-
\n-
160
\n-
\n-
162 K* data() noexcept
\n-
163 {
\n-
164 return _data.data();
\n-
165 }
\n-
\n-
166
\n-
\n-
168 const K* data() const noexcept
\n-
169 {
\n-
170 return _data.data();
\n-
171 }
\n-
\n-
172
\n-
173 const container_type &container () const { return _data; }
\n-
174 container_type &container () { return _data; }
\n-
175 };
\n-
\n-
176
\n-
188 template< class K, class Allocator >
\n-
\n-
189 inline std::istream &operator>> ( std::istream &in,
\n-\n-
191 {
\n-\n-
193 for( typename DynamicVector< K, Allocator >::size_type i = 0; i < w.size(); ++i )
\n-
194 in >> w[ i ];
\n-
195 if(in)
\n-
196 v = std::move(w);
\n-
197 return in;
\n-
198 }
\n-
\n-
199
\n-
202} // end namespace
\n-
203
\n-
204#endif
\n-
Implements a generic iterator class for writing stl conformant iterators.
\n-
Macro for wrapping boundary checks.
\n-
A few common exception classes.
\n-
Implements the dense vector interface, with an exchangeable storage class.
\n-
Stream & operator>>(Stream &stream, std::tuple< Ts... > &t)
Read a std::tuple.
Definition streamoperators.hh:43
\n-
#define DUNE_ASSERT_BOUNDS(cond)
If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do nothing.
Definition boundschecking.hh:30
\n-
STL namespace.
\n+
119 auto wrap_or_move(T& t)
\n+
120 {
\n+\n+
122 }
\n+
\n+
123
\n+
124}
\n+
125#endif
\n+
Traits for type conversions and type information.
\n
Dune namespace.
Definition alignedallocator.hh:13
\n-
Interface for a class of dense vectors over a given field.
Definition densevector.hh:229
\n-
Traits::value_type value_type
export the type representing the field
Definition densevector.hh:250
\n-
Iterator begin()
begin iterator
Definition densevector.hh:347
\n-
size_type size() const
size method
Definition densevector.hh:336
\n-
Iterator end()
end iterator
Definition densevector.hh:353
\n-
Traits::size_type size_type
The type used for the index access and size operation.
Definition densevector.hh:259
\n-
Construct a vector with a dynamic size.
Definition dynvector.hh:59
\n-
void resize(size_type n, value_type c=value_type())
Definition dynvector.hh:141
\n-
DynamicVector(const DynamicVector &x)
Constructor making vector with identical coordinates.
Definition dynvector.hh:91
\n-
Base::size_type size_type
Definition dynvector.hh:64
\n-
std::vector< K, Allocator > container_type
Definition dynvector.hh:67
\n-
size_type size() const
Definition dynvector.hh:151
\n-
K & operator[](size_type i)
Definition dynvector.hh:152
\n-
container_type & container()
Definition dynvector.hh:174
\n-
Base::value_type value_type
Definition dynvector.hh:65
\n-
const K * data() const noexcept
return pointer to underlying array
Definition dynvector.hh:168
\n-
Allocator allocator_type
Definition dynvector.hh:69
\n-
DynamicVector(const allocator_type &a=allocator_type())
Constructor making uninitialized vector.
Definition dynvector.hh:72
\n-
DynamicVector(DynamicVector &&x)
Move constructor.
Definition dynvector.hh:96
\n-
K * data() noexcept
return pointer to underlying array
Definition dynvector.hh:162
\n-
DynamicVector & operator=(DynamicVector &&other)
Move assignment operator.
Definition dynvector.hh:126
\n-
DynamicVector & operator=(const DynamicVector &other)
Copy assignment operator.
Definition dynvector.hh:119
\n-
size_type capacity() const
Number of elements for which memory has been allocated.
Definition dynvector.hh:137
\n-
const container_type & container() const
Definition dynvector.hh:173
\n-
DynamicVector(size_type n, const allocator_type &a=allocator_type())
Definition dynvector.hh:76
\n-
DynamicVector(std::initializer_list< K > const &l)
Construct from a std::initializer_list.
Definition dynvector.hh:86
\n-
DynamicVector(const DynamicVector< T, Allocator > &x)
Definition dynvector.hh:101
\n-
const K & operator[](size_type i) const
Definition dynvector.hh:156
\n-
void reserve(size_type n)
Definition dynvector.hh:145
\n-
DynamicVector(size_type n, value_type c, const allocator_type &a=allocator_type())
Constructor making vector with identical coordinates.
Definition dynvector.hh:81
\n-
DynamicVector(const DenseVector< X > &x, const allocator_type &a=allocator_type())
Copy constructor from another DenseVector.
Definition dynvector.hh:107
\n-\n-
DynamicVector< K, Allocator > derived_type
Definition dynvector.hh:38
\n-
std::vector< K, Allocator > container_type
Definition dynvector.hh:39
\n-
container_type::size_type size_type
Definition dynvector.hh:41
\n-
FieldTraits< K >::real_type real_type
Definition dynvector.hh:48
\n-
FieldTraits< K >::field_type field_type
Definition dynvector.hh:47
\n-
Definition ftraits.hh:26
\n-
T field_type
export the type representing the field
Definition ftraits.hh:28
\n-
T real_type
export the type representing the real type of the field
Definition ftraits.hh:30
\n-
Definition matvectraits.hh:31
\n+
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
\n+
auto wrap_or_move(T &&t)
Capture R-value reference to shared_ptr.
Definition shared_ptr.hh:96
\n+
implements the Deleter concept of shared_ptr without deleting anything
Definition shared_ptr.hh:49
\n+
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition shared_ptr.hh:72
\n+
void operator()(T *) const
Definition shared_ptr.hh:50
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,341 +1,74 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-dynvector.hh\n+shared_ptr.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_DYNVECTOR_HH\n-6#define DUNE_DYNVECTOR_HH\n-7\n-8#include \n-9#include \n-10#include \n-11#include \n-12#include \n-13#include \n-14#include \n-15#include \n-16\n-17#include \"_\bb_\bo_\bu_\bn_\bd_\bs_\bc_\bh_\be_\bc_\bk_\bi_\bn_\bg_\b._\bh_\bh\"\n-18#include \"_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh\"\n-19#include \"_\bg_\be_\bn_\be_\br_\bi_\bc_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b._\bh_\bh\"\n-20\n-21#include \n-22#include \"_\bd_\be_\bn_\bs_\be_\bv_\be_\bc_\bt_\bo_\br_\b._\bh_\bh\"\n-23\n-24namespace _\bD_\bu_\bn_\be {\n-25\n-34 template< class K, class Allocator > class DynamicVector;\n-35 template< class K, class Allocator >\n-_\b3_\b6 struct _\bD_\be_\bn_\bs_\be_\bM_\ba_\bt_\bV_\be_\bc_\bT_\br_\ba_\bi_\bt_\bs< _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br< K, Allocator > >\n-37 {\n-_\b3_\b8 typedef _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b> _\bd_\be_\br_\bi_\bv_\be_\bd_\b__\bt_\by_\bp_\be;\n-_\b3_\b9 typedef std::vector< K, Allocator > _\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br_\b__\bt_\by_\bp_\be;\n-_\b4_\b0 typedef K _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be;\n-_\b4_\b1 typedef typename container_type::size_type _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be;\n-42 };\n-43\n-44 template< class K, class Allocator >\n-_\b4_\b5 struct _\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs< _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br< K, Allocator > >\n-46 {\n-_\b4_\b7 typedef typename _\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bK_\b _\b>_\b:_\b:_\bf_\bi_\be_\bl_\bd_\b__\bt_\by_\bp_\be _\bf_\bi_\be_\bl_\bd_\b__\bt_\by_\bp_\be;\n-_\b4_\b8 typedef typename _\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bK_\b _\b>_\b:_\b:_\br_\be_\ba_\bl_\b__\bt_\by_\bp_\be _\br_\be_\ba_\bl_\b__\bt_\by_\bp_\be;\n-49 };\n-50\n-57 template< class K, class Allocator = std::allocator< K > >\n-_\b5_\b8 class _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br : public _\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br< DynamicVector< K, Allocator > >\n-59 {\n-60 std::vector< K, Allocator > _data;\n-61\n-62 typedef _\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b> > _\bB_\ba_\bs_\be;\n-63 public:\n-_\b6_\b4 typedef typename _\bB_\ba_\bs_\be_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be;\n-_\b6_\b5 typedef typename _\bB_\ba_\bs_\be_\b:_\b:_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be;\n-66\n-_\b6_\b7 typedef std::vector< K, Allocator > _\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br_\b__\bt_\by_\bp_\be;\n-68\n-_\b6_\b9 typedef Allocator _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be;\n-70\n-_\b7_\b2 explicit _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br(const _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be &a = _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be() ) :\n-73 _data( a )\n-74 {}\n-75\n-_\b7_\b6 explicit _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br(_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n, const _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be &a = _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be\n-() ) :\n-77 _data( n, _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be(), a )\n-78 {}\n-79\n-_\b8_\b1 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br( _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n, _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be c, const _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be &a =\n-_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be() ) :\n-82 _data( n, c, a )\n-83 {}\n-84\n-_\b8_\b6 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br (std::initializer_list const &l) :\n-87 _data(l)\n-88 {}\n-89\n-_\b9_\b1 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br(const _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br & x) :\n-92 _\bB_\ba_\bs_\be(), _data(x._data)\n-93 {}\n-94\n-_\b9_\b6 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br(_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br && x) :\n-97 _data(_\bs_\bt_\bd::move(x._data))\n-98 {}\n-99\n-100 template< class T >\n-_\b1_\b0_\b1 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br(const _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bT_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b> & x) :\n-102 _data(x._\bb_\be_\bg_\bi_\bn(), x._\be_\bn_\bd(), x.get_allocator())\n-103 {}\n-104\n-106 template< class X >\n-_\b1_\b0_\b7 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br(const _\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bX_\b _\b> & x, const _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be &a =\n-_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be() ) :\n-108 _data(a)\n-109 {\n-110 const _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n = x._\bs_\bi_\bz_\be();\n-111 _data.reserve(n);\n-112 for( _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i =0; i\n+10\n+11#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n+17namespace _\bD_\bu_\bn_\be\n+18{\n+47 template\n+_\b4_\b8 struct _\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br\n+49 {\n+_\b5_\b0 void _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b(_\b)_\b (T*) const {}\n+51 };\n+52\n+71 template\n+_\b7_\b2 inline std::shared_ptr _\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br(T & t)\n+73 {\n+74 return std::shared_ptr(&t, _\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b<_\bT_\b>());\n+75 }\n+76\n+77\n+95 template\n+_\b9_\b6 auto _\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be(T&& t)\n+97 {\n+98 return std::make_shared>(std::forward(t));\n+99 }\n+100\n+118 template\n+_\b1_\b1_\b9 auto _\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be(T& t)\n 120 {\n-121 _data = other._data;\n-122 return *this;\n-123 }\n-124\n-_\b1_\b2_\b6 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br &_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=(_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br &&other)\n-127 {\n-128 _data = std::move(other._data);\n-129 return *this;\n-130 }\n-131\n-132 //==== forward some methods of std::vector\n-_\b1_\b3_\b7 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bc_\ba_\bp_\ba_\bc_\bi_\bt_\by() const\n-138 {\n-139 return _data.capacity();\n-140 }\n-_\b1_\b4_\b1 void _\br_\be_\bs_\bi_\bz_\be (_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n, _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be c = _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be() )\n-142 {\n-143 _data.resize(n,c);\n-144 }\n-_\b1_\b4_\b5 void _\br_\be_\bs_\be_\br_\bv_\be (_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be n)\n-146 {\n-147 _data.reserve(n);\n-148 }\n-149\n-150 //==== make this thing a vector\n-_\b1_\b5_\b1 _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be _\bs_\bi_\bz_\be() const { return _data.size(); }\n-_\b1_\b5_\b2 K & _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b](_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i) {\n-153 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(i < _\bs_\bi_\bz_\be());\n-154 return _data[i];\n-155 }\n-_\b1_\b5_\b6 const K & _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b](_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i) const {\n-157 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(i < _\bs_\bi_\bz_\be());\n-158 return _data[i];\n-159 }\n-160\n-_\b1_\b6_\b2 K* _\bd_\ba_\bt_\ba() noexcept\n-163 {\n-164 return _data.data();\n-165 }\n-166\n-_\b1_\b6_\b8 const K* _\bd_\ba_\bt_\ba() const noexcept\n-169 {\n-170 return _data.data();\n-171 }\n-172\n-_\b1_\b7_\b3 const _\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br_\b__\bt_\by_\bp_\be &_\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br () const { return _data; }\n-_\b1_\b7_\b4 _\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br_\b__\bt_\by_\bp_\be &_\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br () { return _data; }\n-175 };\n-176\n-188 template< class K, class Allocator >\n-_\b1_\b8_\b9 inline std::istream &_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b>_\b>_\b ( std::istream &in,\n-190 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b> &v )\n-191 {\n-192 _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b> w(v);\n-193 for( typename _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be i = 0; i < w._\bs_\bi_\bz_\be();\n-++i )\n-194 in >> w[ i ];\n-195 if(in)\n-196 v = std::move(w);\n-197 return in;\n-198 }\n-199\n-202} // end namespace\n-203\n-204#endif\n-_\bg_\be_\bn_\be_\br_\bi_\bc_\bi_\bt_\be_\br_\ba_\bt_\bo_\br_\b._\bh_\bh\n-Implements a generic iterator class for writing stl conformant iterators.\n-_\bb_\bo_\bu_\bn_\bd_\bs_\bc_\bh_\be_\bc_\bk_\bi_\bn_\bg_\b._\bh_\bh\n-Macro for wrapping boundary checks.\n-_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh\n-A few common exception classes.\n-_\bd_\be_\bn_\bs_\be_\bv_\be_\bc_\bt_\bo_\br_\b._\bh_\bh\n-Implements the dense vector interface, with an exchangeable storage class.\n-_\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b>_\b>\n-Stream & operator>>(Stream &stream, std::tuple< Ts... > &t)\n-Read a std::tuple.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn streamoperators.hh:43\n-_\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS\n-#define DUNE_ASSERT_BOUNDS(cond)\n-If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do\n-nothing.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn boundschecking.hh:30\n-_\bs_\bt_\bd\n-STL namespace.\n+121 return _\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br(t);\n+122 }\n+123\n+124}\n+125#endif\n+_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\n+Traits for type conversions and type information.\n _\bD_\bu_\bn_\be\n Dune namespace.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn alignedallocator.hh:13\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br\n-Interface for a class of dense vectors over a given field.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn densevector.hh:229\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be\n-Traits::value_type value_type\n-export the type representing the field\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn densevector.hh:250\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bb_\be_\bg_\bi_\bn\n-Iterator begin()\n-begin iterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn densevector.hh:347\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be\n-size_type size() const\n-size method\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn densevector.hh:336\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\be_\bn_\bd\n-Iterator end()\n-end iterator\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn densevector.hh:353\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n-Traits::size_type size_type\n-The type used for the index access and size operation.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn densevector.hh:259\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-Construct a vector with a dynamic size.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:59\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\br_\be_\bs_\bi_\bz_\be\n-void resize(size_type n, value_type c=value_type())\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:141\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(const DynamicVector &x)\n-Constructor making vector with identical coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:91\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n-Base::size_type size_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:64\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br_\b__\bt_\by_\bp_\be\n-std::vector< K, Allocator > container_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:67\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be\n-size_type size() const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:151\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b]\n-K & operator[](size_type i)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:152\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br\n-container_type & container()\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:174\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be\n-Base::value_type value_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:65\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bd_\ba_\bt_\ba\n-const K * data() const noexcept\n-return pointer to underlying array\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:168\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b__\bt_\by_\bp_\be\n-Allocator allocator_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:69\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(const allocator_type &a=allocator_type())\n-Constructor making uninitialized vector.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:72\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(DynamicVector &&x)\n-Move constructor.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:96\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bd_\ba_\bt_\ba\n-K * data() noexcept\n-return pointer to underlying array\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:162\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n-DynamicVector & operator=(DynamicVector &&other)\n-Move assignment operator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:126\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n-DynamicVector & operator=(const DynamicVector &other)\n-Copy assignment operator.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:119\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\ba_\bp_\ba_\bc_\bi_\bt_\by\n-size_type capacity() const\n-Number of elements for which memory has been allocated.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:137\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br\n-const container_type & container() const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:173\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(size_type n, const allocator_type &a=allocator_type())\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:76\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(std::initializer_list< K > const &l)\n-Construct from a std::initializer_list.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:86\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(const DynamicVector< T, Allocator > &x)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:101\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b[_\b]\n-const K & operator[](size_type i) const\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:156\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\br_\be_\bs_\be_\br_\bv_\be\n-void reserve(size_type n)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:145\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(size_type n, value_type c, const allocator_type &a=allocator_type\n-())\n-Constructor making vector with identical coordinates.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:81\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br\n-DynamicVector(const DenseVector< X > &x, const allocator_type &a=allocator_type\n-())\n-Copy constructor from another DenseVector.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:107\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bM_\ba_\bt_\bV_\be_\bc_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be\n-K value_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:40\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bM_\ba_\bt_\bV_\be_\bc_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>_\b:_\b:_\bd_\be_\br_\bi_\bv_\be_\bd_\b__\bt_\by_\bp_\be\n-DynamicVector< K, Allocator > derived_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:38\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bM_\ba_\bt_\bV_\be_\bc_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>_\b:_\b:_\bc_\bo_\bn_\bt_\ba_\bi_\bn_\be_\br_\b__\bt_\by_\bp_\be\n-std::vector< K, Allocator > container_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:39\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bM_\ba_\bt_\bV_\be_\bc_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n-container_type::size_type size_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:41\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>_\b:_\b:_\br_\be_\ba_\bl_\b__\bt_\by_\bp_\be\n-FieldTraits< K >::real_type real_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:48\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bD_\by_\bn_\ba_\bm_\bi_\bc_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bK_\b,_\b _\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b _\b>_\b _\b>_\b:_\b:_\bf_\bi_\be_\bl_\bd_\b__\bt_\by_\bp_\be\n-FieldTraits< K >::field_type field_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dynvector.hh:47\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn ftraits.hh:26\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b:_\b:_\bf_\bi_\be_\bl_\bd_\b__\bt_\by_\bp_\be\n-T field_type\n-export the type representing the field\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn ftraits.hh:28\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b:_\b:_\br_\be_\ba_\bl_\b__\bt_\by_\bp_\be\n-T real_type\n-export the type representing the real type of the field\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn ftraits.hh:30\n-_\bD_\bu_\bn_\be_\b:_\b:_\bD_\be_\bn_\bs_\be_\bM_\ba_\bt_\bV_\be_\bc_\bT_\br_\ba_\bi_\bt_\bs\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn matvectraits.hh:31\n+_\bD_\bu_\bn_\be_\b:_\b:_\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br\n+std::shared_ptr< T > stackobject_to_shared_ptr(T &t)\n+Create a shared_ptr for a stack-allocated object.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:72\n+_\bD_\bu_\bn_\be_\b:_\b:_\bw_\br_\ba_\bp_\b__\bo_\br_\b__\bm_\bo_\bv_\be\n+auto wrap_or_move(T &&t)\n+Capture R-value reference to shared_ptr.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:96\n+_\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br\n+implements the Deleter concept of shared_ptr without deleting anything\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:49\n+_\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b:_\b:_\bs_\bt_\ba_\bc_\bk_\bo_\bb_\bj_\be_\bc_\bt_\b__\bt_\bo_\b__\bs_\bh_\ba_\br_\be_\bd_\b__\bp_\bt_\br\n+std::shared_ptr< T > stackobject_to_shared_ptr(T &t)\n+Create a shared_ptr for a stack-allocated object.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:72\n+_\bD_\bu_\bn_\be_\b:_\b:_\bn_\bu_\bl_\bl_\b__\bd_\be_\bl_\be_\bt_\be_\br_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b(_\b)\n+void operator()(T *) const\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn shared_ptr.hh:50\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00014.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00014.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: filledarray.hh File Reference\n+dune-common: singleton.hh File Reference\n \n \n \n \n \n \n \n@@ -70,42 +70,41 @@\n
\n \n
\n \n
\n \n-
filledarray.hh File Reference
\n+Classes |\n+Namespaces
\n+
singleton.hh File Reference
\n \n
\n \n-

Utility to generate an array with a certain value. \n+

Useful wrapper for creating singletons. \n More...

\n-
#include <array>
\n-#include <cstddef>
\n+\n

Go to the source code of this file.

\n \n+\n+\n+\n+\n+

\n+Classes

class  Dune::Singleton< T >
 An adapter to turn a class into a singleton. More...
 
\n \n \n \n \n-

\n Namespaces

namespace  Dune
 Dune namespace.
 
\n-\n-\n-\n-\n-\n

\n-Functions

template<std::size_t n, class T >
constexpr std::array< T, n > Dune::filledArray (const T &t)
 Return an array filled with the provided value.
 
\n

Detailed Description

\n-

Utility to generate an array with a certain value.

\n+

Useful wrapper for creating singletons.

\n+

Inspired by the article CodeGuru: A Leak-Free Singleton class

\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,25 +1,24 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-filledarray.hh File Reference\n-Utility to generate an array with a certain value. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include \n-#include \n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs\n+singleton.hh File Reference\n+Useful wrapper for creating singletons. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bv_\bi_\bs_\bi_\bb_\bi_\bl_\bi_\bt_\by_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n+C\bCl\bla\bas\bss\bse\bes\bs\n+class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\b<_\b _\bT_\b _\b>\n+\u00a0 An adapter to turn a class into a singleton. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0 _\bD_\bu_\bn_\be namespace.\n \u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template\n-constexpr std::array< T, n >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bf_\bi_\bl_\bl_\be_\bd_\bA_\br_\br_\ba_\by (const T &t)\n-\u00a0 Return an array filled with the provided value.\n-\u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-Utility to generate an array with a certain value.\n+Useful wrapper for creating singletons.\n+Inspired by the article _\bC_\bo_\bd_\be_\bG_\bu_\br_\bu_\b:_\b _\bA_\b _\bL_\be_\ba_\bk_\b-_\bF_\br_\be_\be_\b _\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\b _\bc_\bl_\ba_\bs_\bs\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00014_source.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00014_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: filledarray.hh Source File\n+dune-common: singleton.hh Source File\n \n \n \n \n \n \n \n@@ -74,48 +74,62 @@\n \n
\n \n
\n
\n
\n-
filledarray.hh
\n+
singleton.hh
\n
\n
\n Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
\n
2// vi: set et ts=4 sw=2 sts=2:
\n
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n-
5
\n-
6#ifndef DUNE_COMMON_FILLED_ARRAY_HH
\n-
7#define DUNE_COMMON_FILLED_ARRAY_HH
\n-
8
\n-
13#include <array>
\n-
14#include <cstddef>
\n-
15
\n-
16namespace Dune
\n-
17{
\n-
24
\n-
32 template<std::size_t n, class T>
\n-
\n-
33 constexpr std::array<T, n> filledArray(const T& t)
\n-
34 {
\n-
35 std::array<T, n> arr{};
\n-
36 // this is constexpr in c++17, `arr.fill(t)` is not
\n-
37 for(auto &el : arr)
\n-
38 el = t;
\n-
39 return arr;
\n-
40 }
\n-
\n-
41
\n-
44} // end namespace Dune
\n-
45
\n-
46#endif // DUNE_COMMON_FILLED_ARRAY_HH
\n-
constexpr std::array< T, n > filledArray(const T &t)
Return an array filled with the provided value.
Definition filledarray.hh:33
\n+
5#ifndef DUNE_SINGLETON_HH
\n+
6#define DUNE_SINGLETON_HH
\n+
7
\n+\n+
9
\n+
17namespace Dune
\n+
18{
\n+
54 template<class T>
\n+
\n+\n+
56 {
\n+
57 protected:
\n+
58 /* @brief Protected constructor. */
\n+
59 Singleton() = default;
\n+
60
\n+
61 public:
\n+
62
\n+
63 Singleton(const Singleton&) = delete;
\n+
64 void operator=(const Singleton&) = delete;
\n+
65
\n+
\n+\n+
71 {
\n+
72 static T instance_;
\n+
73 return instance_;
\n+
74 }
\n+
\n+
75 };
\n+
\n+
76
\n+
77} // namespace Dune
\n+
78
\n+
79#endif
\n+
Definition of macros controlling symbol visibility at the ABI level.
\n+
#define DUNE_EXPORT
Export a symbol as part of the public ABI.
Definition visibility.hh:20
\n
Dune namespace.
Definition alignedallocator.hh:13
\n+
An adapter to turn a class into a singleton.
Definition singleton.hh:56
\n+
Singleton()=default
\n+
Singleton(const Singleton &)=delete
\n+
void operator=(const Singleton &)=delete
\n+
static DUNE_EXPORT T & instance()
Get the instance of the singleton.
Definition singleton.hh:70
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,45 +1,66 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-filledarray.hh\n+singleton.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5\n-6#ifndef DUNE_COMMON_FILLED_ARRAY_HH\n-7#define DUNE_COMMON_FILLED_ARRAY_HH\n-8\n-13#include \n-14#include \n-15\n-16namespace _\bD_\bu_\bn_\be\n-17{\n-24\n-32 template\n-_\b3_\b3 constexpr std::array _\bf_\bi_\bl_\bl_\be_\bd_\bA_\br_\br_\ba_\by(const T& t)\n-34 {\n-35 std::array arr{};\n-36 // this is constexpr in c++17, `arr.fill(t)` is not\n-37 for(auto &el : arr)\n-38 el = t;\n-39 return arr;\n-40 }\n-41\n-44} // end namespace Dune\n-45\n-46#endif // DUNE_COMMON_FILLED_ARRAY_HH\n-_\bD_\bu_\bn_\be_\b:_\b:_\bf_\bi_\bl_\bl_\be_\bd_\bA_\br_\br_\ba_\by\n-constexpr std::array< T, n > filledArray(const T &t)\n-Return an array filled with the provided value.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn filledarray.hh:33\n+5#ifndef DUNE_SINGLETON_HH\n+6#define DUNE_SINGLETON_HH\n+7\n+8#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bv_\bi_\bs_\bi_\bb_\bi_\bl_\bi_\bt_\by_\b._\bh_\bh>\n+9\n+17namespace _\bD_\bu_\bn_\be\n+18{\n+54 template\n+_\b5_\b5 class _\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn\n+56 {\n+57 protected:\n+58 /* @brief Protected constructor. */\n+_\b5_\b9 _\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn() = default;\n+60\n+61 public:\n+62\n+_\b6_\b3 _\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn(const _\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn&) = delete;\n+_\b6_\b4 void _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=(const _\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn&) = delete;\n+65\n+_\b7_\b0 _\bD_\bU_\bN_\bE_\b__\bE_\bX_\bP_\bO_\bR_\bT static T& _\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be()\n+71 {\n+72 static T instance_;\n+73 return instance_;\n+74 }\n+75 };\n+76\n+77} // namespace Dune\n+78\n+79#endif\n+_\bv_\bi_\bs_\bi_\bb_\bi_\bl_\bi_\bt_\by_\b._\bh_\bh\n+Definition of macros controlling symbol visibility at the ABI level.\n+_\bD_\bU_\bN_\bE_\b__\bE_\bX_\bP_\bO_\bR_\bT\n+#define DUNE_EXPORT\n+Export a symbol as part of the public ABI.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn visibility.hh:20\n _\bD_\bu_\bn_\be\n Dune namespace.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn alignedallocator.hh:13\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn\n+An adapter to turn a class into a singleton.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn singleton.hh:56\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn\n+Singleton()=default\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn\n+Singleton(const Singleton &)=delete\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=\n+void operator=(const Singleton &)=delete\n+_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bi_\bn_\bg_\bl_\be_\bt_\bo_\bn_\b:_\b:_\bi_\bn_\bs_\bt_\ba_\bn_\bc_\be\n+static DUNE_EXPORT T & instance()\n+Get the instance of the singleton.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn singleton.hh:70\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00017.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00017.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: tuplevector.hh File Reference\n+dune-common: keywords.hh File Reference\n \n \n \n \n \n \n \n@@ -70,52 +70,63 @@\n
\n \n
\n
\n
\n \n-
tuplevector.hh File Reference
\n+Macros
\n+
keywords.hh File Reference
\n \n
\n \n-

Provides the TupleVector class that augments std::tuple by operator[]. \n+

Definitions of several macros that conditionally make C++ syntax available. \n More...

\n-
#include <tuple>
\n-#include <utility>
\n-#include <dune/common/indices.hh>
\n-#include <dune/common/typetraits.hh>
\n-#include <dune/common/std/type_traits.hh>
\n-
\n+\n

Go to the source code of this file.

\n \n-\n-\n-\n-\n-

\n-Classes

class  Dune::TupleVector< T >
 A class augmenting std::tuple by element access via operator[]. More...
 
\n-\n-\n-\n-\n-

\n-Namespaces

namespace  Dune
 Dune namespace.
 
\n-\n-\n-\n-\n+\n+\n+\n+\n+\n

\n-Functions

template<class... T>
constexpr auto Dune::makeTupleVector (T &&... t)
 

\n+Macros

#define DUNE_INLINE_VARIABLE   inline
 
#define DUNE_GENERALIZED_CONSTEXPR   constexpr
 
\n

Detailed Description

\n-

Provides the TupleVector class that augments std::tuple by operator[].

\n-
Author
Carsten Gr\u00e4ser
\n-
\n+

Definitions of several macros that conditionally make C++ syntax available.

\n+

This header contains several macros that enable C++ features depending on your compiler. Most of these features are optional and provide additional functionality like making code constexpr.

\n+

Macro Definition Documentation

\n+\n+

◆ DUNE_GENERALIZED_CONSTEXPR

\n+\n+
\n+
\n+ \n+ \n+ \n+ \n+
#define DUNE_GENERALIZED_CONSTEXPR   constexpr
\n+
\n+\n+
\n+
\n+\n+

◆ DUNE_INLINE_VARIABLE

\n+\n+
\n+
\n+ \n+ \n+ \n+ \n+
#define DUNE_INLINE_VARIABLE   inline
\n+
\n+\n+
\n+
\n+\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "encoding", "source2": "encoding", "unified_diff": "@@ -1 +1 @@\n-utf-8\n+us-ascii\n"}, {"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,33 +1,29 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-tuplevector.hh File Reference\n-Provides the TupleVector class that augments std::tuple by operator[]. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include \n-#include \n-#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bi_\bn_\bd_\bi_\bc_\be_\bs_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n-#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bs_\bt_\bd_\b/_\bt_\by_\bp_\be_\b__\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n+_\bM_\ba_\bc_\br_\bo_\bs\n+keywords.hh File Reference\n+_\bC_\bo_\bm_\bm_\bo_\bn \u00bb _\bU_\bt_\bi_\bl_\bi_\bt_\bi_\be_\bs \u00bb _\bC_\b+_\b+_\b _\bu_\bt_\bi_\bl_\bi_\bt_\bi_\be_\bs_\b _\ba_\bn_\bd_\b _\bb_\ba_\bc_\bk_\bp_\bo_\br_\bt_\bs\n+Definitions of several macros that conditionally make C++ syntax available.\n+_\bM_\bo_\br_\be_\b._\b._\b.\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-C\bCl\bla\bas\bss\bse\bes\bs\n-class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bT_\b _\b>\n-\u00a0 A class augmenting std::tuple by element access via operator[]. _\bM_\bo_\br_\be_\b._\b._\b.\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bI_\bN_\bL_\bI_\bN_\bE_\b__\bV_\bA_\bR_\bI_\bA_\bB_\bL_\bE\u00a0\u00a0\u00a0inline\n \u00a0\n-N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n-namespace \u00a0 _\bD_\bu_\bn_\be\n-\u00a0 _\bD_\bu_\bn_\be namespace.\n-\u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template\n-constexpr auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bm_\ba_\bk_\be_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br (T &&... t)\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bG_\bE_\bN_\bE_\bR_\bA_\bL_\bI_\bZ_\bE_\bD_\b__\bC_\bO_\bN_\bS_\bT_\bE_\bX_\bP_\bR\u00a0\u00a0\u00a0constexpr\n \u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-Provides the TupleVector class that augments std::tuple by operator[].\n- Author\n- Carsten Gr\u00c3\u00a4ser\n+Definitions of several macros that conditionally make C++ syntax available.\n+This header contains several macros that enable C++ features depending on your\n+compiler. Most of these features are optional and provide additional\n+functionality like making code constexpr.\n+*\b**\b**\b**\b**\b* M\bMa\bac\bcr\bro\bo D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn D\bDo\boc\bcu\bum\bme\ben\bnt\bta\bat\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_G\bGE\bEN\bNE\bER\bRA\bAL\bLI\bIZ\bZE\bED\bD_\b_C\bCO\bON\bNS\bST\bTE\bEX\bXP\bPR\bR *\b**\b**\b**\b**\b*\n+#define DUNE_GENERALIZED_CONSTEXPR\u00a0\u00a0\u00a0constexpr\n+*\b**\b**\b**\b**\b* _\b?\b\u25c6_\b?\b\u00a0D\bDU\bUN\bNE\bE_\b_I\bIN\bNL\bLI\bIN\bNE\bE_\b_V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bE *\b**\b**\b**\b**\b*\n+#define DUNE_INLINE_VARIABLE\u00a0\u00a0\u00a0inline\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00017_source.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00017_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: tuplevector.hh Source File\n+dune-common: keywords.hh Source File\n \n \n \n \n \n \n \n@@ -74,120 +74,39 @@\n \n
\n \n
\n \n
\n-
tuplevector.hh
\n+
keywords.hh
\n
\n
\n-Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
\n-
2// vi: set et ts=4 sw=2 sts=2:
\n-
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n-
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n-
5#ifndef DUNE_COMMON_TUPLEVECTOR_HH
\n-
6#define DUNE_COMMON_TUPLEVECTOR_HH
\n-
7
\n-
8#include <tuple>
\n-
9#include <utility>
\n-
10
\n-\n-\n-\n-
14
\n-
15
\n-
16
\n-
23namespace Dune
\n-
24{
\n-
25
\n-
26
\n+Go to the documentation of this file.
1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n+
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n+
3#ifndef DUNE_COMMON_KEYWORDS_HH
\n+
4#define DUNE_COMMON_KEYWORDS_HH
\n+
5
\n+
18#if __cpp_inline_variables >= 201606
\n+
19#define DUNE_INLINE_VARIABLE inline
\n+
20#else
\n+
22
\n+
25#define DUNE_INLINE_VARIABLE
\n+
26#endif
\n
27
\n-
33template<class... T>
\n-
\n-
34class TupleVector : public std::tuple<T...>
\n-
35{
\n-
36 using Base = std::tuple<T...>;
\n-
37
\n-
38 template<class... TT>
\n-
39 using TupleConstructorDetector = decltype(Base(std::declval<TT&&>()...));
\n-
40
\n-
41 template<class... TT>
\n-
42 using hasTupleConstructor = Dune::Std::is_detected<TupleConstructorDetector, TT...>;
\n-
43
\n-
44
\n-
45public:
\n-
46
\n-
53 template<class... TT,
\n-
54 std::enable_if_t<hasTupleConstructor<TT...>::value, int> = 0>
\n-
\n-
55 constexpr TupleVector(TT&&... tt) :
\n-
56 Base(std::forward<TT>(tt)...)
\n-
57 {}
\n-
\n-
58
\n-
\n-
61 constexpr TupleVector()
\n-
62 {}
\n-
\n-
63
\n-
66 template<std::size_t i>
\n-
\n-
67 constexpr decltype(auto) operator[](const Dune::index_constant<i>&) const
\n-
68 {
\n-
69 return std::get<i>(*this);
\n-
70 }
\n-
\n-
71
\n-
74 template<std::size_t i>
\n-
\n-
75 decltype(auto) operator[](const Dune::index_constant<i>&)
\n-
76 {
\n-
77 return std::get<i>(*this);
\n-
78 }
\n-
\n-
79
\n-
\n-
81 static constexpr std::size_t size()
\n-
82 {
\n-
83 return std::tuple_size<Base>::value;
\n-
84 }
\n-
\n-
85};
\n-
\n-
86
\n-
87
\n-
88
\n-
89template<class... T>
\n-
\n-
90constexpr auto makeTupleVector(T&&... t)
\n-
91{
\n-
92 // The std::decay_t<T> is is a slight simplification,
\n-
93 // because std::reference_wrapper needs special care.
\n-
94 return TupleVector<std::decay_t<T>...>(std::forward<T>(t)...);
\n-
95}
\n-
\n-
96
\n-
97
\n-
98
\n-
99} // namespace Dune
\n-
100
\n-
101#endif // DUNE_COMMON_TUPLEVECTOR_HH
\n-
Traits for type conversions and type information.
\n-\n-\n-
std::integral_constant< std::size_t, i > index_constant
An index constant with value i.
Definition indices.hh:30
\n-
typename detected_or< nonesuch, Op, Args... >::value_t is_detected
Detects whether Op<Args...> is valid.
Definition type_traits.hh:141
\n-
STL namespace.
\n-
Dune namespace.
Definition alignedallocator.hh:13
\n-
constexpr auto makeTupleVector(T &&... t)
Definition tuplevector.hh:90
\n-
A class augmenting std::tuple by element access via operator[].
Definition tuplevector.hh:35
\n-
static constexpr std::size_t size()
Number of elements of the tuple.
Definition tuplevector.hh:81
\n-
constexpr TupleVector(TT &&... tt)
Construct from a set of arguments.
Definition tuplevector.hh:55
\n-
constexpr TupleVector()
Default constructor.
Definition tuplevector.hh:61
\n+
28
\n+
29#if __cpp_constexpr >= 201304
\n+
30#define DUNE_GENERALIZED_CONSTEXPR constexpr
\n+
31#else
\n+
33
\n+
36#define DUNE_GENERALIZED_CONSTEXPR
\n+
37#endif
\n+
38
\n+
39
\n+
40#endif // DUNE_COMMON_KEYWORDS_HH
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,124 +1,33 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-tuplevector.hh\n+keywords.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n-2// vi: set et ts=4 sw=2 sts=2:\n-3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n+1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n LICENSE.md in module root\n-4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_COMMON_TUPLEVECTOR_HH\n-6#define DUNE_COMMON_TUPLEVECTOR_HH\n-7\n-8#include \n-9#include \n-10\n-11#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bi_\bn_\bd_\bi_\bc_\be_\bs_\b._\bh_\bh>\n-12#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n-13#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bs_\bt_\bd_\b/_\bt_\by_\bp_\be_\b__\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n-14\n-15\n-16\n-23namespace _\bD_\bu_\bn_\be\n-24{\n-25\n-26\n+2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n+3#ifndef DUNE_COMMON_KEYWORDS_HH\n+4#define DUNE_COMMON_KEYWORDS_HH\n+5\n+18#if __cpp_inline_variables >= 201606\n+_\b1_\b9#define DUNE_INLINE_VARIABLE inline\n+20#else\n+22\n+25#define DUNE_INLINE_VARIABLE\n+26#endif\n 27\n-33template\n-_\b3_\b4class _\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br : public std::tuple\n-35{\n-36 using Base = std::tuple;\n-37\n-38 template\n-39 using TupleConstructorDetector = decltype(Base(std::declval()...));\n-40\n-41 template\n-42 using hasTupleConstructor = _\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\bd_\b:_\b:_\bi_\bs_\b__\bd_\be_\bt_\be_\bc_\bt_\be_\bd;\n-43\n-44\n-45public:\n-46\n-53 template::value, int> = 0>\n-_\b5_\b5 constexpr _\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br(TT&&... tt) :\n-56 Base(_\bs_\bt_\bd::forward(tt)...)\n-57 {}\n-58\n-_\b6_\b1 constexpr _\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br()\n-62 {}\n-63\n-66 template\n-_\b6_\b7 constexpr decltype(auto) operator[](const _\bD_\bu_\bn_\be_\b:_\b:_\bi_\bn_\bd_\be_\bx_\b__\bc_\bo_\bn_\bs_\bt_\ba_\bn_\bt_\b<_\bi_\b>&) const\n-68 {\n-69 return std::get(*this);\n-70 }\n-71\n-74 template\n-_\b7_\b5 decltype(auto) operator[](const _\bD_\bu_\bn_\be_\b:_\b:_\bi_\bn_\bd_\be_\bx_\b__\bc_\bo_\bn_\bs_\bt_\ba_\bn_\bt_\b<_\bi_\b>&)\n-76 {\n-77 return std::get(*this);\n-78 }\n-79\n-_\b8_\b1 static constexpr std::size_t _\bs_\bi_\bz_\be()\n-82 {\n-83 return std::tuple_size::value;\n-84 }\n-85};\n-86\n-87\n-88\n-89template\n-_\b9_\b0constexpr auto _\bm_\ba_\bk_\be_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br(T&&... t)\n-91{\n-92 // The std::decay_t is is a slight simplification,\n-93 // because std::reference_wrapper needs special care.\n-94 return _\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br_\b<_\bs_\bt_\bd_\b:_\b:_\bd_\be_\bc_\ba_\by_\b__\bt_\b<_\bT_\b>...>(std::forward(t)...);\n-95}\n-96\n-97\n-98\n-99} // namespace Dune\n-100\n-101#endif // DUNE_COMMON_TUPLEVECTOR_HH\n-_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\n-Traits for type conversions and type information.\n-_\bt_\by_\bp_\be_\b__\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\n-_\bi_\bn_\bd_\bi_\bc_\be_\bs_\b._\bh_\bh\n-_\bD_\bu_\bn_\be_\b:_\b:_\bi_\bn_\bd_\be_\bx_\b__\bc_\bo_\bn_\bs_\bt_\ba_\bn_\bt\n-std::integral_constant< std::size_t, i > index_constant\n-An index constant with value i.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn indices.hh:30\n-_\bD_\bu_\bn_\be_\b:_\b:_\bS_\bt_\bd_\b:_\b:_\bi_\bs_\b__\bd_\be_\bt_\be_\bc_\bt_\be_\bd\n-typename detected_or< nonesuch, Op, Args... >::value_t is_detected\n-Detects whether Op is valid.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn type_traits.hh:141\n-_\bs_\bt_\bd\n-STL namespace.\n-_\bD_\bu_\bn_\be\n-Dune namespace.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn alignedallocator.hh:13\n-_\bD_\bu_\bn_\be_\b:_\b:_\bm_\ba_\bk_\be_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br\n-constexpr auto makeTupleVector(T &&... t)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn tuplevector.hh:90\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br\n-A class augmenting std::tuple by element access via operator[].\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn tuplevector.hh:35\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be\n-static constexpr std::size_t size()\n-Number of elements of the tuple.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn tuplevector.hh:81\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br\n-constexpr TupleVector(TT &&... tt)\n-Construct from a set of arguments.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn tuplevector.hh:55\n-_\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bV_\be_\bc_\bt_\bo_\br\n-constexpr TupleVector()\n-Default constructor.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn tuplevector.hh:61\n+28\n+29#if __cpp_constexpr >= 201304\n+_\b3_\b0#define DUNE_GENERALIZED_CONSTEXPR constexpr\n+31#else\n+33\n+36#define DUNE_GENERALIZED_CONSTEXPR\n+37#endif\n+38\n+39\n+40#endif // DUNE_COMMON_KEYWORDS_HH\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00020.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00020.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: debugalign.cc File Reference\n+dune-common: quadmath.hh File Reference\n \n \n \n \n \n \n \n@@ -69,47 +69,19 @@\n \n
\n \n
\n
\n
\n- \n-
debugalign.cc File Reference
\n+
quadmath.hh File Reference
\n
\n
\n-
#include <config.h>
\n-#include <cstddef>
\n-#include <cstdlib>
\n-#include <functional>
\n-#include <ios>
\n-#include <iostream>
\n-#include <utility>
\n-#include <dune/common/debugalign.hh>
\n-
\n-\n-\n-\n-\n-

\n-Namespaces

namespace  Dune
 Dune namespace.
 
\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-

\n-Functions

static void Dune::defaultViolatedAlignment (const char *className, std::size_t expectedAlignment, const void *address)
 default alignment violation handler
 
ViolatedAlignmentHandlerDune::violatedAlignmentHandler ()
 access the handler called by violatedAlignment()
 
void Dune::violatedAlignment (const char *className, std::size_t expectedAlignment, const void *address)
 called when an alignment violation is detected
 
\n+\n+

Go to the source code of this file.

\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,35 +1,10 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-debugalign.cc File Reference\n-#include \n-#include \n-#include \n-#include \n-#include \n-#include \n-#include \n-#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bd_\be_\bb_\bu_\bg_\ba_\bl_\bi_\bg_\bn_\b._\bh_\bh>\n-N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n-namespace \u00a0 _\bD_\bu_\bn_\be\n-\u00a0 _\bD_\bu_\bn_\be namespace.\n-\u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n- static void\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bV_\bi_\bo_\bl_\ba_\bt_\be_\bd_\bA_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt (const char\n- *_\bc_\bl_\ba_\bs_\bs_\bN_\ba_\bm_\be, std::size_t expectedAlignment, const\n- void *address)\n-\u00a0 default alignment violation handler\n-\u00a0\n-_\bV_\bi_\bo_\bl_\ba_\bt_\be_\bd_\bA_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt_\bH_\ba_\bn_\bd_\bl_\be_\br &\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bv_\bi_\bo_\bl_\ba_\bt_\be_\bd_\bA_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt_\bH_\ba_\bn_\bd_\bl_\be_\br ()\n-\u00a0 access the handler called by _\bv_\bi_\bo_\bl_\ba_\bt_\be_\bd_\bA_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt_\b(_\b)\n-\u00a0\n- void\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bv_\bi_\bo_\bl_\ba_\bt_\be_\bd_\bA_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt (const char *_\bc_\bl_\ba_\bs_\bs_\bN_\ba_\bm_\be,\n- std::size_t expectedAlignment, const void *address)\n-\u00a0 called when an alignment violation is detected\n-\u00a0\n+quadmath.hh File Reference\n+_\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00023.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00023.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: poolallocator.hh File Reference\n+dune-common: dotproduct.hh File Reference\n \n \n \n \n \n \n \n@@ -73,83 +73,52 @@\n \n \n
\n \n-
poolallocator.hh File Reference
\n+
dotproduct.hh File Reference
\n
\n
\n \n-

An stl-compliant pool allocator. \n+

Provides the functions dot(a,b) := \"$a^H and dotT(a,b) := \"$a^T. \n More...

\n-
#include <numeric>
\n-#include <typeinfo>
\n-#include <iostream>
\n-#include <cassert>
\n-#include <new>
\n+
#include "ftraits.hh"
\n+#include "typetraits.hh"
\n
\n

Go to the source code of this file.

\n \n \n-\n-\n+\n \n-\n-\n-\n-\n-\n-\n-\n-\n-\n+\n \n

\n Classes

class  Dune::Pool< T, s >
 A memory pool of objects. More...
struct  Dune::IsVector< T, class >
 
class  Dune::PoolAllocator< T, s >
 An allocator managing a pool of objects for reuse. More...
 
struct  Dune::PoolAllocator< T, s >::rebind< U >
 Rebind the allocator to another type. More...
 
class  Dune::PoolAllocator< void, s >
 
struct  Dune::PoolAllocator< void, s >::rebind< U >
struct  Dune::IsVector< T, std::void_t< typename T::field_type > >
 
\n \n \n \n \n-\n-\n-\n

\n Namespaces

namespace  Dune
 Dune namespace.
 
namespace  std
 STL namespace.
 
\n \n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n+\n+\n+\n+\n+\n+\n+\n+\n

\n Functions

template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator== (const PoolAllocator< T1, t1 > &, const PoolAllocator< T2, t2 > &)
 
template<typename T1 , std::size_t t1, typename T2 , std::size_t t2>
bool Dune::operator!= (const PoolAllocator< T1, t1 > &, const PoolAllocator< T2, t2 > &)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< T, t1 > &p1, const PoolAllocator< T, t2 > &p2)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< T, t1 > &p1, const PoolAllocator< T, t2 > &p2)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< void, t1 > &, const PoolAllocator< T, t2 > &)
 
template<typename T , std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< void, t1 > &, const PoolAllocator< T, t2 > &)
 
template<std::size_t t1, std::size_t t2>
bool Dune::operator== (const PoolAllocator< void, t1 > &p1, const PoolAllocator< void, t2 > &p2)
 
template<std::size_t t1, std::size_t t2>
bool Dune::operator!= (const PoolAllocator< void, t1 > &p1, const PoolAllocator< void, t2 > &p2)
 
template<class A , class B >
auto Dune::dot (const A &a, const B &b) -> typename std::enable_if< IsNumber< A >::value &&!IsVector< A >::value &&!std::is_same< typename FieldTraits< A >::field_type, typename FieldTraits< A >::real_type > ::value, decltype(conj(a) *b)>::type
 computes the dot product for fundamental data types according to Petsc's VectDot function: dot(a,b) := std::conj(a)*b
 
template<class A , class B >
auto Dune::dotT (const A &a, const B &b) -> decltype(a *b)
 Computes an indefinite vector dot product for fundamental data types according to Petsc's VectTDot function: dotT(a,b) := a*b.
 
\n

Detailed Description

\n-

An stl-compliant pool allocator.

\n-

This file implements the classes Pool and PoolAllocator providing memory allocation for objects in chunks.

Author
Markus Blatt
\n+

Provides the functions dot(a,b) := \"$a^H and dotT(a,b) := \"$a^T.

\n+

The provided dot products dot,dotT are used to compute (indefinite) dot products for fundamental types as well as DUNE vector types, such as DenseVector, FieldVector, ISTLVector. Note that the definition of dot(a,b) conjugates the first argument. This agrees with the behaviour of Matlab and Petsc, but not with BLAS.

Author
J\u00f6 Fahlke, Matthias Wohlmuth
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "encoding", "source2": "encoding", "unified_diff": "@@ -1 +1 @@\n-us-ascii\n+utf-8\n"}, {"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,77 +1,48 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n _\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-poolallocator.hh File Reference\n-An stl-compliant pool allocator. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include \n-#include \n-#include \n-#include \n-#include \n+dotproduct.hh File Reference\n+Provides the functions dot(a,b) := [$a^H \\cdot b $]and dotT(a,b) := [$a^T \\cdot\n+b $]. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include \"_\bf_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\"\n+#include \"_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\"\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n C\bCl\bla\bas\bss\bse\bes\bs\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b<_\b _\bT_\b,_\b _\bs_\b _\b>\n-\u00a0 A memory pool of objects. _\bM_\bo_\br_\be_\b._\b._\b.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bI_\bs_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bT_\b,_\b _\bc_\bl_\ba_\bs_\bs_\b _\b>\n \u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bT_\b,_\b _\bs_\b _\b>\n-\u00a0 An allocator managing a pool of objects for reuse. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bT_\b,_\b _\bs_\b _\b>_\b:_\b:_\br_\be_\bb_\bi_\bn_\bd_\b<_\b _\bU_\b _\b>\n-\u00a0 Rebind the allocator to another type. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bv_\bo_\bi_\bd_\b,_\b _\bs_\b _\b>\n-\u00a0\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bv_\bo_\bi_\bd_\b,_\b _\bs_\b _\b>_\b:_\b:_\br_\be_\bb_\bi_\bn_\bd_\b<_\b _\bU_\b _\b>\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bI_\bs_\bV_\be_\bc_\bt_\bo_\br_\b<_\b _\bT_\b,_\b _\bs_\bt_\bd_\b:_\b:_\bv_\bo_\bi_\bd_\b__\bt_\b<_\b _\bt_\by_\bp_\be_\bn_\ba_\bm_\be_\b _\bT_\b:_\b:_\bf_\bi_\be_\bl_\bd_\b__\bt_\by_\bp_\be_\b _\b>_\b _\b>\n \u00a0\n N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n namespace \u00a0 _\bD_\bu_\bn_\be\n \u00a0 _\bD_\bu_\bn_\be namespace.\n \u00a0\n-namespace \u00a0 _\bs_\bt_\bd\n-\u00a0 STL namespace.\n-\u00a0\n F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< T1, t1 > &, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br<\n- T2, t2 > &)\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< T1, t1 > &, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br<\n- T2, t2 > &)\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< T, t1 > &p1, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br<\n- T, t2 > &p2)\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< T, t1 > &p1, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br<\n- T, t2 > &p2)\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< void, t1 > &, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br<\n- T, t2 > &)\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< void, t1 > &, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br<\n- T, t2 > &)\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< void, t1 > &p1, const\n- _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< void, t2 > &p2)\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b= (const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< void, t1 > &p1, const\n- _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br< void, t2 > &p2)\n+template\n+auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bd_\bo_\bt (const A &a, const B &b) -> typename std::enable_if< _\bI_\bs_\bN_\bu_\bm_\bb_\be_\br<\n+ A >::value &&!_\bI_\bs_\bV_\be_\bc_\bt_\bo_\br< A >::value &&!std::is_same< typename _\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs<\n+ A >::field_type, typename _\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs< A >::real_type > ::value, decltype\n+ (conj(a) *b)>::type\n+\u00a0 computes the dot product for fundamental data types according to Petsc's\n+ VectDot function: dot(a,b) := std::conj(a)*b\n+\u00a0\n+template\n+auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bd_\bo_\bt_\bT (const A &a, const B &b) -> decltype(a *b)\n+\u00a0 Computes an indefinite vector dot product for fundamental data types\n+ according to Petsc's VectTDot function: dotT(a,b) := a*b.\n \u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-An stl-compliant pool allocator.\n-This file implements the classes Pool and PoolAllocator providing memory\n-allocation for objects in chunks.\n+Provides the functions dot(a,b) := [$a^H \\cdot b $]and dotT(a,b) := [$a^T \\cdot\n+b $].\n+The provided dot products dot,dotT are used to compute (indefinite) dot\n+products for fundamental types as well as DUNE vector types, such as\n+DenseVector, FieldVector, ISTLVector. Note that the definition of dot(a,b)\n+conjugates the first argument. This agrees with the behaviour of Matlab and\n+Petsc, but not with BLAS.\n Author\n- Markus Blatt\n+ J\u00c3\u00b6 Fahlke, Matthias Wohlmuth\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00023_source.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00023_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: poolallocator.hh Source File\n+dune-common: dotproduct.hh Source File\n \n \n \n \n \n \n \n@@ -74,519 +74,81 @@\n \n
\n \n
\n
\n
\n-
poolallocator.hh
\n+
dotproduct.hh
\n
\n
\n Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
\n
2// vi: set et ts=4 sw=2 sts=2:
\n
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n-
5#ifndef DUNE_COMMON_POOLALLOCATOR_HH
\n-
6#define DUNE_COMMON_POOLALLOCATOR_HH
\n+
5#ifndef DUNE_DOTPRODUCT_HH
\n+
6#define DUNE_DOTPRODUCT_HH
\n
7
\n-
12#include <numeric>
\n-
13#include <typeinfo>
\n-
14#include <iostream>
\n-
15#include <cassert>
\n-
16#include <new>
\n-
17
\n-
18#ifndef DOXYGEN
\n-
19// forward declarations.
\n-
20// we need to know the test function to declare it friend
\n-
21template<std::size_t size, typename T>
\n-
22struct testPoolMain;
\n-
23#endif
\n-
24
\n-
25namespace Dune
\n-
26{
\n-
27
\n-
28 template<typename T, std::size_t s>
\n-
29 class Pool;
\n-
30
\n-
31 template<typename T, std::size_t s>
\n-
32 class PoolAllocator;
\n-
33
\n-
34}
\n-
35
\n-
36namespace std
\n-
37{
\n-
38 /*
\n-
39 template<class T, std::size_t S>
\n-
40 inline ostream& operator<<(ostream& os, Dune::Pool<T,S>& pool)
\n-
41 {
\n-
42 os<<"pool="<<&pool<<" allocated_="<<pool.allocated_;
\n-
43 return os;
\n-
44 }
\n-
45
\n-
46 template<class T, std::size_t S>
\n-
47 inline ostream& operator<<(ostream& os, Dune::PoolAllocator<T,S>& pool)
\n-
48 {
\n-
49 os<<pool.memoryPool_<<std::endl;
\n-
50 return os;
\n-
51 }
\n-
52 */
\n-
53}
\n-
54
\n-
55
\n-
56namespace Dune
\n-
57{
\n-
88 template<class T, std::size_t s>
\n-
\n-
89 class Pool
\n-
90 {
\n-
91 // make the test function friend
\n-
92 friend struct ::testPoolMain<s,T>;
\n-
93
\n-
94 //friend std::ostream& std::operator<<<>(std::ostream&,Pool<T,s>&);
\n-
95 template< class, std::size_t > friend class PoolAllocator;
\n-
96
\n-
97 private:
\n-
98
\n-
100 struct Reference
\n-
101 {
\n-
102 Reference *next_;
\n-
103 };
\n-
104
\n-
105 public:
\n-
106
\n-
108 typedef T MemberType;
\n-
109
\n-
113 constexpr static int unionSize = (sizeof(MemberType) < sizeof(Reference)) ?
\n-
114 sizeof(Reference) : sizeof(MemberType);
\n-
115
\n-
120 constexpr static int size = (sizeof(MemberType) <= s && sizeof(Reference) <= s) ?
\n-
121 s : unionSize;
\n-
122
\n-
127 constexpr static int alignment = std::lcm(alignof(MemberType), alignof(Reference));
\n-
128
\n-
135 constexpr static int alignedSize = (unionSize % alignment == 0) ?
\n-
136 unionSize :
\n-
137 ((unionSize / alignment + 1) * alignment);
\n-
138
\n-
144 constexpr static int chunkSize = (size % alignment == 0) ?
\n-
145 size : ((size / alignment + 1)* alignment);
\n-
146
\n-
150 constexpr static int elements = (chunkSize / alignedSize);
\n-
151
\n-
152 private:
\n-
154 struct Chunk
\n-
155 {
\n-
156
\n-
157 //friend int testPool<s,T>();
\n-
158
\n-
160 alignas(alignment) char chunk_[chunkSize];
\n-
161
\n-
163 Chunk *next_;
\n-
164 };
\n-
165
\n-
166 public:
\n-
\n-
168 inline Pool();
\n-
\n-
170 inline ~Pool();
\n-
\n-
175 inline void* allocate();
\n-
\n-
180 inline void free(void* o);
\n-
181
\n-
\n-
185 inline void print(std::ostream& os);
\n-
186
\n-
187 private:
\n-
188
\n-
189 // Prevent Copying!
\n-
190 Pool(const Pool<MemberType,s>&);
\n-
191
\n-
192 void operator=(const Pool<MemberType,s>& pool) const;
\n-
194 inline void grow();
\n-
196 Reference *head_;
\n-
198 Chunk *chunks_;
\n-
199 /* @brief The number of currently allocated elements. */
\n-
200 //size_t allocated_;
\n-
201
\n-
202 };
\n-
203
\n-
221 template<class T, std::size_t s>
\n-
\n-\n-
223 {
\n-
224 //friend std::ostream& std::operator<<<>(std::ostream&,PoolAllocator<T,s>&);
\n-
225
\n-
226 public:
\n-
230 typedef T value_type;
\n-
231
\n-
236 constexpr static int size = s * sizeof(value_type);
\n-
237
\n-
241 typedef T* pointer;
\n-
242
\n-
246 typedef const T* const_pointer;
\n-
247
\n-
251 typedef T& reference;
\n-
252
\n-
256 typedef const T& const_reference;
\n-
257
\n-
261 typedef std::size_t size_type;
\n-
262
\n-
266 typedef std::ptrdiff_t difference_type;
\n-
267
\n-
271 inline PoolAllocator();
\n-
272
\n-
276 template<typename U, std::size_t u>
\n-
\n-\n-
278 {
\n-
279 // we allow copying but never copy the pool
\n-
280 // to have a clear ownership of allocated pointers.
\n-
281 }
\n-
\n-
282
\n-
\n-\n-
285 {
\n-
286 // we allow copying but never copy the pool
\n-
287 // to have a clear ownership of allocated pointers.
\n-
288 // For this behaviour we have to implement
\n-
289 // the copy constructor, because the default
\n-
290 // one would copy the pool and deallocation
\n-
291 // of it would break.
\n-
292 }
\n-
\n-
299 inline pointer allocate(std::size_t n, const_pointer hint=0);
\n-
300
\n-
308 inline void deallocate(pointer p, std::size_t n);
\n-
309
\n-
315 inline void construct(pointer p, const_reference value);
\n-
316
\n-
321 inline void destroy(pointer p);
\n-
322
\n-
326 inline pointer address(reference x) const { return &x; }
\n-
327
\n-
328
\n-
332 inline const_pointer address(const_reference x) const { return &x; }
\n-
333
\n-
337 inline int max_size() const noexcept { return 1; }
\n-
338
\n-
342 template<class U>
\n-
\n-
343 struct rebind
\n-
344 {
\n-\n-
346 };
\n-
\n-
347
\n-\n-
350
\n-
351 private:
\n-
355 PoolType memoryPool_;
\n-
356 };
\n-
\n-
357
\n-
358 // specialization for void
\n-
359 template <std::size_t s>
\n-
\n-
360 class PoolAllocator<void,s>
\n-
361 {
\n-
362 public:
\n-
363 typedef void* pointer;
\n-
364 typedef const void* const_pointer;
\n-
365 // reference to void members are impossible.
\n-
366 typedef void value_type;
\n-
\n-
367 template <class U> struct rebind
\n-
368 {
\n-\n-
370 };
\n-
\n-
371 };
\n-
\n-
372
\n-
373
\n-
374 template<typename T1, std::size_t t1, typename T2, std::size_t t2>
\n-
\n-\n-
376 {
\n-
377 return false;
\n-
378 }
\n-
\n-
379
\n-
380
\n-
381 template<typename T1, std::size_t t1, typename T2, std::size_t t2>
\n-
\n-\n-
383 {
\n-
384 return true;
\n-
385 }
\n-
\n-
386
\n-
387 template<typename T, std::size_t t1, std::size_t t2>
\n-
\n-\n-
389 {
\n-
390 return &p1==&p2;
\n-
391 }
\n-
\n-
392
\n-
393
\n-
394 template<typename T, std::size_t t1, std::size_t t2>
\n-
\n-\n-
396 {
\n-
397 return &p1 != &p2;
\n-
398 }
\n-
\n-
399
\n-
400 template<typename T, std::size_t t1, std::size_t t2>
\n-
\n-\n-
402 {
\n-
403 return false;
\n-
404 }
\n-
\n-
405
\n-
406
\n-
407 template<typename T, std::size_t t1, std::size_t t2>
\n-
\n-\n-
409 {
\n-
410 return true;
\n-
411 }
\n-
\n-
412
\n-
413 template<std::size_t t1, std::size_t t2>
\n-
\n-\n-
415 {
\n-
416 return &p1==&p2;
\n-
417 }
\n-
\n-
418
\n-
419 template<std::size_t t1, std::size_t t2>
\n-
\n-\n-
421 {
\n-
422 return &p1!=&p2;
\n-
423 }
\n-
\n-
424
\n-
425 template<class T, std::size_t S>
\n-
\n-\n-
427 : head_(0), chunks_(0) //, allocated_(0)
\n-
428 {
\n-
429 static_assert(sizeof(T)<=unionSize, "Library Error: type T is too big");
\n-
430 static_assert(sizeof(Reference)<=unionSize, "Library Error: type of reference is too big");
\n-
431 static_assert(unionSize<=alignedSize, "Library Error: alignedSize too small");
\n-
432 static_assert(sizeof(T)<=chunkSize, "Library Error: chunkSize must be able to hold at least one value");
\n-
433 static_assert(sizeof(Reference)<=chunkSize, "Library Error: chunkSize must be able to hold at least one reference");
\n-
434 static_assert(chunkSize % alignment == 0, "Library Error: compiler cannot calculate!");
\n-
435 static_assert(elements>=1, "Library Error: we need to hold at least one element!");
\n-
436 static_assert(elements*alignedSize<=chunkSize, "Library Error: aligned elements must fit into chuck!");
\n-
437 }
\n-
\n-
438
\n-
439 template<class T, std::size_t S>
\n-
\n-\n-
441 {
\n-
442 /*
\n-
443 if(allocated_!=0)
\n-
444 std::cerr<<"There are still "<<allocated_<<" allocated elements by the Pool<"<<typeid(T).name()<<","<<S<<"> "
\n-
445 <<static_cast<void*>(this)<<"! This is a memory leak and might result in segfaults"
\n-
446 <<std::endl;
\n-
447 */
\n-
448 // delete the allocated chunks.
\n-
449 Chunk *current=chunks_;
\n-
450
\n-
451 while(current!=0)
\n-
452 {
\n-
453 Chunk *tmp = current;
\n-
454 current = current->next_;
\n-
455 delete tmp;
\n-
456 }
\n-
457 }
\n-
\n-
458
\n-
459 template<class T, std::size_t S>
\n-
\n-
460 inline void Pool<T,S>::print(std::ostream& os)
\n-
461 {
\n-
462 Chunk* current=chunks_;
\n-
463 while(current) {
\n-
464 os<<current<<" ";
\n-
465 current=current->next_;
\n-
466 }
\n-
467 os<<current<<" ";
\n-
468 }
\n-
\n-
\n-
469
\n-
470 template<class T, std::size_t S>
\n-
471 inline void Pool<T,S>::grow()
\n-
472 {
\n-
473 Chunk *newChunk = new Chunk;
\n-
474 newChunk->next_ = chunks_;
\n-
475 chunks_ = newChunk;
\n-
476
\n-
477 char* start = chunks_->chunk_;
\n-
478 char* last = &start[elements*alignedSize];
\n-
479 Reference* ref = new (start) (Reference);
\n-
480
\n-
481 // grow is only called if head==0,
\n-
482 assert(!head_);
\n-
483
\n-
484 head_ = ref;
\n-
485
\n-
486 for(char* element=start+alignedSize; element<last; element=element+alignedSize) {
\n-
487 Reference* next = new (element) (Reference);
\n-
488 ref->next_ = next;
\n-
489 ref = next;
\n-
490 }
\n-
491 ref->next_=0;
\n-
492 }
\n-
493
\n-
494 template<class T, std::size_t S>
\n-
\n-
495 inline void Pool<T,S>::free(void* b)
\n-
496 {
\n-
497 if(b) {
\n-
498#ifndef NDEBUG
\n-
499 Chunk* current=chunks_;
\n-
500 while(current) {
\n-
501 if(static_cast<void*>(current->chunk_)<=b &&
\n-
502 static_cast<void*>(current->chunk_+chunkSize)>b)
\n-
503 break;
\n-
504 current=current->next_;
\n-
505 }
\n-
506 if(!current)
\n-
507 throw std::bad_alloc();
\n-
508#endif
\n-
509 Reference* freed = static_cast<Reference*>(b);
\n-
510 freed->next_ = head_;
\n-
511 head_ = freed;
\n-
512 //--allocated_;
\n-
513 }
\n-
514 else
\n-
515 {
\n-
516 std::cerr<< "Tried to free null pointer! "<<b<<std::endl;
\n-
517 throw std::bad_alloc();
\n-
518 }
\n-
519 }
\n-
\n-
\n-
520
\n-
521 template<class T, std::size_t S>
\n-
\n-
522 inline void* Pool<T,S>::allocate()
\n-
523 {
\n-
524 if(!head_)
\n-
525 grow();
\n-
526
\n-
527 Reference* p = head_;
\n-
528 head_ = p->next_;
\n-
529 //++allocated_;
\n-
530 return p;
\n-
531 }
\n-
\n-
\n-
532
\n-
533 template<class T, std::size_t s>
\n-
\n-\n-
535 { }
\n-
\n-
536
\n-
537 template<class T, std::size_t s>
\n-
538 inline typename PoolAllocator<T,s>::pointer
\n-
\n-\n-
540 {
\n-
541 if(n==1)
\n-
542 return static_cast<T*>(memoryPool_.allocate());
\n-
543 else
\n-
544 throw std::bad_alloc();
\n-
545 }
\n-
\n-
546
\n-
547 template<class T, std::size_t s>
\n-
\n-
548 inline void PoolAllocator<T,s>::deallocate(pointer p, std::size_t n)
\n-
549 {
\n-
550 for(size_t i=0; i<n; i++)
\n-
551 memoryPool_.free(p++);
\n-
552 }
\n-
\n-
553
\n-
554 template<class T, std::size_t s>
\n-
\n-\n-
556 {
\n-
557 ::new (static_cast<void*>(p))T(value);
\n-
558 }
\n-
\n-
559
\n-
560 template<class T, std::size_t s>
\n-
561 inline void PoolAllocator<T,s>::destroy(pointer p)
\n-
562 {
\n-
563 p->~T();
\n-
564 }
\n-
565
\n-
567}
\n-
568#endif
\n-
\n-
\n-
\n-
void construct(pointer p, const_reference value)
Construct an object.
Definition poolallocator.hh:555
\n-
void free(void *o)
Free an object.
Definition poolallocator.hh:495
\n-
~Pool()
Destructor.
Definition poolallocator.hh:440
\n-
void * allocate()
Get a new or recycled object.
Definition poolallocator.hh:522
\n-
void print(std::ostream &os)
Print elements in pool for debugging.
Definition poolallocator.hh:460
\n-
pointer allocate(std::size_t n, const_pointer hint=0)
Allocates objects.
Definition poolallocator.hh:539
\n-
Pool()
Constructor.
Definition poolallocator.hh:426
\n-
void deallocate(pointer p, std::size_t n)
Free objects.
Definition poolallocator.hh:548
\n-
void destroy(pointer p)
Destroy an object without freeing memory.
Definition poolallocator.hh:561
\n-
PoolAllocator()
Constructor.
Definition poolallocator.hh:534
\n-
EnableIfInterOperable< T1, T2, bool >::type operator==(const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
Checks for equality.
Definition iteratorfacades.hh:237
\n-
EnableIfInterOperable< T1, T2, bool >::type operator!=(const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
Checks for inequality.
Definition iteratorfacades.hh:259
\n+
8#include "ftraits.hh"
\n+
9#include "typetraits.hh"
\n+
10
\n+
11namespace Dune {
\n+
26 template<class T, class = void>
\n+
27 struct IsVector : std::false_type {};
\n+
28
\n+
29 template<class T>
\n+
\n+
30 struct IsVector<T, std::void_t<typename T::field_type> >
\n+
31 : std::true_type {};
\n+
\n+
32
\n+
40 template<class A, class B>
\n+
41 auto
\n+
\n+
42 dot(const A & a, const B & b) -> typename std::enable_if<IsNumber<A>::value && !IsVector<A>::value && !std::is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type> ::value, decltype(conj(a)*b)>::type
\n+
43 {
\n+
44 return conj(a)*b;
\n+
45 }
\n+
\n+
46
\n+
56 // fundamental type with A being a real type
\n+
57 template<class A, class B>
\n+
58 auto
\n+
59 dot(const A & a, const B & b) -> typename std::enable_if<IsNumber<A>::value && !IsVector<A>::value && std::is_same<typename FieldTraits<A>::field_type,typename FieldTraits<A>::real_type>::value, decltype(a*b)>::type
\n+
60 {
\n+
61 return a*b;
\n+
62 }
\n+
63
\n+
73 template<typename A, typename B>
\n+
74 auto
\n+
75 dot(const A & a, const B & b) -> typename std::enable_if<IsVector<A>::value, decltype(a.dot(b))>::type
\n+
76 {
\n+
77 return a.dot(b);
\n+
78 }
\n+
88 template<class A, class B>
\n+
89 auto
\n+
\n+
90 dotT(const A & a, const B & b) -> decltype(a*b)
\n+
91 {
\n+
92 return a*b;
\n+
93 }
\n+
\n+
94
\n+
96} // end namespace DUNE
\n+
97
\n+
98#endif // DUNE_DOTPRODUCT_HH
\n+
Type traits to determine the type of reals (when working with complex numbers)
\n+
Traits for type conversions and type information.
\n+
auto dot(const A &a, const B &b) -> typename std::enable_if< IsNumber< A >::value &&!IsVector< A >::value &&!std::is_same< typename FieldTraits< A >::field_type, typename FieldTraits< A >::real_type > ::value, decltype(conj(a) *b)>::type
computes the dot product for fundamental data types according to Petsc's VectDot function: dot(a,...
Definition dotproduct.hh:42
\n+
typename Impl::voider< Types... >::type void_t
Is void for all valid input types. The workhorse for C++11 SFINAE-techniques.
Definition typetraits.hh:40
\n
STL namespace.
\n
Dune namespace.
Definition alignedallocator.hh:13
\n-
Get the 'const' version of a reference to a mutable object.
Definition genericiterator.hh:87
\n-
A memory pool of objects.
Definition poolallocator.hh:90
\n-
static constexpr int alignment
The alignment that suits both the MemberType and the Reference (i.e. their least common multiple).
Definition poolallocator.hh:127
\n-
static constexpr int alignedSize
The aligned size of the type.
Definition poolallocator.hh:135
\n-
static constexpr int chunkSize
The size of each chunk memory chunk.
Definition poolallocator.hh:144
\n-
static constexpr int size
Size requirement. At least one object has to stored.
Definition poolallocator.hh:120
\n-
static constexpr int unionSize
The size of a union of Reference and MemberType.
Definition poolallocator.hh:113
\n-
T MemberType
The type of object we allocate memory for.
Definition poolallocator.hh:108
\n-
static constexpr int elements
The number of element each chunk can hold.
Definition poolallocator.hh:150
\n-
An allocator managing a pool of objects for reuse.
Definition poolallocator.hh:223
\n-
Pool< T, size > PoolType
The type of the memory pool we use.
Definition poolallocator.hh:349
\n-
const_pointer address(const_reference x) const
Convert a reference to a pointer.
Definition poolallocator.hh:332
\n-
const T & const_reference
The constant reference type.
Definition poolallocator.hh:256
\n-
std::size_t size_type
The size type.
Definition poolallocator.hh:261
\n-
T value_type
Type of the values we construct and allocate.
Definition poolallocator.hh:230
\n-
T & reference
The reference type.
Definition poolallocator.hh:251
\n-
PoolAllocator(const PoolAllocator &)
Copy constructor that does not copy the memory pool.
Definition poolallocator.hh:284
\n-
const T * const_pointer
The constant pointer type.
Definition poolallocator.hh:246
\n-
pointer address(reference x) const
Convert a reference to a pointer.
Definition poolallocator.hh:326
\n-
T * pointer
The pointer type.
Definition poolallocator.hh:241
\n-
PoolAllocator(const PoolAllocator< U, u > &)
Copy Constructor that does not copy the memory pool.
Definition poolallocator.hh:277
\n-
std::ptrdiff_t difference_type
The difference_type.
Definition poolallocator.hh:266
\n-
int max_size() const noexcept
Not correctly implemented, yet!
Definition poolallocator.hh:337
\n-
static constexpr int size
The number of objects to fit into one memory chunk allocated.
Definition poolallocator.hh:236
\n-
Rebind the allocator to another type.
Definition poolallocator.hh:344
\n-
PoolAllocator< U, s > other
Definition poolallocator.hh:345
\n-
void value_type
Definition poolallocator.hh:366
\n-
void * pointer
Definition poolallocator.hh:363
\n-
const void * const_pointer
Definition poolallocator.hh:364
\n-
PoolAllocator< U, s > other
Definition poolallocator.hh:369
\n+
auto dotT(const A &a, const B &b) -> decltype(a *b)
Computes an indefinite vector dot product for fundamental data types according to Petsc's VectTDot fu...
Definition dotproduct.hh:90
\n+
Definition dotproduct.hh:27
\n+
T real_type
export the type representing the real type of the field
Definition ftraits.hh:30
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,597 +1,98 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-poolallocator.hh\n+dotproduct.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_COMMON_POOLALLOCATOR_HH\n-6#define DUNE_COMMON_POOLALLOCATOR_HH\n+5#ifndef DUNE_DOTPRODUCT_HH\n+6#define DUNE_DOTPRODUCT_HH\n 7\n-12#include \n-13#include \n-14#include \n-15#include \n-16#include \n-17\n-18#ifndef DOXYGEN\n-19// forward declarations.\n-20// we need to know the test function to declare it friend\n-21template\n-22struct testPoolMain;\n-23#endif\n-24\n-25namespace _\bD_\bu_\bn_\be\n-26{\n-27\n-28 template\n-29 class Pool;\n-30\n-31 template\n-32 class PoolAllocator;\n-33\n-34}\n-35\n-36namespace _\bs_\bt_\bd\n-37{\n-38 /*\n-39 template\n-40 inline ostream& operator<<(ostream& os, Dune::Pool& pool)\n-41 {\n-42 os<<\"pool=\"<<&pool<<\" allocated_=\"<\n-47 inline ostream& operator<<(ostream& os, Dune::PoolAllocator& pool)\n-48 {\n-49 os<\n-_\b8_\b9 class _\bP_\bo_\bo_\bl\n-90 {\n-91 // make the test function friend\n-92 friend struct ::testPoolMain;\n-93\n-94 //friend std::ostream& std::operator<<<>(std::ostream&,Pool&);\n-_\b9_\b5 template< class, std::size_t > friend class _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br;\n-96\n-97 private:\n-98\n-100 struct Reference\n-101 {\n-102 Reference *next_;\n-103 };\n-104\n-105 public:\n-106\n-_\b1_\b0_\b8 typedef T _\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be;\n-109\n-_\b1_\b1_\b3 constexpr static int _\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be = (sizeof(_\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be) < sizeof(Reference)) ?\n-114 sizeof(Reference) : sizeof(_\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be);\n-115\n-_\b1_\b2_\b0 constexpr static int _\bs_\bi_\bz_\be = (sizeof(_\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be) <= s && sizeof(Reference)\n-<= s) ?\n-121 s : _\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be;\n-122\n-_\b1_\b2_\b7 constexpr static int _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt = std::lcm(alignof(_\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be), alignof\n-(Reference));\n-128\n-_\b1_\b3_\b5 constexpr static int _\ba_\bl_\bi_\bg_\bn_\be_\bd_\bS_\bi_\bz_\be = (_\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be % _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt == 0) ?\n-136 _\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be :\n-137 ((_\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be / _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt + 1) * _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt);\n-138\n-_\b1_\b4_\b4 constexpr static int _\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be = (_\bs_\bi_\bz_\be % _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt == 0) ?\n-145 _\bs_\bi_\bz_\be : ((_\bs_\bi_\bz_\be / _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt + 1)* _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt);\n-146\n-_\b1_\b5_\b0 constexpr static int _\be_\bl_\be_\bm_\be_\bn_\bt_\bs = (_\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be / _\ba_\bl_\bi_\bg_\bn_\be_\bd_\bS_\bi_\bz_\be);\n-151\n-152 private:\n-154 struct Chunk\n-155 {\n-156\n-157 //friend int testPool();\n-158\n-160 alignas(_\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt) char chunk_[_\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be];\n-161\n-163 Chunk *next_;\n-164 };\n-165\n-166 public:\n-_\b1_\b6_\b8 inline _\bP_\bo_\bo_\bl();\n-_\b1_\b7_\b0 inline _\b~_\bP_\bo_\bo_\bl();\n-_\b1_\b7_\b5 inline void* _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be();\n-_\b1_\b8_\b0 inline void _\bf_\br_\be_\be(void* o);\n-181\n-_\b1_\b8_\b5 inline void _\bp_\br_\bi_\bn_\bt(std::ostream& os);\n-186\n-187 private:\n-188\n-189 // Prevent Copying!\n-190 _\bP_\bo_\bo_\bl(const _\bP_\bo_\bo_\bl_\b<_\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be_\b,_\bs_\b>&);\n-191\n-192 void operator=(const _\bP_\bo_\bo_\bl_\b<_\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be_\b,_\bs_\b>& pool) const;\n-194 inline void grow();\n-196 Reference *head_;\n-198 Chunk *chunks_;\n-199 /* @brief The number of currently allocated elements. */\n-200 //size_t allocated_;\n-201\n-202 };\n-203\n-221 template\n-_\b2_\b2_\b2 class _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br\n-223 {\n-224 //friend std::ostream& std::operator<<<>(std::\n-ostream&,PoolAllocator&);\n-225\n-226 public:\n-_\b2_\b3_\b0 typedef T _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be;\n-231\n-_\b2_\b3_\b6 constexpr static int _\bs_\bi_\bz_\be = s * sizeof(_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be);\n-237\n-_\b2_\b4_\b1 typedef T* _\bp_\bo_\bi_\bn_\bt_\be_\br;\n-242\n-_\b2_\b4_\b6 typedef const T* _\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br;\n-247\n-_\b2_\b5_\b1 typedef T& _\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n-252\n-_\b2_\b5_\b6 typedef const T& _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be;\n-257\n-_\b2_\b6_\b1 typedef std::size_t _\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be;\n-262\n-_\b2_\b6_\b6 typedef std::ptrdiff_t _\bd_\bi_\bf_\bf_\be_\br_\be_\bn_\bc_\be_\b__\bt_\by_\bp_\be;\n-267\n-271 inline _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br();\n-272\n-276 template\n-_\b2_\b7_\b7 inline _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bU_\b,_\bu_\b>&)\n-278 {\n-279 // we allow copying but never copy the pool\n-280 // to have a clear ownership of allocated pointers.\n-281 }\n-282\n-_\b2_\b8_\b4 _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br&)\n-285 {\n-286 // we allow copying but never copy the pool\n-287 // to have a clear ownership of allocated pointers.\n-288 // For this behaviour we have to implement\n-289 // the copy constructor, because the default\n-290 // one would copy the pool and deallocation\n-291 // of it would break.\n-292 }\n-299 inline _\bp_\bo_\bi_\bn_\bt_\be_\br _\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be(std::size_t n, _\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br hint=0);\n-300\n-308 inline void _\bd_\be_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be(_\bp_\bo_\bi_\bn_\bt_\be_\br p, std::size_t n);\n-309\n-315 inline void _\bc_\bo_\bn_\bs_\bt_\br_\bu_\bc_\bt(_\bp_\bo_\bi_\bn_\bt_\be_\br p, _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be value);\n-316\n-321 inline void _\bd_\be_\bs_\bt_\br_\bo_\by(_\bp_\bo_\bi_\bn_\bt_\be_\br p);\n-322\n-_\b3_\b2_\b6 inline _\bp_\bo_\bi_\bn_\bt_\be_\br _\ba_\bd_\bd_\br_\be_\bs_\bs(_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be x) const { return &x; }\n-327\n-328\n-_\b3_\b3_\b2 inline _\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br _\ba_\bd_\bd_\br_\be_\bs_\bs(_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be x) const { return &x; }\n-333\n-_\b3_\b3_\b7 inline int _\bm_\ba_\bx_\b__\bs_\bi_\bz_\be() const noexcept { return 1; }\n-338\n-342 template\n-_\b3_\b4_\b3 struct _\br_\be_\bb_\bi_\bn_\bd\n-344 {\n-_\b3_\b4_\b5 typedef _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bU_\b,_\bs_\b> _\bo_\bt_\bh_\be_\br;\n-346 };\n-347\n-_\b3_\b4_\b9 typedef _\bP_\bo_\bo_\bl_\b<_\bT_\b,_\bs_\bi_\bz_\be_\b> _\bP_\bo_\bo_\bl_\bT_\by_\bp_\be;\n-350\n-351 private:\n-355 _\bP_\bo_\bo_\bl_\bT_\by_\bp_\be memoryPool_;\n-356 };\n-357\n-358 // specialization for void\n-359 template \n-_\b3_\b6_\b0 class _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br\n-361 {\n-362 public:\n-_\b3_\b6_\b3 typedef void* _\bp_\bo_\bi_\bn_\bt_\be_\br;\n-_\b3_\b6_\b4 typedef const void* _\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br;\n-365 // reference to void members are impossible.\n-_\b3_\b6_\b6 typedef void _\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be;\n-_\b3_\b6_\b7 template struct rebind\n-368 {\n-_\b3_\b6_\b9 typedef _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bU_\b,_\bs_\b> _\bo_\bt_\bh_\be_\br;\n-370 };\n-371 };\n-372\n-373\n-374 template\n-_\b3_\b7_\b5 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b1_\b,_\bt_\b1_\b>&, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b2_\b,_\bt_\b2_\b>&)\n-376 {\n-377 return false;\n-378 }\n-379\n-380\n-381 template\n-_\b3_\b8_\b2 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b1_\b,_\bt_\b1_\b>&, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b2_\b,_\bt_\b2_\b>&)\n-383 {\n-384 return true;\n-385 }\n-386\n-387 template\n-_\b3_\b8_\b8 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bt_\b1_\b>& p1, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bt_\b2_\b>&\n-p2)\n-389 {\n-390 return &p1==&p2;\n-391 }\n-392\n-393\n-394 template\n-_\b3_\b9_\b5 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bt_\b1_\b>& p1, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bt_\b2_\b>&\n-p2)\n-396 {\n-397 return &p1 != &p2;\n-398 }\n-399\n-400 template\n-_\b4_\b0_\b1 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bv_\bo_\bi_\bd_\b,_\bt_\b1_\b>&, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bt_\b2_\b>&)\n-402 {\n-403 return false;\n-404 }\n-405\n-406\n-407 template\n-_\b4_\b0_\b8 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bv_\bo_\bi_\bd_\b,_\bt_\b1_\b>&, const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bt_\b2_\b>&)\n-409 {\n-410 return true;\n-411 }\n-412\n-413 template\n-_\b4_\b1_\b4 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bv_\bo_\bi_\bd_\b,_\bt_\b1_\b>& p1, const\n-_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bv_\bo_\bi_\bd_\b,_\bt_\b2_\b>& p2)\n-415 {\n-416 return &p1==&p2;\n-417 }\n-418\n-419 template\n-_\b4_\b2_\b0 bool _\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=(const _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bv_\bo_\bi_\bd_\b,_\bt_\b1_\b>& p1, const\n-_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bv_\bo_\bi_\bd_\b,_\bt_\b2_\b>& p2)\n-421 {\n-422 return &p1!=&p2;\n-423 }\n-424\n-425 template\n-_\b4_\b2_\b6 inline _\bP_\bo_\bo_\bl_\b<_\bT_\b,_\bS_\b>_\b:_\b:_\bP_\bo_\bo_\bl()\n-427 : head_(0), chunks_(0) //, allocated_(0)\n-428 {\n-429 static_assert(sizeof(T)<=_\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be, \"Library Error: type T is too big\");\n-430 static_assert(sizeof(Reference)<=_\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be, \"Library Error: type of\n-reference is too big\");\n-431 static_assert(_\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be<=_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bS_\bi_\bz_\be, \"Library Error: alignedSize too\n-small\");\n-432 static_assert(sizeof(T)<=_\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be, \"Library Error: chunkSize must be able\n-to hold at least one value\");\n-433 static_assert(sizeof(Reference)<=_\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be, \"Library Error: chunkSize must\n-be able to hold at least one reference\");\n-434 static_assert(_\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be % _\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt == 0, \"Library Error: compiler cannot\n-calculate!\");\n-435 static_assert(_\be_\bl_\be_\bm_\be_\bn_\bt_\bs>=1, \"Library Error: we need to hold at least one\n-element!\");\n-436 static_assert(_\be_\bl_\be_\bm_\be_\bn_\bt_\bs*_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bS_\bi_\bz_\be<=_\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be, \"Library Error: aligned\n-elements must fit into chuck!\");\n-437 }\n-438\n-439 template\n-_\b4_\b4_\b0 inline _\bP_\bo_\bo_\bl_\b<_\bT_\b,_\bS_\b>_\b:_\b:_\b~_\bP_\bo_\bo_\bl()\n-441 {\n-442 /*\n-443 if(allocated_!=0)\n-444 std::cerr<<\"There are still \"< \"\n-445 <(this)<<\"! This is a memory leak and might result in\n-segfaults\"\n-446 <next_;\n-455 delete tmp;\n-456 }\n-457 }\n-458\n-459 template\n-_\b4_\b6_\b0 inline void _\bP_\bo_\bo_\bl_\b<_\bT_\b,_\bS_\b>_\b:_\b:_\bp_\br_\bi_\bn_\bt(std::ostream& os)\n-461 {\n-462 Chunk* current=chunks_;\n-463 while(current) {\n-464 os<next_;\n-466 }\n-467 os<\n-471 inline void _\bP_\bo_\bo_\bl_\b<_\bT_\b,_\bS_\b>_\b:_\b:_\bg_\br_\bo_\bw()\n-472 {\n-473 Chunk *newChunk = new Chunk;\n-474 newChunk->next_ = chunks_;\n-475 chunks_ = newChunk;\n-476\n-477 char* start = chunks_->chunk_;\n-478 char* last = &start[elements*alignedSize];\n-479 Reference* ref = new (start) (Reference);\n-480\n-481 // grow is only called if head==0,\n-482 assert(!head_);\n-483\n-484 head_ = ref;\n-485\n-486 for(char* element=start+alignedSize; elementnext_ = next;\n-489 ref = next;\n-490 }\n-491 ref->next_=0;\n-492 }\n-493\n-494 template\n-_\b4_\b9_\b5 inline void _\bP_\bo_\bo_\bl_\b<_\bT_\b,_\bS_\b>_\b:_\b:_\bf_\br_\be_\be(void* b)\n-496 {\n-497 if(b) {\n-498#ifndef NDEBUG\n-499 Chunk* current=chunks_;\n-500 while(current) {\n-501 if(static_cast(current->chunk_)<=b &&\n-502 static_cast(current->chunk_+chunkSize)>b)\n-503 break;\n-504 current=current->next_;\n-505 }\n-506 if(!current)\n-507 throw std::bad_alloc();\n-508#endif\n-509 Reference* freed = static_cast(b);\n-510 freed->next_ = head_;\n-511 head_ = freed;\n-512 //--allocated_;\n-513 }\n-514 else\n-515 {\n-516 std::cerr<< \"Tried to free null pointer! \"<\n-_\b5_\b2_\b2 inline void* _\bP_\bo_\bo_\bl_\b<_\bT_\b,_\bS_\b>_\b:_\b:_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be()\n-523 {\n-524 if(!head_)\n-525 grow();\n-526\n-527 Reference* p = head_;\n-528 head_ = p->next_;\n-529 //++allocated_;\n-530 return p;\n-531 }\n-532\n-533 template\n-_\b5_\b3_\b4 inline _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bs_\b>_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br()\n-535 { }\n-536\n-537 template\n-538 inline typename _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bs_\b>_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\be_\br\n-_\b5_\b3_\b9 _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bs_\b>_\b:_\b:_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be(std::size_t n, _\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br)\n-540 {\n-541 if(n==1)\n-542 return static_cast(memoryPool_.allocate());\n-543 else\n-544 throw std::bad_alloc();\n-545 }\n-546\n-547 template\n-_\b5_\b4_\b8 inline void _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bs_\b>_\b:_\b:_\bd_\be_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be(_\bp_\bo_\bi_\bn_\bt_\be_\br p, std::size_t n)\n-549 {\n-550 for(size_t i=0; i\n-_\b5_\b5_\b5 inline void _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bs_\b>_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\br_\bu_\bc_\bt(_\bp_\bo_\bi_\bn_\bt_\be_\br p, _\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be value)\n-556 {\n-557 ::new (static_cast(p))T(value);\n-558 }\n-559\n-560 template\n-_\b5_\b6_\b1 inline void _\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\bT_\b,_\bs_\b>_\b:_\b:_\bd_\be_\bs_\bt_\br_\bo_\by(pointer p)\n-562 {\n-563 p->~T();\n-564 }\n-565\n-567}\n-568#endif\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\br_\bu_\bc_\bt\n-void construct(pointer p, const_reference value)\n-Construct an object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:555\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\bf_\br_\be_\be\n-void free(void *o)\n-Free an object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:495\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\b~_\bP_\bo_\bo_\bl\n-~Pool()\n-Destructor.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:440\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be\n-void * allocate()\n-Get a new or recycled object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:522\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\bp_\br_\bi_\bn_\bt\n-void print(std::ostream &os)\n-Print elements in pool for debugging.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:460\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be\n-pointer allocate(std::size_t n, const_pointer hint=0)\n-Allocates objects.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:539\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\bP_\bo_\bo_\bl\n-Pool()\n-Constructor.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:426\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bd_\be_\ba_\bl_\bl_\bo_\bc_\ba_\bt_\be\n-void deallocate(pointer p, std::size_t n)\n-Free objects.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:548\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bd_\be_\bs_\bt_\br_\bo_\by\n-void destroy(pointer p)\n-Destroy an object without freeing memory.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:561\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br\n-PoolAllocator()\n-Constructor.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:534\n-_\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b=_\b=\n-EnableIfInterOperable< T1, T2, bool >::type operator==(const\n-ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2,\n-V2, R2, D > &rhs)\n-Checks for equality.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn iteratorfacades.hh:237\n-_\bD_\bu_\bn_\be_\b:_\b:_\bo_\bp_\be_\br_\ba_\bt_\bo_\br_\b!_\b=\n-EnableIfInterOperable< T1, T2, bool >::type operator!=(const\n-ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2,\n-V2, R2, D > &rhs)\n-Checks for inequality.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn iteratorfacades.hh:259\n+8#include \"_\bf_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\"\n+9#include \"_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\"\n+10\n+11namespace _\bD_\bu_\bn_\be {\n+26 template\n+_\b2_\b7 struct _\bI_\bs_\bV_\be_\bc_\bt_\bo_\br : std::false_type {};\n+28\n+29 template\n+_\b3_\b0 struct _\bI_\bs_\bV_\be_\bc_\bt_\bo_\br >\n+31 : std::true_type {};\n+32\n+40 template\n+41 auto\n+_\b4_\b2 _\bd_\bo_\bt(const A & a, const B & b) -> typename std::enable_if::value\n+&& !_\bI_\bs_\bV_\be_\bc_\bt_\bo_\br_\b<_\bA_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be && !std::is_same::\n+field_type,typename _\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b<_\bA_\b>_\b:_\b:_\br_\be_\ba_\bl_\b__\bt_\by_\bp_\be> ::value, decltype(conj(a)*b)>::\n+type\n+43 {\n+44 return conj(a)*b;\n+45 }\n+46\n+56 // fundamental type with A being a real type\n+57 template\n+58 auto\n+59 _\bd_\bo_\bt(const A & a, const B & b) -> typename std::enable_if::value\n+&& !IsVector::value && std::is_same::\n+field_type,typename _\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b<_\bA_\b>_\b:_\b:_\br_\be_\ba_\bl_\b__\bt_\by_\bp_\be>::value, decltype(a*b)>::type\n+60 {\n+61 return a*b;\n+62 }\n+63\n+73 template\n+74 auto\n+75 _\bd_\bo_\bt(const A & a, const B & b) -> typename std::enable_if::value,\n+decltype(a.dot(b))>::type\n+76 {\n+77 return a.dot(b);\n+78 }\n+88 template\n+89 auto\n+_\b9_\b0 _\bd_\bo_\bt_\bT(const A & a, const B & b) -> decltype(a*b)\n+91 {\n+92 return a*b;\n+93 }\n+94\n+96} // end namespace DUNE\n+97\n+98#endif // DUNE_DOTPRODUCT_HH\n+_\bf_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\n+Type traits to determine the type of reals (when working with complex numbers)\n+_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh\n+Traits for type conversions and type information.\n+_\bD_\bu_\bn_\be_\b:_\b:_\bd_\bo_\bt\n+auto dot(const A &a, const B &b) -> typename std::enable_if< IsNumber< A >::\n+value &&!IsVector< A >::value &&!std::is_same< typename FieldTraits< A >::\n+field_type, typename FieldTraits< A >::real_type > ::value, decltype(conj(a)\n+*b)>::type\n+computes the dot product for fundamental data types according to Petsc's\n+VectDot function: dot(a,...\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dotproduct.hh:42\n+_\bD_\bu_\bn_\be_\b:_\b:_\bv_\bo_\bi_\bd_\b__\bt\n+typename Impl::voider< Types... >::type void_t\n+Is void for all valid input types. The workhorse for C++11 SFINAE-techniques.\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn typetraits.hh:40\n _\bs_\bt_\bd\n STL namespace.\n _\bD_\bu_\bn_\be\n Dune namespace.\n D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn alignedallocator.hh:13\n-_\bD_\bu_\bn_\be_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n-Get the 'const' version of a reference to a mutable object.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn genericiterator.hh:87\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl\n-A memory pool of objects.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:90\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\ba_\bl_\bi_\bg_\bn_\bm_\be_\bn_\bt\n-static constexpr int alignment\n-The alignment that suits both the MemberType and the Reference (i.e. their\n-least common multiple).\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:127\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\ba_\bl_\bi_\bg_\bn_\be_\bd_\bS_\bi_\bz_\be\n-static constexpr int alignedSize\n-The aligned size of the type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:135\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\bc_\bh_\bu_\bn_\bk_\bS_\bi_\bz_\be\n-static constexpr int chunkSize\n-The size of each chunk memory chunk.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:144\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\bs_\bi_\bz_\be\n-static constexpr int size\n-Size requirement. At least one object has to stored.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:120\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\bu_\bn_\bi_\bo_\bn_\bS_\bi_\bz_\be\n-static constexpr int unionSize\n-The size of a union of Reference and MemberType.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:113\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\bM_\be_\bm_\bb_\be_\br_\bT_\by_\bp_\be\n-T MemberType\n-The type of object we allocate memory for.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:108\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\b:_\b:_\be_\bl_\be_\bm_\be_\bn_\bt_\bs\n-static constexpr int elements\n-The number of element each chunk can hold.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:150\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br\n-An allocator managing a pool of objects for reuse.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:223\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bP_\bo_\bo_\bl_\bT_\by_\bp_\be\n-Pool< T, size > PoolType\n-The type of the memory pool we use.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:349\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\ba_\bd_\bd_\br_\be_\bs_\bs\n-const_pointer address(const_reference x) const\n-Convert a reference to a pointer.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:332\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n-const T & const_reference\n-The constant reference type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:256\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be_\b__\bt_\by_\bp_\be\n-std::size_t size_type\n-The size type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:261\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be\n-T value_type\n-Type of the values we construct and allocate.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:230\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\br_\be_\bf_\be_\br_\be_\bn_\bc_\be\n-T & reference\n-The reference type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:251\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br\n-PoolAllocator(const PoolAllocator &)\n-Copy constructor that does not copy the memory pool.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:284\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br\n-const T * const_pointer\n-The constant pointer type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:246\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\ba_\bd_\bd_\br_\be_\bs_\bs\n-pointer address(reference x) const\n-Convert a reference to a pointer.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:326\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\be_\br\n-T * pointer\n-The pointer type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:241\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br\n-PoolAllocator(const PoolAllocator< U, u > &)\n-Copy Constructor that does not copy the memory pool.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:277\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bd_\bi_\bf_\bf_\be_\br_\be_\bn_\bc_\be_\b__\bt_\by_\bp_\be\n-std::ptrdiff_t difference_type\n-The difference_type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:266\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bm_\ba_\bx_\b__\bs_\bi_\bz_\be\n-int max_size() const noexcept\n-Not correctly implemented, yet!\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:337\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\bs_\bi_\bz_\be\n-static constexpr int size\n-The number of objects to fit into one memory chunk allocated.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:236\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\br_\be_\bb_\bi_\bn_\bd\n-Rebind the allocator to another type.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:344\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b:_\b:_\br_\be_\bb_\bi_\bn_\bd_\b:_\b:_\bo_\bt_\bh_\be_\br\n-PoolAllocator< U, s > other\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:345\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bv_\bo_\bi_\bd_\b,_\b _\bs_\b _\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be_\b__\bt_\by_\bp_\be\n-void value_type\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:366\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bv_\bo_\bi_\bd_\b,_\b _\bs_\b _\b>_\b:_\b:_\bp_\bo_\bi_\bn_\bt_\be_\br\n-void * pointer\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:363\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bv_\bo_\bi_\bd_\b,_\b _\bs_\b _\b>_\b:_\b:_\bc_\bo_\bn_\bs_\bt_\b__\bp_\bo_\bi_\bn_\bt_\be_\br\n-const void * const_pointer\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:364\n-_\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bo_\bl_\bA_\bl_\bl_\bo_\bc_\ba_\bt_\bo_\br_\b<_\b _\bv_\bo_\bi_\bd_\b,_\b _\bs_\b _\b>_\b:_\b:_\br_\be_\bb_\bi_\bn_\bd_\b:_\b:_\bo_\bt_\bh_\be_\br\n-PoolAllocator< U, s > other\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn poolallocator.hh:369\n+_\bD_\bu_\bn_\be_\b:_\b:_\bd_\bo_\bt_\bT\n+auto dotT(const A &a, const B &b) -> decltype(a *b)\n+Computes an indefinite vector dot product for fundamental data types according\n+to Petsc's VectTDot fu...\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dotproduct.hh:90\n+_\bD_\bu_\bn_\be_\b:_\b:_\bI_\bs_\bV_\be_\bc_\bt_\bo_\br\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn dotproduct.hh:27\n+_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\be_\bl_\bd_\bT_\br_\ba_\bi_\bt_\bs_\b:_\b:_\br_\be_\ba_\bl_\b__\bt_\by_\bp_\be\n+T real_type\n+export the type representing the real type of the field\n+D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn ftraits.hh:30\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00026.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00026.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: float_cmp.hh File Reference\n+dune-common: boundschecking.hh File Reference\n \n \n \n \n \n \n \n@@ -70,101 +70,33 @@\n \n
\n
\n \n-
float_cmp.hh File Reference
\n+Macros
\n+
boundschecking.hh File Reference
\n \n
\n \n-

Various ways to compare floating-point numbers. \n+

Macro for wrapping boundary checks. \n More...

\n-
#include "float_cmp.cc"
\n+\n

Go to the source code of this file.

\n \n-\n-\n-\n-\n-\n-\n-\n-

\n-Classes

struct  Dune::FloatCmp::DefaultEpsilon< T, style >
 mapping from a value type and a compare style to a default epsilon More...
 
class  Dune::FloatCmpOps< T, cstyle_, rstyle_ >
 Class encapsulating a default epsilon. More...
 
\n-\n-\n-\n-\n-\n-\n-

\n-Namespaces

namespace  Dune
 Dune namespace.
 
namespace  Dune::FloatCmp
 
\n-\n-\n-\n-\n-\n-

\n-Enumerations

enum  Dune::FloatCmp::CmpStyle { Dune::FloatCmp::relativeWeak\n-, Dune::FloatCmp::relativeStrong\n-, Dune::FloatCmp::absolute\n-, Dune::FloatCmp::defaultCmpStyle = relativeWeak\n- }
 
enum  Dune::FloatCmp::RoundingStyle {
\n-  Dune::FloatCmp::towardZero\n-, Dune::FloatCmp::towardInf\n-, Dune::FloatCmp::downward\n-, Dune::FloatCmp::upward\n-,
\n-  Dune::FloatCmp::defaultRoundingStyle = towardZero\n-
\n- }
 
\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n+\n+\n+\n+\n

\n-Functions

template<class T , CmpStyle style>
bool Dune::FloatCmp::eq (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test for equality using epsilon
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::ne (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test for inequality using epsilon
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::gt (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first greater than second
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::lt (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first lesser than second
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::ge (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first greater or equal second
 
template<class T , CmpStyle style>
bool Dune::FloatCmp::le (const T &first, const T &second, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, style >::value())
 test if first lesser or equal second
 
template<class I , class T , CmpStyle cstyle, RoundingStyle rstyle>
Dune::FloatCmp::round (const T &val, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, cstyle >::value())
 round using epsilon
 
template<class I , class T , CmpStyle cstyle, RoundingStyle rstyle>
Dune::FloatCmp::trunc (const T &val, typename EpsilonType< T >::Type epsilon=DefaultEpsilon< T, cstyle >::value())
 truncate using epsilon
 

\n+Macros

#define DUNE_ASSERT_BOUNDS(cond)
 If DUNE_CHECK_BOUNDS is defined: check if condition cond holds; otherwise, do nothing.
 
\n

Detailed Description

\n-

Various ways to compare floating-point numbers.

\n+

Macro for wrapping boundary checks.

\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,81 +1,20 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bE_\bn_\bu_\bm_\be_\br_\ba_\bt_\bi_\bo_\bn_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n-float_cmp.hh File Reference\n-Various ways to compare floating-point numbers. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include \"_\bf_\bl_\bo_\ba_\bt_\b__\bc_\bm_\bp_\b._\bc_\bc\"\n+_\bM_\ba_\bc_\br_\bo_\bs\n+boundschecking.hh File Reference\n+Macro for wrapping boundary checks. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-C\bCl\bla\bas\bss\bse\bes\bs\n-struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\b _\bT_\b,_\b _\bs_\bt_\by_\bl_\be_\b _\b>\n-\u00a0 mapping from a value type and a compare style to a default epsilon\n- _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n- class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b<_\b _\bT_\b,_\b _\bc_\bs_\bt_\by_\bl_\be_\b__\b,_\b _\br_\bs_\bt_\by_\bl_\be_\b__\b _\b>\n-\u00a0 Class encapsulating a default epsilon. _\bM_\bo_\br_\be_\b._\b._\b.\n-\u00a0\n-N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n-namespace \u00a0 _\bD_\bu_\bn_\be\n-\u00a0 _\bD_\bu_\bn_\be namespace.\n-\u00a0\n-namespace \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp\n-\u00a0\n-E\bEn\bnu\bum\bme\ber\bra\bat\bti\bio\bon\bns\bs\n-enum \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bC_\bm_\bp_\bS_\bt_\by_\bl_\be { _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\br_\be_\bl_\ba_\bt_\bi_\bv_\be_\bW_\be_\ba_\bk , _\bD_\bu_\bn_\be_\b:_\b:\n- _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\br_\be_\bl_\ba_\bt_\bi_\bv_\be_\bS_\bt_\br_\bo_\bn_\bg , _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\ba_\bb_\bs_\bo_\bl_\bu_\bt_\be , _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:\n- _\bd_\be_\bf_\ba_\bu_\bl_\bt_\bC_\bm_\bp_\bS_\bt_\by_\bl_\be = relativeWeak }\n-\u00a0\n-enum \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be {\n- \u00a0\u00a0_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bt_\bo_\bw_\ba_\br_\bd_\bZ_\be_\br_\bo , _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bt_\bo_\bw_\ba_\br_\bd_\bI_\bn_\bf , _\bD_\bu_\bn_\be_\b:_\b:\n- _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bd_\bo_\bw_\bn_\bw_\ba_\br_\bd , _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bu_\bp_\bw_\ba_\br_\bd ,\n- \u00a0\u00a0_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be = towardZero\n- }\n-\u00a0\n-F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\be_\bq (const T &first, const T &second, typename\n- _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, style >::value())\n-\u00a0 test for equality using epsilon\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bn_\be (const T &first, const T &second, typename\n- _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, style >::value())\n-\u00a0 test for inequality using epsilon\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bg_\bt (const T &first, const T &second, typename\n- _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, style >::value())\n-\u00a0 test if first greater than second\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bl_\bt (const T &first, const T &second, typename\n- _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, style >::value())\n-\u00a0 test if first lesser than second\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bg_\be (const T &first, const T &second, typename\n- _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, style >::value())\n-\u00a0 test if first greater or equal second\n-\u00a0\n-template\n-bool\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bl_\be (const T &first, const T &second, typename\n- _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, style >::value())\n-\u00a0 test if first lesser or equal second\n-\u00a0\n-template\n- I\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\br_\bo_\bu_\bn_\bd (const T &val, typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type\n- epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, cstyle >::value())\n-\u00a0 round using epsilon\n-\u00a0\n-template\n- I\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bt_\br_\bu_\bn_\bc (const T &val, typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be< T >::Type\n- epsilon=_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn< T, cstyle >::value())\n-\u00a0 truncate using epsilon\n+M\bMa\bac\bcr\bro\bos\bs\n+#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bA_\bS_\bS_\bE_\bR_\bT_\b__\bB_\bO_\bU_\bN_\bD_\bS(cond)\n+\u00a0 If DUNE_CHECK_BOUNDS is defined: check if condition c\bco\bon\bnd\bd holds;\n+ otherwise, do nothing.\n \u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-Various ways to compare floating-point numbers.\n+Macro for wrapping boundary checks.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00026_source.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00026_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: float_cmp.hh Source File\n+dune-common: boundschecking.hh Source File\n \n \n \n \n \n \n \n@@ -74,197 +74,44 @@\n \n
\n \n
\n
\n
\n-
float_cmp.hh
\n+
boundschecking.hh
\n
\n
\n-Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
\n-
2// vi: set et ts=4 sw=2 sts=2:
\n-
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n-
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n-
5#ifndef DUNE_COMMON_FLOAT_CMP_HH
\n-
6#define DUNE_COMMON_FLOAT_CMP_HH
\n+Go to the documentation of this file.
1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n+
2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n+
3#ifndef DUNE_BOUNDSCHECKING_HH
\n+
4#define DUNE_BOUNDSCHECKING_HH
\n+
5
\n+\n
7
\n-
97namespace Dune {
\n-
100 namespace FloatCmp {
\n-
101 // basic constants
\n-\n-\n-
128
\n-
129 template<class T> struct EpsilonType;
\n-
130
\n-
132
\n-
137 template<class T, CmpStyle style = defaultCmpStyle>
\n-
\n-\n-
140 static typename EpsilonType<T>::Type value();
\n-
141 };
\n-
\n-
142
\n-
143 // operations in functional style
\n-
144
\n-
147
\n-
149
\n-
156 template <class T, CmpStyle style /*= defaultCmpStyle*/>
\n-
157 bool eq(const T &first,
\n-
158 const T &second,
\n-\n-
161
\n-
169 template <class T, CmpStyle style /*= defaultCmpStyle*/>
\n-
170 bool ne(const T &first,
\n-
171 const T &second,
\n-\n-
174
\n-
185 template <class T, CmpStyle style /*= defaultCmpStyle*/>
\n-
186 bool gt(const T &first,
\n-
187 const T &second,
\n-\n-
190
\n-
201 template <class T, CmpStyle style /*= defaultCmpStyle*/>
\n-
202 bool lt(const T &first,
\n-
203 const T &second,
\n-\n-
206
\n-
217 template <class T, CmpStyle style /*= defaultCmpStyle*/>
\n-
218 bool ge(const T &first,
\n-
219 const T &second,
\n-\n-
222
\n-
233 template <class T, CmpStyle style /*= defaultCmpStyle*/>
\n-
234 bool le(const T &first,
\n-
235 const T &second,
\n-\n-
237
\n-
238 // rounding operations
\n-
240
\n-
253 template<class I, class T, CmpStyle cstyle /*= defaultCmpStyle*/, RoundingStyle rstyle /*= defaultRoundingStyle*/>
\n-
254 I round(const T &val, typename EpsilonType<T>::Type epsilon = DefaultEpsilon<T, cstyle>::value());
\n-
255 // truncation
\n-
257
\n-
270 template<class I, class T, CmpStyle cstyle /*= defaultCmpStyle*/, RoundingStyle rstyle /*= defaultRoundingStyle*/>
\n-
271 I trunc(const T &val, typename EpsilonType<T>::Type epsilon = DefaultEpsilon<T, cstyle>::value());
\n-
272
\n-
274 // group FloatCmp
\n-
275 } //namespace FloatCmp
\n-
276
\n-
277
\n-
278 // oo interface
\n-
280
\n-
286 template<class T, FloatCmp::CmpStyle cstyle_ = FloatCmp::defaultCmpStyle,
\n-\n-
\n-\n-\n-\n-
291
\n-
292 public:
\n-
293 // record template parameters
\n-
295 static const CmpStyle cstyle = cstyle_;
\n-
297 static const RoundingStyle rstyle = rstyle_;
\n-
299 typedef T ValueType;
\n-
301
\n-\n-
305
\n-
306 private:
\n-
307 EpsilonType epsilon_;
\n-
308
\n-\n-
310
\n-
311 public:
\n-
313
\n-\n-
317
\n-
319 EpsilonType epsilon() const;
\n-
321 void epsilon(EpsilonType epsilon__);
\n-
322
\n-
324 bool eq(const ValueType &first, const ValueType &second) const;
\n-
326
\n-
329 bool ne(const ValueType &first, const ValueType &second) const;
\n-
331
\n-
335 bool gt(const ValueType &first, const ValueType &second) const;
\n-
337
\n-
341 bool lt(const ValueType &first, const ValueType &second) const;
\n-
343
\n-
347 bool ge(const ValueType &first, const ValueType &second) const;
\n-
349
\n-
353 bool le(const ValueType &first, const ValueType &second) const;
\n-
354
\n-
356
\n-
365 template<class I>
\n-
366 I round(const ValueType &val) const;
\n-
367
\n-
369
\n-
378 template<class I>
\n-
379 I trunc(const ValueType &val) const;
\n-
380
\n-
381 };
\n-
\n-
382
\n-
383} //namespace Dune
\n-
384
\n-
385#include "float_cmp.cc"
\n-
386
\n-
387#endif //DUNE_COMMON_FLOAT_CMP_HH
\n-\n-
bool ne(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test for inequality using epsilon
Definition float_cmp.cc:151
\n-
CmpStyle
Definition float_cmp.hh:104
\n-
bool eq(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test for equality using epsilon
Definition float_cmp.cc:144
\n-
I round(const T &val, typename EpsilonType< T >::Type epsilon)
round using epsilon
Definition float_cmp.cc:311
\n-
I trunc(const T &val, typename EpsilonType< T >::Type epsilon)
truncate using epsilon
Definition float_cmp.cc:407
\n-
RoundingStyle
Definition float_cmp.hh:116
\n-
bool lt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first lesser than second
Definition float_cmp.cc:165
\n-
bool gt(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first greater than second
Definition float_cmp.cc:158
\n-
bool ge(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first greater or equal second
Definition float_cmp.cc:172
\n-
bool le(const T &first, const T &second, typename EpsilonType< T >::Type epsilon)
test if first lesser or equal second
Definition float_cmp.cc:179
\n-
@ defaultCmpStyle
the global default compare style (relative_weak)
Definition float_cmp.hh:112
\n-
@ relativeStrong
|a-b|/|a| <= epsilon && |a-b|/|b| <= epsilon
Definition float_cmp.hh:108
\n-
@ relativeWeak
|a-b|/|a| <= epsilon || |a-b|/|b| <= epsilon
Definition float_cmp.hh:106
\n-
@ absolute
|a-b| <= epsilon
Definition float_cmp.hh:110
\n-
@ towardZero
always round toward 0
Definition float_cmp.hh:118
\n-
@ towardInf
always round away from 0
Definition float_cmp.hh:120
\n-
@ upward
round toward
Definition float_cmp.hh:124
\n-
@ downward
round toward
Definition float_cmp.hh:122
\n-
@ defaultRoundingStyle
the global default rounding style (toward_zero)
Definition float_cmp.hh:126
\n-
Dune namespace.
Definition alignedallocator.hh:13
\n-
T Type
The epsilon type corresponding to value type T.
Definition float_cmp.cc:25
\n-
mapping from a value type and a compare style to a default epsilon
Definition float_cmp.hh:138
\n-
static EpsilonType< T >::Type value()
Returns the default epsilon for the given value type and compare style.
\n-
Class encapsulating a default epsilon.
Definition float_cmp.hh:288
\n-
bool le(const ValueType &first, const ValueType &second) const
test if first lesser or equal second
Definition float_cmp.cc:486
\n-
bool eq(const ValueType &first, const ValueType &second) const
test for equality using epsilon
Definition float_cmp.cc:451
\n-
static const CmpStyle cstyle
How comparisons are done.
Definition float_cmp.hh:295
\n-
bool lt(const ValueType &first, const ValueType &second) const
test if first lesser than second
Definition float_cmp.cc:472
\n-
bool ge(const ValueType &first, const ValueType &second) const
test if first greater or equal second
Definition float_cmp.cc:479
\n-
static const RoundingStyle rstyle
How rounding is done.
Definition float_cmp.hh:297
\n-
FloatCmp::EpsilonType< T >::Type EpsilonType
Type of the epsilon.
Definition float_cmp.hh:304
\n-
bool ne(const ValueType &first, const ValueType &second) const
test for inequality using epsilon
Definition float_cmp.cc:458
\n-
T ValueType
Type of the values to compare.
Definition float_cmp.hh:299
\n-
EpsilonType epsilon() const
return the current epsilon
Definition float_cmp.cc:436
\n-
I round(const ValueType &val) const
round using epsilon
Definition float_cmp.cc:495
\n-
I trunc(const ValueType &val) const
truncate using epsilon
Definition float_cmp.cc:503
\n-
bool gt(const ValueType &first, const ValueType &second) const
test if first greater than second
Definition float_cmp.cc:465
\n+
19#ifndef DUNE_ASSERT_BOUNDS
\n+
20#if defined(DUNE_CHECK_BOUNDS) || defined(DOXYGEN)
\n+
21
\n+
\n+
30#define DUNE_ASSERT_BOUNDS(cond) \\
\n+
31 do { \\
\n+
32 if (!(cond)) \\
\n+
33 DUNE_THROW(Dune::RangeError, "Index out of bounds."); \\
\n+
34 } while (false)
\n+
\n+
35
\n+
36#else
\n+
37#define DUNE_ASSERT_BOUNDS(cond)
\n+
38#endif
\n+
39#endif
\n+
40
\n+
41/* @} */
\n+
42
\n+
43#endif // DUNE_BOUNDSCHECKING_HH
\n+
A few common exception classes.
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,298 +1,37 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-float_cmp.hh\n+boundschecking.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n-2// vi: set et ts=4 sw=2 sts=2:\n-3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n+1// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n LICENSE.md in module root\n-4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n-5#ifndef DUNE_COMMON_FLOAT_CMP_HH\n-6#define DUNE_COMMON_FLOAT_CMP_HH\n+2// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n+3#ifndef DUNE_BOUNDSCHECKING_HH\n+4#define DUNE_BOUNDSCHECKING_HH\n+5\n+6#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh>\n 7\n-97namespace _\bD_\bu_\bn_\be {\n-100 namespace FloatCmp {\n-101 // basic constants\n-_\b1_\b0_\b4 enum _\bC_\bm_\bp_\bS_\bt_\by_\bl_\be {\n-_\b1_\b0_\b6 _\br_\be_\bl_\ba_\bt_\bi_\bv_\be_\bW_\be_\ba_\bk,\n-_\b1_\b0_\b8 _\br_\be_\bl_\ba_\bt_\bi_\bv_\be_\bS_\bt_\br_\bo_\bn_\bg,\n-_\b1_\b1_\b0 _\ba_\bb_\bs_\bo_\bl_\bu_\bt_\be,\n-112 _\bd_\be_\bf_\ba_\bu_\bl_\bt_\bC_\bm_\bp_\bS_\bt_\by_\bl_\be = _\br_\be_\bl_\ba_\bt_\bi_\bv_\be_\bW_\be_\ba_\bk\n-_\b1_\b1_\b3 };\n-_\b1_\b1_\b6 enum _\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be {\n-_\b1_\b1_\b8 _\bt_\bo_\bw_\ba_\br_\bd_\bZ_\be_\br_\bo,\n-_\b1_\b2_\b0 _\bt_\bo_\bw_\ba_\br_\bd_\bI_\bn_\bf,\n-_\b1_\b2_\b2 _\bd_\bo_\bw_\bn_\bw_\ba_\br_\bd,\n-_\b1_\b2_\b4 _\bu_\bp_\bw_\ba_\br_\bd,\n-126 _\bd_\be_\bf_\ba_\bu_\bl_\bt_\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be = _\bt_\bo_\bw_\ba_\br_\bd_\bZ_\be_\br_\bo\n-_\b1_\b2_\b7 };\n-128\n-129 template struct EpsilonType;\n-130\n-132\n-137 template\n-_\b1_\b3_\b8 struct _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn {\n-_\b1_\b4_\b0 static typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be _\bv_\ba_\bl_\bu_\be();\n-141 };\n-142\n-143 // operations in functional style\n-144\n-147\n-149\n-156 template \n-157 bool _\be_\bq(const T &first,\n-158 const T &second,\n-159 typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon = _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-161\n-169 template \n-170 bool _\bn_\be(const T &first,\n-171 const T &second,\n-172 typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon = _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-174\n-185 template \n-186 bool _\bg_\bt(const T &first,\n-187 const T &second,\n-188 typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon = _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-190\n-201 template \n-202 bool _\bl_\bt(const T &first,\n-203 const T &second,\n-204 typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon = _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-206\n-217 template \n-218 bool _\bg_\be(const T &first,\n-219 const T &second,\n-220 typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon = _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-222\n-233 template \n-234 bool _\bl_\be(const T &first,\n-235 const T &second,\n-236 typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon = _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-237\n-238 // rounding operations\n-240\n-253 template\n-254 I _\br_\bo_\bu_\bn_\bd(const T &val, typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon =\n-_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bc_\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-255 // truncation\n-257\n-270 template\n-271 I _\bt_\br_\bu_\bn_\bc(const T &val, typename _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be epsilon =\n-_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bT_\b,_\b _\bc_\bs_\bt_\by_\bl_\be_\b>_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-272\n-274 // group FloatCmp\n-275 } //namespace FloatCmp\n-276\n-277\n-278 // oo interface\n-280\n-286 template\n-_\b2_\b8_\b8 class _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs {\n-289 typedef _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bC_\bm_\bp_\bS_\bt_\by_\bl_\be _\bC_\bm_\bp_\bS_\bt_\by_\bl_\be;\n-290 typedef _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be _\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be;\n-291\n-292 public:\n-293 // record template parameters\n-_\b2_\b9_\b5 static const _\bC_\bm_\bp_\bS_\bt_\by_\bl_\be _\bc_\bs_\bt_\by_\bl_\be = cstyle_;\n-_\b2_\b9_\b7 static const _\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be _\br_\bs_\bt_\by_\bl_\be = rstyle_;\n-_\b2_\b9_\b9 typedef T _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be;\n-301\n-_\b3_\b0_\b4 typedef typename _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b<_\bT_\b>_\b:_\b:_\bT_\by_\bp_\be _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be;\n-305\n-306 private:\n-307 _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be epsilon_;\n-308\n-309 typedef _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b<_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b,_\b _\bc_\bs_\bt_\by_\bl_\be_\b> _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn;\n-310\n-311 public:\n-313\n-316 _\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs(_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be _\be_\bp_\bs_\bi_\bl_\bo_\bn = _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b:_\b:_\bv_\ba_\bl_\bu_\be());\n-317\n-319 _\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be _\be_\bp_\bs_\bi_\bl_\bo_\bn() const;\n-321 void _\be_\bp_\bs_\bi_\bl_\bo_\bn(_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be epsilon__);\n-322\n-324 bool _\be_\bq(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &first, const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &second) const;\n-326\n-329 bool _\bn_\be(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &first, const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &second) const;\n-331\n-335 bool _\bg_\bt(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &first, const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &second) const;\n-337\n-341 bool _\bl_\bt(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &first, const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &second) const;\n-343\n-347 bool _\bg_\be(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &first, const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &second) const;\n-349\n-353 bool _\bl_\be(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &first, const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &second) const;\n-354\n-356\n-365 template\n-366 I _\br_\bo_\bu_\bn_\bd(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &val) const;\n-367\n-369\n-378 template\n-379 I _\bt_\br_\bu_\bn_\bc(const _\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be &val) const;\n-380\n-381 };\n-382\n-383} //namespace Dune\n-384\n-385#include \"_\bf_\bl_\bo_\ba_\bt_\b__\bc_\bm_\bp_\b._\bc_\bc\"\n-386\n-387#endif //DUNE_COMMON_FLOAT_CMP_HH\n-_\bf_\bl_\bo_\ba_\bt_\b__\bc_\bm_\bp_\b._\bc_\bc\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bn_\be\n-bool ne(const T &first, const T &second, typename EpsilonType< T >::Type\n-epsilon)\n-test for inequality using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:151\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bC_\bm_\bp_\bS_\bt_\by_\bl_\be\n-CmpStyle\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:104\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\be_\bq\n-bool eq(const T &first, const T &second, typename EpsilonType< T >::Type\n-epsilon)\n-test for equality using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:144\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\br_\bo_\bu_\bn_\bd\n-I round(const T &val, typename EpsilonType< T >::Type epsilon)\n-round using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:311\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bt_\br_\bu_\bn_\bc\n-I trunc(const T &val, typename EpsilonType< T >::Type epsilon)\n-truncate using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:407\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be\n-RoundingStyle\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:116\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bl_\bt\n-bool lt(const T &first, const T &second, typename EpsilonType< T >::Type\n-epsilon)\n-test if first lesser than second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:165\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bg_\bt\n-bool gt(const T &first, const T &second, typename EpsilonType< T >::Type\n-epsilon)\n-test if first greater than second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:158\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bg_\be\n-bool ge(const T &first, const T &second, typename EpsilonType< T >::Type\n-epsilon)\n-test if first greater or equal second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:172\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bl_\be\n-bool le(const T &first, const T &second, typename EpsilonType< T >::Type\n-epsilon)\n-test if first lesser or equal second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:179\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bC_\bm_\bp_\bS_\bt_\by_\bl_\be\n-@ defaultCmpStyle\n-the global default compare style (relative_weak)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:112\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\br_\be_\bl_\ba_\bt_\bi_\bv_\be_\bS_\bt_\br_\bo_\bn_\bg\n-@ relativeStrong\n-|a-b|/|a| <= epsilon && |a-b|/|b| <= epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:108\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\br_\be_\bl_\ba_\bt_\bi_\bv_\be_\bW_\be_\ba_\bk\n-@ relativeWeak\n-|a-b|/|a| <= epsilon || |a-b|/|b| <= epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:106\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\ba_\bb_\bs_\bo_\bl_\bu_\bt_\be\n-@ absolute\n-|a-b| <= epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:110\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bt_\bo_\bw_\ba_\br_\bd_\bZ_\be_\br_\bo\n-@ towardZero\n-always round toward 0\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:118\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bt_\bo_\bw_\ba_\br_\bd_\bI_\bn_\bf\n-@ towardInf\n-always round away from 0\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:120\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bu_\bp_\bw_\ba_\br_\bd\n-@ upward\n-round toward\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:124\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bd_\bo_\bw_\bn_\bw_\ba_\br_\bd\n-@ downward\n-round toward\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:122\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bd_\be_\bf_\ba_\bu_\bl_\bt_\bR_\bo_\bu_\bn_\bd_\bi_\bn_\bg_\bS_\bt_\by_\bl_\be\n-@ defaultRoundingStyle\n-the global default rounding style (toward_zero)\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:126\n-_\bD_\bu_\bn_\be\n-Dune namespace.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn alignedallocator.hh:13\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be_\b:_\b:_\bT_\by_\bp_\be\n-T Type\n-The epsilon type corresponding to value type T.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:25\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn\n-mapping from a value type and a compare style to a default epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:138\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\b:_\b:_\bD_\be_\bf_\ba_\bu_\bl_\bt_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\b:_\b:_\bv_\ba_\bl_\bu_\be\n-static EpsilonType< T >::Type value()\n-Returns the default epsilon for the given value type and compare style.\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs\n-Class encapsulating a default epsilon.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:288\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bl_\be\n-bool le(const ValueType &first, const ValueType &second) const\n-test if first lesser or equal second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:486\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\be_\bq\n-bool eq(const ValueType &first, const ValueType &second) const\n-test for equality using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:451\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bc_\bs_\bt_\by_\bl_\be\n-static const CmpStyle cstyle\n-How comparisons are done.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:295\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bl_\bt\n-bool lt(const ValueType &first, const ValueType &second) const\n-test if first lesser than second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:472\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bg_\be\n-bool ge(const ValueType &first, const ValueType &second) const\n-test if first greater or equal second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:479\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\br_\bs_\bt_\by_\bl_\be\n-static const RoundingStyle rstyle\n-How rounding is done.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:297\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bE_\bp_\bs_\bi_\bl_\bo_\bn_\bT_\by_\bp_\be\n-FloatCmp::EpsilonType< T >::Type EpsilonType\n-Type of the epsilon.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:304\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bn_\be\n-bool ne(const ValueType &first, const ValueType &second) const\n-test for inequality using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:458\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bV_\ba_\bl_\bu_\be_\bT_\by_\bp_\be\n-T ValueType\n-Type of the values to compare.\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.hh:299\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\be_\bp_\bs_\bi_\bl_\bo_\bn\n-EpsilonType epsilon() const\n-return the current epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:436\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\br_\bo_\bu_\bn_\bd\n-I round(const ValueType &val) const\n-round using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:495\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bt_\br_\bu_\bn_\bc\n-I trunc(const ValueType &val) const\n-truncate using epsilon\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:503\n-_\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\bo_\ba_\bt_\bC_\bm_\bp_\bO_\bp_\bs_\b:_\b:_\bg_\bt\n-bool gt(const ValueType &first, const ValueType &second) const\n-test if first greater than second\n-D\bDe\bef\bfi\bin\bni\bit\bti\bio\bon\bn float_cmp.cc:465\n+19#ifndef DUNE_ASSERT_BOUNDS\n+20#if defined(DUNE_CHECK_BOUNDS) || defined(DOXYGEN)\n+21\n+_\b3_\b0#define DUNE_ASSERT_BOUNDS(cond) \\\n+31 do { \\\n+32 if (!(cond)) \\\n+33 DUNE_THROW(Dune::RangeError, \"Index out of bounds.\"); \\\n+34 } while (false)\n+35\n+36#else\n+37#define DUNE_ASSERT_BOUNDS(cond)\n+38#endif\n+39#endif\n+40\n+41/* @} */\n+42\n+43#endif // DUNE_BOUNDSCHECKING_HH\n+_\be_\bx_\bc_\be_\bp_\bt_\bi_\bo_\bn_\bs_\b._\bh_\bh\n+A few common exception classes.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00029.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00029.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: stdstreams.hh File Reference\n+dune-common: tupleutility.hh File Reference\n \n \n \n \n \n \n \n@@ -70,84 +70,118 @@\n
\n \n
\n
\n
\n \n-
stdstreams.hh File Reference
\n+Functions
\n+
tupleutility.hh File Reference
\n
\n
\n \n-

Standard Dune debug streams. \n+

Contains utility classes which can be used with std::tuple. \n More...

\n-
#include "debugstream.hh"
\n+
#include <cstddef>
\n+#include <tuple>
\n+#include <type_traits>
\n+#include <utility>
\n+#include <dune/common/hybridutilities.hh>
\n+#include <dune/common/typetraits.hh>
\n
\n

Go to the source code of this file.

\n \n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+

\n+Classes

struct  Dune::TupleAccessTraits< T >
 
struct  Dune::TupleAccessTraits< T * >
 
struct  Dune::TupleAccessTraits< T & >
 
struct  Dune::NullPointerInitialiser< std::tuple< Args... > >
 
struct  Dune::ForEachType< TE, std::tuple< Args... > >
 
class  Dune::TransformTupleFunctor< TE, Args >
 
struct  Dune::TransformTupleFunctor< TE, Args >::TypeEvaluator< T >
 
struct  Dune::AddRefTypeEvaluator< T >
 TypeEvaluator to turn a type T into a reference to T More...
 
struct  Dune::AddPtrTypeEvaluator< T >
 TypeEvaluator to turn a type T into a pointer to T More...
 
struct  Dune::AddPtrTypeEvaluator< T & >
 
struct  Dune::AtType< N, Tuple >
 Type for reverse element access. More...
 
struct  Dune::At< N >
 Reverse element access. More...
 
struct  Dune::PointerPairDeletor< Tuple >
 Deletes all objects pointed to in a std::tuple of pointers. More...
 
class  Dune::FirstPredicateIndex< Tuple, Predicate, start, size >
 Finding the index of a certain type in a std::tuple. More...
 
struct  Dune::IsType< T >
 Generator for predicates accepting one particular type. More...
 
struct  Dune::IsType< T >::Predicate< U >
 The actual predicate. More...
 
struct  Dune::FirstTypeIndex< Tuple, T, start >
 Find the first occurrence of a type in a std::tuple. More...
 
struct  Dune::PushBackTuple< typename std::tuple< Args... >, T >
 
struct  Dune::PushFrontTuple< typename std::tuple< Args... >, T >
 
struct  Dune::ReduceTuple< F, Tuple, Seed, N >
 Apply reduce with meta binary function to template. More...
 
struct  Dune::ReduceTuple< F, Tuple, Seed, 0 >
 Apply reduce with meta binary function to template. More...
 
struct  Dune::JoinTuples< Head, Tail >
 Join two std::tuple's. More...
 
struct  Dune::FlattenTuple< Tuple >
 Flatten a std::tuple of std::tuple's. More...
 
\n \n \n \n \n

\n Namespaces

namespace  Dune
 Dune namespace.
 
\n-\n-\n-\n-\n-

\n-Macros

#define DUNE_MINIMAL_DEBUG_LEVEL   4
 The default minimum debug level.
 
\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-

\n-Typedefs

typedef DebugStream< VERY_VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DVVerbType
 Type of very verbose debug stream.
 
typedef DebugStream< VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DVerbType
 Type of more verbose debug stream.
 
typedef DebugStream< INFO_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DInfoType
 Type of debug stream with info level.
 
typedef DebugStream< WARN_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DWarnType
 Type of debug stream with warn level.
 
typedef DebugStream< GRAVE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVELDune::DGraveType
 Type of debug stream for fatal errors.
 
typedef DebugStream< 1 > Dune::DErrType
 The type of the stream used for error messages.
 
\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n-\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n+\n

\n-Variables

static const DebugLevel Dune::MINIMAL_DEBUG_LEVEL = DUNE_MINIMAL_DEBUG_LEVEL
 
static const DebugLevel Dune::VERY_VERBOSE_DEBUG_LEVEL = 1
 The level of the very verbose debug stream.
 
static const DebugLevel Dune::VERBOSE_DEBUG_LEVEL = 2
 The level of the verbose debug stream.
 
static const DebugLevel Dune::INFO_DEBUG_LEVEL = 3
 The level of the informative debug stream.
 
static const DebugLevel Dune::WARN_DEBUG_LEVEL = 4
 The level of the debug stream for warnings.
 
static const DebugLevel Dune::GRAVE_DEBUG_LEVEL = 5
 The level of the debug stream for fatal errors.
 

\n+Functions

template<class F , class ArgTuple , class I , I... i>
decltype(auto) Dune::applyPartial (F &&f, ArgTuple &&args, std::integer_sequence< I, i... >)
 Apply function with arguments from a given tuple.
 
template<class Tuple , class Functor >
auto Dune::genericTransformTuple (Tuple &&t, Functor &&f) -> decltype(genericTransformTupleBackend(t, f))
 
template<template< class > class TE, class... Args>
TransformTupleFunctor< TE, Args... > Dune::makeTransformTupleFunctor (Args &&... args)
 
template<template< class > class TypeEvaluator, class Tuple , class... Args>
auto Dune::transformTuple (Tuple &&orig, Args &&... args) -> decltype(genericTransformTuple(orig, makeTransformTupleFunctor< TypeEvaluator >(args...)))
 
\n

Detailed Description

\n-

Standard Dune debug streams.

\n-

The standard debug streams are compiled into libdune to exist globally. This file declares the stream types and the global debug level.

\n+

Contains utility classes which can be used with std::tuple.

\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,70 +1,108 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-_\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bM_\ba_\bc_\br_\bo_\bs | _\bT_\by_\bp_\be_\bd_\be_\bf_\bs | _\bV_\ba_\br_\bi_\ba_\bb_\bl_\be_\bs\n-stdstreams.hh File Reference\n-Standard _\bD_\bu_\bn_\be debug streams. _\bM_\bo_\br_\be_\b._\b._\b.\n-#include \"_\bd_\be_\bb_\bu_\bg_\bs_\bt_\br_\be_\ba_\bm_\b._\bh_\bh\"\n+_\bC_\bl_\ba_\bs_\bs_\be_\bs | _\bN_\ba_\bm_\be_\bs_\bp_\ba_\bc_\be_\bs | _\bF_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\bs\n+tupleutility.hh File Reference\n+_\bC_\bo_\bm_\bm_\bo_\bn \u00bb _\bU_\bt_\bi_\bl_\bi_\bt_\bi_\be_\bs \u00bb _\bT_\bu_\bp_\bl_\be_\b _\bU_\bt_\bi_\bl_\bi_\bt_\bi_\be_\bs\n+Contains utility classes which can be used with std::tuple. _\bM_\bo_\br_\be_\b._\b._\b.\n+#include \n+#include \n+#include \n+#include \n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bh_\by_\bb_\br_\bi_\bd_\bu_\bt_\bi_\bl_\bi_\bt_\bi_\be_\bs_\b._\bh_\bh>\n+#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bs_\bo_\bu_\br_\bc_\be_\b _\bc_\bo_\bd_\be_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n-N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n-namespace \u00a0 _\bD_\bu_\bn_\be\n-\u00a0 _\bD_\bu_\bn_\be namespace.\n+C\bCl\bla\bas\bss\bse\bes\bs\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bA_\bc_\bc_\be_\bs_\bs_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bT_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bA_\bc_\bc_\be_\bs_\bs_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bT_\b _\b*_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\bu_\bp_\bl_\be_\bA_\bc_\bc_\be_\bs_\bs_\bT_\br_\ba_\bi_\bt_\bs_\b<_\b _\bT_\b _\b&_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bN_\bu_\bl_\bl_\bP_\bo_\bi_\bn_\bt_\be_\br_\bI_\bn_\bi_\bt_\bi_\ba_\bl_\bi_\bs_\be_\br_\b<_\b _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b<_\b _\bA_\br_\bg_\bs_\b._\b._\b._\b _\b>_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bo_\br_\bE_\ba_\bc_\bh_\bT_\by_\bp_\be_\b<_\b _\bT_\bE_\b,_\b _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b<_\b _\bA_\br_\bg_\bs_\b._\b._\b._\b _\b>_\b _\b>\n+\u00a0\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be_\bF_\bu_\bn_\bc_\bt_\bo_\br_\b<_\b _\bT_\bE_\b,_\b _\bA_\br_\bg_\bs_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bT_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be_\bF_\bu_\bn_\bc_\bt_\bo_\br_\b<_\b _\bT_\bE_\b,_\b _\bA_\br_\bg_\bs_\b _\b>_\b:_\b:_\bT_\by_\bp_\be_\bE_\bv_\ba_\bl_\bu_\ba_\bt_\bo_\br_\b<_\b _\bT_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bd_\bd_\bR_\be_\bf_\bT_\by_\bp_\be_\bE_\bv_\ba_\bl_\bu_\ba_\bt_\bo_\br_\b<_\b _\bT_\b _\b>\n+\u00a0 TypeEvaluator to turn a type T into a reference to T _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bd_\bd_\bP_\bt_\br_\bT_\by_\bp_\be_\bE_\bv_\ba_\bl_\bu_\ba_\bt_\bo_\br_\b<_\b _\bT_\b _\b>\n+\u00a0 TypeEvaluator to turn a type T into a pointer to T _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bd_\bd_\bP_\bt_\br_\bT_\by_\bp_\be_\bE_\bv_\ba_\bl_\bu_\ba_\bt_\bo_\br_\b<_\b _\bT_\b _\b&_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bt_\bT_\by_\bp_\be_\b<_\b _\bN_\b,_\b _\bT_\bu_\bp_\bl_\be_\b _\b>\n+\u00a0 Type for reverse element access. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-M\bMa\bac\bcr\bro\bos\bs\n-#define\u00a0 _\bD_\bU_\bN_\bE_\b__\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL\u00a0\u00a0\u00a04\n-\u00a0 The default minimum debug level.\n-\u00a0\n-T\bTy\byp\bpe\bed\bde\bef\bfs\bs\n- typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm<\n- _\bV_\bE_\bR_\bY_\b__\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL,\n- _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bV_\bV_\be_\br_\bb_\bT_\by_\bp_\be\n-\u00a0 Type of very verbose debug stream.\n-\u00a0\n- typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm<\n-_\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL, _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL\n- >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bV_\be_\br_\bb_\bT_\by_\bp_\be\n-\u00a0 Type of more verbose debug stream.\n-\u00a0\n- typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm< _\bI_\bN_\bF_\bO_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL,\n- _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bI_\bn_\bf_\bo_\bT_\by_\bp_\be\n-\u00a0 Type of debug stream with info level.\n-\u00a0\n- typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm< _\bW_\bA_\bR_\bN_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL,\n- _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bW_\ba_\br_\bn_\bT_\by_\bp_\be\n-\u00a0 Type of debug stream with warn level.\n-\u00a0\n- typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm< _\bG_\bR_\bA_\bV_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL,\n- _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bG_\br_\ba_\bv_\be_\bT_\by_\bp_\be\n-\u00a0 Type of debug stream for fatal errors.\n-\u00a0\n- typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm< 1 >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bD_\bE_\br_\br_\bT_\by_\bp_\be\n-\u00a0 The type of the stream used for error\n- messages.\n-\u00a0\n-V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs\n-static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = _\bD_\bU_\bN_\bE_\b__\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL\n-\u00a0\n-static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bE_\bR_\bY_\b__\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = 1\n-\u00a0 The level of the very verbose debug stream.\n-\u00a0\n-static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = 2\n-\u00a0 The level of the verbose debug stream.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bA_\bt_\b<_\b _\bN_\b _\b>\n+\u00a0 Reverse element access. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bI_\bN_\bF_\bO_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = 3\n-\u00a0 The level of the informative debug stream.\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bo_\bi_\bn_\bt_\be_\br_\bP_\ba_\bi_\br_\bD_\be_\bl_\be_\bt_\bo_\br_\b<_\b _\bT_\bu_\bp_\bl_\be_\b _\b>\n+\u00a0 Deletes all objects pointed to in a std::tuple of pointers. _\bM_\bo_\br_\be_\b._\b._\b.\n \u00a0\n-static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bW_\bA_\bR_\bN_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = 4\n-\u00a0 The level of the debug stream for warnings.\n+ class \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\br_\bs_\bt_\bP_\br_\be_\bd_\bi_\bc_\ba_\bt_\be_\bI_\bn_\bd_\be_\bx_\b<_\b _\bT_\bu_\bp_\bl_\be_\b,_\b _\bP_\br_\be_\bd_\bi_\bc_\ba_\bt_\be_\b,_\b _\bs_\bt_\ba_\br_\bt_\b,_\b _\bs_\bi_\bz_\be_\b _\b>\n+\u00a0 Finding the index of a certain type in a std::tuple. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bI_\bs_\bT_\by_\bp_\be_\b<_\b _\bT_\b _\b>\n+\u00a0 Generator for predicates accepting one particular type. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bI_\bs_\bT_\by_\bp_\be_\b<_\b _\bT_\b _\b>_\b:_\b:_\bP_\br_\be_\bd_\bi_\bc_\ba_\bt_\be_\b<_\b _\bU_\b _\b>\n+\u00a0 The actual predicate. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bi_\br_\bs_\bt_\bT_\by_\bp_\be_\bI_\bn_\bd_\be_\bx_\b<_\b _\bT_\bu_\bp_\bl_\be_\b,_\b _\bT_\b,_\b _\bs_\bt_\ba_\br_\bt_\b _\b>\n+\u00a0 Find the first occurrence of a type in a std::tuple. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bu_\bs_\bh_\bB_\ba_\bc_\bk_\bT_\bu_\bp_\bl_\be_\b<_\b _\bt_\by_\bp_\be_\bn_\ba_\bm_\be_\b _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b<_\b _\bA_\br_\bg_\bs_\b._\b._\b._\b _\b>_\b,_\b _\bT_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bP_\bu_\bs_\bh_\bF_\br_\bo_\bn_\bt_\bT_\bu_\bp_\bl_\be_\b<_\b _\bt_\by_\bp_\be_\bn_\ba_\bm_\be_\b _\bs_\bt_\bd_\b:_\b:_\bt_\bu_\bp_\bl_\be_\b<_\b _\bA_\br_\bg_\bs_\b._\b._\b._\b _\b>_\b,_\b _\bT_\b _\b>\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bd_\bu_\bc_\be_\bT_\bu_\bp_\bl_\be_\b<_\b _\bF_\b,_\b _\bT_\bu_\bp_\bl_\be_\b,_\b _\bS_\be_\be_\bd_\b,_\b _\bN_\b _\b>\n+\u00a0 Apply reduce with meta binary function to template. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bR_\be_\bd_\bu_\bc_\be_\bT_\bu_\bp_\bl_\be_\b<_\b _\bF_\b,_\b _\bT_\bu_\bp_\bl_\be_\b,_\b _\bS_\be_\be_\bd_\b,_\b _\b0_\b _\b>\n+\u00a0 Apply reduce with meta binary function to template. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bJ_\bo_\bi_\bn_\bT_\bu_\bp_\bl_\be_\bs_\b<_\b _\bH_\be_\ba_\bd_\b,_\b _\bT_\ba_\bi_\bl_\b _\b>\n+\u00a0 Join two std::tuple's. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+struct \u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bF_\bl_\ba_\bt_\bt_\be_\bn_\bT_\bu_\bp_\bl_\be_\b<_\b _\bT_\bu_\bp_\bl_\be_\b _\b>\n+\u00a0 Flatten a std::tuple of std::tuple's. _\bM_\bo_\br_\be_\b._\b._\b.\n+\u00a0\n+N\bNa\bam\bme\bes\bsp\bpa\bac\bce\bes\bs\n+namespace \u00a0 _\bD_\bu_\bn_\be\n+\u00a0 _\bD_\bu_\bn_\be namespace.\n \u00a0\n-static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bG_\bR_\bA_\bV_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = 5\n-\u00a0 The level of the debug stream for fatal errors.\n+F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs\n+template\n+ decltype(auto)\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\ba_\bp_\bp_\bl_\by_\bP_\ba_\br_\bt_\bi_\ba_\bl (F &&f, ArgTuple\n+ &&args, std::integer_sequence< I, i... >)\n+\u00a0 Apply function with arguments from a\n+ given tuple.\n+\u00a0\n+template\n+ auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bg_\be_\bn_\be_\br_\bi_\bc_\bT_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be (Tuple &&t,\n+ Functor &&f) -> decltype\n+ (genericTransformTupleBackend(t, f))\n+\u00a0\n+template class TE, class... Args>\n+_\bT_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be_\bF_\bu_\bn_\bc_\bt_\bo_\br< TE, Args... >\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bm_\ba_\bk_\be_\bT_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be_\bF_\bu_\bn_\bc_\bt_\bo_\br (Args\n+ &&... args)\n+\u00a0\n+template class TypeEvaluator, class Tuple , class... Args>\n+ auto\u00a0 _\bD_\bu_\bn_\be_\b:_\b:_\bt_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be (Tuple &&orig, Args\n+ &&... args) -> decltype\n+ (_\bg_\be_\bn_\be_\br_\bi_\bc_\bT_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be(orig,\n+ _\bm_\ba_\bk_\be_\bT_\br_\ba_\bn_\bs_\bf_\bo_\br_\bm_\bT_\bu_\bp_\bl_\be_\bF_\bu_\bn_\bc_\bt_\bo_\br< TypeEvaluator\n+ >(args...)))\n \u00a0\n *\b**\b**\b**\b**\b* D\bDe\bet\bta\bai\bil\ble\bed\bd D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn *\b**\b**\b**\b**\b*\n-Standard _\bD_\bu_\bn_\be debug streams.\n-The standard debug streams are compiled into libdune to exist globally. This\n-file declares the stream types and the global debug level.\n+Contains utility classes which can be used with std::tuple.\n ===============================================================================\n Generated by\u00a0_\b[_\bd_\bo_\bx_\by_\bg_\be_\bn_\b] 1.9.8\n"}]}, {"source1": "./usr/share/doc/libdune-common-doc/doxygen/a00029_source.html", "source2": "./usr/share/doc/libdune-common-doc/doxygen/a00029_source.html", "unified_diff": "@@ -1,15 +1,15 @@\n \n \n \n \n \n \n \n-dune-common: stdstreams.hh Source File\n+dune-common: tupleutility.hh Source File\n \n \n \n \n \n \n \n@@ -74,94 +74,447 @@\n \n
\n \n
\n
\n
\n-
stdstreams.hh
\n+
tupleutility.hh
\n
\n
\n Go to the documentation of this file.
1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
\n
2// vi: set et ts=4 sw=2 sts=2:
\n
3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file LICENSE.md in module root
\n
4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
\n
5
\n-
15#ifndef DUNE_COMMON_STDSTREAMS_HH
\n-
16#define DUNE_COMMON_STDSTREAMS_HH
\n-
17
\n-
18#include "debugstream.hh"
\n-
19
\n-
20namespace Dune {
\n-
21
\n-
66#ifndef DUNE_MINIMAL_DEBUG_LEVEL
\n-
67#define DUNE_MINIMAL_DEBUG_LEVEL 4
\n-
68#endif
\n-\n+
6#ifndef DUNE_TUPLE_UTILITY_HH
\n+
7#define DUNE_TUPLE_UTILITY_HH
\n+
8
\n+
9#include <cstddef>
\n+
10#include <tuple>
\n+
11#include <type_traits>
\n+
12#include <utility>
\n+
13
\n+\n+\n+
16
\n+
17namespace Dune {
\n+
18
\n+
41 template<class F, class ArgTuple, class I, I... i>
\n+
\n+
42 decltype(auto) applyPartial(F&& f, ArgTuple&& args, std::integer_sequence<I, i...> /*indices*/)
\n+
43 {
\n+
44 return f(std::get<i>(args)...);
\n+
45 }
\n+
\n+
46
\n+
47 template<class T>
\n+
\n+\n+
49 {
\n+
50 typedef typename std::add_const<T>::type& ConstType;
\n+
51 typedef T& NonConstType;
\n+
52 typedef const typename std::remove_const<T>::type& ParameterType;
\n+
53 };
\n+
\n+
54
\n+
55 template<class T>
\n+
\n+\n+
57 {
\n+
58 typedef typename std::add_const<T>::type* ConstType;
\n+
59 typedef T* NonConstType;
\n+
60 typedef T* ParameterType;
\n+
61 };
\n+
\n+
62
\n+
63 template<class T>
\n+
\n+\n+
65 {
\n+
66 typedef T& ConstType;
\n+
67 typedef T& NonConstType;
\n+
68 typedef T& ParameterType;
\n+
69 };
\n+
\n
70
\n-\n-
76
\n-\n-
82
\n-\n-
96
\n-\n-
102
\n-\n-
108
\n-\n+
78 template<class T>
\n+\n+
80
\n+
81 template<class... Args>
\n+
\n+
82 struct NullPointerInitialiser<std::tuple<Args...> >
\n+
83 {
\n+
84 typedef std::tuple<Args...> ResultType;
\n+
\n+\n+
86 {
\n+
87 return ResultType(static_cast<Args>(nullptr)...);
\n+
88 }
\n+
\n+
89 };
\n+
\n+
90
\n+
115 template<template <class> class TE, class T>
\n+\n
117
\n-
122 static const DebugLevel INFO_DEBUG_LEVEL = 3;
\n+
118 template<template <class> class TE, class... Args>
\n+
\n+
119 struct ForEachType<TE, std::tuple<Args...> >
\n+
120 {
\n+
121 typedef std::tuple<typename TE<Args>::Type...> Type;
\n+
122 };
\n+
\n
123
\n-\n-
129
\n-\n-
141
\n-
146 static const DebugLevel WARN_DEBUG_LEVEL = 4;
\n-
147
\n-\n-
153
\n-\n-
162
\n-\n-
168
\n-\n-
171
\n-\n-
180
\n-\n-
183
\n-\n-
196
\n-
198}
\n-
199
\n-
200#endif
\n-
Defines several output streams for messages of different importance.
\n-
unsigned int DebugLevel
Type for debug levels.
Definition debugstream.hh:118
\n-
DebugStream< VERY_VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DVVerbType
Type of very verbose debug stream.
Definition stdstreams.hh:81
\n-
DebugStream< WARN_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DWarnType
Type of debug stream with warn level.
Definition stdstreams.hh:152
\n-
DVVerbType dvverb(std::cout)
stream for very verbose output.
Definition stdstreams.hh:95
\n-
static const DebugLevel MINIMAL_DEBUG_LEVEL
Definition stdstreams.hh:69
\n-
#define DUNE_MINIMAL_DEBUG_LEVEL
The default minimum debug level.
Definition stdstreams.hh:67
\n-
static const DebugLevel VERY_VERBOSE_DEBUG_LEVEL
The level of the very verbose debug stream.
Definition stdstreams.hh:75
\n-
DWarnType dwarn(std::cerr)
Stream for warnings indicating problems.
Definition stdstreams.hh:161
\n-
static const DebugLevel GRAVE_DEBUG_LEVEL
The level of the debug stream for fatal errors.
Definition stdstreams.hh:167
\n-
DebugStream< VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DVerbType
Type of more verbose debug stream.
Definition stdstreams.hh:107
\n-
DebugStream< GRAVE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DGraveType
Type of debug stream for fatal errors.
Definition stdstreams.hh:170
\n-
DGraveType dgrave(std::cerr)
Stream for warnings indicating fatal errors.
Definition stdstreams.hh:179
\n-
DebugStream< 1 > DErrType
The type of the stream used for error messages.
Definition stdstreams.hh:182
\n-
static const DebugLevel INFO_DEBUG_LEVEL
The level of the informative debug stream.
Definition stdstreams.hh:122
\n-
DebugStream< INFO_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DInfoType
Type of debug stream with info level.
Definition stdstreams.hh:128
\n-
DInfoType dinfo(std::cout)
Stream for informative output.
Definition stdstreams.hh:140
\n-
DVerbType dverb(std::cout)
Singleton of verbose debug stream.
Definition stdstreams.hh:116
\n-
static const DebugLevel VERBOSE_DEBUG_LEVEL
The level of the verbose debug stream.
Definition stdstreams.hh:101
\n-
DErrType derr(std::cerr)
Stream for error messages.
Definition stdstreams.hh:195
\n-
static const DebugLevel WARN_DEBUG_LEVEL
The level of the debug stream for warnings.
Definition stdstreams.hh:146
\n+
124#ifndef DOXYGEN
\n+
125 template<class Tuple, class Functor, std::size_t... I>
\n+
126 inline auto genericTransformTupleBackendImpl(Tuple& t, Functor& f, const std::index_sequence<I...>& )
\n+
127 -> std::tuple<decltype(f(std::get<I>(t)))...>
\n+
128 {
\n+
129 return std::tuple<decltype(f(std::get<I>(t)))...>(f(std::get<I>(t))...);
\n+
130 }
\n+
131
\n+
132 template<class... Args, class Functor>
\n+
133 auto genericTransformTupleBackend(std::tuple<Args...>& t, Functor& f) ->
\n+
134 decltype(genericTransformTupleBackendImpl(t, f,std::index_sequence_for<Args...>{}))
\n+
135 {
\n+
136 return genericTransformTupleBackendImpl(t, f,std::index_sequence_for<Args...>{});
\n+
137 }
\n+
138
\n+
139 template<class... Args, class Functor>
\n+
140 auto genericTransformTupleBackend(const std::tuple<Args...>& t, Functor& f) ->
\n+
141 decltype(genericTransformTupleBackendImpl(t, f, std::index_sequence_for<Args...>{}))
\n+
142 {
\n+
143 return genericTransformTupleBackendImpl(t, f, std::index_sequence_for<Args...>{});
\n+
144 }
\n+
145#endif
\n+
146
\n+
185 template<class Tuple, class Functor>
\n+
\n+
186 auto genericTransformTuple(Tuple&& t, Functor&& f) ->
\n+
187 decltype(genericTransformTupleBackend(t, f))
\n+
188 {
\n+
189 return genericTransformTupleBackend(t, f);
\n+
190 }
\n+
\n+
191
\n+
224 template<template<class> class TE, class... Args>
\n+
\n+\n+
226 {
\n+
227 mutable std::tuple<Args&...> tup;
\n+
228
\n+
229 template<class T, std::size_t... I>
\n+
230 inline auto apply(T&& t, const std::index_sequence<I...>& ) ->
\n+
231 decltype(TE<T>::apply(t,std::get<I>(tup)...)) const
\n+
232 {
\n+
233 return TE<T>::apply(t,std::get<I>(tup)...);
\n+
234 }
\n+
235
\n+
236 public:
\n+
237 template<class T>
\n+
\n+
238 struct TypeEvaluator : public TE<T>
\n+
239 {};
\n+
\n+
240
\n+
\n+
241 TransformTupleFunctor(Args&&... args)
\n+
242 : tup(args...)
\n+
243 { }
\n+
\n+
244
\n+
245 template<class T>
\n+
\n+
246 inline auto operator()(T&& t) ->
\n+
247 decltype(this->apply(t,std::index_sequence_for<Args...>{})) const
\n+
248 {
\n+
249 return apply(t,std::index_sequence_for<Args...>{});
\n+
250 }
\n+
\n+
251 };
\n+
\n+
252
\n+
253 template<template<class> class TE, class... Args>
\n+
\n+\n+
255 {
\n+
256 return TransformTupleFunctor<TE, Args...>(args...);
\n+
257 }
\n+
\n+
258
\n+
291 template<template<class> class TypeEvaluator, class Tuple, class... Args>
\n+
\n+
292 auto transformTuple(Tuple&& orig, Args&&... args) ->
\n+
293 decltype(genericTransformTuple(orig, makeTransformTupleFunctor<TypeEvaluator>(args...)))
\n+
294 {
\n+
295 return genericTransformTuple(orig, makeTransformTupleFunctor<TypeEvaluator>(args...));
\n+
296 }
\n+
\n+
297
\n+
299
\n+
303 template<class T>
\n+
\n+\n+
305 {
\n+
306 typedef T& Type;
\n+
\n+
307 static Type apply(T& t)
\n+
308 {
\n+
309 return t;
\n+
310 }
\n+
\n+
311 };
\n+
\n+
312
\n+
314
\n+
318 template<class T>
\n+
\n+\n+
320 {
\n+
321 typedef typename std::remove_reference<T>::type* Type;
\n+
\n+
322 static Type apply(T& t)
\n+
323 {
\n+
324 return &t;
\n+
325 }
\n+
\n+
326 };
\n+
\n+
327
\n+
328 // Specialization, in case the type is already a reference
\n+
329 template<class T>
\n+
\n+\n+
331 {
\n+
332 typedef typename std::remove_reference<T>::type* Type;
\n+
\n+
333 static Type apply(T& t)
\n+
334 {
\n+
335 return &t;
\n+
336 }
\n+
\n+
337 };
\n+
\n+
338
\n+
344 template<int N, class Tuple>
\n+
\n+
345 struct AtType
\n+
346 {
\n+
347 typedef typename std::tuple_element<std::tuple_size<Tuple>::value - N - 1, Tuple>::type Type;
\n+
348 };
\n+
\n+
349
\n+
357 template<int N>
\n+
\n+
358 struct At
\n+
359 {
\n+
360 template<typename Tuple>
\n+
361 static typename TupleAccessTraits<typename AtType<N, Tuple>::Type>::NonConstType
\n+
\n+
362 get(Tuple& t)
\n+
363 {
\n+
364 return std::get<std::tuple_size<Tuple>::value - N - 1>(t);
\n+
365 }
\n+
\n+
366
\n+
367 template<typename Tuple>
\n+
368 static typename TupleAccessTraits<typename AtType<N, Tuple>::Type>::ConstType
\n+
\n+
369 get(const Tuple& t)
\n+
370 {
\n+
371 return std::get<std::tuple_size<Tuple>::value - N - 1>(t);
\n+
372 }
\n+
\n+
373 };
\n+
\n+
374
\n+
378 template<class Tuple>
\n+
\n+\n+
380 {
\n+
381 template<typename... Ts>
\n+
\n+
382 static void apply(std::tuple<Ts...>& t)
\n+
383 {
\n+
384 Hybrid::forEach(t,[&](auto&& ti){delete ti; ti=nullptr;});
\n+
385 }
\n+
\n+
386 };
\n+
\n+
387
\n+
411 template<class Tuple, template<class> class Predicate, std::size_t start = 0,
\n+
412 std::size_t size = std::tuple_size<Tuple>::value>
\n+
\n+\n+
414 public std::conditional<Predicate<typename std::tuple_element<start,
\n+
415 Tuple>::type>::value,
\n+
416 std::integral_constant<std::size_t, start>,
\n+
417 FirstPredicateIndex<Tuple, Predicate, start+1> >::type
\n+
418 {
\n+
419 static_assert(std::tuple_size<Tuple>::value == size, "The \\"size\\" "
\n+
420 "template parameter of FirstPredicateIndex is an "
\n+
421 "implementation detail and should never be set "
\n+
422 "explicitly!");
\n+
423 };
\n+
\n+
424
\n+
425#ifndef DOXYGEN
\n+
426 template<class Tuple, template<class> class Predicate, std::size_t size>
\n+
427 class FirstPredicateIndex<Tuple, Predicate, size, size>
\n+
428 {
\n+
429 static_assert(AlwaysFalse<Tuple>::value, "None of the std::tuple element "
\n+
430 "types matches the predicate!");
\n+
431 };
\n+
432#endif // !DOXYGEN
\n+
433
\n+
443 template<class T>
\n+
\n+
444 struct IsType
\n+
445 {
\n+
447 template<class U>
\n+
448 struct Predicate : public std::is_same<T, U> {};
\n+
449 };
\n+
\n+
450
\n+
464 template<class Tuple, class T, std::size_t start = 0>
\n+
\n+\n+
466 public FirstPredicateIndex<Tuple, IsType<T>::template Predicate, start>
\n+
467 { };
\n+
\n+
468
\n+
475 template<class Tuple, class T>
\n+\n+
477
\n+
478 template<class... Args, class T>
\n+
\n+
479 struct PushBackTuple<typename std::tuple<Args...>, T>
\n+
480 {
\n+
481 typedef typename std::tuple<Args..., T> type;
\n+
482 };
\n+
\n+
483
\n+
490 template<class Tuple, class T>
\n+\n+
492
\n+
493 template<class... Args, class T>
\n+
\n+
494 struct PushFrontTuple<typename std::tuple<Args...>, T>
\n+
495 {
\n+
496 typedef typename std::tuple<T, Args...> type;
\n+
497 };
\n+
\n+
498
\n+
511 template<
\n+
512 template <class, class> class F,
\n+
513 class Tuple,
\n+
514 class Seed=std::tuple<>,
\n+
515 int N=std::tuple_size<Tuple>::value>
\n+
\n+\n+
517 {
\n+
518 typedef typename ReduceTuple<F, Tuple, Seed, N-1>::type Accumulated;
\n+
519 typedef typename std::tuple_element<N-1, Tuple>::type Value;
\n+
520
\n+
522 typedef typename F<Accumulated, Value>::type type;
\n+
523 };
\n+
\n+
524
\n+
535 template<
\n+
536 template <class, class> class F,
\n+
537 class Tuple,
\n+
538 class Seed>
\n+
\n+
539 struct ReduceTuple<F, Tuple, Seed, 0>
\n+
540 {
\n+
542 typedef Seed type;
\n+
543 };
\n+
\n+
544
\n+
554 template<class Head, class Tail>
\n+
\n+\n+
556 {
\n+\n+
559 };
\n+
\n+
560
\n+
569 template<class Tuple>
\n+
\n+\n+
571 {
\n+\n+
574 };
\n+
\n+
575
\n+
577}
\n+
578
\n+
579#endif
\n+\n+
Traits for type conversions and type information.
\n+
std::add_const< T >::type & ConstType
Definition tupleutility.hh:50
\n+
static void apply(std::tuple< Ts... > &t)
Definition tupleutility.hh:382
\n+
T * ParameterType
Definition tupleutility.hh:60
\n+
auto transformTuple(Tuple &&orig, Args &&... args) -> decltype(genericTransformTuple(orig, makeTransformTupleFunctor< TypeEvaluator >(args...)))
Definition tupleutility.hh:292
\n+
T & ConstType
Definition tupleutility.hh:66
\n+
ReduceTuple< F, Tuple, Seed, N-1 >::type Accumulated
Definition tupleutility.hh:518
\n+
T * NonConstType
Definition tupleutility.hh:59
\n+
Seed type
Result of the reduce operation.
Definition tupleutility.hh:542
\n+
std::remove_reference< T >::type * Type
Definition tupleutility.hh:321
\n+
static Type apply(T &t)
Definition tupleutility.hh:307
\n+
static ResultType apply()
Definition tupleutility.hh:85
\n+
std::tuple< Args... > ResultType
Definition tupleutility.hh:84
\n+
std::remove_reference< T >::type * Type
Definition tupleutility.hh:332
\n+
TransformTupleFunctor(Args &&... args)
Definition tupleutility.hh:241
\n+
std::tuple_element< std::tuple_size< Tuple >::value-N-1, Tuple >::type Type
Definition tupleutility.hh:347
\n+
static Type apply(T &t)
Definition tupleutility.hh:333
\n+
auto operator()(T &&t) -> decltype(this->apply(t, std::index_sequence_for< Args... >{})) const
Definition tupleutility.hh:246
\n+
T & NonConstType
Definition tupleutility.hh:67
\n+
T & NonConstType
Definition tupleutility.hh:51
\n+
static TupleAccessTraits< typenameAtType< N, Tuple >::Type >::ConstType get(const Tuple &t)
Definition tupleutility.hh:369
\n+
T & Type
Definition tupleutility.hh:306
\n+
static TupleAccessTraits< typenameAtType< N, Tuple >::Type >::NonConstType get(Tuple &t)
Definition tupleutility.hh:362
\n+
std::tuple< Args..., T > type
Definition tupleutility.hh:481
\n+
std::tuple_element< N-1, Tuple >::type Value
Definition tupleutility.hh:519
\n+
std::tuple< T, Args... > type
Definition tupleutility.hh:496
\n+
ReduceTuple< JoinTuples, Tuple >::type type
Result of the flatten operation.
Definition tupleutility.hh:573
\n+
static Type apply(T &t)
Definition tupleutility.hh:322
\n+
F< Accumulated, Value >::type type
Result of the reduce operation.
Definition tupleutility.hh:522
\n+
ReduceTuple< PushBackTuple, Tail, Head >::type type
Result of the join operation.
Definition tupleutility.hh:558
\n+
std::tuple< typename TE< Args >::Type... > Type
Definition tupleutility.hh:121
\n+
auto genericTransformTuple(Tuple &&t, Functor &&f) -> decltype(genericTransformTupleBackend(t, f))
Definition tupleutility.hh:186
\n+
decltype(auto) applyPartial(F &&f, ArgTuple &&args, std::integer_sequence< I, i... >)
Apply function with arguments from a given tuple.
Definition tupleutility.hh:42
\n+
T & ParameterType
Definition tupleutility.hh:68
\n+
const std::remove_const< T >::type & ParameterType
Definition tupleutility.hh:52
\n+
std::add_const< T >::type * ConstType
Definition tupleutility.hh:58
\n+
TransformTupleFunctor< TE, Args... > makeTransformTupleFunctor(Args &&... args)
Definition tupleutility.hh:254
\n+
constexpr void forEach(Range &&range, F &&f)
Range based for loop.
Definition hybridutilities.hh:268
\n+
STL namespace.
\n
Dune namespace.
Definition alignedallocator.hh:13
\n-
Generic class to implement debug output streams.
Definition debugstream.hh:192
\n+
Definition tupleutility.hh:49
\n+
A helper template that initializes a std::tuple consisting of pointers to nullptr.
Definition tupleutility.hh:79
\n+
Helper template to clone the type definition of a std::tuple with the storage types replaced by a use...
Definition tupleutility.hh:116
\n+
Definition tupleutility.hh:226
\n+
Definition tupleutility.hh:239
\n+
TypeEvaluator to turn a type T into a reference to T
Definition tupleutility.hh:305
\n+
TypeEvaluator to turn a type T into a pointer to T
Definition tupleutility.hh:320
\n+
Type for reverse element access.
Definition tupleutility.hh:346
\n+
Reverse element access.
Definition tupleutility.hh:359
\n+
Deletes all objects pointed to in a std::tuple of pointers.
Definition tupleutility.hh:380
\n+
Finding the index of a certain type in a std::tuple.
Definition tupleutility.hh:418
\n+
Generator for predicates accepting one particular type.
Definition tupleutility.hh:445
\n+
The actual predicate.
Definition tupleutility.hh:448
\n+
Find the first occurrence of a type in a std::tuple.
Definition tupleutility.hh:467
\n+
Helper template to append a type to a std::tuple.
Definition tupleutility.hh:476
\n+
Helper template to prepend a type to a std::tuple.
Definition tupleutility.hh:491
\n+
Apply reduce with meta binary function to template.
Definition tupleutility.hh:517
\n+
Join two std::tuple's.
Definition tupleutility.hh:556
\n+
Flatten a std::tuple of std::tuple's.
Definition tupleutility.hh:571
\n+
template which always yields a false value
Definition typetraits.hh:124
\n
\n \n
\n Generated by \"doxygen\"/ 1.9.8\n
\n \n \n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -1,153 +1,515 @@\n dune-common\u00a02.9.0\n Loading...\n Searching...\n No Matches\n * _\bd_\bu_\bn_\be\n * _\bc_\bo_\bm_\bm_\bo_\bn\n-stdstreams.hh\n+tupleutility.hh\n _\bG_\bo_\b _\bt_\bo_\b _\bt_\bh_\be_\b _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt_\ba_\bt_\bi_\bo_\bn_\b _\bo_\bf_\b _\bt_\bh_\bi_\bs_\b _\bf_\bi_\bl_\be_\b.\n 1// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-\n 2// vi: set et ts=4 sw=2 sts=2:\n 3// SPDX-FileCopyrightInfo: Copyright (C) DUNE Project contributors, see file\n LICENSE.md in module root\n 4// SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception\n 5\n-15#ifndef DUNE_COMMON_STDSTREAMS_HH\n-16#define DUNE_COMMON_STDSTREAMS_HH\n-17\n-18#include \"_\bd_\be_\bb_\bu_\bg_\bs_\bt_\br_\be_\ba_\bm_\b._\bh_\bh\"\n-19\n-20namespace _\bD_\bu_\bn_\be {\n-21\n-66#ifndef DUNE_MINIMAL_DEBUG_LEVEL\n-_\b6_\b7#define DUNE_MINIMAL_DEBUG_LEVEL 4\n-68#endif\n-_\b6_\b9 static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = _\bD_\bU_\bN_\bE_\b__\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL;\n+6#ifndef DUNE_TUPLE_UTILITY_HH\n+7#define DUNE_TUPLE_UTILITY_HH\n+8\n+9#include \n+10#include \n+11#include \n+12#include \n+13\n+14#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bh_\by_\bb_\br_\bi_\bd_\bu_\bt_\bi_\bl_\bi_\bt_\bi_\be_\bs_\b._\bh_\bh>\n+15#include <_\bd_\bu_\bn_\be_\b/_\bc_\bo_\bm_\bm_\bo_\bn_\b/_\bt_\by_\bp_\be_\bt_\br_\ba_\bi_\bt_\bs_\b._\bh_\bh>\n+16\n+17namespace _\bD_\bu_\bn_\be {\n+18\n+41 template\n+_\b4_\b2 decltype(auto) _\ba_\bp_\bp_\bl_\by_\bP_\ba_\br_\bt_\bi_\ba_\bl(F&& f, ArgTuple&& args, std::integer_sequence /*indices*/)\n+43 {\n+44 return f(std::get(args)...);\n+45 }\n+46\n+47 template\n+_\b4_\b8 struct _\bT_\bu_\bp_\bl_\be_\bA_\bc_\bc_\be_\bs_\bs_\bT_\br_\ba_\bi_\bt_\bs\n+49 {\n+_\b5_\b0 typedef typename std::add_const::type& _\bC_\bo_\bn_\bs_\bt_\bT_\by_\bp_\be;\n+_\b5_\b1 typedef T& _\bN_\bo_\bn_\bC_\bo_\bn_\bs_\bt_\bT_\by_\bp_\be;\n+_\b5_\b2 typedef const typename std::remove_const::type& _\bP_\ba_\br_\ba_\bm_\be_\bt_\be_\br_\bT_\by_\bp_\be;\n+53 };\n+54\n+55 template\n+_\b5_\b6 struct _\bT_\bu_\bp_\bl_\be_\bA_\bc_\bc_\be_\bs_\bs_\bT_\br_\ba_\bi_\bt_\bs\n+57 {\n+_\b5_\b8 typedef typename std::add_const::type* _\bC_\bo_\bn_\bs_\bt_\bT_\by_\bp_\be;\n+_\b5_\b9 typedef T* _\bN_\bo_\bn_\bC_\bo_\bn_\bs_\bt_\bT_\by_\bp_\be;\n+_\b6_\b0 typedef T* _\bP_\ba_\br_\ba_\bm_\be_\bt_\be_\br_\bT_\by_\bp_\be;\n+61 };\n+62\n+63 template\n+_\b6_\b4 struct _\bT_\bu_\bp_\bl_\be_\bA_\bc_\bc_\be_\bs_\bs_\bT_\br_\ba_\bi_\bt_\bs\n+65 {\n+_\b6_\b6 typedef T& _\bC_\bo_\bn_\bs_\bt_\bT_\by_\bp_\be;\n+_\b6_\b7 typedef T& _\bN_\bo_\bn_\bC_\bo_\bn_\bs_\bt_\bT_\by_\bp_\be;\n+_\b6_\b8 typedef T& _\bP_\ba_\br_\ba_\bm_\be_\bt_\be_\br_\bT_\by_\bp_\be;\n+69 };\n 70\n-_\b7_\b5 static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl _\bV_\bE_\bR_\bY_\b__\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = 1;\n-76\n-_\b8_\b1 typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm_\b<_\bV_\bE_\bR_\bY_\b__\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL_\b,_\b _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL_\b>\n-_\bD_\bV_\bV_\be_\br_\bb_\bT_\by_\bp_\be;\n-82\n-_\b9_\b5 extern _\bD_\bV_\bV_\be_\br_\bb_\bT_\by_\bp_\be _\bd_\bv_\bv_\be_\br_\bb;\n-96\n-_\b1_\b0_\b1 static const _\bD_\be_\bb_\bu_\bg_\bL_\be_\bv_\be_\bl _\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL = 2;\n-102\n-_\b1_\b0_\b7 typedef _\bD_\be_\bb_\bu_\bg_\bS_\bt_\br_\be_\ba_\bm_\b<_\bV_\bE_\bR_\bB_\bO_\bS_\bE_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL_\b,_\b _\bM_\bI_\bN_\bI_\bM_\bA_\bL_\b__\bD_\bE_\bB_\bU_\bG_\b__\bL_\bE_\bV_\bE_\bL_\b> _\bD_\bV_\be_\br_\bb_\bT_\by_\bp_\be;\n-108\n-_\b1_\b1_\b6 extern _\bD_\bV_\be_\br_\bb_\bT_\by_\bp_\be _\bd_\bv_\be_\br_\bb;\n+78 template\n+_\b7_\b9 struct _\bN_\bu_\bl_\bl_\bP_\bo_\bi_\bn_\bt_\be_\br_\bI_\bn_\bi_\bt_\bi_\ba_\bl_\bi_\bs_\be_\br;\n+80\n+81 template\n+_\b8_\b2 struct _\bN_\bu_\bl_\bl_\bP_\bo_\bi_\bn_\bt_\be_\br_\bI_\bn_\bi_\bt_\bi_\ba_\bl_\bi_\bs_\be_\br<_\bs_\bt_\bd::tuple >\n+83 {\n+_\b8_\b4 typedef std::tuple _\bR_\be_\bs_\bu_\bl_\bt_\bT_\by_\bp_\be;\n+_\b8_\b5 static _\bR_\be_\bs_\bu_\bl_\bt_\bT_\by_\bp_\be _\ba_\bp_\bp_\bl_\by()\n+86 {\n+87 return _\bR_\be_\bs_\bu_\bl_\bt_\bT_\by_\bp_\be(static_cast(nullptr)...);\n+88 }\n+89 };\n+90\n+115 template