Line | Branch | Exec | Source |
---|---|---|---|
1 | // Copyright Contributors to the OpenVDB Project | ||
2 | // SPDX-License-Identifier: MPL-2.0 | ||
3 | |||
4 | /// @file tree/NodeManager.h | ||
5 | /// | ||
6 | /// @authors Ken Museth, Dan Bailey | ||
7 | /// | ||
8 | /// @brief NodeManager produces linear arrays of all tree nodes | ||
9 | /// allowing for efficient threading and bottom-up processing. | ||
10 | /// | ||
11 | /// @note A NodeManager can be constructed from a Tree or LeafManager. | ||
12 | |||
13 | #ifndef OPENVDB_TREE_NODEMANAGER_HAS_BEEN_INCLUDED | ||
14 | #define OPENVDB_TREE_NODEMANAGER_HAS_BEEN_INCLUDED | ||
15 | |||
16 | #include <openvdb/Types.h> | ||
17 | #include <tbb/parallel_for.h> | ||
18 | #include <tbb/parallel_reduce.h> | ||
19 | #include <deque> | ||
20 | |||
21 | |||
22 | namespace openvdb { | ||
23 | OPENVDB_USE_VERSION_NAMESPACE | ||
24 | namespace OPENVDB_VERSION_NAME { | ||
25 | namespace tree { | ||
26 | |||
27 | // Produce linear arrays of all tree nodes, to facilitate efficient threading | ||
28 | // and bottom-up processing. | ||
29 | template<typename TreeOrLeafManagerT, Index LEVELS = TreeOrLeafManagerT::RootNodeType::LEVEL> | ||
30 | class NodeManager; | ||
31 | |||
32 | |||
33 | // Produce linear arrays of all tree nodes lazily, to facilitate efficient threading | ||
34 | // of topology-changing top-down workflows. | ||
35 | template<typename TreeOrLeafManagerT, Index _LEVELS = TreeOrLeafManagerT::RootNodeType::LEVEL> | ||
36 | class DynamicNodeManager; | ||
37 | |||
38 | |||
39 | //////////////////////////////////////// | ||
40 | |||
41 | |||
42 | // This is a dummy node filtering class used by the NodeManager class to match | ||
43 | // the internal filtering interface used by the DynamicNodeManager. | ||
44 | struct NodeFilter | ||
45 | { | ||
46 | static bool valid(size_t) { return true; } | ||
47 | }; // struct NodeFilter | ||
48 | |||
49 | |||
50 | /// @brief This class caches tree nodes of a specific type in a linear array. | ||
51 | /// | ||
52 | /// @note It is for internal use and should rarely be used directly. | ||
53 | template<typename NodeT> | ||
54 | ✗ | class NodeList | |
55 | { | ||
56 | public: | ||
57 |
142/291✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 118 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 151 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 142 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 5621 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 3265 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 3350 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 37 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✓ Branch 25 taken 3 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 170 times.
✓ Branch 29 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 16 times.
✓ Branch 32 taken 1 times.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 51 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 44 times.
✓ Branch 38 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 9 times.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 43 taken 13 times.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✓ Branch 46 taken 37 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 68 times.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 5126 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 177 times.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✓ Branch 61 taken 1296 times.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✓ Branch 64 taken 2 times.
✓ Branch 65 taken 4 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✓ Branch 68 taken 8 times.
✓ Branch 69 taken 4 times.
✓ Branch 70 taken 2 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 1 times.
✓ Branch 73 taken 5 times.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 76 taken 66 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 2 times.
✓ Branch 79 taken 3 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 5 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 7 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 17 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 5 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 11 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 8 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 1 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 1 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 1 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 1 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 1 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 1 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 1 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 1 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 1 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 1 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 1 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 3 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 1 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 1 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 1 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 1 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 2 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 7 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 1 times.
✗ Branch 188 not taken.
✓ Branch 190 taken 1 times.
✗ Branch 191 not taken.
✓ Branch 193 taken 1 times.
✗ Branch 194 not taken.
✓ Branch 196 taken 1 times.
✗ Branch 197 not taken.
✓ Branch 199 taken 1 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 1 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 1 times.
✗ Branch 206 not taken.
✓ Branch 208 taken 1 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 1 times.
✗ Branch 212 not taken.
✓ Branch 214 taken 1 times.
✗ Branch 215 not taken.
✓ Branch 217 taken 1 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 1 times.
✗ Branch 221 not taken.
✓ Branch 223 taken 1 times.
✗ Branch 224 not taken.
✓ Branch 226 taken 1 times.
✗ Branch 227 not taken.
✓ Branch 229 taken 1 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 1 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 1 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 1 times.
✗ Branch 239 not taken.
✓ Branch 241 taken 1 times.
✗ Branch 242 not taken.
✓ Branch 244 taken 1 times.
✗ Branch 245 not taken.
✓ Branch 247 taken 1 times.
✗ Branch 248 not taken.
✓ Branch 250 taken 1 times.
✗ Branch 251 not taken.
✓ Branch 253 taken 1 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 1 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 1 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 1 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 1 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 1 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 1 times.
✗ Branch 272 not taken.
✓ Branch 274 taken 1 times.
✗ Branch 275 not taken.
✓ Branch 277 taken 1 times.
✗ Branch 278 not taken.
✓ Branch 280 taken 1 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 1 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 1 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 1 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 1 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 1 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 1 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 86 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 125 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 135 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 121 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 135 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 127 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 129 times.
✗ Branch 320 not taken.
✓ Branch 322 taken 135 times.
✗ Branch 323 not taken.
✓ Branch 325 taken 143 times.
✗ Branch 326 not taken.
✓ Branch 328 taken 224 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 257 times.
✗ Branch 332 not taken.
✓ Branch 334 taken 95 times.
✗ Branch 335 not taken.
✓ Branch 337 taken 95 times.
✗ Branch 338 not taken.
✓ Branch 340 taken 95 times.
✗ Branch 341 not taken.
✓ Branch 343 taken 888 times.
✗ Branch 344 not taken.
✓ Branch 346 taken 73 times.
✗ Branch 347 not taken.
✓ Branch 349 taken 546 times.
✗ Branch 350 not taken.
✓ Branch 352 taken 187 times.
✗ Branch 353 not taken.
✓ Branch 355 taken 557 times.
✗ Branch 356 not taken.
✓ Branch 358 taken 785 times.
✗ Branch 359 not taken.
✓ Branch 361 taken 1 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 1 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 1 times.
✗ Branch 368 not taken.
✓ Branch 370 taken 1 times.
✗ Branch 371 not taken.
✓ Branch 373 taken 1 times.
✗ Branch 374 not taken.
✓ Branch 376 taken 1 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 1 times.
✗ Branch 380 not taken.
✓ Branch 382 taken 1 times.
✗ Branch 383 not taken.
✓ Branch 385 taken 1 times.
✗ Branch 386 not taken.
✓ Branch 388 taken 1 times.
✗ Branch 389 not taken.
✓ Branch 391 taken 1 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 1 times.
✗ Branch 395 not taken.
|
24903 | NodeList() = default; |
58 | |||
59 |
2/1174✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 361 not taken.
✓ Branch 362 taken 8 times.
✗ Branch 363 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✓ Branch 369 taken 8 times.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 502 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 526 not taken.
✗ Branch 527 not taken.
✗ Branch 528 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 630 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 642 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 645 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 648 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 651 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 654 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 657 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 660 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 663 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 666 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 669 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 672 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 675 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 678 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 681 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 684 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 690 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 702 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 708 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 711 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 714 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✗ Branch 717 not taken.
✗ Branch 718 not taken.
✗ Branch 719 not taken.
✗ Branch 720 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 723 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 726 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 729 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 732 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 738 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 744 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 747 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 750 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✗ Branch 761 not taken.
✗ Branch 762 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 766 not taken.
✗ Branch 768 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 771 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 777 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 780 not taken.
✗ Branch 782 not taken.
✗ Branch 783 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 786 not taken.
✗ Branch 787 not taken.
✗ Branch 789 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 792 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 798 not taken.
✗ Branch 799 not taken.
✗ Branch 803 not taken.
✗ Branch 804 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 810 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 813 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 819 not taken.
✗ Branch 820 not taken.
✗ Branch 824 not taken.
✗ Branch 825 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 831 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 834 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 840 not taken.
✗ Branch 841 not taken.
✗ Branch 845 not taken.
✗ Branch 846 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 852 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 855 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 861 not taken.
✗ Branch 862 not taken.
✗ Branch 866 not taken.
✗ Branch 867 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 873 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 876 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 882 not taken.
✗ Branch 883 not taken.
✗ Branch 887 not taken.
✗ Branch 888 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 894 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 897 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 903 not taken.
✗ Branch 904 not taken.
✗ Branch 908 not taken.
✗ Branch 909 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 915 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 918 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 924 not taken.
✗ Branch 925 not taken.
✗ Branch 929 not taken.
✗ Branch 930 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 936 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 939 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 945 not taken.
✗ Branch 946 not taken.
✗ Branch 950 not taken.
✗ Branch 951 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 957 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 960 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 966 not taken.
✗ Branch 967 not taken.
✗ Branch 971 not taken.
✗ Branch 972 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 978 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 981 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 987 not taken.
✗ Branch 988 not taken.
✗ Branch 992 not taken.
✗ Branch 993 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 999 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1002 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1008 not taken.
✗ Branch 1009 not taken.
✗ Branch 1013 not taken.
✗ Branch 1014 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1020 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1023 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1029 not taken.
✗ Branch 1030 not taken.
✗ Branch 1034 not taken.
✗ Branch 1035 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1041 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1044 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1050 not taken.
✗ Branch 1051 not taken.
✗ Branch 1055 not taken.
✗ Branch 1056 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1062 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1065 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1071 not taken.
✗ Branch 1072 not taken.
✗ Branch 1076 not taken.
✗ Branch 1077 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1083 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1086 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1092 not taken.
✗ Branch 1093 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1104 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1107 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1113 not taken.
✗ Branch 1114 not taken.
✗ Branch 1118 not taken.
✗ Branch 1119 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1125 not taken.
✗ Branch 1126 not taken.
✗ Branch 1127 not taken.
✗ Branch 1128 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1134 not taken.
✗ Branch 1135 not taken.
✗ Branch 1139 not taken.
✗ Branch 1140 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1146 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1149 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1155 not taken.
✗ Branch 1156 not taken.
✗ Branch 1160 not taken.
✗ Branch 1161 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1167 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1170 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1176 not taken.
✗ Branch 1177 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1188 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1191 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✗ Branch 1197 not taken.
✗ Branch 1198 not taken.
✗ Branch 1202 not taken.
✗ Branch 1203 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1209 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1212 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1218 not taken.
✗ Branch 1219 not taken.
✗ Branch 1223 not taken.
✗ Branch 1224 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1230 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1233 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1239 not taken.
✗ Branch 1240 not taken.
✗ Branch 1244 not taken.
✗ Branch 1245 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1251 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1254 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1260 not taken.
✗ Branch 1261 not taken.
✗ Branch 1265 not taken.
✗ Branch 1266 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1272 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1275 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1281 not taken.
✗ Branch 1282 not taken.
✗ Branch 1286 not taken.
✗ Branch 1287 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1293 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1296 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1302 not taken.
✗ Branch 1303 not taken.
✗ Branch 1307 not taken.
✗ Branch 1308 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1314 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1317 not taken.
✗ Branch 1323 not taken.
✗ Branch 1324 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1338 not taken.
✗ Branch 1344 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1358 not taken.
✗ Branch 1359 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1365 not taken.
✗ Branch 1366 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1379 not taken.
✗ Branch 1380 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1386 not taken.
✗ Branch 1387 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
✗ Branch 1393 not taken.
✗ Branch 1394 not taken.
✗ Branch 1399 not taken.
✗ Branch 1400 not taken.
✗ Branch 1401 not taken.
✗ Branch 1407 not taken.
✗ Branch 1408 not taken.
✗ Branch 1409 not taken.
✗ Branch 1414 not taken.
✗ Branch 1415 not taken.
✗ Branch 1417 not taken.
✗ Branch 1418 not taken.
✗ Branch 1421 not taken.
✗ Branch 1422 not taken.
✗ Branch 1426 not taken.
✗ Branch 1427 not taken.
✗ Branch 1428 not taken.
✗ Branch 1429 not taken.
✗ Branch 1435 not taken.
✗ Branch 1436 not taken.
✗ Branch 1442 not taken.
✗ Branch 1443 not taken.
✗ Branch 1444 not taken.
✗ Branch 1445 not taken.
✗ Branch 1449 not taken.
✗ Branch 1450 not taken.
✗ Branch 1453 not taken.
✗ Branch 1454 not taken.
✗ Branch 1456 not taken.
✗ Branch 1457 not taken.
✗ Branch 1462 not taken.
✗ Branch 1463 not taken.
✗ Branch 1464 not taken.
✗ Branch 1470 not taken.
✗ Branch 1471 not taken.
✗ Branch 1472 not taken.
✗ Branch 1477 not taken.
✗ Branch 1478 not taken.
✗ Branch 1480 not taken.
✗ Branch 1481 not taken.
✗ Branch 1484 not taken.
✗ Branch 1485 not taken.
✗ Branch 1487 not taken.
✗ Branch 1488 not taken.
✗ Branch 1491 not taken.
✗ Branch 1492 not taken.
✗ Branch 1494 not taken.
✗ Branch 1495 not taken.
✗ Branch 1498 not taken.
✗ Branch 1499 not taken.
✗ Branch 1505 not taken.
✗ Branch 1506 not taken.
✗ Branch 1512 not taken.
✗ Branch 1513 not taken.
✗ Branch 1521 not taken.
✗ Branch 1522 not taken.
|
87152 | NodeT& operator()(size_t n) const { assert(n<mNodeCount); return *(mNodes[n]); } |
60 | |||
61 | NodeT*& operator[](size_t n) { assert(n<mNodeCount); return mNodes[n]; } | ||
62 | |||
63 | 204542 | Index64 nodeCount() const { return mNodeCount; } | |
64 | |||
65 | void clear() | ||
66 | { | ||
67 | mNodePtrs.reset(); | ||
68 | mNodes = nullptr; | ||
69 | mNodeCount = 0; | ||
70 | } | ||
71 | |||
72 | // initialize this node list from the provided root node | ||
73 | template <typename RootT> | ||
74 | 49699 | bool initRootChildren(RootT& root) | |
75 | { | ||
76 | // Allocate (or deallocate) the node pointer array | ||
77 | |||
78 | 49699 | size_t nodeCount = root.childCount(); | |
79 | |||
80 |
2/2✓ Branch 0 taken 24678 times.
✓ Branch 1 taken 184 times.
|
49699 | if (nodeCount != mNodeCount) { |
81 |
1/2✓ Branch 0 taken 24678 times.
✗ Branch 1 not taken.
|
49331 | if (nodeCount > 0) { |
82 | 49331 | mNodePtrs.reset(new NodeT*[nodeCount]); | |
83 | 49331 | mNodes = mNodePtrs.get(); | |
84 | } else { | ||
85 | mNodePtrs.reset(); | ||
86 | ✗ | mNodes = nullptr; | |
87 | } | ||
88 | 49331 | mNodeCount = nodeCount; | |
89 | } | ||
90 | |||
91 |
2/2✓ Branch 0 taken 24682 times.
✓ Branch 1 taken 180 times.
|
49699 | if (mNodeCount == 0) return false; |
92 | |||
93 | // Populate the node pointers | ||
94 | |||
95 | 49339 | NodeT** nodePtr = mNodes; | |
96 |
3/3✓ Branch 0 taken 24329 times.
✓ Branch 1 taken 31649 times.
✓ Branch 2 taken 10035 times.
|
181287 | for (auto iter = root.beginChildOn(); iter; ++iter) { |
97 | 82609 | *nodePtr++ = &iter.getValue(); | |
98 | } | ||
99 | |||
100 | 49339 | return true; | |
101 | } | ||
102 | |||
103 | // initialize this node list from another node list containing the parent nodes | ||
104 | template <typename ParentsT, typename NodeFilterT> | ||
105 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 39466 times.
|
78936 | bool initNodeChildren(ParentsT& parents, const NodeFilterT& nodeFilter = NodeFilterT(), bool serial = false) |
106 | { | ||
107 | // Compute the node counts for each node | ||
108 | |||
109 | std::vector<Index32> nodeCounts; | ||
110 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 39466 times.
|
78936 | if (serial) { |
111 |
1/2✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
|
4 | nodeCounts.reserve(parents.nodeCount()); |
112 |
2/2✓ Branch 0 taken 16 times.
✓ Branch 1 taken 2 times.
|
36 | for (size_t i = 0; i < parents.nodeCount(); i++) { |
113 | ✗ | if (!nodeFilter.valid(i)) nodeCounts.push_back(0); | |
114 |
1/2✓ Branch 1 taken 16 times.
✗ Branch 2 not taken.
|
32 | else nodeCounts.push_back(parents(i).childCount()); |
115 | } | ||
116 | } else { | ||
117 |
1/2✓ Branch 1 taken 39466 times.
✗ Branch 2 not taken.
|
78932 | nodeCounts.resize(parents.nodeCount()); |
118 |
1/2✓ Branch 1 taken 39466 times.
✗ Branch 2 not taken.
|
78932 | tbb::parallel_for( |
119 | // with typical node sizes and SSE enabled, there are only a handful | ||
120 | // of instructions executed per-operation with a default grainsize | ||
121 | // of 1, so increase to 64 to reduce parallel scheduling overhead | ||
122 | tbb::blocked_range<Index64>(0, parents.nodeCount(), /*grainsize=*/64), | ||
123 | 127316 | [&](tbb::blocked_range<Index64>& range) | |
124 | { | ||
125 |
180/416✓ Branch 0 taken 38 times.
✓ Branch 1 taken 21 times.
✓ Branch 2 taken 100 times.
✓ Branch 3 taken 29 times.
✓ Branch 4 taken 183 times.
✓ Branch 5 taken 104 times.
✓ Branch 6 taken 183 times.
✓ Branch 7 taken 104 times.
✓ Branch 8 taken 340 times.
✓ Branch 9 taken 134 times.
✓ Branch 10 taken 116 times.
✓ Branch 11 taken 9 times.
✓ Branch 12 taken 68 times.
✓ Branch 13 taken 9 times.
✓ Branch 14 taken 9606 times.
✓ Branch 15 taken 5607 times.
✓ Branch 16 taken 8452 times.
✓ Branch 17 taken 5606 times.
✓ Branch 18 taken 3252 times.
✓ Branch 19 taken 3247 times.
✓ Branch 20 taken 3251 times.
✓ Branch 21 taken 3245 times.
✓ Branch 22 taken 3466 times.
✓ Branch 23 taken 3293 times.
✓ Branch 24 taken 229 times.
✓ Branch 25 taken 59 times.
✓ Branch 26 taken 23 times.
✓ Branch 27 taken 9 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✓ Branch 30 taken 8 times.
✓ Branch 31 taken 8 times.
✓ Branch 32 taken 1979 times.
✓ Branch 33 taken 183 times.
✓ Branch 34 taken 605 times.
✓ Branch 35 taken 150 times.
✓ Branch 36 taken 14 times.
✓ Branch 37 taken 12 times.
✓ Branch 38 taken 16 times.
✓ Branch 39 taken 12 times.
✓ Branch 40 taken 24 times.
✓ Branch 41 taken 7 times.
✓ Branch 42 taken 24 times.
✓ Branch 43 taken 7 times.
✓ Branch 44 taken 1570 times.
✓ Branch 45 taken 161 times.
✓ Branch 46 taken 2 times.
✓ Branch 47 taken 1 times.
✓ Branch 48 taken 25 times.
✓ Branch 49 taken 4 times.
✓ Branch 50 taken 9 times.
✓ Branch 51 taken 7 times.
✓ Branch 52 taken 22 times.
✓ Branch 53 taken 6 times.
✓ Branch 54 taken 118 times.
✓ Branch 55 taken 32 times.
✓ Branch 56 taken 22 times.
✓ Branch 57 taken 6 times.
✓ Branch 58 taken 165 times.
✓ Branch 59 taken 65 times.
✓ Branch 60 taken 6 times.
✓ Branch 61 taken 4 times.
✓ Branch 62 taken 6 times.
✓ Branch 63 taken 4 times.
✓ Branch 64 taken 28297 times.
✓ Branch 65 taken 5546 times.
✓ Branch 66 taken 7712 times.
✓ Branch 67 taken 5111 times.
✓ Branch 68 taken 380 times.
✓ Branch 69 taken 65 times.
✓ Branch 70 taken 4631 times.
✓ Branch 71 taken 1511 times.
✓ Branch 72 taken 11 times.
✓ Branch 73 taken 8 times.
✓ Branch 74 taken 1 times.
✓ Branch 75 taken 1 times.
✓ Branch 76 taken 7 times.
✓ Branch 77 taken 5 times.
✓ Branch 78 taken 7 times.
✓ Branch 79 taken 5 times.
✓ Branch 80 taken 5 times.
✓ Branch 81 taken 3 times.
✓ Branch 82 taken 9 times.
✓ Branch 83 taken 2 times.
✓ Branch 84 taken 15 times.
✓ Branch 85 taken 8 times.
✓ Branch 86 taken 20 times.
✓ Branch 87 taken 12 times.
✓ Branch 88 taken 960 times.
✓ Branch 89 taken 167 times.
✓ Branch 90 taken 38 times.
✓ Branch 91 taken 11 times.
✓ Branch 92 taken 2 times.
✓ Branch 93 taken 2 times.
✓ Branch 94 taken 9 times.
✓ Branch 95 taken 9 times.
✓ Branch 96 taken 173 times.
✓ Branch 97 taken 21 times.
✓ Branch 98 taken 98 times.
✓ Branch 99 taken 30 times.
✓ Branch 100 taken 156 times.
✓ Branch 101 taken 21 times.
✓ Branch 102 taken 37 times.
✓ Branch 103 taken 11 times.
✓ Branch 104 taken 142 times.
✓ Branch 105 taken 20 times.
✓ Branch 106 taken 197 times.
✓ Branch 107 taken 43 times.
✓ Branch 108 taken 87 times.
✓ Branch 109 taken 24 times.
✓ Branch 110 taken 51 times.
✓ Branch 111 taken 15 times.
✓ Branch 112 taken 74 times.
✓ Branch 113 taken 23 times.
✓ Branch 114 taken 2 times.
✓ Branch 115 taken 2 times.
✓ Branch 116 taken 6 times.
✓ Branch 117 taken 6 times.
✓ Branch 118 taken 16 times.
✓ Branch 119 taken 16 times.
✓ Branch 120 taken 10 times.
✓ Branch 121 taken 10 times.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✓ Branch 124 taken 32 times.
✓ Branch 125 taken 4 times.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✓ Branch 128 taken 1 times.
✓ Branch 129 taken 1 times.
✓ Branch 130 taken 48 times.
✓ Branch 131 taken 7 times.
✓ Branch 132 taken 48 times.
✓ Branch 133 taken 7 times.
✓ Branch 134 taken 1 times.
✓ Branch 135 taken 1 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✓ Branch 156 taken 2 times.
✓ Branch 157 taken 2 times.
✓ Branch 158 taken 2 times.
✓ Branch 159 taken 2 times.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✓ Branch 198 taken 46 times.
✓ Branch 199 taken 3 times.
✓ Branch 200 taken 2851 times.
✓ Branch 201 taken 54 times.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✓ Branch 360 taken 128 times.
✓ Branch 361 taken 85 times.
✓ Branch 362 taken 186 times.
✓ Branch 363 taken 124 times.
✓ Branch 364 taken 201 times.
✓ Branch 365 taken 134 times.
✓ Branch 366 taken 180 times.
✓ Branch 367 taken 120 times.
✓ Branch 368 taken 201 times.
✓ Branch 369 taken 134 times.
✓ Branch 370 taken 189 times.
✓ Branch 371 taken 126 times.
✓ Branch 372 taken 192 times.
✓ Branch 373 taken 128 times.
✓ Branch 374 taken 201 times.
✓ Branch 375 taken 134 times.
✓ Branch 376 taken 213 times.
✓ Branch 377 taken 142 times.
✓ Branch 378 taken 334 times.
✓ Branch 379 taken 223 times.
✓ Branch 380 taken 384 times.
✓ Branch 381 taken 256 times.
✓ Branch 382 taken 141 times.
✓ Branch 383 taken 94 times.
✓ Branch 384 taken 141 times.
✓ Branch 385 taken 94 times.
✓ Branch 386 taken 141 times.
✓ Branch 387 taken 94 times.
✓ Branch 388 taken 1331 times.
✓ Branch 389 taken 887 times.
✓ Branch 390 taken 102 times.
✓ Branch 391 taken 68 times.
✓ Branch 392 taken 819 times.
✓ Branch 393 taken 545 times.
✓ Branch 394 taken 279 times.
✓ Branch 395 taken 186 times.
✓ Branch 396 taken 818 times.
✓ Branch 397 taken 553 times.
✓ Branch 398 taken 1176 times.
✓ Branch 399 taken 784 times.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✓ Branch 414 taken 4 times.
✓ Branch 415 taken 4 times.
|
127316 | for (Index64 i = range.begin(); i < range.end(); i++) { |
126 | 248 | if (!nodeFilter.valid(i)) nodeCounts[i] = 0; | |
127 | 87219 | else nodeCounts[i] = parents(i).childCount(); | |
128 | } | ||
129 | } | ||
130 | ); | ||
131 | } | ||
132 | |||
133 | // Turn node counts into a cumulative histogram and obtain total node count | ||
134 | |||
135 |
2/2✓ Branch 0 taken 48179 times.
✓ Branch 1 taken 39468 times.
|
175294 | for (size_t i = 1; i < nodeCounts.size(); i++) { |
136 | 96358 | nodeCounts[i] += nodeCounts[i-1]; | |
137 | } | ||
138 | |||
139 |
2/2✓ Branch 0 taken 39304 times.
✓ Branch 1 taken 164 times.
|
78936 | const size_t nodeCount = nodeCounts.empty() ? 0 : nodeCounts.back(); |
140 | |||
141 | // Allocate (or deallocate) the node pointer array | ||
142 | |||
143 |
2/2✓ Branch 0 taken 39180 times.
✓ Branch 1 taken 288 times.
|
78936 | if (nodeCount != mNodeCount) { |
144 |
1/2✓ Branch 0 taken 39180 times.
✗ Branch 1 not taken.
|
78360 | if (nodeCount > 0) { |
145 |
2/4✓ Branch 0 taken 39180 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 39180 times.
✗ Branch 4 not taken.
|
78360 | mNodePtrs.reset(new NodeT*[nodeCount]); |
146 | 78360 | mNodes = mNodePtrs.get(); | |
147 | } else { | ||
148 | mNodePtrs.reset(); | ||
149 | ✗ | mNodes = nullptr; | |
150 | } | ||
151 | 78360 | mNodeCount = nodeCount; | |
152 | } | ||
153 | |||
154 |
2/2✓ Branch 0 taken 39184 times.
✓ Branch 1 taken 284 times.
|
78936 | if (mNodeCount == 0) return false; |
155 | |||
156 | // Populate the node pointers | ||
157 | |||
158 |
2/2✓ Branch 0 taken 2 times.
✓ Branch 1 taken 39182 times.
|
78368 | if (serial) { |
159 | 4 | NodeT** nodePtr = mNodes; | |
160 |
2/2✓ Branch 0 taken 16 times.
✓ Branch 1 taken 2 times.
|
36 | for (size_t i = 0; i < parents.nodeCount(); i++) { |
161 | ✗ | if (!nodeFilter.valid(i)) continue; | |
162 |
2/2✓ Branch 0 taken 3271 times.
✓ Branch 1 taken 16 times.
|
6574 | for (auto iter = parents(i).beginChildOn(); iter; ++iter) { |
163 |
1/2✓ Branch 1 taken 3271 times.
✗ Branch 2 not taken.
|
6542 | *nodePtr++ = &iter.getValue(); |
164 | } | ||
165 | } | ||
166 | } else { | ||
167 |
1/4✓ Branch 1 taken 39182 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
78364 | tbb::parallel_for( |
168 | tbb::blocked_range<Index64>(0, parents.nodeCount()), | ||
169 | 153389 | [&](tbb::blocked_range<Index64>& range) | |
170 | { | ||
171 | Index64 i = range.begin(); | ||
172 | 66269 | NodeT** nodePtr = mNodes; | |
173 |
166/416✓ Branch 0 taken 17 times.
✓ Branch 1 taken 20 times.
✓ Branch 2 taken 71 times.
✓ Branch 3 taken 29 times.
✓ Branch 4 taken 79 times.
✓ Branch 5 taken 104 times.
✓ Branch 6 taken 79 times.
✓ Branch 7 taken 104 times.
✓ Branch 8 taken 199 times.
✓ Branch 9 taken 123 times.
✓ Branch 10 taken 107 times.
✓ Branch 11 taken 9 times.
✓ Branch 12 taken 59 times.
✓ Branch 13 taken 9 times.
✓ Branch 14 taken 3132 times.
✓ Branch 15 taken 5562 times.
✓ Branch 16 taken 2846 times.
✓ Branch 17 taken 5593 times.
✓ Branch 18 taken 5 times.
✓ Branch 19 taken 3247 times.
✓ Branch 20 taken 6 times.
✓ Branch 21 taken 3245 times.
✓ Branch 22 taken 173 times.
✓ Branch 23 taken 3293 times.
✓ Branch 24 taken 170 times.
✓ Branch 25 taken 59 times.
✓ Branch 26 taken 14 times.
✓ Branch 27 taken 9 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 746 times.
✓ Branch 33 taken 149 times.
✓ Branch 34 taken 455 times.
✓ Branch 35 taken 150 times.
✓ Branch 36 taken 2 times.
✓ Branch 37 taken 11 times.
✓ Branch 38 taken 4 times.
✓ Branch 39 taken 12 times.
✓ Branch 40 taken 17 times.
✓ Branch 41 taken 7 times.
✓ Branch 42 taken 17 times.
✓ Branch 43 taken 7 times.
✓ Branch 44 taken 1088 times.
✓ Branch 45 taken 147 times.
✓ Branch 46 taken 1 times.
✓ Branch 47 taken 1 times.
✓ Branch 48 taken 21 times.
✓ Branch 49 taken 4 times.
✓ Branch 50 taken 2 times.
✓ Branch 51 taken 7 times.
✓ Branch 52 taken 16 times.
✓ Branch 53 taken 6 times.
✓ Branch 54 taken 86 times.
✓ Branch 55 taken 32 times.
✓ Branch 56 taken 16 times.
✓ Branch 57 taken 6 times.
✓ Branch 58 taken 100 times.
✓ Branch 59 taken 64 times.
✓ Branch 60 taken 2 times.
✓ Branch 61 taken 4 times.
✓ Branch 62 taken 2 times.
✓ Branch 63 taken 4 times.
✓ Branch 64 taken 6803 times.
✓ Branch 65 taken 5096 times.
✓ Branch 66 taken 2601 times.
✓ Branch 67 taken 5110 times.
✓ Branch 68 taken 314 times.
✓ Branch 69 taken 63 times.
✓ Branch 70 taken 3120 times.
✓ Branch 71 taken 1505 times.
✓ Branch 72 taken 3 times.
✓ Branch 73 taken 8 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 1 times.
✓ Branch 76 taken 2 times.
✓ Branch 77 taken 5 times.
✓ Branch 78 taken 2 times.
✓ Branch 79 taken 5 times.
✓ Branch 80 taken 2 times.
✓ Branch 81 taken 3 times.
✓ Branch 82 taken 7 times.
✓ Branch 83 taken 2 times.
✓ Branch 84 taken 7 times.
✓ Branch 85 taken 8 times.
✓ Branch 86 taken 1 times.
✓ Branch 87 taken 9 times.
✓ Branch 88 taken 793 times.
✓ Branch 89 taken 164 times.
✓ Branch 90 taken 27 times.
✓ Branch 91 taken 10 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 2 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 2 times.
✓ Branch 96 taken 37 times.
✓ Branch 97 taken 14 times.
✓ Branch 98 taken 61 times.
✓ Branch 99 taken 21 times.
✓ Branch 100 taken 135 times.
✓ Branch 101 taken 21 times.
✓ Branch 102 taken 26 times.
✓ Branch 103 taken 11 times.
✓ Branch 104 taken 122 times.
✓ Branch 105 taken 20 times.
✓ Branch 106 taken 154 times.
✓ Branch 107 taken 42 times.
✓ Branch 108 taken 63 times.
✓ Branch 109 taken 24 times.
✓ Branch 110 taken 36 times.
✓ Branch 111 taken 15 times.
✓ Branch 112 taken 51 times.
✓ Branch 113 taken 23 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 5 times.
✗ Branch 118 not taken.
✓ Branch 119 taken 16 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 10 times.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✓ Branch 124 taken 28 times.
✓ Branch 125 taken 4 times.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✓ Branch 129 taken 1 times.
✓ Branch 130 taken 41 times.
✓ Branch 131 taken 7 times.
✓ Branch 132 taken 41 times.
✓ Branch 133 taken 7 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 1 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✓ Branch 157 taken 2 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 2 times.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✓ Branch 198 taken 43 times.
✓ Branch 199 taken 3 times.
✓ Branch 200 taken 589 times.
✓ Branch 201 taken 6 times.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✓ Branch 360 taken 43 times.
✓ Branch 361 taken 85 times.
✓ Branch 362 taken 62 times.
✓ Branch 363 taken 124 times.
✓ Branch 364 taken 67 times.
✓ Branch 365 taken 134 times.
✓ Branch 366 taken 60 times.
✓ Branch 367 taken 120 times.
✓ Branch 368 taken 67 times.
✓ Branch 369 taken 134 times.
✓ Branch 370 taken 63 times.
✓ Branch 371 taken 126 times.
✓ Branch 372 taken 64 times.
✓ Branch 373 taken 128 times.
✓ Branch 374 taken 67 times.
✓ Branch 375 taken 134 times.
✓ Branch 376 taken 71 times.
✓ Branch 377 taken 142 times.
✓ Branch 378 taken 111 times.
✓ Branch 379 taken 223 times.
✓ Branch 380 taken 128 times.
✓ Branch 381 taken 256 times.
✓ Branch 382 taken 47 times.
✓ Branch 383 taken 94 times.
✓ Branch 384 taken 47 times.
✓ Branch 385 taken 94 times.
✓ Branch 386 taken 47 times.
✓ Branch 387 taken 94 times.
✓ Branch 388 taken 444 times.
✓ Branch 389 taken 887 times.
✓ Branch 390 taken 34 times.
✓ Branch 391 taken 68 times.
✓ Branch 392 taken 274 times.
✓ Branch 393 taken 545 times.
✓ Branch 394 taken 93 times.
✓ Branch 395 taken 186 times.
✓ Branch 396 taken 265 times.
✓ Branch 397 taken 553 times.
✓ Branch 398 taken 392 times.
✓ Branch 399 taken 784 times.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✓ Branch 415 taken 4 times.
|
66269 | if (i > 0) nodePtr += nodeCounts[i-1]; |
174 |
178/416✓ Branch 0 taken 37 times.
✓ Branch 1 taken 37 times.
✓ Branch 2 taken 100 times.
✓ Branch 3 taken 100 times.
✓ Branch 4 taken 183 times.
✓ Branch 5 taken 183 times.
✓ Branch 6 taken 183 times.
✓ Branch 7 taken 183 times.
✓ Branch 8 taken 322 times.
✓ Branch 9 taken 322 times.
✓ Branch 10 taken 116 times.
✓ Branch 11 taken 116 times.
✓ Branch 12 taken 68 times.
✓ Branch 13 taken 68 times.
✓ Branch 14 taken 9576 times.
✓ Branch 15 taken 8694 times.
✓ Branch 16 taken 8439 times.
✓ Branch 17 taken 8439 times.
✓ Branch 18 taken 3252 times.
✓ Branch 19 taken 3252 times.
✓ Branch 20 taken 3251 times.
✓ Branch 21 taken 3251 times.
✓ Branch 22 taken 3466 times.
✓ Branch 23 taken 3466 times.
✓ Branch 24 taken 229 times.
✓ Branch 25 taken 229 times.
✓ Branch 26 taken 23 times.
✓ Branch 27 taken 23 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1979 times.
✓ Branch 33 taken 895 times.
✓ Branch 34 taken 605 times.
✓ Branch 35 taken 605 times.
✓ Branch 36 taken 13 times.
✓ Branch 37 taken 13 times.
✓ Branch 38 taken 16 times.
✓ Branch 39 taken 16 times.
✓ Branch 40 taken 24 times.
✓ Branch 41 taken 24 times.
✓ Branch 42 taken 24 times.
✓ Branch 43 taken 24 times.
✓ Branch 44 taken 1570 times.
✓ Branch 45 taken 1235 times.
✓ Branch 46 taken 2 times.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 25 times.
✓ Branch 49 taken 25 times.
✓ Branch 50 taken 9 times.
✓ Branch 51 taken 9 times.
✓ Branch 52 taken 22 times.
✓ Branch 53 taken 22 times.
✓ Branch 54 taken 118 times.
✓ Branch 55 taken 118 times.
✓ Branch 56 taken 22 times.
✓ Branch 57 taken 22 times.
✓ Branch 58 taken 164 times.
✓ Branch 59 taken 164 times.
✓ Branch 60 taken 6 times.
✓ Branch 61 taken 6 times.
✓ Branch 62 taken 6 times.
✓ Branch 63 taken 6 times.
✓ Branch 64 taken 28281 times.
✓ Branch 65 taken 11899 times.
✓ Branch 66 taken 7711 times.
✓ Branch 67 taken 7711 times.
✓ Branch 68 taken 377 times.
✓ Branch 69 taken 377 times.
✓ Branch 70 taken 4625 times.
✓ Branch 71 taken 4625 times.
✓ Branch 72 taken 11 times.
✓ Branch 73 taken 11 times.
✓ Branch 74 taken 1 times.
✓ Branch 75 taken 1 times.
✓ Branch 76 taken 7 times.
✓ Branch 77 taken 7 times.
✓ Branch 78 taken 7 times.
✓ Branch 79 taken 7 times.
✓ Branch 80 taken 5 times.
✓ Branch 81 taken 5 times.
✓ Branch 82 taken 9 times.
✓ Branch 83 taken 9 times.
✓ Branch 84 taken 15 times.
✓ Branch 85 taken 15 times.
✓ Branch 86 taken 10 times.
✓ Branch 87 taken 10 times.
✓ Branch 88 taken 957 times.
✓ Branch 89 taken 957 times.
✓ Branch 90 taken 37 times.
✓ Branch 91 taken 37 times.
✓ Branch 92 taken 2 times.
✓ Branch 93 taken 2 times.
✓ Branch 94 taken 2 times.
✓ Branch 95 taken 2 times.
✓ Branch 96 taken 51 times.
✓ Branch 97 taken 51 times.
✓ Branch 98 taken 82 times.
✓ Branch 99 taken 82 times.
✓ Branch 100 taken 156 times.
✓ Branch 101 taken 156 times.
✓ Branch 102 taken 37 times.
✓ Branch 103 taken 37 times.
✓ Branch 104 taken 142 times.
✓ Branch 105 taken 142 times.
✓ Branch 106 taken 196 times.
✓ Branch 107 taken 196 times.
✓ Branch 108 taken 87 times.
✓ Branch 109 taken 87 times.
✓ Branch 110 taken 51 times.
✓ Branch 111 taken 51 times.
✓ Branch 112 taken 74 times.
✓ Branch 113 taken 74 times.
✓ Branch 114 taken 2 times.
✓ Branch 115 taken 2 times.
✓ Branch 116 taken 5 times.
✓ Branch 117 taken 5 times.
✓ Branch 118 taken 16 times.
✓ Branch 119 taken 16 times.
✓ Branch 120 taken 10 times.
✓ Branch 121 taken 10 times.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✓ Branch 124 taken 32 times.
✓ Branch 125 taken 32 times.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✓ Branch 128 taken 1 times.
✓ Branch 129 taken 1 times.
✓ Branch 130 taken 48 times.
✓ Branch 131 taken 48 times.
✓ Branch 132 taken 48 times.
✓ Branch 133 taken 48 times.
✓ Branch 134 taken 1 times.
✓ Branch 135 taken 1 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✓ Branch 156 taken 2 times.
✓ Branch 157 taken 2 times.
✓ Branch 158 taken 2 times.
✓ Branch 159 taken 2 times.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✓ Branch 198 taken 46 times.
✓ Branch 199 taken 46 times.
✓ Branch 200 taken 2851 times.
✓ Branch 201 taken 595 times.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✓ Branch 360 taken 128 times.
✓ Branch 361 taken 128 times.
✓ Branch 362 taken 186 times.
✓ Branch 363 taken 186 times.
✓ Branch 364 taken 201 times.
✓ Branch 365 taken 201 times.
✓ Branch 366 taken 180 times.
✓ Branch 367 taken 180 times.
✓ Branch 368 taken 201 times.
✓ Branch 369 taken 201 times.
✓ Branch 370 taken 189 times.
✓ Branch 371 taken 189 times.
✓ Branch 372 taken 192 times.
✓ Branch 373 taken 192 times.
✓ Branch 374 taken 201 times.
✓ Branch 375 taken 201 times.
✓ Branch 376 taken 213 times.
✓ Branch 377 taken 213 times.
✓ Branch 378 taken 334 times.
✓ Branch 379 taken 334 times.
✓ Branch 380 taken 384 times.
✓ Branch 381 taken 384 times.
✓ Branch 382 taken 141 times.
✓ Branch 383 taken 141 times.
✓ Branch 384 taken 141 times.
✓ Branch 385 taken 141 times.
✓ Branch 386 taken 141 times.
✓ Branch 387 taken 141 times.
✓ Branch 388 taken 1331 times.
✓ Branch 389 taken 1331 times.
✓ Branch 390 taken 102 times.
✓ Branch 391 taken 102 times.
✓ Branch 392 taken 819 times.
✓ Branch 393 taken 819 times.
✓ Branch 394 taken 279 times.
✓ Branch 395 taken 279 times.
✓ Branch 396 taken 818 times.
✓ Branch 397 taken 818 times.
✓ Branch 398 taken 1176 times.
✓ Branch 399 taken 1176 times.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✓ Branch 414 taken 4 times.
✓ Branch 415 taken 4 times.
|
153477 | for ( ; i < range.end(); i++) { |
175 | 88 | if (!nodeFilter.valid(i)) continue; | |
176 |
178/416✓ Branch 0 taken 520 times.
✓ Branch 1 taken 36 times.
✓ Branch 2 taken 113 times.
✓ Branch 3 taken 86 times.
✓ Branch 4 taken 42738 times.
✓ Branch 5 taken 183 times.
✓ Branch 6 taken 183 times.
✓ Branch 7 taken 183 times.
✓ Branch 8 taken 1557 times.
✓ Branch 9 taken 322 times.
✓ Branch 10 taken 20580 times.
✓ Branch 11 taken 116 times.
✓ Branch 12 taken 116 times.
✓ Branch 13 taken 68 times.
✓ Branch 14 taken 433762 times.
✓ Branch 15 taken 9576 times.
✓ Branch 16 taken 19228 times.
✓ Branch 17 taken 8439 times.
✓ Branch 18 taken 4999 times.
✓ Branch 19 taken 3252 times.
✓ Branch 20 taken 3972 times.
✓ Branch 21 taken 3251 times.
✓ Branch 22 taken 31907 times.
✓ Branch 23 taken 3466 times.
✓ Branch 24 taken 229 times.
✓ Branch 25 taken 229 times.
✓ Branch 26 taken 23 times.
✓ Branch 27 taken 23 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 70239 times.
✓ Branch 33 taken 1979 times.
✓ Branch 34 taken 1987 times.
✓ Branch 35 taken 605 times.
✓ Branch 36 taken 273 times.
✓ Branch 37 taken 13 times.
✓ Branch 38 taken 14 times.
✓ Branch 39 taken 16 times.
✓ Branch 40 taken 368 times.
✓ Branch 41 taken 24 times.
✓ Branch 42 taken 278 times.
✓ Branch 43 taken 24 times.
✓ Branch 44 taken 352766 times.
✓ Branch 45 taken 1570 times.
✓ Branch 46 taken 2 times.
✓ Branch 47 taken 2 times.
✓ Branch 48 taken 69633 times.
✓ Branch 49 taken 18 times.
✓ Branch 50 taken 31 times.
✓ Branch 51 taken 9 times.
✓ Branch 52 taken 36870 times.
✓ Branch 53 taken 15 times.
✓ Branch 54 taken 8418 times.
✓ Branch 55 taken 118 times.
✓ Branch 56 taken 22 times.
✓ Branch 57 taken 22 times.
✓ Branch 58 taken 164 times.
✓ Branch 59 taken 164 times.
✓ Branch 60 taken 8 times.
✓ Branch 61 taken 6 times.
✓ Branch 62 taken 6 times.
✓ Branch 63 taken 6 times.
✓ Branch 64 taken 21722300 times.
✓ Branch 65 taken 28281 times.
✓ Branch 66 taken 28293 times.
✓ Branch 67 taken 7711 times.
✓ Branch 68 taken 56475 times.
✓ Branch 69 taken 377 times.
✓ Branch 70 taken 5854 times.
✓ Branch 71 taken 4625 times.
✓ Branch 72 taken 9 times.
✓ Branch 73 taken 11 times.
✓ Branch 74 taken 1 times.
✓ Branch 75 taken 1 times.
✓ Branch 76 taken 7 times.
✓ Branch 77 taken 7 times.
✓ Branch 78 taken 7 times.
✓ Branch 79 taken 7 times.
✓ Branch 80 taken 5 times.
✓ Branch 81 taken 5 times.
✓ Branch 82 taken 38 times.
✓ Branch 83 taken 9 times.
✓ Branch 84 taken 15 times.
✓ Branch 85 taken 15 times.
✓ Branch 86 taken 10 times.
✓ Branch 87 taken 10 times.
✓ Branch 88 taken 2740 times.
✓ Branch 89 taken 957 times.
✓ Branch 90 taken 34 times.
✓ Branch 91 taken 30 times.
✓ Branch 92 taken 2 times.
✓ Branch 93 taken 2 times.
✓ Branch 94 taken 2 times.
✓ Branch 95 taken 2 times.
✓ Branch 96 taken 10853 times.
✓ Branch 97 taken 29 times.
✓ Branch 98 taken 3436 times.
✓ Branch 99 taken 52 times.
✓ Branch 100 taken 9779 times.
✓ Branch 101 taken 156 times.
✓ Branch 102 taken 80 times.
✓ Branch 103 taken 37 times.
✓ Branch 104 taken 171 times.
✓ Branch 105 taken 142 times.
✓ Branch 106 taken 245 times.
✓ Branch 107 taken 196 times.
✓ Branch 108 taken 105 times.
✓ Branch 109 taken 87 times.
✓ Branch 110 taken 2898 times.
✓ Branch 111 taken 51 times.
✓ Branch 112 taken 75 times.
✓ Branch 113 taken 74 times.
✓ Branch 114 taken 2 times.
✓ Branch 115 taken 2 times.
✓ Branch 116 taken 5 times.
✓ Branch 117 taken 5 times.
✓ Branch 118 taken 82 times.
✓ Branch 119 taken 16 times.
✓ Branch 120 taken 10 times.
✓ Branch 121 taken 10 times.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✓ Branch 124 taken 32 times.
✓ Branch 125 taken 32 times.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✓ Branch 128 taken 1 times.
✓ Branch 129 taken 1 times.
✓ Branch 130 taken 480 times.
✓ Branch 131 taken 48 times.
✓ Branch 132 taken 48 times.
✓ Branch 133 taken 48 times.
✓ Branch 134 taken 1 times.
✓ Branch 135 taken 1 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✓ Branch 156 taken 2 times.
✓ Branch 157 taken 2 times.
✓ Branch 158 taken 2 times.
✓ Branch 159 taken 2 times.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✓ Branch 198 taken 1551 times.
✓ Branch 199 taken 46 times.
✓ Branch 200 taken 52298 times.
✓ Branch 201 taken 2851 times.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✓ Branch 360 taken 85 times.
✓ Branch 361 taken 128 times.
✓ Branch 362 taken 124 times.
✓ Branch 363 taken 186 times.
✓ Branch 364 taken 134 times.
✓ Branch 365 taken 201 times.
✓ Branch 366 taken 120 times.
✓ Branch 367 taken 180 times.
✓ Branch 368 taken 134 times.
✓ Branch 369 taken 201 times.
✓ Branch 370 taken 126 times.
✓ Branch 371 taken 189 times.
✓ Branch 372 taken 128 times.
✓ Branch 373 taken 192 times.
✓ Branch 374 taken 134 times.
✓ Branch 375 taken 201 times.
✓ Branch 376 taken 142 times.
✓ Branch 377 taken 213 times.
✓ Branch 378 taken 223 times.
✓ Branch 379 taken 334 times.
✓ Branch 380 taken 256 times.
✓ Branch 381 taken 384 times.
✓ Branch 382 taken 94 times.
✓ Branch 383 taken 141 times.
✓ Branch 384 taken 94 times.
✓ Branch 385 taken 141 times.
✓ Branch 386 taken 94 times.
✓ Branch 387 taken 141 times.
✓ Branch 388 taken 887 times.
✓ Branch 389 taken 1331 times.
✓ Branch 390 taken 68 times.
✓ Branch 391 taken 102 times.
✓ Branch 392 taken 548 times.
✓ Branch 393 taken 819 times.
✓ Branch 394 taken 186 times.
✓ Branch 395 taken 279 times.
✓ Branch 396 taken 553 times.
✓ Branch 397 taken 818 times.
✓ Branch 398 taken 784 times.
✓ Branch 399 taken 1176 times.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✓ Branch 414 taken 4 times.
✓ Branch 415 taken 4 times.
|
23090992 | for (auto iter = parents(i).beginChildOn(); iter; ++iter) { |
177 | 23003872 | *nodePtr++ = &iter.getValue(); | |
178 | } | ||
179 | } | ||
180 | } | ||
181 | ); | ||
182 | } | ||
183 | |||
184 | return true; | ||
185 | } | ||
186 | |||
187 | class NodeRange | ||
188 | { | ||
189 | public: | ||
190 | |||
191 | 64135 | NodeRange(size_t begin, size_t end, const NodeList& nodeList, size_t grainSize=1): | |
192 | 64135 | mEnd(end), mBegin(begin), mGrainSize(grainSize), mNodeList(nodeList) {} | |
193 | |||
194 | 133378 | NodeRange(NodeRange& r, tbb::split): | |
195 | 266756 | mEnd(r.mEnd), mBegin(doSplit(r)), mGrainSize(r.mGrainSize), | |
196 | 133378 | mNodeList(r.mNodeList) {} | |
197 | |||
198 | 513755 | size_t size() const { return mEnd - mBegin; } | |
199 | |||
200 | size_t grainsize() const { return mGrainSize; } | ||
201 | |||
202 | const NodeList& nodeList() const { return mNodeList; } | ||
203 | |||
204 |
193/800✓ Branch 0 taken 19 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 19 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 160 times.
✓ Branch 5 taken 4 times.
✓ Branch 6 taken 253 times.
✓ Branch 7 taken 4 times.
✓ Branch 8 taken 111 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 106 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 131 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 142 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 12 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 147 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 146 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 5698 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 6199 times.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 6211 times.
✓ Branch 27 taken 3 times.
✓ Branch 28 taken 72 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 70 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 106 times.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 169 times.
✓ Branch 35 taken 5 times.
✓ Branch 36 taken 137 times.
✓ Branch 37 taken 4 times.
✓ Branch 38 taken 137 times.
✓ Branch 39 taken 4 times.
✓ Branch 40 taken 78 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 78 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 81 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 73 times.
✓ Branch 47 taken 1 times.
✓ Branch 48 taken 72 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 219 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 227 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 239 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 154 times.
✓ Branch 57 taken 1 times.
✓ Branch 58 taken 128 times.
✓ Branch 59 taken 1 times.
✓ Branch 60 taken 82 times.
✗ Branch 61 not taken.
✓ Branch 62 taken 82 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 83 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 83 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 84 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 84 times.
✓ Branch 71 taken 1 times.
✓ Branch 72 taken 71 times.
✓ Branch 73 taken 1 times.
✓ Branch 74 taken 70 times.
✓ Branch 75 taken 1 times.
✓ Branch 76 taken 76 times.
✓ Branch 77 taken 1 times.
✓ Branch 78 taken 80 times.
✓ Branch 79 taken 8 times.
✓ Branch 80 taken 79 times.
✓ Branch 81 taken 8 times.
✓ Branch 82 taken 120 times.
✓ Branch 83 taken 8 times.
✓ Branch 84 taken 145 times.
✓ Branch 85 taken 8 times.
✓ Branch 86 taken 145 times.
✓ Branch 87 taken 9 times.
✓ Branch 88 taken 136 times.
✓ Branch 89 taken 9 times.
✓ Branch 90 taken 194 times.
✓ Branch 91 taken 9 times.
✓ Branch 92 taken 201 times.
✓ Branch 93 taken 8 times.
✓ Branch 94 taken 57 times.
✓ Branch 95 taken 8 times.
✓ Branch 96 taken 58 times.
✓ Branch 97 taken 25 times.
✓ Branch 98 taken 54 times.
✓ Branch 99 taken 25 times.
✓ Branch 100 taken 5144 times.
✓ Branch 101 taken 25 times.
✓ Branch 102 taken 5159 times.
✓ Branch 103 taken 8 times.
✓ Branch 104 taken 5160 times.
✓ Branch 105 taken 8 times.
✓ Branch 106 taken 202 times.
✓ Branch 107 taken 8 times.
✓ Branch 108 taken 204 times.
✓ Branch 109 taken 8 times.
✓ Branch 110 taken 122 times.
✓ Branch 111 taken 8 times.
✓ Branch 112 taken 458 times.
✓ Branch 113 taken 8 times.
✓ Branch 114 taken 462 times.
✓ Branch 115 taken 8 times.
✓ Branch 116 taken 455 times.
✓ Branch 117 taken 8 times.
✓ Branch 118 taken 40 times.
✓ Branch 119 taken 8 times.
✓ Branch 120 taken 38 times.
✗ Branch 121 not taken.
✓ Branch 122 taken 35 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 284 times.
✗ Branch 125 not taken.
✓ Branch 126 taken 284 times.
✗ Branch 127 not taken.
✓ Branch 128 taken 286 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 108 times.
✗ Branch 131 not taken.
✓ Branch 132 taken 107 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 111 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 282 times.
✗ Branch 137 not taken.
✓ Branch 138 taken 285 times.
✗ Branch 139 not taken.
✓ Branch 140 taken 284 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 400 times.
✗ Branch 143 not taken.
✓ Branch 144 taken 402 times.
✗ Branch 145 not taken.
✓ Branch 146 taken 409 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 3247 times.
✗ Branch 149 not taken.
✓ Branch 150 taken 3318 times.
✗ Branch 151 not taken.
✓ Branch 152 taken 814 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 724 times.
✗ Branch 155 not taken.
✓ Branch 156 taken 722 times.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✓ Branch 166 taken 15 times.
✗ Branch 167 not taken.
✓ Branch 168 taken 17 times.
✗ Branch 169 not taken.
✓ Branch 170 taken 17 times.
✗ Branch 171 not taken.
✓ Branch 172 taken 2 times.
✗ Branch 173 not taken.
✓ Branch 174 taken 5 times.
✗ Branch 175 not taken.
✓ Branch 176 taken 6 times.
✗ Branch 177 not taken.
✓ Branch 178 taken 7 times.
✗ Branch 179 not taken.
✓ Branch 180 taken 1 times.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✓ Branch 186 taken 11 times.
✗ Branch 187 not taken.
✓ Branch 188 taken 11 times.
✗ Branch 189 not taken.
✓ Branch 190 taken 10 times.
✗ Branch 191 not taken.
✓ Branch 192 taken 1 times.
✗ Branch 193 not taken.
✓ Branch 194 taken 1 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 1 times.
✗ Branch 197 not taken.
✓ Branch 198 taken 1 times.
✗ Branch 199 not taken.
✓ Branch 200 taken 5 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 5 times.
✗ Branch 203 not taken.
✓ Branch 204 taken 6 times.
✗ Branch 205 not taken.
✓ Branch 206 taken 6 times.
✗ Branch 207 not taken.
✓ Branch 208 taken 6 times.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✓ Branch 234 taken 2 times.
✗ Branch 235 not taken.
✓ Branch 236 taken 2 times.
✗ Branch 237 not taken.
✓ Branch 238 taken 2 times.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✓ Branch 308 taken 2 times.
✗ Branch 309 not taken.
✓ Branch 310 taken 2 times.
✗ Branch 311 not taken.
✓ Branch 312 taken 2 times.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✓ Branch 318 taken 1 times.
✗ Branch 319 not taken.
✓ Branch 320 taken 1 times.
✗ Branch 321 not taken.
✓ Branch 322 taken 4 times.
✗ Branch 323 not taken.
✓ Branch 324 taken 4 times.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 502 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 526 not taken.
✗ Branch 527 not taken.
✗ Branch 528 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✓ Branch 568 taken 85 times.
✗ Branch 569 not taken.
✓ Branch 570 taken 85 times.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✓ Branch 580 taken 124 times.
✗ Branch 581 not taken.
✓ Branch 582 taken 124 times.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✓ Branch 592 taken 134 times.
✗ Branch 593 not taken.
✓ Branch 594 taken 134 times.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✓ Branch 604 taken 120 times.
✗ Branch 605 not taken.
✓ Branch 606 taken 120 times.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✓ Branch 616 taken 134 times.
✗ Branch 617 not taken.
✓ Branch 618 taken 134 times.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✓ Branch 628 taken 126 times.
✗ Branch 629 not taken.
✓ Branch 630 taken 126 times.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✓ Branch 640 taken 128 times.
✗ Branch 641 not taken.
✓ Branch 642 taken 128 times.
✗ Branch 643 not taken.
✓ Branch 644 taken 4 times.
✗ Branch 645 not taken.
✓ Branch 646 taken 4 times.
✗ Branch 647 not taken.
✗ Branch 648 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 651 not taken.
✓ Branch 652 taken 134 times.
✗ Branch 653 not taken.
✓ Branch 654 taken 134 times.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 657 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 660 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 663 not taken.
✓ Branch 664 taken 142 times.
✗ Branch 665 not taken.
✓ Branch 666 taken 142 times.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 669 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 672 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 675 not taken.
✓ Branch 676 taken 223 times.
✗ Branch 677 not taken.
✓ Branch 678 taken 223 times.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 681 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 684 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✓ Branch 688 taken 256 times.
✗ Branch 689 not taken.
✓ Branch 690 taken 256 times.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✓ Branch 700 taken 94 times.
✗ Branch 701 not taken.
✓ Branch 702 taken 94 times.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 708 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 711 not taken.
✓ Branch 712 taken 94 times.
✗ Branch 713 not taken.
✓ Branch 714 taken 94 times.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✗ Branch 717 not taken.
✗ Branch 718 not taken.
✗ Branch 719 not taken.
✗ Branch 720 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 723 not taken.
✓ Branch 724 taken 94 times.
✗ Branch 725 not taken.
✓ Branch 726 taken 94 times.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 729 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 732 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✓ Branch 736 taken 887 times.
✗ Branch 737 not taken.
✓ Branch 738 taken 887 times.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 744 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 747 not taken.
✓ Branch 748 taken 68 times.
✗ Branch 749 not taken.
✓ Branch 750 taken 68 times.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 753 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✓ Branch 760 taken 545 times.
✗ Branch 761 not taken.
✓ Branch 762 taken 545 times.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 768 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 771 not taken.
✓ Branch 772 taken 186 times.
✗ Branch 773 not taken.
✓ Branch 774 taken 186 times.
✗ Branch 775 not taken.
✓ Branch 776 taken 1 times.
✗ Branch 777 not taken.
✓ Branch 778 taken 1 times.
✗ Branch 779 not taken.
✓ Branch 780 taken 1 times.
✗ Branch 781 not taken.
✓ Branch 782 taken 1 times.
✗ Branch 783 not taken.
✓ Branch 784 taken 551 times.
✓ Branch 785 taken 3 times.
✓ Branch 786 taken 551 times.
✓ Branch 787 taken 3 times.
✗ Branch 788 not taken.
✗ Branch 789 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 792 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 795 not taken.
✓ Branch 796 taken 784 times.
✗ Branch 797 not taken.
✓ Branch 798 taken 784 times.
✗ Branch 799 not taken.
|
63172 | bool empty() const {return !(mBegin < mEnd);} |
205 | |||
206 |
853/3400✓ Branch 0 taken 9796 times.
✓ Branch 1 taken 1210 times.
✓ Branch 2 taken 3444 times.
✓ Branch 3 taken 729 times.
✓ Branch 4 taken 10222 times.
✓ Branch 5 taken 1550 times.
✓ Branch 6 taken 480 times.
✓ Branch 7 taken 102 times.
✓ Branch 8 taken 603 times.
✓ Branch 9 taken 92 times.
✓ Branch 10 taken 11418 times.
✓ Branch 11 taken 1019 times.
✓ Branch 12 taken 2245 times.
✓ Branch 13 taken 693 times.
✓ Branch 14 taken 606 times.
✓ Branch 15 taken 307 times.
✓ Branch 16 taken 34324 times.
✓ Branch 17 taken 4980 times.
✓ Branch 18 taken 56 times.
✓ Branch 19 taken 7376 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 667 times.
✓ Branch 22 taken 753 times.
✓ Branch 23 taken 7531 times.
✓ Branch 24 taken 124 times.
✓ Branch 25 taken 190 times.
✓ Branch 26 taken 2633 times.
✓ Branch 27 taken 9106 times.
✓ Branch 28 taken 24 times.
✓ Branch 29 taken 46 times.
✓ Branch 30 taken 51 times.
✓ Branch 31 taken 18 times.
✓ Branch 32 taken 46 times.
✓ Branch 33 taken 108 times.
✓ Branch 34 taken 9 times.
✓ Branch 35 taken 15 times.
✓ Branch 36 taken 6 times.
✓ Branch 37 taken 67 times.
✓ Branch 38 taken 9 times.
✓ Branch 39 taken 17 times.
✓ Branch 40 taken 836 times.
✓ Branch 41 taken 496 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 153 times.
✓ Branch 44 taken 22 times.
✓ Branch 45 taken 82 times.
✓ Branch 46 taken 218 times.
✓ Branch 47 taken 154 times.
✓ Branch 48 taken 7 times.
✓ Branch 49 taken 61 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 2 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 46 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1 times.
✓ Branch 56 taken 17 times.
✓ Branch 57 taken 292 times.
✓ Branch 58 taken 30 times.
✓ Branch 59 taken 1 times.
✓ Branch 60 taken 2690 times.
✓ Branch 61 taken 546 times.
✓ Branch 62 taken 2313 times.
✓ Branch 63 taken 484 times.
✓ Branch 64 taken 497 times.
✓ Branch 65 taken 459 times.
✓ Branch 66 taken 348 times.
✓ Branch 67 taken 432 times.
✓ Branch 68 taken 329 times.
✓ Branch 69 taken 412 times.
✓ Branch 70 taken 263 times.
✓ Branch 71 taken 361 times.
✓ Branch 72 taken 54 times.
✓ Branch 73 taken 80 times.
✓ Branch 74 taken 22 times.
✓ Branch 75 taken 363 times.
✓ Branch 76 taken 8 times.
✓ Branch 77 taken 34 times.
✓ Branch 78 taken 77 times.
✓ Branch 79 taken 354 times.
✓ Branch 80 taken 15 times.
✓ Branch 81 taken 267 times.
✓ Branch 82 taken 338 times.
✓ Branch 83 taken 352 times.
✓ Branch 84 taken 72 times.
✓ Branch 85 taken 259 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 5 times.
✓ Branch 88 taken 707 times.
✓ Branch 89 taken 325 times.
✓ Branch 90 taken 5 times.
✓ Branch 91 taken 4 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 8 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 22 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 45 times.
✓ Branch 98 taken 24 times.
✓ Branch 99 taken 32 times.
✗ Branch 100 not taken.
✓ Branch 101 taken 46 times.
✓ Branch 102 taken 56 times.
✓ Branch 103 taken 42 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 185 times.
✗ Branch 106 not taken.
✓ Branch 107 taken 209 times.
✗ Branch 108 not taken.
✓ Branch 109 taken 164 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 207 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 117 times.
✓ Branch 114 taken 583 times.
✓ Branch 115 taken 37 times.
✓ Branch 116 taken 1 times.
✓ Branch 117 taken 117 times.
✓ Branch 118 taken 29 times.
✓ Branch 119 taken 229 times.
✓ Branch 120 taken 71 times.
✓ Branch 121 taken 1226 times.
✗ Branch 122 not taken.
✓ Branch 123 taken 1686 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 1179 times.
✓ Branch 126 taken 729 times.
✓ Branch 127 taken 1018 times.
✓ Branch 128 taken 5 times.
✓ Branch 129 taken 6 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 737 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 7 times.
✓ Branch 134 taken 27 times.
✓ Branch 135 taken 3255 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 9 times.
✓ Branch 138 taken 111 times.
✓ Branch 139 taken 3257 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 9 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 418 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 49 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 418 times.
✗ Branch 148 not taken.
✓ Branch 149 taken 49 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 426 times.
✗ Branch 152 not taken.
✓ Branch 153 taken 1 times.
✗ Branch 154 not taken.
✓ Branch 155 taken 319 times.
✗ Branch 156 not taken.
✗ Branch 157 not taken.
✓ Branch 158 taken 173 times.
✓ Branch 159 taken 351 times.
✓ Branch 160 taken 33 times.
✓ Branch 161 taken 633 times.
✗ Branch 162 not taken.
✓ Branch 163 taken 307 times.
✗ Branch 164 not taken.
✓ Branch 165 taken 558 times.
✗ Branch 166 not taken.
✓ Branch 167 taken 111 times.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✓ Branch 170 taken 146 times.
✓ Branch 171 taken 145 times.
✓ Branch 172 taken 1 times.
✓ Branch 173 taken 3 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 8434 times.
✓ Branch 176 taken 32 times.
✓ Branch 177 taken 26 times.
✓ Branch 178 taken 30 times.
✓ Branch 179 taken 8769 times.
✓ Branch 180 taken 29 times.
✓ Branch 181 taken 37 times.
✓ Branch 182 taken 5793 times.
✓ Branch 183 taken 11607 times.
✓ Branch 184 taken 63 times.
✓ Branch 185 taken 52 times.
✓ Branch 186 taken 26 times.
✓ Branch 187 taken 390 times.
✓ Branch 188 taken 24 times.
✓ Branch 189 taken 35 times.
✓ Branch 190 taken 26 times.
✓ Branch 191 taken 126 times.
✓ Branch 192 taken 41 times.
✓ Branch 193 taken 37 times.
✓ Branch 194 taken 58 times.
✓ Branch 195 taken 128 times.
✓ Branch 196 taken 25 times.
✓ Branch 197 taken 24 times.
✓ Branch 198 taken 14 times.
✓ Branch 199 taken 373 times.
✓ Branch 200 taken 173 times.
✓ Branch 201 taken 138 times.
✓ Branch 202 taken 145 times.
✓ Branch 203 taken 902 times.
✓ Branch 204 taken 147 times.
✓ Branch 205 taken 156 times.
✓ Branch 206 taken 88 times.
✓ Branch 207 taken 790 times.
✓ Branch 208 taken 41 times.
✓ Branch 209 taken 30 times.
✓ Branch 210 taken 30 times.
✓ Branch 211 taken 689 times.
✓ Branch 212 taken 24 times.
✓ Branch 213 taken 26 times.
✓ Branch 214 taken 1731 times.
✓ Branch 215 taken 483 times.
✓ Branch 216 taken 25 times.
✓ Branch 217 taken 21 times.
✓ Branch 218 taken 12 times.
✓ Branch 219 taken 89 times.
✓ Branch 220 taken 13 times.
✓ Branch 221 taken 13 times.
✓ Branch 222 taken 5 times.
✓ Branch 223 taken 78 times.
✓ Branch 224 taken 49 times.
✓ Branch 225 taken 35 times.
✓ Branch 226 taken 136 times.
✓ Branch 227 taken 117 times.
✓ Branch 228 taken 32 times.
✓ Branch 229 taken 33 times.
✓ Branch 230 taken 2336 times.
✓ Branch 231 taken 5593 times.
✓ Branch 232 taken 647 times.
✓ Branch 233 taken 1855 times.
✓ Branch 234 taken 2711 times.
✓ Branch 235 taken 5602 times.
✓ Branch 236 taken 1267 times.
✓ Branch 237 taken 1968 times.
✓ Branch 238 taken 5927 times.
✓ Branch 239 taken 5853 times.
✓ Branch 240 taken 3401 times.
✓ Branch 241 taken 3334 times.
✓ Branch 242 taken 180 times.
✓ Branch 243 taken 253 times.
✓ Branch 244 taken 143 times.
✓ Branch 245 taken 200 times.
✓ Branch 246 taken 783 times.
✓ Branch 247 taken 253 times.
✓ Branch 248 taken 512 times.
✓ Branch 249 taken 357 times.
✓ Branch 250 taken 555 times.
✓ Branch 251 taken 389 times.
✓ Branch 252 taken 484 times.
✓ Branch 253 taken 254 times.
✓ Branch 254 taken 108 times.
✓ Branch 255 taken 290 times.
✓ Branch 256 taken 81 times.
✓ Branch 257 taken 112 times.
✓ Branch 258 taken 96 times.
✓ Branch 259 taken 270 times.
✓ Branch 260 taken 81 times.
✓ Branch 261 taken 108 times.
✓ Branch 262 taken 36 times.
✓ Branch 263 taken 167 times.
✓ Branch 264 taken 358 times.
✓ Branch 265 taken 845 times.
✓ Branch 266 taken 238 times.
✓ Branch 267 taken 480 times.
✓ Branch 268 taken 337 times.
✓ Branch 269 taken 839 times.
✓ Branch 270 taken 286 times.
✓ Branch 271 taken 462 times.
✓ Branch 272 taken 40 times.
✓ Branch 273 taken 18 times.
✓ Branch 274 taken 100 times.
✓ Branch 275 taken 185 times.
✓ Branch 276 taken 72 times.
✓ Branch 277 taken 118 times.
✓ Branch 278 taken 102 times.
✓ Branch 279 taken 184 times.
✓ Branch 280 taken 76 times.
✓ Branch 281 taken 125 times.
✓ Branch 282 taken 601 times.
✓ Branch 283 taken 95 times.
✓ Branch 284 taken 590 times.
✓ Branch 285 taken 94 times.
✓ Branch 286 taken 3 times.
✓ Branch 287 taken 75 times.
✓ Branch 288 taken 24 times.
✓ Branch 289 taken 24 times.
✓ Branch 290 taken 42 times.
✓ Branch 291 taken 93 times.
✓ Branch 292 taken 28 times.
✓ Branch 293 taken 28 times.
✓ Branch 294 taken 21 times.
✓ Branch 295 taken 97 times.
✓ Branch 296 taken 4 times.
✓ Branch 297 taken 4 times.
✓ Branch 298 taken 5 times.
✓ Branch 299 taken 89 times.
✓ Branch 300 taken 16 times.
✓ Branch 301 taken 15 times.
✓ Branch 302 taken 41 times.
✓ Branch 303 taken 93 times.
✓ Branch 304 taken 355 times.
✓ Branch 305 taken 349 times.
✓ Branch 306 taken 346 times.
✓ Branch 307 taken 386 times.
✓ Branch 308 taken 351 times.
✓ Branch 309 taken 328 times.
✓ Branch 310 taken 182 times.
✓ Branch 311 taken 321 times.
✓ Branch 312 taken 6 times.
✓ Branch 313 taken 19 times.
✓ Branch 314 taken 78 times.
✓ Branch 315 taken 87 times.
✓ Branch 316 taken 121 times.
✓ Branch 317 taken 26 times.
✓ Branch 318 taken 6 times.
✓ Branch 319 taken 74 times.
✓ Branch 320 taken 1 times.
✓ Branch 321 taken 8 times.
✓ Branch 322 taken 6 times.
✓ Branch 323 taken 93 times.
✗ Branch 324 not taken.
✓ Branch 325 taken 31 times.
✓ Branch 326 taken 41 times.
✓ Branch 327 taken 95 times.
✓ Branch 328 taken 111 times.
✓ Branch 329 taken 15 times.
✓ Branch 330 taken 109 times.
✓ Branch 331 taken 213 times.
✓ Branch 332 taken 186 times.
✓ Branch 333 taken 89 times.
✓ Branch 334 taken 196 times.
✓ Branch 335 taken 212 times.
✓ Branch 336 taken 65 times.
✓ Branch 337 taken 105 times.
✓ Branch 338 taken 891 times.
✓ Branch 339 taken 200 times.
✓ Branch 340 taken 765 times.
✓ Branch 341 taken 166 times.
✓ Branch 342 taken 1 times.
✓ Branch 343 taken 63 times.
✗ Branch 344 not taken.
✓ Branch 345 taken 1 times.
✓ Branch 346 taken 1 times.
✓ Branch 347 taken 70 times.
✓ Branch 348 taken 74 times.
✓ Branch 349 taken 109 times.
✓ Branch 350 taken 53 times.
✓ Branch 351 taken 143 times.
✓ Branch 352 taken 180 times.
✓ Branch 353 taken 104 times.
✓ Branch 354 taken 97 times.
✓ Branch 355 taken 169 times.
✓ Branch 356 taken 773 times.
✓ Branch 357 taken 154 times.
✓ Branch 358 taken 665 times.
✓ Branch 359 taken 341 times.
✓ Branch 360 taken 6 times.
✓ Branch 361 taken 8 times.
✗ Branch 362 not taken.
✓ Branch 363 taken 185 times.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✓ Branch 366 taken 40 times.
✓ Branch 367 taken 145 times.
✓ Branch 368 taken 30 times.
✓ Branch 369 taken 41 times.
✓ Branch 370 taken 206 times.
✓ Branch 371 taken 120 times.
✓ Branch 372 taken 172 times.
✓ Branch 373 taken 74 times.
✓ Branch 374 taken 5 times.
✓ Branch 375 taken 61 times.
✓ Branch 376 taken 5 times.
✓ Branch 377 taken 13 times.
✓ Branch 378 taken 4 times.
✓ Branch 379 taken 60 times.
✓ Branch 380 taken 10 times.
✓ Branch 381 taken 13 times.
✓ Branch 382 taken 901 times.
✓ Branch 383 taken 747 times.
✓ Branch 384 taken 154 times.
✓ Branch 385 taken 761 times.
✓ Branch 386 taken 2119 times.
✓ Branch 387 taken 6952 times.
✓ Branch 388 taken 728 times.
✓ Branch 389 taken 2125 times.
✓ Branch 390 taken 2282 times.
✓ Branch 391 taken 6963 times.
✓ Branch 392 taken 703 times.
✓ Branch 393 taken 2223 times.
✓ Branch 394 taken 10393 times.
✓ Branch 395 taken 9912 times.
✓ Branch 396 taken 6827 times.
✓ Branch 397 taken 4625 times.
✓ Branch 398 taken 46 times.
✓ Branch 399 taken 3267 times.
✓ Branch 400 taken 77 times.
✓ Branch 401 taken 48 times.
✓ Branch 402 taken 103 times.
✓ Branch 403 taken 431 times.
✓ Branch 404 taken 31 times.
✓ Branch 405 taken 43 times.
✓ Branch 406 taken 68 times.
✓ Branch 407 taken 422 times.
✓ Branch 408 taken 57 times.
✓ Branch 409 taken 48 times.
✓ Branch 410 taken 135 times.
✓ Branch 411 taken 599 times.
✓ Branch 412 taken 159 times.
✓ Branch 413 taken 127 times.
✓ Branch 414 taken 240 times.
✓ Branch 415 taken 450 times.
✓ Branch 416 taken 113 times.
✓ Branch 417 taken 121 times.
✓ Branch 418 taken 46 times.
✓ Branch 419 taken 410 times.
✓ Branch 420 taken 33 times.
✓ Branch 421 taken 52 times.
✓ Branch 422 taken 46 times.
✓ Branch 423 taken 410 times.
✓ Branch 424 taken 33 times.
✓ Branch 425 taken 52 times.
✓ Branch 426 taken 2056 times.
✓ Branch 427 taken 170 times.
✓ Branch 428 taken 1669 times.
✓ Branch 429 taken 344 times.
✓ Branch 430 taken 3 times.
✓ Branch 431 taken 114 times.
✓ Branch 432 taken 1 times.
✓ Branch 433 taken 5 times.
✓ Branch 434 taken 2 times.
✓ Branch 435 taken 113 times.
✗ Branch 436 not taken.
✓ Branch 437 taken 4 times.
✓ Branch 438 taken 17 times.
✓ Branch 439 taken 298 times.
✓ Branch 440 taken 1 times.
✓ Branch 441 taken 19 times.
✓ Branch 442 taken 3 times.
✓ Branch 443 taken 283 times.
✓ Branch 444 taken 43 times.
✓ Branch 445 taken 74 times.
✓ Branch 446 taken 3347 times.
✓ Branch 447 taken 1577 times.
✗ Branch 448 not taken.
✓ Branch 449 taken 252 times.
✗ Branch 450 not taken.
✓ Branch 451 taken 34 times.
✓ Branch 452 taken 28 times.
✓ Branch 453 taken 310 times.
✓ Branch 454 taken 65 times.
✓ Branch 455 taken 120 times.
✓ Branch 456 taken 2083 times.
✓ Branch 457 taken 435 times.
✗ Branch 458 not taken.
✓ Branch 459 taken 41 times.
✓ Branch 460 taken 112 times.
✓ Branch 461 taken 145 times.
✓ Branch 462 taken 72 times.
✓ Branch 463 taken 561 times.
✓ Branch 464 taken 179 times.
✓ Branch 465 taken 159 times.
✓ Branch 466 taken 121 times.
✓ Branch 467 taken 600 times.
✓ Branch 468 taken 946 times.
✓ Branch 469 taken 167 times.
✓ Branch 470 taken 851 times.
✓ Branch 471 taken 618 times.
✗ Branch 472 not taken.
✓ Branch 473 taken 1 times.
✗ Branch 474 not taken.
✓ Branch 475 taken 49 times.
✗ Branch 476 not taken.
✓ Branch 477 taken 9 times.
✗ Branch 478 not taken.
✓ Branch 479 taken 49 times.
✗ Branch 480 not taken.
✓ Branch 481 taken 104 times.
✗ Branch 482 not taken.
✓ Branch 483 taken 49 times.
✓ Branch 484 taken 27 times.
✓ Branch 485 taken 121 times.
✗ Branch 486 not taken.
✓ Branch 487 taken 49 times.
✓ Branch 488 taken 445 times.
✓ Branch 489 taken 126 times.
✓ Branch 490 taken 194 times.
✓ Branch 491 taken 104 times.
✓ Branch 492 taken 4 times.
✓ Branch 493 taken 21 times.
✓ Branch 494 taken 3 times.
✓ Branch 495 taken 53 times.
✗ Branch 496 not taken.
✓ Branch 497 taken 10 times.
✗ Branch 498 not taken.
✓ Branch 499 taken 49 times.
✗ Branch 500 not taken.
✓ Branch 501 taken 567 times.
✗ Branch 502 not taken.
✓ Branch 503 taken 49 times.
✗ Branch 504 not taken.
✓ Branch 505 taken 605 times.
✗ Branch 506 not taken.
✓ Branch 507 taken 49 times.
✓ Branch 508 taken 4 times.
✓ Branch 509 taken 56 times.
✓ Branch 510 taken 3 times.
✓ Branch 511 taken 134 times.
✓ Branch 512 taken 124 times.
✓ Branch 513 taken 38 times.
✓ Branch 514 taken 22 times.
✓ Branch 515 taken 144 times.
✓ Branch 516 taken 32 times.
✓ Branch 517 taken 19 times.
✓ Branch 518 taken 1 times.
✓ Branch 519 taken 130 times.
✗ Branch 520 not taken.
✓ Branch 521 taken 7 times.
✗ Branch 522 not taken.
✓ Branch 523 taken 116 times.
✗ Branch 524 not taken.
✓ Branch 525 taken 7 times.
✗ Branch 526 not taken.
✓ Branch 527 taken 116 times.
✓ Branch 528 taken 4 times.
✓ Branch 529 taken 5 times.
✓ Branch 530 taken 3 times.
✓ Branch 531 taken 120 times.
✓ Branch 532 taken 4 times.
✓ Branch 533 taken 5 times.
✓ Branch 534 taken 3 times.
✓ Branch 535 taken 79 times.
✓ Branch 536 taken 4 times.
✓ Branch 537 taken 5 times.
✓ Branch 538 taken 3 times.
✓ Branch 539 taken 79 times.
✓ Branch 540 taken 4 times.
✓ Branch 541 taken 7 times.
✓ Branch 542 taken 3 times.
✓ Branch 543 taken 79 times.
✓ Branch 544 taken 4 times.
✓ Branch 545 taken 10 times.
✓ Branch 546 taken 3 times.
✓ Branch 547 taken 73 times.
✓ Branch 548 taken 4 times.
✓ Branch 549 taken 10 times.
✓ Branch 550 taken 3 times.
✓ Branch 551 taken 73 times.
✓ Branch 552 taken 282 times.
✓ Branch 553 taken 287 times.
✓ Branch 554 taken 193 times.
✓ Branch 555 taken 351 times.
✓ Branch 556 taken 282 times.
✓ Branch 557 taken 284 times.
✓ Branch 558 taken 193 times.
✓ Branch 559 taken 348 times.
✗ Branch 560 not taken.
✓ Branch 561 taken 1 times.
✗ Branch 562 not taken.
✓ Branch 563 taken 66 times.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✓ Branch 567 taken 66 times.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✓ Branch 571 taken 65 times.
✓ Branch 572 taken 33 times.
✓ Branch 573 taken 405 times.
✓ Branch 574 taken 21 times.
✓ Branch 575 taken 98 times.
✓ Branch 576 taken 67 times.
✓ Branch 577 taken 400 times.
✓ Branch 578 taken 41 times.
✓ Branch 579 taken 112 times.
✓ Branch 580 taken 241 times.
✓ Branch 581 taken 24 times.
✓ Branch 582 taken 208 times.
✓ Branch 583 taken 104 times.
✗ Branch 584 not taken.
✓ Branch 585 taken 9 times.
✗ Branch 586 not taken.
✓ Branch 587 taken 69 times.
✗ Branch 588 not taken.
✓ Branch 589 taken 2 times.
✗ Branch 590 not taken.
✓ Branch 591 taken 69 times.
✓ Branch 592 taken 4 times.
✓ Branch 593 taken 24 times.
✓ Branch 594 taken 3 times.
✓ Branch 595 taken 66 times.
✓ Branch 596 taken 21 times.
✓ Branch 597 taken 42 times.
✓ Branch 598 taken 14 times.
✓ Branch 599 taken 83 times.
✓ Branch 600 taken 75 times.
✓ Branch 601 taken 69 times.
✓ Branch 602 taken 60 times.
✓ Branch 603 taken 113 times.
✓ Branch 604 taken 104 times.
✓ Branch 605 taken 6 times.
✓ Branch 606 taken 96 times.
✓ Branch 607 taken 73 times.
✓ Branch 608 taken 6 times.
✓ Branch 609 taken 11 times.
✓ Branch 610 taken 1 times.
✓ Branch 611 taken 75 times.
✓ Branch 612 taken 187 times.
✓ Branch 613 taken 179 times.
✓ Branch 614 taken 106 times.
✓ Branch 615 taken 256 times.
✓ Branch 616 taken 189 times.
✓ Branch 617 taken 184 times.
✓ Branch 618 taken 106 times.
✓ Branch 619 taken 253 times.
✓ Branch 620 taken 2 times.
✓ Branch 621 taken 7 times.
✗ Branch 622 not taken.
✓ Branch 623 taken 66 times.
✗ Branch 624 not taken.
✓ Branch 625 taken 2 times.
✗ Branch 626 not taken.
✓ Branch 627 taken 64 times.
✗ Branch 628 not taken.
✓ Branch 629 taken 2 times.
✗ Branch 630 not taken.
✓ Branch 631 taken 45 times.
✗ Branch 632 not taken.
✓ Branch 633 taken 2 times.
✗ Branch 634 not taken.
✓ Branch 635 taken 45 times.
✓ Branch 636 taken 8 times.
✓ Branch 637 taken 9 times.
✓ Branch 638 taken 6 times.
✓ Branch 639 taken 53 times.
✓ Branch 640 taken 8 times.
✓ Branch 641 taken 9 times.
✓ Branch 642 taken 6 times.
✓ Branch 643 taken 8 times.
✓ Branch 644 taken 33 times.
✓ Branch 645 taken 2 times.
✓ Branch 646 taken 30 times.
✓ Branch 647 taken 1 times.
✓ Branch 648 taken 120 times.
✓ Branch 649 taken 33 times.
✗ Branch 650 not taken.
✗ Branch 651 not taken.
✗ Branch 652 not taken.
✓ Branch 653 taken 1 times.
✗ Branch 654 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 657 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 660 not taken.
✓ Branch 661 taken 6 times.
✗ Branch 662 not taken.
✗ Branch 663 not taken.
✗ Branch 664 not taken.
✓ Branch 665 taken 6 times.
✗ Branch 666 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✓ Branch 669 taken 5 times.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✓ Branch 672 taken 1 times.
✓ Branch 673 taken 4 times.
✗ Branch 674 not taken.
✓ Branch 675 taken 1 times.
✓ Branch 676 taken 1 times.
✓ Branch 677 taken 4 times.
✗ Branch 678 not taken.
✓ Branch 679 taken 1 times.
✓ Branch 680 taken 1 times.
✓ Branch 681 taken 4 times.
✗ Branch 682 not taken.
✓ Branch 683 taken 1 times.
✗ Branch 684 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 690 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 702 not taken.
✓ Branch 703 taken 2 times.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 706 not taken.
✓ Branch 707 taken 2 times.
✓ Branch 708 taken 1 times.
✓ Branch 709 taken 2 times.
✗ Branch 710 not taken.
✓ Branch 711 taken 1 times.
✓ Branch 712 taken 12 times.
✓ Branch 713 taken 6 times.
✓ Branch 714 taken 10 times.
✓ Branch 715 taken 5 times.
✓ Branch 716 taken 27 times.
✓ Branch 717 taken 1 times.
✓ Branch 718 taken 26 times.
✓ Branch 719 taken 2 times.
✓ Branch 720 taken 2 times.
✓ Branch 721 taken 8 times.
✓ Branch 722 taken 1 times.
✓ Branch 723 taken 4 times.
✓ Branch 724 taken 1 times.
✓ Branch 725 taken 7 times.
✗ Branch 726 not taken.
✓ Branch 727 taken 1 times.
✓ Branch 728 taken 6 times.
✓ Branch 729 taken 8 times.
✓ Branch 730 taken 1 times.
✓ Branch 731 taken 6 times.
✗ Branch 732 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 738 not taken.
✓ Branch 739 taken 10 times.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 742 not taken.
✓ Branch 743 taken 10 times.
✗ Branch 744 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✓ Branch 747 taken 76 times.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 750 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 753 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 762 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 768 not taken.
✗ Branch 769 not taken.
✓ Branch 770 taken 1 times.
✓ Branch 771 taken 1 times.
✗ Branch 772 not taken.
✓ Branch 773 taken 1 times.
✓ Branch 774 taken 1 times.
✓ Branch 775 taken 1 times.
✗ Branch 776 not taken.
✓ Branch 777 taken 1 times.
✗ Branch 778 not taken.
✓ Branch 779 taken 50 times.
✗ Branch 780 not taken.
✓ Branch 781 taken 2 times.
✗ Branch 782 not taken.
✓ Branch 783 taken 51 times.
✗ Branch 784 not taken.
✓ Branch 785 taken 2 times.
✓ Branch 786 taken 41 times.
✓ Branch 787 taken 123 times.
✗ Branch 788 not taken.
✓ Branch 789 taken 3 times.
✓ Branch 790 taken 1 times.
✓ Branch 791 taken 1 times.
✗ Branch 792 not taken.
✓ Branch 793 taken 1 times.
✗ Branch 794 not taken.
✗ Branch 795 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 798 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 801 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 804 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 807 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 810 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 813 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 816 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 819 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 822 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 825 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 828 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 831 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 834 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 837 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 840 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 843 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 846 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 849 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 852 not taken.
✓ Branch 853 taken 1 times.
✗ Branch 854 not taken.
✗ Branch 855 not taken.
✗ Branch 856 not taken.
✓ Branch 857 taken 1 times.
✗ Branch 858 not taken.
✓ Branch 859 taken 47 times.
✗ Branch 860 not taken.
✓ Branch 861 taken 1 times.
✗ Branch 862 not taken.
✓ Branch 863 taken 47 times.
✗ Branch 864 not taken.
✓ Branch 865 taken 1 times.
✓ Branch 866 taken 78 times.
✓ Branch 867 taken 50 times.
✗ Branch 868 not taken.
✓ Branch 869 taken 1 times.
✗ Branch 870 not taken.
✓ Branch 871 taken 32 times.
✗ Branch 872 not taken.
✓ Branch 873 taken 1 times.
✗ Branch 874 not taken.
✓ Branch 875 taken 32 times.
✗ Branch 876 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 879 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 882 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✗ Branch 885 not taken.
✗ Branch 886 not taken.
✗ Branch 887 not taken.
✗ Branch 888 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 891 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 894 not taken.
✓ Branch 895 taken 10 times.
✗ Branch 896 not taken.
✗ Branch 897 not taken.
✗ Branch 898 not taken.
✓ Branch 899 taken 10 times.
✗ Branch 900 not taken.
✓ Branch 901 taken 6 times.
✓ Branch 902 taken 38 times.
✓ Branch 903 taken 38 times.
✓ Branch 904 taken 28 times.
✓ Branch 905 taken 44 times.
✗ Branch 906 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✓ Branch 909 taken 5 times.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 912 not taken.
✓ Branch 913 taken 2 times.
✗ Branch 914 not taken.
✗ Branch 915 not taken.
✗ Branch 916 not taken.
✓ Branch 917 taken 2 times.
✗ Branch 918 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✓ Branch 921 taken 2 times.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 924 not taken.
✗ Branch 925 not taken.
✓ Branch 926 taken 24 times.
✓ Branch 927 taken 23 times.
✓ Branch 928 taken 17 times.
✓ Branch 929 taken 24 times.
✓ Branch 930 taken 24 times.
✓ Branch 931 taken 23 times.
✓ Branch 932 taken 17 times.
✓ Branch 933 taken 24 times.
✓ Branch 934 taken 124 times.
✓ Branch 935 taken 54 times.
✓ Branch 936 taken 111 times.
✓ Branch 937 taken 46 times.
✓ Branch 938 taken 37 times.
✓ Branch 939 taken 46 times.
✓ Branch 940 taken 27 times.
✓ Branch 941 taken 37 times.
✓ Branch 942 taken 125 times.
✓ Branch 943 taken 69 times.
✓ Branch 944 taken 90 times.
✓ Branch 945 taken 85 times.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 948 not taken.
✓ Branch 949 taken 1 times.
✗ Branch 950 not taken.
✗ Branch 951 not taken.
✗ Branch 952 not taken.
✓ Branch 953 taken 1 times.
✗ Branch 954 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✓ Branch 957 taken 1 times.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✓ Branch 960 taken 1 times.
✓ Branch 961 taken 3 times.
✗ Branch 962 not taken.
✓ Branch 963 taken 1 times.
✓ Branch 964 taken 12 times.
✓ Branch 965 taken 7 times.
✓ Branch 966 taken 10 times.
✓ Branch 967 taken 5 times.
✓ Branch 968 taken 30 times.
✓ Branch 969 taken 2 times.
✓ Branch 970 taken 28 times.
✗ Branch 971 not taken.
✗ Branch 972 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 975 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 978 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 981 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 984 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 987 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 990 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 993 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 996 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 999 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1002 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1005 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1008 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1011 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1014 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1017 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1020 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1023 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1026 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1029 not taken.
✗ Branch 1030 not taken.
✗ Branch 1031 not taken.
✗ Branch 1032 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1035 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1038 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1041 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1044 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1047 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1050 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✗ Branch 1053 not taken.
✗ Branch 1054 not taken.
✗ Branch 1055 not taken.
✗ Branch 1056 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1059 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1062 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1065 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1068 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1071 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1074 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1077 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1080 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1083 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1086 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1089 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1092 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1095 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1101 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1104 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1107 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1110 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1113 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1116 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1119 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1122 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✗ Branch 1125 not taken.
✗ Branch 1126 not taken.
✗ Branch 1127 not taken.
✗ Branch 1128 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1131 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1134 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1137 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1140 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1143 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1146 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1149 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1152 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1155 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1158 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1161 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1164 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1167 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1170 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1173 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1176 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1179 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1185 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1188 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1191 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1194 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✗ Branch 1197 not taken.
✗ Branch 1198 not taken.
✗ Branch 1199 not taken.
✗ Branch 1200 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1203 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1206 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1209 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1212 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1215 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1218 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1221 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1224 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1227 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1230 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1233 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1236 not taken.
✗ Branch 1237 not taken.
✓ Branch 1238 taken 477 times.
✓ Branch 1239 taken 6 times.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✓ Branch 1242 taken 104 times.
✗ Branch 1243 not taken.
✓ Branch 1244 taken 10 times.
✓ Branch 1245 taken 16 times.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1248 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1251 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1254 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1257 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1260 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1263 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1266 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1269 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1272 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1275 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1278 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1281 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1284 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1287 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1290 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1293 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1296 not taken.
✗ Branch 1297 not taken.
✓ Branch 1298 taken 208 times.
✗ Branch 1299 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1302 not taken.
✗ Branch 1303 not taken.
✓ Branch 1304 taken 48 times.
✗ Branch 1305 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1308 not taken.
✓ Branch 1309 taken 20 times.
✗ Branch 1310 not taken.
✗ Branch 1311 not taken.
✗ Branch 1312 not taken.
✓ Branch 1313 taken 16 times.
✗ Branch 1314 not taken.
✗ Branch 1315 not taken.
✓ Branch 1316 taken 48 times.
✗ Branch 1317 not taken.
✓ Branch 1318 taken 46 times.
✗ Branch 1319 not taken.
✓ Branch 1320 taken 12 times.
✓ Branch 1321 taken 8 times.
✓ Branch 1322 taken 6 times.
✓ Branch 1323 taken 12 times.
✓ Branch 1324 taken 8 times.
✓ Branch 1325 taken 8 times.
✓ Branch 1326 taken 122 times.
✓ Branch 1327 taken 18 times.
✓ Branch 1328 taken 1 times.
✓ Branch 1329 taken 2 times.
✓ Branch 1330 taken 116 times.
✗ Branch 1331 not taken.
✓ Branch 1332 taken 1 times.
✗ Branch 1333 not taken.
✓ Branch 1334 taken 24 times.
✗ Branch 1335 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✓ Branch 1338 taken 6 times.
✓ Branch 1339 taken 10 times.
✗ Branch 1340 not taken.
✗ Branch 1341 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1344 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1347 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1350 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1353 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1356 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1359 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1362 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1365 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1368 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1371 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1374 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1377 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1380 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1383 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1386 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1389 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
✗ Branch 1392 not taken.
✗ Branch 1393 not taken.
✗ Branch 1394 not taken.
✗ Branch 1395 not taken.
✗ Branch 1396 not taken.
✗ Branch 1397 not taken.
✗ Branch 1398 not taken.
✗ Branch 1399 not taken.
✗ Branch 1400 not taken.
✗ Branch 1401 not taken.
✗ Branch 1402 not taken.
✗ Branch 1403 not taken.
✗ Branch 1404 not taken.
✗ Branch 1405 not taken.
✗ Branch 1406 not taken.
✗ Branch 1407 not taken.
✗ Branch 1408 not taken.
✗ Branch 1409 not taken.
✗ Branch 1410 not taken.
✗ Branch 1411 not taken.
✗ Branch 1412 not taken.
✗ Branch 1413 not taken.
✗ Branch 1414 not taken.
✗ Branch 1415 not taken.
✗ Branch 1416 not taken.
✗ Branch 1417 not taken.
✗ Branch 1418 not taken.
✗ Branch 1419 not taken.
✗ Branch 1420 not taken.
✗ Branch 1421 not taken.
✗ Branch 1422 not taken.
✗ Branch 1423 not taken.
✗ Branch 1424 not taken.
✗ Branch 1425 not taken.
✗ Branch 1426 not taken.
✗ Branch 1427 not taken.
✗ Branch 1428 not taken.
✗ Branch 1429 not taken.
✗ Branch 1430 not taken.
✗ Branch 1431 not taken.
✗ Branch 1432 not taken.
✗ Branch 1433 not taken.
✗ Branch 1434 not taken.
✗ Branch 1435 not taken.
✗ Branch 1436 not taken.
✗ Branch 1437 not taken.
✗ Branch 1438 not taken.
✗ Branch 1439 not taken.
✗ Branch 1440 not taken.
✗ Branch 1441 not taken.
✗ Branch 1442 not taken.
✗ Branch 1443 not taken.
✗ Branch 1444 not taken.
✗ Branch 1445 not taken.
✓ Branch 1446 taken 122 times.
✓ Branch 1447 taken 4 times.
✓ Branch 1448 taken 110 times.
✓ Branch 1449 taken 6 times.
✓ Branch 1450 taken 116 times.
✗ Branch 1451 not taken.
✓ Branch 1452 taken 108 times.
✗ Branch 1453 not taken.
✓ Branch 1454 taken 24 times.
✗ Branch 1455 not taken.
✓ Branch 1456 taken 23 times.
✗ Branch 1457 not taken.
✓ Branch 1458 taken 12 times.
✓ Branch 1459 taken 4 times.
✓ Branch 1460 taken 9 times.
✓ Branch 1461 taken 6 times.
✗ Branch 1462 not taken.
✗ Branch 1463 not taken.
✗ Branch 1464 not taken.
✗ Branch 1465 not taken.
✗ Branch 1466 not taken.
✗ Branch 1467 not taken.
✗ Branch 1468 not taken.
✗ Branch 1469 not taken.
✗ Branch 1470 not taken.
✗ Branch 1471 not taken.
✗ Branch 1472 not taken.
✗ Branch 1473 not taken.
✗ Branch 1474 not taken.
✗ Branch 1475 not taken.
✗ Branch 1476 not taken.
✗ Branch 1477 not taken.
✗ Branch 1478 not taken.
✗ Branch 1479 not taken.
✗ Branch 1480 not taken.
✗ Branch 1481 not taken.
✗ Branch 1482 not taken.
✗ Branch 1483 not taken.
✗ Branch 1484 not taken.
✗ Branch 1485 not taken.
✗ Branch 1486 not taken.
✗ Branch 1487 not taken.
✗ Branch 1488 not taken.
✗ Branch 1489 not taken.
✗ Branch 1490 not taken.
✗ Branch 1491 not taken.
✗ Branch 1492 not taken.
✗ Branch 1493 not taken.
✗ Branch 1494 not taken.
✗ Branch 1495 not taken.
✗ Branch 1496 not taken.
✗ Branch 1497 not taken.
✗ Branch 1498 not taken.
✗ Branch 1499 not taken.
✗ Branch 1500 not taken.
✗ Branch 1501 not taken.
✗ Branch 1502 not taken.
✗ Branch 1503 not taken.
✗ Branch 1504 not taken.
✗ Branch 1505 not taken.
✗ Branch 1506 not taken.
✗ Branch 1507 not taken.
✗ Branch 1508 not taken.
✗ Branch 1509 not taken.
✗ Branch 1510 not taken.
✗ Branch 1511 not taken.
✗ Branch 1512 not taken.
✗ Branch 1513 not taken.
✗ Branch 1514 not taken.
✗ Branch 1515 not taken.
✗ Branch 1516 not taken.
✗ Branch 1517 not taken.
✗ Branch 1518 not taken.
✗ Branch 1519 not taken.
✗ Branch 1520 not taken.
✗ Branch 1521 not taken.
✗ Branch 1522 not taken.
✗ Branch 1523 not taken.
✗ Branch 1524 not taken.
✗ Branch 1525 not taken.
✗ Branch 1526 not taken.
✗ Branch 1527 not taken.
✗ Branch 1528 not taken.
✗ Branch 1529 not taken.
✗ Branch 1530 not taken.
✗ Branch 1531 not taken.
✗ Branch 1532 not taken.
✗ Branch 1533 not taken.
✗ Branch 1534 not taken.
✗ Branch 1535 not taken.
✗ Branch 1536 not taken.
✗ Branch 1537 not taken.
✗ Branch 1538 not taken.
✗ Branch 1539 not taken.
✗ Branch 1540 not taken.
✗ Branch 1541 not taken.
✗ Branch 1542 not taken.
✗ Branch 1543 not taken.
✗ Branch 1544 not taken.
✗ Branch 1545 not taken.
✗ Branch 1546 not taken.
✗ Branch 1547 not taken.
✗ Branch 1548 not taken.
✗ Branch 1549 not taken.
✗ Branch 1550 not taken.
✗ Branch 1551 not taken.
✗ Branch 1552 not taken.
✗ Branch 1553 not taken.
✗ Branch 1554 not taken.
✗ Branch 1555 not taken.
✗ Branch 1556 not taken.
✗ Branch 1557 not taken.
✗ Branch 1558 not taken.
✗ Branch 1559 not taken.
✗ Branch 1560 not taken.
✗ Branch 1561 not taken.
✗ Branch 1562 not taken.
✗ Branch 1563 not taken.
✗ Branch 1564 not taken.
✗ Branch 1565 not taken.
✗ Branch 1566 not taken.
✗ Branch 1567 not taken.
✗ Branch 1568 not taken.
✗ Branch 1569 not taken.
✗ Branch 1570 not taken.
✗ Branch 1571 not taken.
✗ Branch 1572 not taken.
✗ Branch 1573 not taken.
✗ Branch 1574 not taken.
✗ Branch 1575 not taken.
✗ Branch 1576 not taken.
✗ Branch 1577 not taken.
✗ Branch 1578 not taken.
✗ Branch 1579 not taken.
✗ Branch 1580 not taken.
✗ Branch 1581 not taken.
✗ Branch 1582 not taken.
✗ Branch 1583 not taken.
✗ Branch 1584 not taken.
✗ Branch 1585 not taken.
✗ Branch 1586 not taken.
✗ Branch 1587 not taken.
✗ Branch 1588 not taken.
✗ Branch 1589 not taken.
✗ Branch 1590 not taken.
✗ Branch 1591 not taken.
✗ Branch 1592 not taken.
✗ Branch 1593 not taken.
✗ Branch 1594 not taken.
✗ Branch 1595 not taken.
✗ Branch 1596 not taken.
✗ Branch 1597 not taken.
✗ Branch 1598 not taken.
✗ Branch 1599 not taken.
✗ Branch 1600 not taken.
✗ Branch 1601 not taken.
✗ Branch 1602 not taken.
✗ Branch 1603 not taken.
✗ Branch 1604 not taken.
✗ Branch 1605 not taken.
✗ Branch 1606 not taken.
✗ Branch 1607 not taken.
✗ Branch 1608 not taken.
✗ Branch 1609 not taken.
✗ Branch 1610 not taken.
✗ Branch 1611 not taken.
✗ Branch 1612 not taken.
✗ Branch 1613 not taken.
✗ Branch 1614 not taken.
✗ Branch 1615 not taken.
✗ Branch 1616 not taken.
✗ Branch 1617 not taken.
✗ Branch 1618 not taken.
✗ Branch 1619 not taken.
✗ Branch 1620 not taken.
✗ Branch 1621 not taken.
✗ Branch 1622 not taken.
✗ Branch 1623 not taken.
✗ Branch 1624 not taken.
✗ Branch 1625 not taken.
✗ Branch 1626 not taken.
✗ Branch 1627 not taken.
✗ Branch 1628 not taken.
✗ Branch 1629 not taken.
✗ Branch 1630 not taken.
✗ Branch 1631 not taken.
✗ Branch 1632 not taken.
✗ Branch 1633 not taken.
✗ Branch 1634 not taken.
✗ Branch 1635 not taken.
✗ Branch 1636 not taken.
✗ Branch 1637 not taken.
✗ Branch 1638 not taken.
✗ Branch 1639 not taken.
✗ Branch 1640 not taken.
✗ Branch 1641 not taken.
✗ Branch 1642 not taken.
✗ Branch 1643 not taken.
✗ Branch 1644 not taken.
✗ Branch 1645 not taken.
✗ Branch 1646 not taken.
✗ Branch 1647 not taken.
✗ Branch 1648 not taken.
✗ Branch 1649 not taken.
✗ Branch 1650 not taken.
✗ Branch 1651 not taken.
✗ Branch 1652 not taken.
✗ Branch 1653 not taken.
✗ Branch 1654 not taken.
✗ Branch 1655 not taken.
✗ Branch 1656 not taken.
✗ Branch 1657 not taken.
✗ Branch 1658 not taken.
✗ Branch 1659 not taken.
✗ Branch 1660 not taken.
✗ Branch 1661 not taken.
✗ Branch 1662 not taken.
✗ Branch 1663 not taken.
✗ Branch 1664 not taken.
✗ Branch 1665 not taken.
✗ Branch 1666 not taken.
✗ Branch 1667 not taken.
✗ Branch 1668 not taken.
✗ Branch 1669 not taken.
✗ Branch 1670 not taken.
✗ Branch 1671 not taken.
✗ Branch 1672 not taken.
✗ Branch 1673 not taken.
✗ Branch 1674 not taken.
✗ Branch 1675 not taken.
✗ Branch 1676 not taken.
✗ Branch 1677 not taken.
✗ Branch 1678 not taken.
✗ Branch 1679 not taken.
✗ Branch 1680 not taken.
✗ Branch 1681 not taken.
✗ Branch 1682 not taken.
✗ Branch 1683 not taken.
✗ Branch 1684 not taken.
✗ Branch 1685 not taken.
✗ Branch 1686 not taken.
✗ Branch 1687 not taken.
✗ Branch 1688 not taken.
✗ Branch 1689 not taken.
✗ Branch 1690 not taken.
✗ Branch 1691 not taken.
✗ Branch 1692 not taken.
✗ Branch 1693 not taken.
✗ Branch 1694 not taken.
✗ Branch 1695 not taken.
✗ Branch 1696 not taken.
✗ Branch 1697 not taken.
✗ Branch 1698 not taken.
✗ Branch 1699 not taken.
✗ Branch 1700 not taken.
✗ Branch 1701 not taken.
✗ Branch 1702 not taken.
✗ Branch 1703 not taken.
✗ Branch 1704 not taken.
✗ Branch 1705 not taken.
✗ Branch 1706 not taken.
✗ Branch 1707 not taken.
✗ Branch 1708 not taken.
✗ Branch 1709 not taken.
✗ Branch 1710 not taken.
✗ Branch 1711 not taken.
✗ Branch 1712 not taken.
✗ Branch 1713 not taken.
✗ Branch 1714 not taken.
✗ Branch 1715 not taken.
✗ Branch 1716 not taken.
✗ Branch 1717 not taken.
✗ Branch 1718 not taken.
✗ Branch 1719 not taken.
✗ Branch 1720 not taken.
✗ Branch 1721 not taken.
✗ Branch 1722 not taken.
✗ Branch 1723 not taken.
✗ Branch 1724 not taken.
✗ Branch 1725 not taken.
✗ Branch 1726 not taken.
✗ Branch 1727 not taken.
✗ Branch 1728 not taken.
✗ Branch 1729 not taken.
✗ Branch 1730 not taken.
✗ Branch 1731 not taken.
✗ Branch 1732 not taken.
✗ Branch 1733 not taken.
✗ Branch 1734 not taken.
✗ Branch 1735 not taken.
✗ Branch 1736 not taken.
✗ Branch 1737 not taken.
✗ Branch 1738 not taken.
✗ Branch 1739 not taken.
✗ Branch 1740 not taken.
✗ Branch 1741 not taken.
✗ Branch 1742 not taken.
✗ Branch 1743 not taken.
✗ Branch 1744 not taken.
✗ Branch 1745 not taken.
✗ Branch 1746 not taken.
✗ Branch 1747 not taken.
✗ Branch 1748 not taken.
✗ Branch 1749 not taken.
✗ Branch 1750 not taken.
✗ Branch 1751 not taken.
✗ Branch 1752 not taken.
✗ Branch 1753 not taken.
✗ Branch 1754 not taken.
✗ Branch 1755 not taken.
✗ Branch 1756 not taken.
✗ Branch 1757 not taken.
✗ Branch 1758 not taken.
✗ Branch 1759 not taken.
✗ Branch 1760 not taken.
✗ Branch 1761 not taken.
✗ Branch 1762 not taken.
✗ Branch 1763 not taken.
✗ Branch 1764 not taken.
✗ Branch 1765 not taken.
✗ Branch 1766 not taken.
✗ Branch 1767 not taken.
✗ Branch 1768 not taken.
✗ Branch 1769 not taken.
✗ Branch 1770 not taken.
✗ Branch 1771 not taken.
✗ Branch 1772 not taken.
✗ Branch 1773 not taken.
✗ Branch 1774 not taken.
✗ Branch 1775 not taken.
✗ Branch 1776 not taken.
✗ Branch 1777 not taken.
✗ Branch 1778 not taken.
✗ Branch 1779 not taken.
✗ Branch 1780 not taken.
✗ Branch 1781 not taken.
✗ Branch 1782 not taken.
✗ Branch 1783 not taken.
✗ Branch 1784 not taken.
✗ Branch 1785 not taken.
✗ Branch 1786 not taken.
✗ Branch 1787 not taken.
✗ Branch 1788 not taken.
✗ Branch 1789 not taken.
✗ Branch 1790 not taken.
✗ Branch 1791 not taken.
✗ Branch 1792 not taken.
✗ Branch 1793 not taken.
✗ Branch 1794 not taken.
✗ Branch 1795 not taken.
✗ Branch 1796 not taken.
✗ Branch 1797 not taken.
✗ Branch 1798 not taken.
✗ Branch 1799 not taken.
✗ Branch 1800 not taken.
✗ Branch 1801 not taken.
✗ Branch 1802 not taken.
✗ Branch 1803 not taken.
✗ Branch 1804 not taken.
✗ Branch 1805 not taken.
✗ Branch 1806 not taken.
✗ Branch 1807 not taken.
✗ Branch 1808 not taken.
✗ Branch 1809 not taken.
✗ Branch 1810 not taken.
✗ Branch 1811 not taken.
✗ Branch 1812 not taken.
✗ Branch 1813 not taken.
✗ Branch 1814 not taken.
✗ Branch 1815 not taken.
✗ Branch 1816 not taken.
✗ Branch 1817 not taken.
✗ Branch 1818 not taken.
✗ Branch 1819 not taken.
✗ Branch 1820 not taken.
✗ Branch 1821 not taken.
✗ Branch 1822 not taken.
✗ Branch 1823 not taken.
✗ Branch 1824 not taken.
✗ Branch 1825 not taken.
✗ Branch 1826 not taken.
✗ Branch 1827 not taken.
✗ Branch 1828 not taken.
✗ Branch 1829 not taken.
✗ Branch 1830 not taken.
✗ Branch 1831 not taken.
✗ Branch 1832 not taken.
✗ Branch 1833 not taken.
✗ Branch 1834 not taken.
✗ Branch 1835 not taken.
✗ Branch 1836 not taken.
✗ Branch 1837 not taken.
✗ Branch 1838 not taken.
✗ Branch 1839 not taken.
✗ Branch 1840 not taken.
✗ Branch 1841 not taken.
✗ Branch 1842 not taken.
✗ Branch 1843 not taken.
✗ Branch 1844 not taken.
✗ Branch 1845 not taken.
✗ Branch 1846 not taken.
✗ Branch 1847 not taken.
✗ Branch 1848 not taken.
✗ Branch 1849 not taken.
✗ Branch 1850 not taken.
✗ Branch 1851 not taken.
✗ Branch 1852 not taken.
✗ Branch 1853 not taken.
✗ Branch 1854 not taken.
✗ Branch 1855 not taken.
✗ Branch 1856 not taken.
✗ Branch 1857 not taken.
✗ Branch 1858 not taken.
✗ Branch 1859 not taken.
✗ Branch 1860 not taken.
✗ Branch 1861 not taken.
✗ Branch 1862 not taken.
✗ Branch 1863 not taken.
✗ Branch 1864 not taken.
✗ Branch 1865 not taken.
✗ Branch 1866 not taken.
✗ Branch 1867 not taken.
✗ Branch 1868 not taken.
✗ Branch 1869 not taken.
✗ Branch 1870 not taken.
✗ Branch 1871 not taken.
✗ Branch 1872 not taken.
✗ Branch 1873 not taken.
✗ Branch 1874 not taken.
✗ Branch 1875 not taken.
✗ Branch 1876 not taken.
✗ Branch 1877 not taken.
✗ Branch 1878 not taken.
✗ Branch 1879 not taken.
✗ Branch 1880 not taken.
✗ Branch 1881 not taken.
✗ Branch 1882 not taken.
✗ Branch 1883 not taken.
✗ Branch 1884 not taken.
✗ Branch 1885 not taken.
✗ Branch 1886 not taken.
✗ Branch 1887 not taken.
✗ Branch 1888 not taken.
✗ Branch 1889 not taken.
✗ Branch 1890 not taken.
✗ Branch 1891 not taken.
✗ Branch 1892 not taken.
✗ Branch 1893 not taken.
✗ Branch 1894 not taken.
✗ Branch 1895 not taken.
✗ Branch 1896 not taken.
✗ Branch 1897 not taken.
✗ Branch 1898 not taken.
✗ Branch 1899 not taken.
✗ Branch 1900 not taken.
✗ Branch 1901 not taken.
✗ Branch 1902 not taken.
✗ Branch 1903 not taken.
✗ Branch 1904 not taken.
✗ Branch 1905 not taken.
✗ Branch 1906 not taken.
✗ Branch 1907 not taken.
✗ Branch 1908 not taken.
✗ Branch 1909 not taken.
✗ Branch 1910 not taken.
✗ Branch 1911 not taken.
✗ Branch 1912 not taken.
✗ Branch 1913 not taken.
✗ Branch 1914 not taken.
✗ Branch 1915 not taken.
✗ Branch 1916 not taken.
✗ Branch 1917 not taken.
✗ Branch 1918 not taken.
✗ Branch 1919 not taken.
✗ Branch 1920 not taken.
✗ Branch 1921 not taken.
✗ Branch 1922 not taken.
✗ Branch 1923 not taken.
✗ Branch 1924 not taken.
✗ Branch 1925 not taken.
✗ Branch 1926 not taken.
✗ Branch 1927 not taken.
✗ Branch 1928 not taken.
✗ Branch 1929 not taken.
✗ Branch 1930 not taken.
✗ Branch 1931 not taken.
✗ Branch 1932 not taken.
✗ Branch 1933 not taken.
✗ Branch 1934 not taken.
✗ Branch 1935 not taken.
✗ Branch 1936 not taken.
✗ Branch 1937 not taken.
✗ Branch 1938 not taken.
✗ Branch 1939 not taken.
✗ Branch 1940 not taken.
✗ Branch 1941 not taken.
✗ Branch 1942 not taken.
✗ Branch 1943 not taken.
✗ Branch 1944 not taken.
✗ Branch 1945 not taken.
✗ Branch 1946 not taken.
✗ Branch 1947 not taken.
✗ Branch 1948 not taken.
✗ Branch 1949 not taken.
✗ Branch 1950 not taken.
✗ Branch 1951 not taken.
✗ Branch 1952 not taken.
✗ Branch 1953 not taken.
✗ Branch 1954 not taken.
✗ Branch 1955 not taken.
✗ Branch 1956 not taken.
✗ Branch 1957 not taken.
✗ Branch 1958 not taken.
✗ Branch 1959 not taken.
✗ Branch 1960 not taken.
✗ Branch 1961 not taken.
✗ Branch 1962 not taken.
✗ Branch 1963 not taken.
✗ Branch 1964 not taken.
✗ Branch 1965 not taken.
✗ Branch 1966 not taken.
✗ Branch 1967 not taken.
✗ Branch 1968 not taken.
✗ Branch 1969 not taken.
✗ Branch 1970 not taken.
✗ Branch 1971 not taken.
✗ Branch 1972 not taken.
✗ Branch 1973 not taken.
✗ Branch 1974 not taken.
✗ Branch 1975 not taken.
✗ Branch 1976 not taken.
✗ Branch 1977 not taken.
✗ Branch 1978 not taken.
✗ Branch 1979 not taken.
✗ Branch 1980 not taken.
✗ Branch 1981 not taken.
✗ Branch 1982 not taken.
✗ Branch 1983 not taken.
✗ Branch 1984 not taken.
✗ Branch 1985 not taken.
✗ Branch 1986 not taken.
✗ Branch 1987 not taken.
✗ Branch 1988 not taken.
✗ Branch 1989 not taken.
✗ Branch 1990 not taken.
✗ Branch 1991 not taken.
✗ Branch 1992 not taken.
✗ Branch 1993 not taken.
✗ Branch 1994 not taken.
✗ Branch 1995 not taken.
✗ Branch 1996 not taken.
✗ Branch 1997 not taken.
✗ Branch 1998 not taken.
✗ Branch 1999 not taken.
✗ Branch 2000 not taken.
✗ Branch 2001 not taken.
✗ Branch 2002 not taken.
✗ Branch 2003 not taken.
✗ Branch 2004 not taken.
✗ Branch 2005 not taken.
✗ Branch 2006 not taken.
✗ Branch 2007 not taken.
✗ Branch 2008 not taken.
✗ Branch 2009 not taken.
✗ Branch 2010 not taken.
✗ Branch 2011 not taken.
✗ Branch 2012 not taken.
✗ Branch 2013 not taken.
✗ Branch 2014 not taken.
✗ Branch 2015 not taken.
✗ Branch 2016 not taken.
✗ Branch 2017 not taken.
✗ Branch 2018 not taken.
✗ Branch 2019 not taken.
✗ Branch 2020 not taken.
✗ Branch 2021 not taken.
✗ Branch 2022 not taken.
✗ Branch 2023 not taken.
✗ Branch 2024 not taken.
✗ Branch 2025 not taken.
✗ Branch 2026 not taken.
✗ Branch 2027 not taken.
✗ Branch 2028 not taken.
✗ Branch 2029 not taken.
✗ Branch 2030 not taken.
✗ Branch 2031 not taken.
✗ Branch 2032 not taken.
✗ Branch 2033 not taken.
✗ Branch 2034 not taken.
✗ Branch 2035 not taken.
✗ Branch 2036 not taken.
✗ Branch 2037 not taken.
✗ Branch 2038 not taken.
✗ Branch 2039 not taken.
✗ Branch 2040 not taken.
✗ Branch 2041 not taken.
✗ Branch 2042 not taken.
✗ Branch 2043 not taken.
✗ Branch 2044 not taken.
✗ Branch 2045 not taken.
✗ Branch 2046 not taken.
✗ Branch 2047 not taken.
✗ Branch 2048 not taken.
✗ Branch 2049 not taken.
✗ Branch 2050 not taken.
✗ Branch 2051 not taken.
✗ Branch 2052 not taken.
✗ Branch 2053 not taken.
✗ Branch 2054 not taken.
✗ Branch 2055 not taken.
✗ Branch 2056 not taken.
✗ Branch 2057 not taken.
✗ Branch 2058 not taken.
✗ Branch 2059 not taken.
✗ Branch 2060 not taken.
✗ Branch 2061 not taken.
✗ Branch 2062 not taken.
✗ Branch 2063 not taken.
✗ Branch 2064 not taken.
✗ Branch 2065 not taken.
✗ Branch 2066 not taken.
✗ Branch 2067 not taken.
✗ Branch 2068 not taken.
✗ Branch 2069 not taken.
✗ Branch 2070 not taken.
✗ Branch 2071 not taken.
✗ Branch 2072 not taken.
✗ Branch 2073 not taken.
✗ Branch 2074 not taken.
✗ Branch 2075 not taken.
✗ Branch 2076 not taken.
✗ Branch 2077 not taken.
✗ Branch 2078 not taken.
✗ Branch 2079 not taken.
✗ Branch 2080 not taken.
✗ Branch 2081 not taken.
✗ Branch 2082 not taken.
✗ Branch 2083 not taken.
✗ Branch 2084 not taken.
✗ Branch 2085 not taken.
✗ Branch 2086 not taken.
✗ Branch 2087 not taken.
✗ Branch 2088 not taken.
✗ Branch 2089 not taken.
✗ Branch 2090 not taken.
✗ Branch 2091 not taken.
✗ Branch 2092 not taken.
✗ Branch 2093 not taken.
✗ Branch 2094 not taken.
✗ Branch 2095 not taken.
✗ Branch 2096 not taken.
✗ Branch 2097 not taken.
✗ Branch 2098 not taken.
✗ Branch 2099 not taken.
✗ Branch 2100 not taken.
✗ Branch 2101 not taken.
✗ Branch 2102 not taken.
✗ Branch 2103 not taken.
✗ Branch 2104 not taken.
✗ Branch 2105 not taken.
✗ Branch 2106 not taken.
✗ Branch 2107 not taken.
✗ Branch 2108 not taken.
✗ Branch 2109 not taken.
✗ Branch 2110 not taken.
✗ Branch 2111 not taken.
✗ Branch 2112 not taken.
✗ Branch 2113 not taken.
✗ Branch 2114 not taken.
✗ Branch 2115 not taken.
✗ Branch 2116 not taken.
✗ Branch 2117 not taken.
✗ Branch 2118 not taken.
✗ Branch 2119 not taken.
✗ Branch 2120 not taken.
✗ Branch 2121 not taken.
✗ Branch 2122 not taken.
✗ Branch 2123 not taken.
✗ Branch 2124 not taken.
✗ Branch 2125 not taken.
✗ Branch 2126 not taken.
✗ Branch 2127 not taken.
✗ Branch 2128 not taken.
✗ Branch 2129 not taken.
✗ Branch 2130 not taken.
✗ Branch 2131 not taken.
✗ Branch 2132 not taken.
✗ Branch 2133 not taken.
✗ Branch 2134 not taken.
✗ Branch 2135 not taken.
✗ Branch 2136 not taken.
✗ Branch 2137 not taken.
✗ Branch 2138 not taken.
✗ Branch 2139 not taken.
✗ Branch 2140 not taken.
✗ Branch 2141 not taken.
✗ Branch 2142 not taken.
✗ Branch 2143 not taken.
✗ Branch 2144 not taken.
✗ Branch 2145 not taken.
✗ Branch 2146 not taken.
✗ Branch 2147 not taken.
✗ Branch 2148 not taken.
✗ Branch 2149 not taken.
✗ Branch 2150 not taken.
✗ Branch 2151 not taken.
✗ Branch 2152 not taken.
✗ Branch 2153 not taken.
✗ Branch 2154 not taken.
✗ Branch 2155 not taken.
✗ Branch 2156 not taken.
✗ Branch 2157 not taken.
✗ Branch 2158 not taken.
✗ Branch 2159 not taken.
✗ Branch 2160 not taken.
✗ Branch 2161 not taken.
✗ Branch 2162 not taken.
✗ Branch 2163 not taken.
✗ Branch 2164 not taken.
✗ Branch 2165 not taken.
✗ Branch 2166 not taken.
✗ Branch 2167 not taken.
✗ Branch 2168 not taken.
✗ Branch 2169 not taken.
✗ Branch 2170 not taken.
✗ Branch 2171 not taken.
✗ Branch 2172 not taken.
✗ Branch 2173 not taken.
✗ Branch 2174 not taken.
✗ Branch 2175 not taken.
✗ Branch 2176 not taken.
✗ Branch 2177 not taken.
✗ Branch 2178 not taken.
✗ Branch 2179 not taken.
✗ Branch 2180 not taken.
✗ Branch 2181 not taken.
✗ Branch 2182 not taken.
✗ Branch 2183 not taken.
✗ Branch 2184 not taken.
✗ Branch 2185 not taken.
✗ Branch 2186 not taken.
✗ Branch 2187 not taken.
✗ Branch 2188 not taken.
✗ Branch 2189 not taken.
✗ Branch 2190 not taken.
✗ Branch 2191 not taken.
✗ Branch 2192 not taken.
✗ Branch 2193 not taken.
✗ Branch 2194 not taken.
✗ Branch 2195 not taken.
✗ Branch 2196 not taken.
✗ Branch 2197 not taken.
✗ Branch 2198 not taken.
✗ Branch 2199 not taken.
✗ Branch 2200 not taken.
✗ Branch 2201 not taken.
✗ Branch 2202 not taken.
✗ Branch 2203 not taken.
✗ Branch 2204 not taken.
✗ Branch 2205 not taken.
✗ Branch 2206 not taken.
✗ Branch 2207 not taken.
✗ Branch 2208 not taken.
✗ Branch 2209 not taken.
✗ Branch 2210 not taken.
✗ Branch 2211 not taken.
✗ Branch 2212 not taken.
✗ Branch 2213 not taken.
✗ Branch 2214 not taken.
✗ Branch 2215 not taken.
✗ Branch 2216 not taken.
✗ Branch 2217 not taken.
✗ Branch 2218 not taken.
✗ Branch 2219 not taken.
✗ Branch 2220 not taken.
✗ Branch 2221 not taken.
✗ Branch 2222 not taken.
✗ Branch 2223 not taken.
✗ Branch 2224 not taken.
✗ Branch 2225 not taken.
✗ Branch 2226 not taken.
✗ Branch 2227 not taken.
✗ Branch 2228 not taken.
✗ Branch 2229 not taken.
✗ Branch 2230 not taken.
✗ Branch 2231 not taken.
✗ Branch 2232 not taken.
✗ Branch 2233 not taken.
✗ Branch 2234 not taken.
✗ Branch 2235 not taken.
✗ Branch 2236 not taken.
✗ Branch 2237 not taken.
✗ Branch 2238 not taken.
✗ Branch 2239 not taken.
✗ Branch 2240 not taken.
✗ Branch 2241 not taken.
✗ Branch 2242 not taken.
✗ Branch 2243 not taken.
✗ Branch 2244 not taken.
✗ Branch 2245 not taken.
✗ Branch 2246 not taken.
✗ Branch 2247 not taken.
✗ Branch 2248 not taken.
✗ Branch 2249 not taken.
✗ Branch 2250 not taken.
✗ Branch 2251 not taken.
✗ Branch 2252 not taken.
✗ Branch 2253 not taken.
✗ Branch 2254 not taken.
✗ Branch 2255 not taken.
✗ Branch 2256 not taken.
✗ Branch 2257 not taken.
✗ Branch 2258 not taken.
✗ Branch 2259 not taken.
✗ Branch 2260 not taken.
✗ Branch 2261 not taken.
✗ Branch 2262 not taken.
✗ Branch 2263 not taken.
✗ Branch 2264 not taken.
✗ Branch 2265 not taken.
✗ Branch 2266 not taken.
✗ Branch 2267 not taken.
✗ Branch 2268 not taken.
✗ Branch 2269 not taken.
✗ Branch 2270 not taken.
✗ Branch 2271 not taken.
✗ Branch 2272 not taken.
✗ Branch 2273 not taken.
✗ Branch 2274 not taken.
✗ Branch 2275 not taken.
✗ Branch 2276 not taken.
✗ Branch 2277 not taken.
✗ Branch 2278 not taken.
✗ Branch 2279 not taken.
✗ Branch 2280 not taken.
✗ Branch 2281 not taken.
✗ Branch 2282 not taken.
✗ Branch 2283 not taken.
✗ Branch 2284 not taken.
✗ Branch 2285 not taken.
✗ Branch 2286 not taken.
✗ Branch 2287 not taken.
✗ Branch 2288 not taken.
✗ Branch 2289 not taken.
✗ Branch 2290 not taken.
✗ Branch 2291 not taken.
✗ Branch 2292 not taken.
✗ Branch 2293 not taken.
✗ Branch 2294 not taken.
✗ Branch 2295 not taken.
✗ Branch 2296 not taken.
✗ Branch 2297 not taken.
✗ Branch 2298 not taken.
✗ Branch 2299 not taken.
✗ Branch 2300 not taken.
✗ Branch 2301 not taken.
✗ Branch 2302 not taken.
✗ Branch 2303 not taken.
✗ Branch 2304 not taken.
✗ Branch 2305 not taken.
✗ Branch 2306 not taken.
✗ Branch 2307 not taken.
✗ Branch 2308 not taken.
✗ Branch 2309 not taken.
✗ Branch 2310 not taken.
✗ Branch 2311 not taken.
✗ Branch 2312 not taken.
✗ Branch 2313 not taken.
✗ Branch 2314 not taken.
✗ Branch 2315 not taken.
✗ Branch 2316 not taken.
✗ Branch 2317 not taken.
✗ Branch 2318 not taken.
✗ Branch 2319 not taken.
✗ Branch 2320 not taken.
✗ Branch 2321 not taken.
✗ Branch 2322 not taken.
✗ Branch 2323 not taken.
✗ Branch 2324 not taken.
✗ Branch 2325 not taken.
✗ Branch 2326 not taken.
✗ Branch 2327 not taken.
✗ Branch 2328 not taken.
✗ Branch 2329 not taken.
✗ Branch 2330 not taken.
✗ Branch 2331 not taken.
✗ Branch 2332 not taken.
✗ Branch 2333 not taken.
✗ Branch 2334 not taken.
✗ Branch 2335 not taken.
✗ Branch 2336 not taken.
✗ Branch 2337 not taken.
✗ Branch 2338 not taken.
✗ Branch 2339 not taken.
✗ Branch 2340 not taken.
✗ Branch 2341 not taken.
✗ Branch 2342 not taken.
✗ Branch 2343 not taken.
✗ Branch 2344 not taken.
✗ Branch 2345 not taken.
✗ Branch 2346 not taken.
✗ Branch 2347 not taken.
✗ Branch 2348 not taken.
✗ Branch 2349 not taken.
✗ Branch 2350 not taken.
✗ Branch 2351 not taken.
✗ Branch 2352 not taken.
✗ Branch 2353 not taken.
✗ Branch 2354 not taken.
✗ Branch 2355 not taken.
✗ Branch 2356 not taken.
✗ Branch 2357 not taken.
✗ Branch 2358 not taken.
✗ Branch 2359 not taken.
✗ Branch 2360 not taken.
✗ Branch 2361 not taken.
✗ Branch 2362 not taken.
✗ Branch 2363 not taken.
✗ Branch 2364 not taken.
✗ Branch 2365 not taken.
✗ Branch 2366 not taken.
✗ Branch 2367 not taken.
✗ Branch 2368 not taken.
✗ Branch 2369 not taken.
✗ Branch 2370 not taken.
✗ Branch 2371 not taken.
✗ Branch 2372 not taken.
✗ Branch 2373 not taken.
✗ Branch 2374 not taken.
✗ Branch 2375 not taken.
✗ Branch 2376 not taken.
✗ Branch 2377 not taken.
✗ Branch 2378 not taken.
✗ Branch 2379 not taken.
✗ Branch 2380 not taken.
✗ Branch 2381 not taken.
✗ Branch 2382 not taken.
✗ Branch 2383 not taken.
✗ Branch 2384 not taken.
✗ Branch 2385 not taken.
✗ Branch 2386 not taken.
✗ Branch 2387 not taken.
✗ Branch 2388 not taken.
✗ Branch 2389 not taken.
✗ Branch 2390 not taken.
✗ Branch 2391 not taken.
✗ Branch 2392 not taken.
✗ Branch 2393 not taken.
✗ Branch 2394 not taken.
✗ Branch 2395 not taken.
✗ Branch 2396 not taken.
✗ Branch 2397 not taken.
✗ Branch 2398 not taken.
✗ Branch 2399 not taken.
✗ Branch 2400 not taken.
✗ Branch 2401 not taken.
✗ Branch 2402 not taken.
✗ Branch 2403 not taken.
✗ Branch 2404 not taken.
✗ Branch 2405 not taken.
✗ Branch 2406 not taken.
✗ Branch 2407 not taken.
✗ Branch 2408 not taken.
✗ Branch 2409 not taken.
✗ Branch 2410 not taken.
✗ Branch 2411 not taken.
✗ Branch 2412 not taken.
✗ Branch 2413 not taken.
✗ Branch 2414 not taken.
✗ Branch 2415 not taken.
✗ Branch 2416 not taken.
✗ Branch 2417 not taken.
✗ Branch 2418 not taken.
✗ Branch 2419 not taken.
✗ Branch 2420 not taken.
✗ Branch 2421 not taken.
✗ Branch 2422 not taken.
✗ Branch 2423 not taken.
✗ Branch 2424 not taken.
✗ Branch 2425 not taken.
✗ Branch 2426 not taken.
✗ Branch 2427 not taken.
✗ Branch 2428 not taken.
✗ Branch 2429 not taken.
✗ Branch 2430 not taken.
✗ Branch 2431 not taken.
✗ Branch 2432 not taken.
✗ Branch 2433 not taken.
✗ Branch 2434 not taken.
✗ Branch 2435 not taken.
✗ Branch 2436 not taken.
✗ Branch 2437 not taken.
✗ Branch 2438 not taken.
✗ Branch 2439 not taken.
✗ Branch 2440 not taken.
✓ Branch 2441 taken 784 times.
✗ Branch 2442 not taken.
✗ Branch 2443 not taken.
✗ Branch 2444 not taken.
✓ Branch 2445 taken 1176 times.
✗ Branch 2446 not taken.
✗ Branch 2447 not taken.
✗ Branch 2448 not taken.
✗ Branch 2449 not taken.
✗ Branch 2450 not taken.
✗ Branch 2451 not taken.
✗ Branch 2452 not taken.
✗ Branch 2453 not taken.
✗ Branch 2454 not taken.
✗ Branch 2455 not taken.
✗ Branch 2456 not taken.
✗ Branch 2457 not taken.
✗ Branch 2458 not taken.
✗ Branch 2459 not taken.
✗ Branch 2460 not taken.
✗ Branch 2461 not taken.
✗ Branch 2462 not taken.
✗ Branch 2463 not taken.
✗ Branch 2464 not taken.
✓ Branch 2465 taken 551 times.
✗ Branch 2466 not taken.
✗ Branch 2467 not taken.
✗ Branch 2468 not taken.
✓ Branch 2469 taken 816 times.
✗ Branch 2470 not taken.
✗ Branch 2471 not taken.
✗ Branch 2472 not taken.
✓ Branch 2473 taken 1 times.
✗ Branch 2474 not taken.
✗ Branch 2475 not taken.
✗ Branch 2476 not taken.
✓ Branch 2477 taken 1 times.
✗ Branch 2478 not taken.
✗ Branch 2479 not taken.
✗ Branch 2480 not taken.
✓ Branch 2481 taken 1 times.
✗ Branch 2482 not taken.
✗ Branch 2483 not taken.
✗ Branch 2484 not taken.
✓ Branch 2485 taken 1 times.
✗ Branch 2486 not taken.
✗ Branch 2487 not taken.
✗ Branch 2488 not taken.
✓ Branch 2489 taken 186 times.
✗ Branch 2490 not taken.
✗ Branch 2491 not taken.
✗ Branch 2492 not taken.
✓ Branch 2493 taken 279 times.
✗ Branch 2494 not taken.
✗ Branch 2495 not taken.
✗ Branch 2496 not taken.
✗ Branch 2497 not taken.
✗ Branch 2498 not taken.
✗ Branch 2499 not taken.
✗ Branch 2500 not taken.
✗ Branch 2501 not taken.
✗ Branch 2502 not taken.
✗ Branch 2503 not taken.
✗ Branch 2504 not taken.
✗ Branch 2505 not taken.
✗ Branch 2506 not taken.
✗ Branch 2507 not taken.
✗ Branch 2508 not taken.
✗ Branch 2509 not taken.
✗ Branch 2510 not taken.
✗ Branch 2511 not taken.
✗ Branch 2512 not taken.
✓ Branch 2513 taken 548 times.
✗ Branch 2514 not taken.
✗ Branch 2515 not taken.
✗ Branch 2516 not taken.
✓ Branch 2517 taken 819 times.
✗ Branch 2518 not taken.
✗ Branch 2519 not taken.
✗ Branch 2520 not taken.
✗ Branch 2521 not taken.
✗ Branch 2522 not taken.
✗ Branch 2523 not taken.
✗ Branch 2524 not taken.
✗ Branch 2525 not taken.
✗ Branch 2526 not taken.
✗ Branch 2527 not taken.
✗ Branch 2528 not taken.
✗ Branch 2529 not taken.
✗ Branch 2530 not taken.
✗ Branch 2531 not taken.
✗ Branch 2532 not taken.
✗ Branch 2533 not taken.
✗ Branch 2534 not taken.
✗ Branch 2535 not taken.
✗ Branch 2536 not taken.
✓ Branch 2537 taken 68 times.
✗ Branch 2538 not taken.
✗ Branch 2539 not taken.
✗ Branch 2540 not taken.
✓ Branch 2541 taken 102 times.
✗ Branch 2542 not taken.
✗ Branch 2543 not taken.
✗ Branch 2544 not taken.
✗ Branch 2545 not taken.
✗ Branch 2546 not taken.
✗ Branch 2547 not taken.
✗ Branch 2548 not taken.
✗ Branch 2549 not taken.
✗ Branch 2550 not taken.
✗ Branch 2551 not taken.
✗ Branch 2552 not taken.
✗ Branch 2553 not taken.
✗ Branch 2554 not taken.
✗ Branch 2555 not taken.
✗ Branch 2556 not taken.
✗ Branch 2557 not taken.
✗ Branch 2558 not taken.
✗ Branch 2559 not taken.
✗ Branch 2560 not taken.
✓ Branch 2561 taken 887 times.
✗ Branch 2562 not taken.
✗ Branch 2563 not taken.
✗ Branch 2564 not taken.
✓ Branch 2565 taken 1331 times.
✗ Branch 2566 not taken.
✗ Branch 2567 not taken.
✗ Branch 2568 not taken.
✗ Branch 2569 not taken.
✗ Branch 2570 not taken.
✗ Branch 2571 not taken.
✗ Branch 2572 not taken.
✗ Branch 2573 not taken.
✗ Branch 2574 not taken.
✗ Branch 2575 not taken.
✗ Branch 2576 not taken.
✗ Branch 2577 not taken.
✗ Branch 2578 not taken.
✗ Branch 2579 not taken.
✗ Branch 2580 not taken.
✗ Branch 2581 not taken.
✗ Branch 2582 not taken.
✗ Branch 2583 not taken.
✗ Branch 2584 not taken.
✓ Branch 2585 taken 94 times.
✗ Branch 2586 not taken.
✗ Branch 2587 not taken.
✗ Branch 2588 not taken.
✓ Branch 2589 taken 141 times.
✗ Branch 2590 not taken.
✗ Branch 2591 not taken.
✗ Branch 2592 not taken.
✗ Branch 2593 not taken.
✗ Branch 2594 not taken.
✗ Branch 2595 not taken.
✗ Branch 2596 not taken.
✗ Branch 2597 not taken.
✗ Branch 2598 not taken.
✗ Branch 2599 not taken.
✗ Branch 2600 not taken.
✗ Branch 2601 not taken.
✗ Branch 2602 not taken.
✗ Branch 2603 not taken.
✗ Branch 2604 not taken.
✗ Branch 2605 not taken.
✗ Branch 2606 not taken.
✗ Branch 2607 not taken.
✗ Branch 2608 not taken.
✓ Branch 2609 taken 94 times.
✗ Branch 2610 not taken.
✗ Branch 2611 not taken.
✗ Branch 2612 not taken.
✓ Branch 2613 taken 141 times.
✗ Branch 2614 not taken.
✗ Branch 2615 not taken.
✗ Branch 2616 not taken.
✗ Branch 2617 not taken.
✗ Branch 2618 not taken.
✗ Branch 2619 not taken.
✗ Branch 2620 not taken.
✗ Branch 2621 not taken.
✗ Branch 2622 not taken.
✗ Branch 2623 not taken.
✗ Branch 2624 not taken.
✗ Branch 2625 not taken.
✗ Branch 2626 not taken.
✗ Branch 2627 not taken.
✗ Branch 2628 not taken.
✗ Branch 2629 not taken.
✗ Branch 2630 not taken.
✗ Branch 2631 not taken.
✗ Branch 2632 not taken.
✓ Branch 2633 taken 94 times.
✗ Branch 2634 not taken.
✗ Branch 2635 not taken.
✗ Branch 2636 not taken.
✓ Branch 2637 taken 141 times.
✗ Branch 2638 not taken.
✗ Branch 2639 not taken.
✗ Branch 2640 not taken.
✗ Branch 2641 not taken.
✗ Branch 2642 not taken.
✗ Branch 2643 not taken.
✗ Branch 2644 not taken.
✗ Branch 2645 not taken.
✗ Branch 2646 not taken.
✗ Branch 2647 not taken.
✗ Branch 2648 not taken.
✗ Branch 2649 not taken.
✗ Branch 2650 not taken.
✗ Branch 2651 not taken.
✗ Branch 2652 not taken.
✗ Branch 2653 not taken.
✗ Branch 2654 not taken.
✗ Branch 2655 not taken.
✗ Branch 2656 not taken.
✓ Branch 2657 taken 256 times.
✗ Branch 2658 not taken.
✗ Branch 2659 not taken.
✗ Branch 2660 not taken.
✓ Branch 2661 taken 384 times.
✗ Branch 2662 not taken.
✗ Branch 2663 not taken.
✗ Branch 2664 not taken.
✗ Branch 2665 not taken.
✗ Branch 2666 not taken.
✗ Branch 2667 not taken.
✗ Branch 2668 not taken.
✗ Branch 2669 not taken.
✗ Branch 2670 not taken.
✗ Branch 2671 not taken.
✗ Branch 2672 not taken.
✗ Branch 2673 not taken.
✗ Branch 2674 not taken.
✗ Branch 2675 not taken.
✗ Branch 2676 not taken.
✗ Branch 2677 not taken.
✗ Branch 2678 not taken.
✗ Branch 2679 not taken.
✗ Branch 2680 not taken.
✓ Branch 2681 taken 223 times.
✗ Branch 2682 not taken.
✗ Branch 2683 not taken.
✗ Branch 2684 not taken.
✓ Branch 2685 taken 334 times.
✗ Branch 2686 not taken.
✗ Branch 2687 not taken.
✗ Branch 2688 not taken.
✗ Branch 2689 not taken.
✗ Branch 2690 not taken.
✗ Branch 2691 not taken.
✗ Branch 2692 not taken.
✗ Branch 2693 not taken.
✗ Branch 2694 not taken.
✗ Branch 2695 not taken.
✗ Branch 2696 not taken.
✗ Branch 2697 not taken.
✗ Branch 2698 not taken.
✗ Branch 2699 not taken.
✗ Branch 2700 not taken.
✗ Branch 2701 not taken.
✗ Branch 2702 not taken.
✗ Branch 2703 not taken.
✗ Branch 2704 not taken.
✓ Branch 2705 taken 142 times.
✗ Branch 2706 not taken.
✗ Branch 2707 not taken.
✗ Branch 2708 not taken.
✓ Branch 2709 taken 213 times.
✗ Branch 2710 not taken.
✗ Branch 2711 not taken.
✗ Branch 2712 not taken.
✗ Branch 2713 not taken.
✗ Branch 2714 not taken.
✗ Branch 2715 not taken.
✗ Branch 2716 not taken.
✗ Branch 2717 not taken.
✗ Branch 2718 not taken.
✓ Branch 2719 taken 4 times.
✗ Branch 2720 not taken.
✗ Branch 2721 not taken.
✗ Branch 2722 not taken.
✓ Branch 2723 taken 4 times.
✗ Branch 2724 not taken.
✗ Branch 2725 not taken.
✗ Branch 2726 not taken.
✓ Branch 2727 taken 4 times.
✗ Branch 2728 not taken.
✓ Branch 2729 taken 134 times.
✗ Branch 2730 not taken.
✓ Branch 2731 taken 4 times.
✗ Branch 2732 not taken.
✓ Branch 2733 taken 201 times.
✗ Branch 2734 not taken.
✗ Branch 2735 not taken.
✗ Branch 2736 not taken.
✗ Branch 2737 not taken.
✗ Branch 2738 not taken.
✗ Branch 2739 not taken.
✗ Branch 2740 not taken.
✗ Branch 2741 not taken.
✗ Branch 2742 not taken.
✗ Branch 2743 not taken.
✗ Branch 2744 not taken.
✗ Branch 2745 not taken.
✗ Branch 2746 not taken.
✗ Branch 2747 not taken.
✗ Branch 2748 not taken.
✗ Branch 2749 not taken.
✗ Branch 2750 not taken.
✗ Branch 2751 not taken.
✗ Branch 2752 not taken.
✓ Branch 2753 taken 128 times.
✗ Branch 2754 not taken.
✗ Branch 2755 not taken.
✗ Branch 2756 not taken.
✓ Branch 2757 taken 192 times.
✗ Branch 2758 not taken.
✗ Branch 2759 not taken.
✗ Branch 2760 not taken.
✗ Branch 2761 not taken.
✗ Branch 2762 not taken.
✗ Branch 2763 not taken.
✗ Branch 2764 not taken.
✗ Branch 2765 not taken.
✗ Branch 2766 not taken.
✗ Branch 2767 not taken.
✗ Branch 2768 not taken.
✗ Branch 2769 not taken.
✗ Branch 2770 not taken.
✗ Branch 2771 not taken.
✗ Branch 2772 not taken.
✗ Branch 2773 not taken.
✗ Branch 2774 not taken.
✗ Branch 2775 not taken.
✗ Branch 2776 not taken.
✓ Branch 2777 taken 126 times.
✗ Branch 2778 not taken.
✗ Branch 2779 not taken.
✗ Branch 2780 not taken.
✓ Branch 2781 taken 189 times.
✗ Branch 2782 not taken.
✗ Branch 2783 not taken.
✗ Branch 2784 not taken.
✗ Branch 2785 not taken.
✗ Branch 2786 not taken.
✗ Branch 2787 not taken.
✗ Branch 2788 not taken.
✗ Branch 2789 not taken.
✗ Branch 2790 not taken.
✗ Branch 2791 not taken.
✗ Branch 2792 not taken.
✗ Branch 2793 not taken.
✗ Branch 2794 not taken.
✗ Branch 2795 not taken.
✗ Branch 2796 not taken.
✗ Branch 2797 not taken.
✗ Branch 2798 not taken.
✗ Branch 2799 not taken.
✗ Branch 2800 not taken.
✓ Branch 2801 taken 134 times.
✗ Branch 2802 not taken.
✗ Branch 2803 not taken.
✗ Branch 2804 not taken.
✓ Branch 2805 taken 201 times.
✗ Branch 2806 not taken.
✗ Branch 2807 not taken.
✗ Branch 2808 not taken.
✗ Branch 2809 not taken.
✗ Branch 2810 not taken.
✗ Branch 2811 not taken.
✗ Branch 2812 not taken.
✗ Branch 2813 not taken.
✗ Branch 2814 not taken.
✗ Branch 2815 not taken.
✗ Branch 2816 not taken.
✗ Branch 2817 not taken.
✗ Branch 2818 not taken.
✗ Branch 2819 not taken.
✗ Branch 2820 not taken.
✗ Branch 2821 not taken.
✗ Branch 2822 not taken.
✗ Branch 2823 not taken.
✗ Branch 2824 not taken.
✓ Branch 2825 taken 120 times.
✗ Branch 2826 not taken.
✗ Branch 2827 not taken.
✗ Branch 2828 not taken.
✓ Branch 2829 taken 180 times.
✗ Branch 2830 not taken.
✗ Branch 2831 not taken.
✗ Branch 2832 not taken.
✗ Branch 2833 not taken.
✗ Branch 2834 not taken.
✗ Branch 2835 not taken.
✗ Branch 2836 not taken.
✗ Branch 2837 not taken.
✗ Branch 2838 not taken.
✗ Branch 2839 not taken.
✗ Branch 2840 not taken.
✗ Branch 2841 not taken.
✗ Branch 2842 not taken.
✗ Branch 2843 not taken.
✗ Branch 2844 not taken.
✗ Branch 2845 not taken.
✗ Branch 2846 not taken.
✗ Branch 2847 not taken.
✗ Branch 2848 not taken.
✓ Branch 2849 taken 134 times.
✗ Branch 2850 not taken.
✗ Branch 2851 not taken.
✗ Branch 2852 not taken.
✓ Branch 2853 taken 201 times.
✗ Branch 2854 not taken.
✗ Branch 2855 not taken.
✗ Branch 2856 not taken.
✗ Branch 2857 not taken.
✗ Branch 2858 not taken.
✗ Branch 2859 not taken.
✗ Branch 2860 not taken.
✗ Branch 2861 not taken.
✗ Branch 2862 not taken.
✗ Branch 2863 not taken.
✗ Branch 2864 not taken.
✗ Branch 2865 not taken.
✗ Branch 2866 not taken.
✗ Branch 2867 not taken.
✗ Branch 2868 not taken.
✗ Branch 2869 not taken.
✗ Branch 2870 not taken.
✗ Branch 2871 not taken.
✗ Branch 2872 not taken.
✓ Branch 2873 taken 124 times.
✗ Branch 2874 not taken.
✗ Branch 2875 not taken.
✗ Branch 2876 not taken.
✓ Branch 2877 taken 186 times.
✗ Branch 2878 not taken.
✗ Branch 2879 not taken.
✗ Branch 2880 not taken.
✗ Branch 2881 not taken.
✗ Branch 2882 not taken.
✗ Branch 2883 not taken.
✗ Branch 2884 not taken.
✗ Branch 2885 not taken.
✗ Branch 2886 not taken.
✗ Branch 2887 not taken.
✗ Branch 2888 not taken.
✗ Branch 2889 not taken.
✗ Branch 2890 not taken.
✗ Branch 2891 not taken.
✗ Branch 2892 not taken.
✗ Branch 2893 not taken.
✗ Branch 2894 not taken.
✗ Branch 2895 not taken.
✗ Branch 2896 not taken.
✓ Branch 2897 taken 85 times.
✗ Branch 2898 not taken.
✗ Branch 2899 not taken.
✗ Branch 2900 not taken.
✓ Branch 2901 taken 128 times.
✗ Branch 2902 not taken.
✗ Branch 2903 not taken.
✗ Branch 2904 not taken.
✗ Branch 2905 not taken.
✗ Branch 2906 not taken.
✗ Branch 2907 not taken.
✗ Branch 2908 not taken.
✗ Branch 2909 not taken.
✗ Branch 2910 not taken.
✗ Branch 2911 not taken.
✗ Branch 2912 not taken.
✗ Branch 2913 not taken.
✗ Branch 2914 not taken.
✗ Branch 2915 not taken.
✗ Branch 2916 not taken.
✗ Branch 2917 not taken.
✗ Branch 2918 not taken.
✗ Branch 2919 not taken.
✗ Branch 2920 not taken.
✓ Branch 2921 taken 784 times.
✗ Branch 2922 not taken.
✗ Branch 2923 not taken.
✓ Branch 2924 taken 392 times.
✓ Branch 2925 taken 784 times.
✗ Branch 2926 not taken.
✓ Branch 2927 taken 392 times.
✗ Branch 2928 not taken.
✗ Branch 2929 not taken.
✗ Branch 2930 not taken.
✗ Branch 2931 not taken.
✗ Branch 2932 not taken.
✗ Branch 2933 not taken.
✗ Branch 2934 not taken.
✗ Branch 2935 not taken.
✗ Branch 2936 not taken.
✗ Branch 2937 not taken.
✗ Branch 2938 not taken.
✗ Branch 2939 not taken.
✗ Branch 2940 not taken.
✗ Branch 2941 not taken.
✗ Branch 2942 not taken.
✗ Branch 2943 not taken.
✗ Branch 2944 not taken.
✓ Branch 2945 taken 551 times.
✗ Branch 2946 not taken.
✗ Branch 2947 not taken.
✓ Branch 2948 taken 265 times.
✓ Branch 2949 taken 551 times.
✗ Branch 2950 not taken.
✓ Branch 2951 taken 265 times.
✗ Branch 2952 not taken.
✓ Branch 2953 taken 1 times.
✗ Branch 2954 not taken.
✗ Branch 2955 not taken.
✗ Branch 2956 not taken.
✓ Branch 2957 taken 1 times.
✗ Branch 2958 not taken.
✗ Branch 2959 not taken.
✗ Branch 2960 not taken.
✓ Branch 2961 taken 1 times.
✗ Branch 2962 not taken.
✗ Branch 2963 not taken.
✗ Branch 2964 not taken.
✓ Branch 2965 taken 1 times.
✗ Branch 2966 not taken.
✗ Branch 2967 not taken.
✗ Branch 2968 not taken.
✓ Branch 2969 taken 186 times.
✗ Branch 2970 not taken.
✗ Branch 2971 not taken.
✓ Branch 2972 taken 93 times.
✓ Branch 2973 taken 186 times.
✗ Branch 2974 not taken.
✓ Branch 2975 taken 93 times.
✗ Branch 2976 not taken.
✗ Branch 2977 not taken.
✗ Branch 2978 not taken.
✗ Branch 2979 not taken.
✗ Branch 2980 not taken.
✗ Branch 2981 not taken.
✗ Branch 2982 not taken.
✗ Branch 2983 not taken.
✗ Branch 2984 not taken.
✗ Branch 2985 not taken.
✗ Branch 2986 not taken.
✗ Branch 2987 not taken.
✗ Branch 2988 not taken.
✗ Branch 2989 not taken.
✗ Branch 2990 not taken.
✗ Branch 2991 not taken.
✓ Branch 2992 taken 3 times.
✓ Branch 2993 taken 545 times.
✗ Branch 2994 not taken.
✓ Branch 2995 taken 3 times.
✓ Branch 2996 taken 274 times.
✓ Branch 2997 taken 545 times.
✗ Branch 2998 not taken.
✓ Branch 2999 taken 274 times.
✗ Branch 3000 not taken.
✗ Branch 3001 not taken.
✗ Branch 3002 not taken.
✗ Branch 3003 not taken.
✗ Branch 3004 not taken.
✗ Branch 3005 not taken.
✗ Branch 3006 not taken.
✗ Branch 3007 not taken.
✗ Branch 3008 not taken.
✗ Branch 3009 not taken.
✗ Branch 3010 not taken.
✗ Branch 3011 not taken.
✗ Branch 3012 not taken.
✗ Branch 3013 not taken.
✗ Branch 3014 not taken.
✗ Branch 3015 not taken.
✗ Branch 3016 not taken.
✓ Branch 3017 taken 68 times.
✗ Branch 3018 not taken.
✗ Branch 3019 not taken.
✓ Branch 3020 taken 34 times.
✓ Branch 3021 taken 68 times.
✗ Branch 3022 not taken.
✓ Branch 3023 taken 34 times.
✗ Branch 3024 not taken.
✗ Branch 3025 not taken.
✗ Branch 3026 not taken.
✗ Branch 3027 not taken.
✗ Branch 3028 not taken.
✗ Branch 3029 not taken.
✗ Branch 3030 not taken.
✗ Branch 3031 not taken.
✗ Branch 3032 not taken.
✗ Branch 3033 not taken.
✗ Branch 3034 not taken.
✗ Branch 3035 not taken.
✗ Branch 3036 not taken.
✗ Branch 3037 not taken.
✗ Branch 3038 not taken.
✗ Branch 3039 not taken.
✗ Branch 3040 not taken.
✓ Branch 3041 taken 887 times.
✗ Branch 3042 not taken.
✗ Branch 3043 not taken.
✓ Branch 3044 taken 444 times.
✓ Branch 3045 taken 887 times.
✗ Branch 3046 not taken.
✓ Branch 3047 taken 444 times.
✗ Branch 3048 not taken.
✗ Branch 3049 not taken.
✗ Branch 3050 not taken.
✗ Branch 3051 not taken.
✗ Branch 3052 not taken.
✗ Branch 3053 not taken.
✗ Branch 3054 not taken.
✗ Branch 3055 not taken.
✗ Branch 3056 not taken.
✗ Branch 3057 not taken.
✗ Branch 3058 not taken.
✗ Branch 3059 not taken.
✗ Branch 3060 not taken.
✗ Branch 3061 not taken.
✗ Branch 3062 not taken.
✗ Branch 3063 not taken.
✗ Branch 3064 not taken.
✓ Branch 3065 taken 94 times.
✗ Branch 3066 not taken.
✗ Branch 3067 not taken.
✓ Branch 3068 taken 47 times.
✓ Branch 3069 taken 94 times.
✗ Branch 3070 not taken.
✓ Branch 3071 taken 47 times.
✗ Branch 3072 not taken.
✗ Branch 3073 not taken.
✗ Branch 3074 not taken.
✗ Branch 3075 not taken.
✗ Branch 3076 not taken.
✗ Branch 3077 not taken.
✗ Branch 3078 not taken.
✗ Branch 3079 not taken.
✗ Branch 3080 not taken.
✗ Branch 3081 not taken.
✗ Branch 3082 not taken.
✗ Branch 3083 not taken.
✗ Branch 3084 not taken.
✗ Branch 3085 not taken.
✗ Branch 3086 not taken.
✗ Branch 3087 not taken.
✗ Branch 3088 not taken.
✓ Branch 3089 taken 94 times.
✗ Branch 3090 not taken.
✗ Branch 3091 not taken.
✓ Branch 3092 taken 47 times.
✓ Branch 3093 taken 94 times.
✗ Branch 3094 not taken.
✓ Branch 3095 taken 47 times.
✗ Branch 3096 not taken.
✗ Branch 3097 not taken.
✗ Branch 3098 not taken.
✗ Branch 3099 not taken.
✗ Branch 3100 not taken.
✗ Branch 3101 not taken.
✗ Branch 3102 not taken.
✗ Branch 3103 not taken.
✗ Branch 3104 not taken.
✗ Branch 3105 not taken.
✗ Branch 3106 not taken.
✗ Branch 3107 not taken.
✗ Branch 3108 not taken.
✗ Branch 3109 not taken.
✗ Branch 3110 not taken.
✗ Branch 3111 not taken.
✗ Branch 3112 not taken.
✓ Branch 3113 taken 94 times.
✗ Branch 3114 not taken.
✗ Branch 3115 not taken.
✓ Branch 3116 taken 47 times.
✓ Branch 3117 taken 94 times.
✗ Branch 3118 not taken.
✓ Branch 3119 taken 47 times.
✗ Branch 3120 not taken.
✗ Branch 3121 not taken.
✗ Branch 3122 not taken.
✗ Branch 3123 not taken.
✗ Branch 3124 not taken.
✗ Branch 3125 not taken.
✗ Branch 3126 not taken.
✗ Branch 3127 not taken.
✗ Branch 3128 not taken.
✗ Branch 3129 not taken.
✗ Branch 3130 not taken.
✗ Branch 3131 not taken.
✗ Branch 3132 not taken.
✗ Branch 3133 not taken.
✗ Branch 3134 not taken.
✗ Branch 3135 not taken.
✗ Branch 3136 not taken.
✓ Branch 3137 taken 256 times.
✗ Branch 3138 not taken.
✗ Branch 3139 not taken.
✓ Branch 3140 taken 128 times.
✓ Branch 3141 taken 256 times.
✗ Branch 3142 not taken.
✓ Branch 3143 taken 128 times.
✗ Branch 3144 not taken.
✗ Branch 3145 not taken.
✗ Branch 3146 not taken.
✗ Branch 3147 not taken.
✗ Branch 3148 not taken.
✗ Branch 3149 not taken.
✗ Branch 3150 not taken.
✗ Branch 3151 not taken.
✗ Branch 3152 not taken.
✗ Branch 3153 not taken.
✗ Branch 3154 not taken.
✗ Branch 3155 not taken.
✗ Branch 3156 not taken.
✗ Branch 3157 not taken.
✗ Branch 3158 not taken.
✗ Branch 3159 not taken.
✗ Branch 3160 not taken.
✓ Branch 3161 taken 223 times.
✗ Branch 3162 not taken.
✗ Branch 3163 not taken.
✓ Branch 3164 taken 111 times.
✓ Branch 3165 taken 223 times.
✗ Branch 3166 not taken.
✓ Branch 3167 taken 111 times.
✗ Branch 3168 not taken.
✗ Branch 3169 not taken.
✗ Branch 3170 not taken.
✗ Branch 3171 not taken.
✗ Branch 3172 not taken.
✗ Branch 3173 not taken.
✗ Branch 3174 not taken.
✗ Branch 3175 not taken.
✗ Branch 3176 not taken.
✗ Branch 3177 not taken.
✗ Branch 3178 not taken.
✗ Branch 3179 not taken.
✗ Branch 3180 not taken.
✗ Branch 3181 not taken.
✗ Branch 3182 not taken.
✗ Branch 3183 not taken.
✗ Branch 3184 not taken.
✓ Branch 3185 taken 142 times.
✗ Branch 3186 not taken.
✗ Branch 3187 not taken.
✓ Branch 3188 taken 71 times.
✓ Branch 3189 taken 142 times.
✗ Branch 3190 not taken.
✓ Branch 3191 taken 71 times.
✗ Branch 3192 not taken.
✗ Branch 3193 not taken.
✗ Branch 3194 not taken.
✗ Branch 3195 not taken.
✗ Branch 3196 not taken.
✗ Branch 3197 not taken.
✗ Branch 3198 not taken.
✗ Branch 3199 not taken.
✗ Branch 3200 not taken.
✗ Branch 3201 not taken.
✗ Branch 3202 not taken.
✗ Branch 3203 not taken.
✗ Branch 3204 not taken.
✗ Branch 3205 not taken.
✗ Branch 3206 not taken.
✗ Branch 3207 not taken.
✗ Branch 3208 not taken.
✓ Branch 3209 taken 134 times.
✗ Branch 3210 not taken.
✗ Branch 3211 not taken.
✓ Branch 3212 taken 67 times.
✓ Branch 3213 taken 134 times.
✗ Branch 3214 not taken.
✓ Branch 3215 taken 67 times.
✗ Branch 3216 not taken.
✗ Branch 3217 not taken.
✗ Branch 3218 not taken.
✗ Branch 3219 not taken.
✗ Branch 3220 not taken.
✗ Branch 3221 not taken.
✗ Branch 3222 not taken.
✗ Branch 3223 not taken.
✗ Branch 3224 not taken.
✗ Branch 3225 not taken.
✗ Branch 3226 not taken.
✗ Branch 3227 not taken.
✗ Branch 3228 not taken.
✗ Branch 3229 not taken.
✗ Branch 3230 not taken.
✗ Branch 3231 not taken.
✗ Branch 3232 not taken.
✓ Branch 3233 taken 128 times.
✗ Branch 3234 not taken.
✗ Branch 3235 not taken.
✓ Branch 3236 taken 64 times.
✓ Branch 3237 taken 128 times.
✗ Branch 3238 not taken.
✓ Branch 3239 taken 64 times.
✗ Branch 3240 not taken.
✗ Branch 3241 not taken.
✗ Branch 3242 not taken.
✗ Branch 3243 not taken.
✗ Branch 3244 not taken.
✗ Branch 3245 not taken.
✗ Branch 3246 not taken.
✗ Branch 3247 not taken.
✗ Branch 3248 not taken.
✗ Branch 3249 not taken.
✗ Branch 3250 not taken.
✗ Branch 3251 not taken.
✗ Branch 3252 not taken.
✗ Branch 3253 not taken.
✗ Branch 3254 not taken.
✗ Branch 3255 not taken.
✗ Branch 3256 not taken.
✓ Branch 3257 taken 126 times.
✗ Branch 3258 not taken.
✗ Branch 3259 not taken.
✓ Branch 3260 taken 63 times.
✓ Branch 3261 taken 126 times.
✗ Branch 3262 not taken.
✓ Branch 3263 taken 63 times.
✗ Branch 3264 not taken.
✗ Branch 3265 not taken.
✗ Branch 3266 not taken.
✗ Branch 3267 not taken.
✗ Branch 3268 not taken.
✗ Branch 3269 not taken.
✗ Branch 3270 not taken.
✗ Branch 3271 not taken.
✗ Branch 3272 not taken.
✗ Branch 3273 not taken.
✗ Branch 3274 not taken.
✗ Branch 3275 not taken.
✗ Branch 3276 not taken.
✗ Branch 3277 not taken.
✗ Branch 3278 not taken.
✗ Branch 3279 not taken.
✗ Branch 3280 not taken.
✓ Branch 3281 taken 134 times.
✗ Branch 3282 not taken.
✗ Branch 3283 not taken.
✓ Branch 3284 taken 67 times.
✓ Branch 3285 taken 134 times.
✗ Branch 3286 not taken.
✓ Branch 3287 taken 67 times.
✗ Branch 3288 not taken.
✗ Branch 3289 not taken.
✗ Branch 3290 not taken.
✗ Branch 3291 not taken.
✗ Branch 3292 not taken.
✗ Branch 3293 not taken.
✗ Branch 3294 not taken.
✗ Branch 3295 not taken.
✗ Branch 3296 not taken.
✗ Branch 3297 not taken.
✗ Branch 3298 not taken.
✗ Branch 3299 not taken.
✗ Branch 3300 not taken.
✗ Branch 3301 not taken.
✗ Branch 3302 not taken.
✗ Branch 3303 not taken.
✗ Branch 3304 not taken.
✓ Branch 3305 taken 120 times.
✗ Branch 3306 not taken.
✗ Branch 3307 not taken.
✓ Branch 3308 taken 60 times.
✓ Branch 3309 taken 120 times.
✗ Branch 3310 not taken.
✓ Branch 3311 taken 60 times.
✗ Branch 3312 not taken.
✗ Branch 3313 not taken.
✗ Branch 3314 not taken.
✗ Branch 3315 not taken.
✗ Branch 3316 not taken.
✗ Branch 3317 not taken.
✗ Branch 3318 not taken.
✗ Branch 3319 not taken.
✗ Branch 3320 not taken.
✗ Branch 3321 not taken.
✗ Branch 3322 not taken.
✗ Branch 3323 not taken.
✗ Branch 3324 not taken.
✗ Branch 3325 not taken.
✗ Branch 3326 not taken.
✗ Branch 3327 not taken.
✗ Branch 3328 not taken.
✓ Branch 3329 taken 134 times.
✗ Branch 3330 not taken.
✗ Branch 3331 not taken.
✓ Branch 3332 taken 67 times.
✓ Branch 3333 taken 134 times.
✗ Branch 3334 not taken.
✓ Branch 3335 taken 67 times.
✗ Branch 3336 not taken.
✗ Branch 3337 not taken.
✗ Branch 3338 not taken.
✗ Branch 3339 not taken.
✗ Branch 3340 not taken.
✗ Branch 3341 not taken.
✗ Branch 3342 not taken.
✗ Branch 3343 not taken.
✗ Branch 3344 not taken.
✗ Branch 3345 not taken.
✗ Branch 3346 not taken.
✗ Branch 3347 not taken.
✗ Branch 3348 not taken.
✗ Branch 3349 not taken.
✗ Branch 3350 not taken.
✗ Branch 3351 not taken.
✗ Branch 3352 not taken.
✓ Branch 3353 taken 124 times.
✗ Branch 3354 not taken.
✗ Branch 3355 not taken.
✓ Branch 3356 taken 62 times.
✓ Branch 3357 taken 124 times.
✗ Branch 3358 not taken.
✓ Branch 3359 taken 62 times.
✗ Branch 3360 not taken.
✗ Branch 3361 not taken.
✗ Branch 3362 not taken.
✗ Branch 3363 not taken.
✗ Branch 3364 not taken.
✗ Branch 3365 not taken.
✗ Branch 3366 not taken.
✗ Branch 3367 not taken.
✗ Branch 3368 not taken.
✗ Branch 3369 not taken.
✗ Branch 3370 not taken.
✗ Branch 3371 not taken.
✗ Branch 3372 not taken.
✗ Branch 3373 not taken.
✗ Branch 3374 not taken.
✗ Branch 3375 not taken.
✗ Branch 3376 not taken.
✓ Branch 3377 taken 85 times.
✗ Branch 3378 not taken.
✗ Branch 3379 not taken.
✓ Branch 3380 taken 43 times.
✓ Branch 3381 taken 85 times.
✗ Branch 3382 not taken.
✓ Branch 3383 taken 43 times.
✗ Branch 3384 not taken.
✗ Branch 3385 not taken.
✗ Branch 3386 not taken.
✗ Branch 3387 not taken.
✗ Branch 3388 not taken.
✗ Branch 3389 not taken.
✗ Branch 3390 not taken.
✗ Branch 3391 not taken.
✗ Branch 3392 not taken.
✗ Branch 3393 not taken.
✗ Branch 3394 not taken.
✗ Branch 3395 not taken.
✗ Branch 3396 not taken.
✗ Branch 3397 not taken.
✗ Branch 3398 not taken.
✗ Branch 3399 not taken.
|
380377 | bool is_divisible() const {return mGrainSize < this->size();} |
207 | |||
208 | class Iterator | ||
209 | { | ||
210 | public: | ||
211 | 197251 | Iterator(const NodeRange& range, size_t pos): mRange(range), mPos(pos) | |
212 | { | ||
213 | ✗ | assert(this->isValid()); | |
214 | } | ||
215 | Iterator(const Iterator&) = default; | ||
216 | Iterator& operator=(const Iterator&) = default; | ||
217 | /// Advance to the next node. | ||
218 | 23048889 | Iterator& operator++() { ++mPos; return *this; } | |
219 | /// Return a reference to the node to which this iterator is pointing. | ||
220 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 23048889 times.
|
46097778 | NodeT& operator*() const { return mRange.mNodeList(mPos); } |
221 | /// Return a pointer to the node to which this iterator is pointing. | ||
222 | NodeT* operator->() const { return &(this->operator*()); } | ||
223 | /// Return the index into the list of the current node. | ||
224 | 208981 | size_t pos() const { return mPos; } | |
225 | 197251 | bool isValid() const { return mPos>=mRange.mBegin && mPos<=mRange.mEnd; } | |
226 | /// Return @c true if this iterator is not yet exhausted. | ||
227 | 23246140 | bool test() const { return mPos < mRange.mEnd; } | |
228 | /// Return @c true if this iterator is not yet exhausted. | ||
229 | operator bool() const { return this->test(); } | ||
230 | /// Return @c true if this iterator is exhausted. | ||
231 | bool empty() const { return !this->test(); } | ||
232 | bool operator!=(const Iterator& other) const | ||
233 | { | ||
234 | return (mPos != other.mPos) || (&mRange != &other.mRange); | ||
235 | } | ||
236 | bool operator==(const Iterator& other) const { return !(*this != other); } | ||
237 | const NodeRange& nodeRange() const { return mRange; } | ||
238 | |||
239 | private: | ||
240 | const NodeRange& mRange; | ||
241 | size_t mPos; | ||
242 | };// NodeList::NodeRange::Iterator | ||
243 | |||
244 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 197251 times.
|
394502 | Iterator begin() const {return Iterator(*this, mBegin);} |
245 | |||
246 | Iterator end() const {return Iterator(*this, mEnd);} | ||
247 | |||
248 | private: | ||
249 | size_t mEnd, mBegin, mGrainSize; | ||
250 | const NodeList& mNodeList; | ||
251 | |||
252 | 266756 | static size_t doSplit(NodeRange& r) | |
253 | { | ||
254 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 133378 times.
|
266756 | assert(r.is_divisible()); |
255 | 266756 | size_t middle = r.mBegin + (r.mEnd - r.mBegin) / 2u; | |
256 | 266756 | r.mEnd = middle; | |
257 | 266756 | return middle; | |
258 | } | ||
259 | };// NodeList::NodeRange | ||
260 | |||
261 | /// Return a TBB-compatible NodeRange. | ||
262 | NodeRange nodeRange(size_t grainsize = 1) const | ||
263 | { | ||
264 | return NodeRange(0, this->nodeCount(), *this, grainsize); | ||
265 | } | ||
266 | |||
267 | template<typename NodeOp> | ||
268 | 59834 | void foreach(const NodeOp& op, bool threaded = true, size_t grainSize=1) | |
269 | { | ||
270 | NodeTransformerCopy<NodeOp> transform(op); // always deep-copies the op | ||
271 | 59834 | transform.run(this->nodeRange(grainSize), threaded); | |
272 | 59834 | } | |
273 | |||
274 | template<typename NodeOp> | ||
275 | 36 | void reduce(NodeOp& op, bool threaded = true, size_t grainSize=1) | |
276 | { | ||
277 | NodeReducer<NodeOp> transform(op); | ||
278 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 18 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
36 | transform.run(this->nodeRange(grainSize), threaded); |
279 | 36 | } | |
280 | |||
281 | // identical to foreach except the operator() method has a node index and | ||
282 | // the operator is referenced instead of copied in NodeTransformer | ||
283 | template<typename NodeOp> | ||
284 | 504 | void foreachWithIndex(const NodeOp& op, bool threaded = true, size_t grainSize=1) | |
285 | { | ||
286 | NodeTransformer<NodeOp, OpWithIndex> transform(op); | ||
287 | 504 | transform.run(this->nodeRange(grainSize), threaded); | |
288 | 504 | } | |
289 | |||
290 | // identical to reduce except the operator() method has a node index | ||
291 | template<typename NodeOp> | ||
292 | 67896 | void reduceWithIndex(NodeOp& op, bool threaded = true, size_t grainSize=1) | |
293 | { | ||
294 | NodeReducer<NodeOp, OpWithIndex> transform(op); | ||
295 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 11343 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
67896 | transform.run(this->nodeRange(grainSize), threaded); |
296 | } | ||
297 | |||
298 | private: | ||
299 | |||
300 | // default execution in the NodeManager ignores the node index | ||
301 | // given by the iterator position | ||
302 | struct OpWithoutIndex | ||
303 | { | ||
304 | template <typename T> | ||
305 | 396960 | static void eval(T& node, typename NodeRange::Iterator& iter) { node(*iter); } | |
306 | }; | ||
307 | |||
308 | // execution in the DynamicNodeManager matches that of the LeafManager in | ||
309 | // passing through the node index given by the iterator position | ||
310 | struct OpWithIndex | ||
311 | { | ||
312 | template <typename T> | ||
313 | 45292966 | static void eval(T& node, typename NodeRange::Iterator& iter) { node(*iter, iter.pos()); } | |
314 | }; | ||
315 | |||
316 | // Private struct of NodeList that performs parallel_for | ||
317 | template<typename NodeOp, typename OpT = OpWithoutIndex> | ||
318 | 20130 | struct NodeTransformerCopy | |
319 | { | ||
320 | 23451 | NodeTransformerCopy(const NodeOp& nodeOp) : mNodeOp(nodeOp) | |
321 | { | ||
322 | } | ||
323 | void run(const NodeRange& range, bool threaded = true) | ||
324 | { | ||
325 |
170/436✓ Branch 0 taken 175 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 45 times.
✓ Branch 4 taken 130 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 211 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 45 times.
✓ Branch 12 taken 165 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 133 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 45 times.
✓ Branch 20 taken 153 times.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 139 times.
✗ Branch 25 not taken.
✓ Branch 27 taken 64 times.
✓ Branch 28 taken 10 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 70 times.
✗ Branch 33 not taken.
✓ Branch 35 taken 64 times.
✓ Branch 36 taken 141 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 40 taken 325 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 64 times.
✓ Branch 44 taken 261 times.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 48 taken 678 times.
✓ Branch 49 taken 480 times.
✓ Branch 51 taken 69 times.
✓ Branch 52 taken 609 times.
✓ Branch 53 taken 480 times.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✓ Branch 56 taken 81 times.
✗ Branch 57 not taken.
✓ Branch 59 taken 69 times.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✓ Branch 64 taken 238 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 69 times.
✓ Branch 68 taken 169 times.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✓ Branch 72 taken 80 times.
✗ Branch 73 not taken.
✓ Branch 75 taken 62 times.
✓ Branch 76 taken 18 times.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 62 times.
✗ Branch 81 not taken.
✓ Branch 83 taken 62 times.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✓ Branch 88 taken 192 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 62 times.
✓ Branch 92 taken 130 times.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✓ Branch 96 taken 77 times.
✗ Branch 97 not taken.
✓ Branch 99 taken 69 times.
✓ Branch 100 taken 8 times.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✓ Branch 104 taken 77 times.
✗ Branch 105 not taken.
✓ Branch 107 taken 69 times.
✓ Branch 108 taken 8 times.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✓ Branch 112 taken 274 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 69 times.
✓ Branch 116 taken 183 times.
✗ Branch 117 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✓ Branch 120 taken 73 times.
✗ Branch 121 not taken.
✓ Branch 123 taken 65 times.
✓ Branch 124 taken 8 times.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✓ Branch 128 taken 73 times.
✗ Branch 129 not taken.
✓ Branch 131 taken 65 times.
✓ Branch 132 taken 8 times.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✓ Branch 136 taken 203 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 65 times.
✓ Branch 140 taken 136 times.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✓ Branch 144 taken 66 times.
✗ Branch 145 not taken.
✓ Branch 147 taken 66 times.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✓ Branch 152 taken 66 times.
✗ Branch 153 not taken.
✓ Branch 155 taken 66 times.
✓ Branch 156 taken 8 times.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✓ Branch 160 taken 202 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 66 times.
✓ Branch 164 taken 136 times.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✓ Branch 168 taken 77 times.
✗ Branch 169 not taken.
✓ Branch 171 taken 69 times.
✓ Branch 172 taken 8 times.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✓ Branch 176 taken 77 times.
✗ Branch 177 not taken.
✓ Branch 179 taken 69 times.
✓ Branch 180 taken 8 times.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✓ Branch 184 taken 211 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 69 times.
✓ Branch 188 taken 142 times.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✓ Branch 192 taken 101 times.
✗ Branch 193 not taken.
✓ Branch 195 taken 75 times.
✓ Branch 196 taken 26 times.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 199 not taken.
✓ Branch 200 taken 101 times.
✗ Branch 201 not taken.
✓ Branch 203 taken 75 times.
✓ Branch 204 taken 8 times.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✓ Branch 208 taken 225 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 75 times.
✓ Branch 212 taken 150 times.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✓ Branch 216 taken 124 times.
✗ Branch 217 not taken.
✓ Branch 219 taken 116 times.
✓ Branch 220 taken 8 times.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✓ Branch 224 taken 124 times.
✗ Branch 225 not taken.
✓ Branch 227 taken 116 times.
✓ Branch 228 taken 8 times.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✓ Branch 232 taken 347 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 116 times.
✓ Branch 236 taken 231 times.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✓ Branch 240 taken 130 times.
✗ Branch 241 not taken.
✓ Branch 243 taken 130 times.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✓ Branch 248 taken 130 times.
✗ Branch 249 not taken.
✓ Branch 251 taken 130 times.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✓ Branch 256 taken 386 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 130 times.
✓ Branch 260 taken 256 times.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✓ Branch 264 taken 49 times.
✗ Branch 265 not taken.
✓ Branch 267 taken 49 times.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✓ Branch 272 taken 49 times.
✗ Branch 273 not taken.
✓ Branch 275 taken 49 times.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✓ Branch 280 taken 143 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 49 times.
✓ Branch 284 taken 94 times.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✓ Branch 288 taken 49 times.
✗ Branch 289 not taken.
✓ Branch 291 taken 49 times.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✓ Branch 296 taken 49 times.
✗ Branch 297 not taken.
✓ Branch 299 taken 49 times.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✓ Branch 304 taken 143 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 49 times.
✓ Branch 308 taken 94 times.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✓ Branch 312 taken 49 times.
✗ Branch 313 not taken.
✓ Branch 315 taken 49 times.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✓ Branch 320 taken 49 times.
✗ Branch 321 not taken.
✓ Branch 323 taken 49 times.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✓ Branch 328 taken 143 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 49 times.
✓ Branch 332 taken 94 times.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✓ Branch 336 taken 449 times.
✗ Branch 337 not taken.
✓ Branch 339 taken 449 times.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✓ Branch 344 taken 449 times.
✗ Branch 345 not taken.
✓ Branch 347 taken 449 times.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✓ Branch 352 taken 1336 times.
✗ Branch 353 not taken.
✓ Branch 355 taken 449 times.
✓ Branch 356 taken 887 times.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✓ Branch 360 taken 34 times.
✗ Branch 361 not taken.
✓ Branch 363 taken 34 times.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 367 not taken.
✓ Branch 368 taken 34 times.
✗ Branch 369 not taken.
✓ Branch 371 taken 34 times.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✓ Branch 376 taken 102 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 34 times.
✓ Branch 380 taken 68 times.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✓ Branch 384 taken 283 times.
✗ Branch 385 not taken.
✓ Branch 387 taken 283 times.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 391 not taken.
✓ Branch 392 taken 283 times.
✗ Branch 393 not taken.
✓ Branch 395 taken 283 times.
✗ Branch 396 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✓ Branch 400 taken 828 times.
✗ Branch 401 not taken.
✓ Branch 403 taken 283 times.
✓ Branch 404 taken 545 times.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✓ Branch 408 taken 99 times.
✗ Branch 409 not taken.
✓ Branch 411 taken 99 times.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 415 not taken.
✓ Branch 416 taken 99 times.
✗ Branch 417 not taken.
✓ Branch 419 taken 99 times.
✗ Branch 420 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✓ Branch 424 taken 285 times.
✗ Branch 425 not taken.
✓ Branch 427 taken 99 times.
✓ Branch 428 taken 186 times.
✗ Branch 429 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✓ Branch 432 taken 274 times.
✗ Branch 433 not taken.
✓ Branch 435 taken 273 times.
✓ Branch 436 taken 1 times.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 439 not taken.
✓ Branch 440 taken 274 times.
✗ Branch 441 not taken.
✓ Branch 443 taken 273 times.
✓ Branch 444 taken 1 times.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✓ Branch 448 taken 827 times.
✗ Branch 449 not taken.
✓ Branch 451 taken 273 times.
✓ Branch 452 taken 554 times.
✗ Branch 453 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✓ Branch 456 taken 398 times.
✗ Branch 457 not taken.
✓ Branch 459 taken 398 times.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 463 not taken.
✓ Branch 464 taken 398 times.
✗ Branch 465 not taken.
✓ Branch 467 taken 398 times.
✗ Branch 468 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✓ Branch 472 taken 1182 times.
✗ Branch 473 not taken.
✓ Branch 475 taken 398 times.
✓ Branch 476 taken 784 times.
✗ Branch 477 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✓ Branch 480 taken 3233 times.
✗ Branch 481 not taken.
✓ Branch 484 taken 3233 times.
✗ Branch 485 not taken.
✓ Branch 488 taken 720 times.
✗ Branch 489 not taken.
✓ Branch 491 taken 720 times.
✗ Branch 492 not taken.
✓ Branch 494 taken 720 times.
✗ Branch 495 not taken.
✓ Branch 497 taken 720 times.
✗ Branch 498 not taken.
✓ Branch 500 taken 720 times.
✗ Branch 501 not taken.
✓ Branch 503 taken 720 times.
✗ Branch 504 not taken.
|
29917 | threaded ? tbb::parallel_for(range, *this) : (*this)(range); |
326 | } | ||
327 | 108268 | void operator()(const NodeRange& range) const | |
328 | { | ||
329 |
2/2✓ Branch 1 taken 396959 times.
✓ Branch 2 taken 54134 times.
|
902186 | for (typename NodeRange::Iterator it = range.begin(); it; ++it) { |
330 | 793918 | OpT::template eval(mNodeOp, it); | |
331 | } | ||
332 | 108268 | } | |
333 | const NodeOp mNodeOp; | ||
334 | };// NodeList::NodeTransformerCopy | ||
335 | |||
336 | // Private struct of NodeList that performs parallel_for | ||
337 | template<typename NodeOp, typename OpT = OpWithoutIndex> | ||
338 | struct NodeTransformer | ||
339 | { | ||
340 | 252 | NodeTransformer(const NodeOp& nodeOp) : mNodeOp(nodeOp) | |
341 | { | ||
342 | } | ||
343 | void run(const NodeRange& range, bool threaded = true) | ||
344 | { | ||
345 |
57/240✓ Branch 0 taken 7 times.
✗ Branch 1 not taken.
✓ Branch 4 taken 8 times.
✗ Branch 5 not taken.
✓ Branch 8 taken 8 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 36 taken 7 times.
✗ Branch 37 not taken.
✓ Branch 40 taken 7 times.
✗ Branch 41 not taken.
✓ Branch 44 taken 10 times.
✗ Branch 45 not taken.
✓ Branch 48 taken 10 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 21 times.
✗ Branch 53 not taken.
✓ Branch 56 taken 14 times.
✗ Branch 57 not taken.
✓ Branch 60 taken 3 times.
✗ Branch 61 not taken.
✓ Branch 64 taken 3 times.
✗ Branch 65 not taken.
✓ Branch 68 taken 10 times.
✗ Branch 69 not taken.
✓ Branch 72 taken 12 times.
✗ Branch 73 not taken.
✓ Branch 76 taken 18 times.
✗ Branch 77 not taken.
✓ Branch 80 taken 26 times.
✗ Branch 81 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✓ Branch 96 taken 2 times.
✗ Branch 97 not taken.
✓ Branch 100 taken 2 times.
✗ Branch 101 not taken.
✓ Branch 104 taken 2 times.
✗ Branch 105 not taken.
✓ Branch 108 taken 5 times.
✗ Branch 109 not taken.
✓ Branch 112 taken 6 times.
✗ Branch 113 not taken.
✓ Branch 116 taken 6 times.
✗ Branch 117 not taken.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 132 not taken.
✗ Branch 133 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✓ Branch 144 taken 1 times.
✗ Branch 145 not taken.
✓ Branch 148 taken 1 times.
✗ Branch 149 not taken.
✓ Branch 152 taken 1 times.
✗ Branch 153 not taken.
✓ Branch 156 taken 1 times.
✗ Branch 157 not taken.
✓ Branch 160 taken 1 times.
✗ Branch 161 not taken.
✓ Branch 164 taken 1 times.
✗ Branch 165 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✓ Branch 228 taken 2 times.
✗ Branch 229 not taken.
✓ Branch 232 taken 2 times.
✗ Branch 233 not taken.
✓ Branch 236 taken 2 times.
✗ Branch 237 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✓ Branch 288 taken 2 times.
✗ Branch 289 not taken.
✓ Branch 292 taken 2 times.
✗ Branch 293 not taken.
✓ Branch 296 taken 2 times.
✗ Branch 297 not taken.
✓ Branch 300 taken 2 times.
✗ Branch 301 not taken.
✓ Branch 304 taken 2 times.
✗ Branch 305 not taken.
✓ Branch 308 taken 2 times.
✗ Branch 309 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✓ Branch 336 taken 2 times.
✗ Branch 337 not taken.
✓ Branch 340 taken 2 times.
✗ Branch 341 not taken.
✓ Branch 344 taken 2 times.
✗ Branch 345 not taken.
✓ Branch 348 taken 5 times.
✗ Branch 349 not taken.
✓ Branch 352 taken 6 times.
✗ Branch 353 not taken.
✓ Branch 356 taken 6 times.
✗ Branch 357 not taken.
✗ Branch 360 not taken.
✗ Branch 361 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✓ Branch 384 taken 1 times.
✗ Branch 385 not taken.
✓ Branch 388 taken 1 times.
✗ Branch 389 not taken.
✓ Branch 392 taken 1 times.
✗ Branch 393 not taken.
✓ Branch 396 taken 1 times.
✗ Branch 397 not taken.
✓ Branch 400 taken 1 times.
✗ Branch 401 not taken.
✓ Branch 404 taken 1 times.
✗ Branch 405 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 420 not taken.
✗ Branch 421 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 432 not taken.
✗ Branch 433 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 444 not taken.
✗ Branch 445 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 456 not taken.
✗ Branch 457 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✓ Branch 468 taken 2 times.
✗ Branch 469 not taken.
✓ Branch 472 taken 2 times.
✗ Branch 473 not taken.
✓ Branch 476 taken 2 times.
✗ Branch 477 not taken.
|
252 | threaded ? tbb::parallel_for(range, *this) : (*this)(range); |
346 | } | ||
347 | 5962 | void operator()(const NodeRange& range) const | |
348 | { | ||
349 |
2/2✓ Branch 1 taken 69799 times.
✓ Branch 2 taken 2981 times.
|
145560 | for (typename NodeRange::Iterator it = range.begin(); it; ++it) { |
350 | 139598 | OpT::template eval(mNodeOp, it); | |
351 | } | ||
352 | 5962 | } | |
353 | const NodeOp& mNodeOp; | ||
354 | };// NodeList::NodeTransformer | ||
355 | |||
356 | // Private struct of NodeList that performs parallel_reduce | ||
357 | template<typename NodeOp, typename OpT = OpWithoutIndex> | ||
358 | 29444 | struct NodeReducer | |
359 | { | ||
360 |
79/644✓ Branch 0 taken 14 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 14 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 14 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 104 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 104 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 104 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 123 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 134 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 9 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 9 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 9 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 5561 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 5590 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 5603 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 11 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 11 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 11 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 59 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 59 times.
✗ Branch 37 not taken.
✓ Branch 38 taken 59 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 9 times.
✗ Branch 41 not taken.
✓ Branch 42 taken 9 times.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✓ Branch 50 taken 147 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 148 times.
✗ Branch 53 not taken.
✓ Branch 54 taken 149 times.
✗ Branch 55 not taken.
✓ Branch 56 taken 9 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 9 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 9 times.
✗ Branch 61 not taken.
✓ Branch 62 taken 8 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 8 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 8 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 5 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 5 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 1 times.
✗ Branch 73 not taken.
✓ Branch 74 taken 1 times.
✗ Branch 75 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 4 times.
✗ Branch 79 not taken.
✓ Branch 80 taken 7 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 7 times.
✗ Branch 83 not taken.
✓ Branch 84 taken 10 times.
✗ Branch 85 not taken.
✓ Branch 86 taken 6 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 6 times.
✗ Branch 89 not taken.
✓ Branch 90 taken 64 times.
✗ Branch 91 not taken.
✓ Branch 92 taken 67 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 4 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 4 times.
✗ Branch 97 not taken.
✓ Branch 98 taken 4 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 5094 times.
✗ Branch 101 not taken.
✓ Branch 102 taken 5110 times.
✗ Branch 103 not taken.
✓ Branch 104 taken 5111 times.
✗ Branch 105 not taken.
✓ Branch 106 taken 63 times.
✗ Branch 107 not taken.
✓ Branch 108 taken 65 times.
✗ Branch 109 not taken.
✓ Branch 110 taken 72 times.
✗ Branch 111 not taken.
✓ Branch 112 taken 7 times.
✗ Branch 113 not taken.
✓ Branch 114 taken 9 times.
✗ Branch 115 not taken.
✓ Branch 116 taken 2 times.
✗ Branch 117 not taken.
✓ Branch 118 taken 2 times.
✗ Branch 119 not taken.
✓ Branch 120 taken 2 times.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✓ Branch 128 taken 1 times.
✗ Branch 129 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
✓ Branch 132 taken 1 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 2 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 2 times.
✗ Branch 137 not taken.
✓ Branch 138 taken 2 times.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✓ Branch 150 taken 15 times.
✗ Branch 151 not taken.
✓ Branch 152 taken 16 times.
✓ Branch 153 taken 1 times.
✓ Branch 154 taken 17 times.
✓ Branch 155 taken 1 times.
✓ Branch 156 taken 2 times.
✓ Branch 157 taken 1 times.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✓ Branch 162 taken 10 times.
✗ Branch 163 not taken.
✓ Branch 164 taken 10 times.
✗ Branch 165 not taken.
✓ Branch 166 taken 10 times.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 199 not taken.
✓ Branch 200 taken 6 times.
✗ Branch 201 not taken.
✓ Branch 202 taken 6 times.
✗ Branch 203 not taken.
✓ Branch 204 taken 6 times.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✓ Branch 294 taken 4 times.
✗ Branch 295 not taken.
✓ Branch 296 taken 4 times.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 319 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 502 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 526 not taken.
✗ Branch 527 not taken.
✗ Branch 528 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 630 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 642 not taken.
✗ Branch 643 not taken.
|
33966 | NodeReducer(NodeOp& nodeOp) : mNodeOp(&nodeOp) |
361 | { | ||
362 | } | ||
363 | 1746 | NodeReducer(const NodeReducer& other, tbb::split) | |
364 | 93 | : mNodeOpPtr(std::make_unique<NodeOp>(*(other.mNodeOp), tbb::split())) | |
365 | 6839 | , mNodeOp(mNodeOpPtr.get()) | |
366 | { | ||
367 | } | ||
368 | void run(const NodeRange& range, bool threaded = true) | ||
369 | { | ||
370 |
198/1983✓ Branch 0 taken 14 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 14 times.
✗ Branch 4 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 14 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 14 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 14 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 14 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 104 times.
✗ Branch 25 not taken.
✓ Branch 27 taken 104 times.
✗ Branch 28 not taken.
✓ Branch 30 taken 104 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 104 times.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✓ Branch 36 taken 104 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✓ Branch 39 taken 104 times.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✓ Branch 42 taken 123 times.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 123 times.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 48 taken 134 times.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✓ Branch 51 taken 134 times.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✓ Branch 54 taken 9 times.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✓ Branch 57 taken 9 times.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✓ Branch 60 taken 9 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✓ Branch 63 taken 9 times.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✓ Branch 66 taken 9 times.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 69 taken 9 times.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✓ Branch 72 taken 5561 times.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✓ Branch 75 taken 5561 times.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✓ Branch 78 taken 5590 times.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✓ Branch 81 taken 5590 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 84 taken 5603 times.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✓ Branch 87 taken 5603 times.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✓ Branch 90 taken 11 times.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✓ Branch 93 taken 11 times.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✓ Branch 98 taken 11 times.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✓ Branch 101 taken 11 times.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✓ Branch 106 taken 11 times.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✓ Branch 109 taken 11 times.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✓ Branch 114 taken 59 times.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✓ Branch 117 taken 59 times.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✓ Branch 120 taken 28 times.
✗ Branch 121 not taken.
✓ Branch 122 taken 31 times.
✓ Branch 123 taken 28 times.
✗ Branch 124 not taken.
✓ Branch 125 taken 31 times.
✓ Branch 126 taken 28 times.
✗ Branch 127 not taken.
✓ Branch 128 taken 31 times.
✓ Branch 129 taken 28 times.
✗ Branch 130 not taken.
✓ Branch 131 taken 31 times.
✓ Branch 132 taken 6 times.
✗ Branch 133 not taken.
✓ Branch 134 taken 3 times.
✓ Branch 135 taken 6 times.
✗ Branch 136 not taken.
✓ Branch 137 taken 3 times.
✓ Branch 138 taken 6 times.
✗ Branch 139 not taken.
✓ Branch 140 taken 3 times.
✓ Branch 141 taken 6 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 3 times.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✓ Branch 162 taken 80 times.
✗ Branch 163 not taken.
✓ Branch 164 taken 67 times.
✓ Branch 165 taken 80 times.
✗ Branch 166 not taken.
✓ Branch 167 taken 67 times.
✓ Branch 168 taken 80 times.
✗ Branch 169 not taken.
✓ Branch 170 taken 67 times.
✓ Branch 171 taken 80 times.
✗ Branch 172 not taken.
✓ Branch 173 taken 67 times.
✓ Branch 174 taken 81 times.
✗ Branch 175 not taken.
✓ Branch 176 taken 67 times.
✓ Branch 177 taken 81 times.
✗ Branch 178 not taken.
✓ Branch 179 taken 67 times.
✓ Branch 180 taken 10 times.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✓ Branch 183 taken 10 times.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✓ Branch 186 taken 1 times.
✗ Branch 187 not taken.
✓ Branch 188 taken 8 times.
✓ Branch 189 taken 1 times.
✗ Branch 190 not taken.
✓ Branch 191 taken 8 times.
✓ Branch 192 taken 1 times.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✓ Branch 195 taken 1 times.
✓ Branch 196 taken 8 times.
✗ Branch 197 not taken.
✓ Branch 198 taken 1 times.
✓ Branch 199 taken 8 times.
✗ Branch 200 not taken.
✓ Branch 201 taken 1 times.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✓ Branch 204 taken 8 times.
✗ Branch 205 not taken.
✗ Branch 206 not taken.
✓ Branch 207 taken 8 times.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✓ Branch 210 taken 7 times.
✗ Branch 211 not taken.
✓ Branch 212 taken 1 times.
✓ Branch 213 taken 7 times.
✗ Branch 214 not taken.
✓ Branch 215 taken 1 times.
✓ Branch 216 taken 7 times.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✓ Branch 219 taken 7 times.
✓ Branch 220 taken 1 times.
✗ Branch 221 not taken.
✓ Branch 222 taken 5 times.
✓ Branch 223 taken 1 times.
✗ Branch 224 not taken.
✓ Branch 225 taken 5 times.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✓ Branch 228 taken 5 times.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✓ Branch 231 taken 5 times.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✓ Branch 234 taken 1 times.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✓ Branch 237 taken 1 times.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✓ Branch 246 taken 1 times.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✓ Branch 249 taken 1 times.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✓ Branch 252 taken 4 times.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✓ Branch 255 taken 4 times.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✓ Branch 258 taken 1 times.
✗ Branch 259 not taken.
✓ Branch 260 taken 3 times.
✓ Branch 261 taken 1 times.
✗ Branch 262 not taken.
✓ Branch 263 taken 3 times.
✓ Branch 264 taken 4 times.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✓ Branch 267 taken 4 times.
✓ Branch 268 taken 3 times.
✗ Branch 269 not taken.
✓ Branch 270 taken 4 times.
✓ Branch 271 taken 3 times.
✗ Branch 272 not taken.
✓ Branch 273 taken 4 times.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✓ Branch 276 taken 10 times.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✓ Branch 279 taken 10 times.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✓ Branch 282 taken 6 times.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✓ Branch 285 taken 6 times.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✓ Branch 288 taken 6 times.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✓ Branch 291 taken 6 times.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✓ Branch 294 taken 64 times.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✓ Branch 297 taken 64 times.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✓ Branch 300 taken 65 times.
✗ Branch 301 not taken.
✓ Branch 302 taken 2 times.
✓ Branch 303 taken 65 times.
✗ Branch 304 not taken.
✓ Branch 305 taken 2 times.
✓ Branch 306 taken 2 times.
✗ Branch 307 not taken.
✓ Branch 308 taken 2 times.
✓ Branch 309 taken 2 times.
✗ Branch 310 not taken.
✓ Branch 311 taken 2 times.
✓ Branch 312 taken 2 times.
✗ Branch 313 not taken.
✓ Branch 314 taken 2 times.
✓ Branch 315 taken 2 times.
✗ Branch 316 not taken.
✓ Branch 317 taken 2 times.
✓ Branch 318 taken 2 times.
✗ Branch 319 not taken.
✓ Branch 320 taken 2 times.
✓ Branch 321 taken 2 times.
✗ Branch 322 not taken.
✓ Branch 323 taken 2 times.
✓ Branch 324 taken 5094 times.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✓ Branch 327 taken 5094 times.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✓ Branch 330 taken 5115 times.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✓ Branch 333 taken 5115 times.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✓ Branch 336 taken 5111 times.
✗ Branch 337 not taken.
✓ Branch 338 taken 5 times.
✓ Branch 339 taken 5111 times.
✗ Branch 340 not taken.
✓ Branch 341 taken 5 times.
✓ Branch 342 taken 63 times.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✓ Branch 345 taken 63 times.
✓ Branch 346 taken 5 times.
✗ Branch 347 not taken.
✓ Branch 348 taken 65 times.
✓ Branch 349 taken 5 times.
✗ Branch 350 not taken.
✓ Branch 351 taken 65 times.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✓ Branch 354 taken 67 times.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✓ Branch 357 taken 67 times.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✓ Branch 360 taken 2 times.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✓ Branch 363 taken 2 times.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✓ Branch 366 taken 2 times.
✗ Branch 367 not taken.
✓ Branch 368 taken 2 times.
✓ Branch 369 taken 2 times.
✗ Branch 370 not taken.
✓ Branch 371 taken 2 times.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✓ Branch 374 taken 2 times.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✓ Branch 377 taken 2 times.
✗ Branch 378 not taken.
✗ Branch 379 not taken.
✓ Branch 380 taken 2 times.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✓ Branch 383 taken 2 times.
✗ Branch 384 not taken.
✗ Branch 385 not taken.
✓ Branch 386 taken 2 times.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✓ Branch 389 taken 2 times.
✗ Branch 390 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✓ Branch 414 taken 1 times.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✓ Branch 417 taken 1 times.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✓ Branch 420 taken 1 times.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✓ Branch 423 taken 1 times.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✓ Branch 426 taken 3 times.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✓ Branch 429 taken 3 times.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 433 not taken.
✓ Branch 434 taken 2 times.
✗ Branch 435 not taken.
✗ Branch 436 not taken.
✓ Branch 437 taken 2 times.
✗ Branch 438 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✓ Branch 442 taken 2 times.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✓ Branch 445 taken 2 times.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✓ Branch 492 taken 16 times.
✓ Branch 493 taken 1 times.
✗ Branch 494 not taken.
✓ Branch 495 taken 16 times.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✓ Branch 498 taken 16 times.
✗ Branch 499 not taken.
✓ Branch 500 taken 2 times.
✓ Branch 501 taken 16 times.
✗ Branch 502 not taken.
✓ Branch 503 taken 2 times.
✓ Branch 504 taken 15 times.
✗ Branch 505 not taken.
✓ Branch 506 taken 1 times.
✓ Branch 507 taken 15 times.
✓ Branch 508 taken 2 times.
✓ Branch 509 taken 1 times.
✗ Branch 510 not taken.
✓ Branch 511 taken 2 times.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✓ Branch 514 taken 1 times.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 526 not taken.
✗ Branch 527 not taken.
✓ Branch 528 taken 10 times.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✓ Branch 531 taken 10 times.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✓ Branch 534 taken 10 times.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✓ Branch 537 taken 10 times.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✓ Branch 540 taken 10 times.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✓ Branch 543 taken 10 times.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 630 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 642 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 645 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✓ Branch 648 taken 6 times.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✓ Branch 651 taken 6 times.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✓ Branch 654 taken 6 times.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✓ Branch 657 taken 6 times.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✓ Branch 660 taken 6 times.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✓ Branch 663 taken 6 times.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 666 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 669 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 672 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 675 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 678 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 681 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 684 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 690 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 702 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 708 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 711 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 714 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✗ Branch 717 not taken.
✗ Branch 718 not taken.
✗ Branch 719 not taken.
✗ Branch 720 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 723 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 726 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 729 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 732 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 738 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 744 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 747 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 750 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 753 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 762 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 768 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 771 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 774 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 777 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 780 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 783 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 786 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 789 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 792 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 795 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 798 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 801 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 804 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 807 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 810 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 813 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 816 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 819 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 822 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 825 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 828 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 831 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 834 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 837 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 840 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 843 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 846 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 849 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 852 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 855 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 858 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 861 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 864 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 867 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 870 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 873 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 876 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 879 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 882 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✗ Branch 885 not taken.
✗ Branch 886 not taken.
✗ Branch 887 not taken.
✗ Branch 888 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 891 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 894 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 897 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 900 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 903 not taken.
✗ Branch 904 not taken.
✗ Branch 905 not taken.
✗ Branch 906 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 909 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 912 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 915 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 918 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 921 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 924 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 927 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 930 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 933 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 936 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 939 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 942 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 945 not taken.
✓ Branch 946 taken 4 times.
✗ Branch 947 not taken.
✗ Branch 948 not taken.
✓ Branch 949 taken 4 times.
✗ Branch 950 not taken.
✗ Branch 951 not taken.
✓ Branch 952 taken 4 times.
✗ Branch 953 not taken.
✗ Branch 954 not taken.
✓ Branch 955 taken 4 times.
✗ Branch 956 not taken.
✗ Branch 957 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 960 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 963 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 966 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 969 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 972 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 975 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 978 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 981 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 984 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 987 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 990 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 993 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 996 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 999 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1002 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1005 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1008 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1011 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1014 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1017 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1020 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1023 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1026 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1029 not taken.
✗ Branch 1030 not taken.
✗ Branch 1031 not taken.
✗ Branch 1032 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1035 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1038 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1041 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1044 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1047 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1050 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✗ Branch 1053 not taken.
✗ Branch 1054 not taken.
✗ Branch 1055 not taken.
✗ Branch 1056 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1059 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1062 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1065 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1068 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1071 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1074 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1077 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1080 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1083 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1086 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1089 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1092 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1095 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1101 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1104 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1107 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1110 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1113 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1116 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1119 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1122 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✗ Branch 1125 not taken.
✗ Branch 1126 not taken.
✗ Branch 1127 not taken.
✗ Branch 1128 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1131 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1134 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1137 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1140 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1143 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1146 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1149 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1152 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1155 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1158 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1161 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1164 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1167 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1170 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1173 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1176 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1179 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1185 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1188 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1191 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1194 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✗ Branch 1197 not taken.
✗ Branch 1198 not taken.
✗ Branch 1199 not taken.
✗ Branch 1200 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1203 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1206 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1209 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1212 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1215 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1218 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1221 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1224 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1227 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1230 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1233 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1236 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1239 not taken.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✗ Branch 1242 not taken.
✗ Branch 1243 not taken.
✗ Branch 1244 not taken.
✗ Branch 1245 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1248 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1251 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1254 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1257 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1260 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1263 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1266 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1269 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1272 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1275 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1278 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1281 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1284 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1287 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1290 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1293 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1296 not taken.
✗ Branch 1297 not taken.
✗ Branch 1298 not taken.
✗ Branch 1299 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1302 not taken.
✗ Branch 1303 not taken.
✗ Branch 1304 not taken.
✗ Branch 1305 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1308 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1311 not taken.
✗ Branch 1312 not taken.
✗ Branch 1313 not taken.
✗ Branch 1314 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1317 not taken.
✗ Branch 1318 not taken.
✗ Branch 1319 not taken.
✗ Branch 1320 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1323 not taken.
✗ Branch 1324 not taken.
✗ Branch 1325 not taken.
✗ Branch 1326 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1329 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1332 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1335 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1338 not taken.
✗ Branch 1339 not taken.
✗ Branch 1340 not taken.
✗ Branch 1341 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1344 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1347 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1350 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1353 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1356 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1359 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1362 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1365 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1368 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1371 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1374 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1377 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1380 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1383 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1386 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1389 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
✗ Branch 1392 not taken.
✗ Branch 1393 not taken.
✗ Branch 1394 not taken.
✗ Branch 1395 not taken.
✗ Branch 1396 not taken.
✗ Branch 1397 not taken.
✗ Branch 1398 not taken.
✗ Branch 1399 not taken.
✗ Branch 1400 not taken.
✗ Branch 1401 not taken.
✗ Branch 1402 not taken.
✗ Branch 1403 not taken.
✗ Branch 1404 not taken.
✗ Branch 1405 not taken.
✗ Branch 1406 not taken.
✗ Branch 1407 not taken.
✗ Branch 1408 not taken.
✗ Branch 1409 not taken.
✗ Branch 1410 not taken.
✗ Branch 1411 not taken.
✗ Branch 1412 not taken.
✗ Branch 1413 not taken.
✗ Branch 1414 not taken.
✗ Branch 1415 not taken.
✗ Branch 1416 not taken.
✗ Branch 1417 not taken.
✗ Branch 1418 not taken.
✗ Branch 1419 not taken.
✗ Branch 1420 not taken.
✗ Branch 1421 not taken.
✗ Branch 1422 not taken.
✗ Branch 1423 not taken.
✗ Branch 1424 not taken.
✗ Branch 1425 not taken.
✗ Branch 1426 not taken.
✗ Branch 1427 not taken.
✗ Branch 1428 not taken.
✗ Branch 1429 not taken.
✗ Branch 1430 not taken.
✗ Branch 1431 not taken.
✗ Branch 1432 not taken.
✗ Branch 1433 not taken.
✗ Branch 1434 not taken.
✗ Branch 1435 not taken.
✗ Branch 1436 not taken.
✗ Branch 1437 not taken.
✗ Branch 1438 not taken.
✗ Branch 1439 not taken.
✗ Branch 1440 not taken.
✗ Branch 1441 not taken.
✗ Branch 1442 not taken.
✗ Branch 1443 not taken.
✗ Branch 1444 not taken.
✗ Branch 1445 not taken.
✗ Branch 1446 not taken.
✗ Branch 1447 not taken.
✗ Branch 1448 not taken.
✗ Branch 1449 not taken.
✗ Branch 1450 not taken.
✗ Branch 1451 not taken.
✗ Branch 1452 not taken.
✗ Branch 1453 not taken.
✗ Branch 1454 not taken.
✗ Branch 1455 not taken.
✗ Branch 1456 not taken.
✗ Branch 1457 not taken.
✗ Branch 1458 not taken.
✗ Branch 1459 not taken.
✗ Branch 1460 not taken.
✗ Branch 1461 not taken.
✗ Branch 1462 not taken.
✗ Branch 1463 not taken.
✗ Branch 1464 not taken.
✗ Branch 1465 not taken.
✗ Branch 1466 not taken.
✗ Branch 1467 not taken.
✗ Branch 1468 not taken.
✗ Branch 1469 not taken.
✗ Branch 1470 not taken.
✗ Branch 1471 not taken.
✗ Branch 1472 not taken.
✗ Branch 1473 not taken.
✗ Branch 1474 not taken.
✗ Branch 1475 not taken.
✗ Branch 1476 not taken.
✗ Branch 1477 not taken.
✗ Branch 1478 not taken.
✗ Branch 1479 not taken.
✗ Branch 1480 not taken.
✗ Branch 1481 not taken.
✗ Branch 1482 not taken.
✗ Branch 1483 not taken.
✗ Branch 1484 not taken.
✗ Branch 1485 not taken.
✗ Branch 1486 not taken.
✗ Branch 1487 not taken.
✗ Branch 1488 not taken.
✗ Branch 1489 not taken.
✗ Branch 1490 not taken.
✗ Branch 1491 not taken.
✗ Branch 1492 not taken.
✗ Branch 1493 not taken.
✗ Branch 1494 not taken.
✗ Branch 1495 not taken.
✗ Branch 1496 not taken.
✗ Branch 1497 not taken.
✗ Branch 1498 not taken.
✗ Branch 1499 not taken.
✗ Branch 1500 not taken.
✗ Branch 1501 not taken.
✗ Branch 1502 not taken.
✗ Branch 1503 not taken.
✗ Branch 1504 not taken.
✗ Branch 1505 not taken.
✗ Branch 1506 not taken.
✗ Branch 1507 not taken.
✗ Branch 1508 not taken.
✗ Branch 1509 not taken.
✗ Branch 1510 not taken.
✗ Branch 1511 not taken.
✗ Branch 1512 not taken.
✗ Branch 1513 not taken.
✗ Branch 1514 not taken.
✗ Branch 1515 not taken.
✗ Branch 1516 not taken.
✗ Branch 1517 not taken.
✗ Branch 1518 not taken.
✗ Branch 1519 not taken.
✗ Branch 1520 not taken.
✗ Branch 1521 not taken.
✗ Branch 1522 not taken.
✗ Branch 1523 not taken.
✗ Branch 1524 not taken.
✗ Branch 1525 not taken.
✗ Branch 1526 not taken.
✗ Branch 1527 not taken.
✗ Branch 1528 not taken.
✗ Branch 1529 not taken.
✗ Branch 1530 not taken.
✗ Branch 1531 not taken.
✗ Branch 1532 not taken.
✗ Branch 1533 not taken.
✗ Branch 1534 not taken.
✗ Branch 1535 not taken.
✗ Branch 1536 not taken.
✗ Branch 1537 not taken.
✗ Branch 1538 not taken.
✗ Branch 1539 not taken.
✗ Branch 1540 not taken.
✗ Branch 1541 not taken.
✗ Branch 1542 not taken.
✗ Branch 1543 not taken.
✗ Branch 1544 not taken.
✗ Branch 1545 not taken.
✗ Branch 1546 not taken.
✗ Branch 1547 not taken.
✗ Branch 1548 not taken.
✗ Branch 1549 not taken.
✗ Branch 1550 not taken.
✗ Branch 1551 not taken.
✗ Branch 1552 not taken.
✗ Branch 1553 not taken.
✗ Branch 1554 not taken.
✗ Branch 1555 not taken.
✗ Branch 1556 not taken.
✗ Branch 1557 not taken.
✗ Branch 1558 not taken.
✗ Branch 1559 not taken.
✗ Branch 1560 not taken.
✗ Branch 1561 not taken.
✗ Branch 1562 not taken.
✗ Branch 1563 not taken.
✗ Branch 1564 not taken.
✗ Branch 1565 not taken.
✗ Branch 1566 not taken.
✗ Branch 1567 not taken.
✗ Branch 1568 not taken.
✗ Branch 1569 not taken.
✗ Branch 1570 not taken.
✗ Branch 1571 not taken.
✗ Branch 1572 not taken.
✗ Branch 1573 not taken.
✗ Branch 1574 not taken.
✗ Branch 1575 not taken.
✗ Branch 1576 not taken.
✗ Branch 1577 not taken.
✗ Branch 1578 not taken.
✗ Branch 1579 not taken.
✗ Branch 1580 not taken.
✗ Branch 1581 not taken.
✗ Branch 1582 not taken.
✗ Branch 1583 not taken.
✗ Branch 1584 not taken.
✗ Branch 1585 not taken.
✗ Branch 1586 not taken.
✗ Branch 1587 not taken.
✗ Branch 1588 not taken.
✗ Branch 1589 not taken.
✗ Branch 1590 not taken.
✗ Branch 1591 not taken.
✗ Branch 1592 not taken.
✗ Branch 1593 not taken.
✗ Branch 1594 not taken.
✗ Branch 1595 not taken.
✗ Branch 1596 not taken.
✗ Branch 1597 not taken.
✗ Branch 1598 not taken.
✗ Branch 1599 not taken.
✗ Branch 1600 not taken.
✗ Branch 1601 not taken.
✗ Branch 1602 not taken.
✗ Branch 1603 not taken.
✗ Branch 1604 not taken.
✗ Branch 1605 not taken.
✗ Branch 1606 not taken.
✗ Branch 1607 not taken.
✗ Branch 1608 not taken.
✗ Branch 1609 not taken.
✗ Branch 1610 not taken.
✗ Branch 1611 not taken.
✗ Branch 1612 not taken.
✗ Branch 1613 not taken.
✗ Branch 1614 not taken.
✗ Branch 1615 not taken.
✗ Branch 1616 not taken.
✗ Branch 1617 not taken.
✗ Branch 1618 not taken.
✗ Branch 1619 not taken.
✗ Branch 1620 not taken.
✗ Branch 1621 not taken.
✗ Branch 1622 not taken.
✗ Branch 1623 not taken.
✗ Branch 1624 not taken.
✗ Branch 1625 not taken.
✗ Branch 1626 not taken.
✗ Branch 1627 not taken.
✗ Branch 1628 not taken.
✗ Branch 1629 not taken.
✗ Branch 1630 not taken.
✗ Branch 1631 not taken.
✗ Branch 1632 not taken.
✗ Branch 1633 not taken.
✗ Branch 1634 not taken.
✗ Branch 1635 not taken.
✗ Branch 1636 not taken.
✗ Branch 1637 not taken.
✗ Branch 1638 not taken.
✗ Branch 1639 not taken.
✗ Branch 1640 not taken.
✗ Branch 1641 not taken.
✗ Branch 1642 not taken.
✗ Branch 1643 not taken.
✗ Branch 1644 not taken.
✗ Branch 1645 not taken.
✗ Branch 1646 not taken.
✗ Branch 1647 not taken.
✗ Branch 1648 not taken.
✗ Branch 1649 not taken.
✗ Branch 1650 not taken.
✗ Branch 1651 not taken.
✗ Branch 1652 not taken.
✗ Branch 1653 not taken.
✗ Branch 1654 not taken.
✗ Branch 1655 not taken.
✗ Branch 1656 not taken.
✗ Branch 1657 not taken.
✗ Branch 1658 not taken.
✗ Branch 1659 not taken.
✗ Branch 1660 not taken.
✗ Branch 1661 not taken.
✗ Branch 1662 not taken.
✗ Branch 1663 not taken.
✗ Branch 1664 not taken.
✗ Branch 1665 not taken.
✗ Branch 1666 not taken.
✗ Branch 1667 not taken.
✗ Branch 1668 not taken.
✗ Branch 1669 not taken.
✗ Branch 1670 not taken.
✗ Branch 1671 not taken.
✗ Branch 1672 not taken.
✗ Branch 1673 not taken.
✗ Branch 1674 not taken.
✗ Branch 1675 not taken.
✗ Branch 1676 not taken.
✗ Branch 1677 not taken.
✗ Branch 1678 not taken.
✗ Branch 1679 not taken.
✗ Branch 1680 not taken.
✗ Branch 1681 not taken.
✗ Branch 1682 not taken.
✗ Branch 1683 not taken.
✗ Branch 1684 not taken.
✗ Branch 1685 not taken.
✗ Branch 1686 not taken.
✗ Branch 1687 not taken.
✗ Branch 1688 not taken.
✗ Branch 1689 not taken.
✗ Branch 1690 not taken.
✗ Branch 1691 not taken.
✗ Branch 1692 not taken.
✗ Branch 1693 not taken.
✗ Branch 1694 not taken.
✗ Branch 1695 not taken.
✗ Branch 1696 not taken.
✗ Branch 1697 not taken.
✗ Branch 1698 not taken.
✗ Branch 1699 not taken.
✗ Branch 1700 not taken.
✗ Branch 1701 not taken.
✗ Branch 1702 not taken.
✗ Branch 1703 not taken.
✗ Branch 1704 not taken.
✗ Branch 1705 not taken.
✗ Branch 1706 not taken.
✗ Branch 1707 not taken.
✗ Branch 1708 not taken.
✗ Branch 1709 not taken.
✗ Branch 1710 not taken.
✗ Branch 1711 not taken.
✗ Branch 1712 not taken.
✗ Branch 1713 not taken.
✗ Branch 1714 not taken.
✗ Branch 1715 not taken.
✗ Branch 1716 not taken.
✗ Branch 1717 not taken.
✗ Branch 1718 not taken.
✗ Branch 1719 not taken.
✗ Branch 1720 not taken.
✗ Branch 1721 not taken.
✗ Branch 1722 not taken.
✗ Branch 1723 not taken.
✗ Branch 1724 not taken.
✗ Branch 1725 not taken.
✗ Branch 1726 not taken.
✗ Branch 1727 not taken.
✗ Branch 1728 not taken.
✗ Branch 1729 not taken.
✗ Branch 1730 not taken.
✗ Branch 1731 not taken.
✗ Branch 1732 not taken.
✗ Branch 1733 not taken.
✗ Branch 1734 not taken.
✗ Branch 1735 not taken.
✗ Branch 1736 not taken.
✗ Branch 1737 not taken.
✗ Branch 1738 not taken.
✗ Branch 1739 not taken.
✗ Branch 1740 not taken.
✗ Branch 1741 not taken.
✗ Branch 1742 not taken.
✗ Branch 1743 not taken.
✗ Branch 1744 not taken.
✗ Branch 1745 not taken.
✗ Branch 1746 not taken.
✗ Branch 1747 not taken.
✗ Branch 1748 not taken.
✗ Branch 1749 not taken.
✗ Branch 1750 not taken.
✗ Branch 1751 not taken.
✗ Branch 1752 not taken.
✗ Branch 1753 not taken.
✗ Branch 1754 not taken.
✗ Branch 1755 not taken.
✗ Branch 1756 not taken.
✗ Branch 1757 not taken.
✗ Branch 1758 not taken.
✗ Branch 1759 not taken.
✗ Branch 1760 not taken.
✗ Branch 1761 not taken.
✗ Branch 1762 not taken.
✗ Branch 1763 not taken.
✗ Branch 1764 not taken.
✗ Branch 1765 not taken.
✗ Branch 1766 not taken.
✗ Branch 1767 not taken.
✗ Branch 1768 not taken.
✗ Branch 1769 not taken.
✗ Branch 1770 not taken.
✗ Branch 1771 not taken.
✗ Branch 1772 not taken.
✗ Branch 1773 not taken.
✗ Branch 1774 not taken.
✗ Branch 1775 not taken.
✗ Branch 1776 not taken.
✗ Branch 1777 not taken.
✗ Branch 1778 not taken.
✗ Branch 1779 not taken.
✗ Branch 1780 not taken.
✗ Branch 1781 not taken.
✗ Branch 1782 not taken.
✗ Branch 1783 not taken.
✗ Branch 1784 not taken.
✗ Branch 1785 not taken.
✗ Branch 1786 not taken.
✗ Branch 1787 not taken.
✗ Branch 1788 not taken.
✗ Branch 1789 not taken.
✗ Branch 1790 not taken.
✗ Branch 1791 not taken.
✗ Branch 1792 not taken.
✗ Branch 1793 not taken.
✗ Branch 1794 not taken.
✗ Branch 1795 not taken.
✗ Branch 1796 not taken.
✗ Branch 1797 not taken.
✗ Branch 1798 not taken.
✗ Branch 1799 not taken.
✗ Branch 1800 not taken.
✗ Branch 1802 not taken.
✗ Branch 1803 not taken.
✗ Branch 1805 not taken.
✗ Branch 1806 not taken.
✗ Branch 1808 not taken.
✗ Branch 1809 not taken.
✗ Branch 1810 not taken.
✗ Branch 1811 not taken.
✗ Branch 1813 not taken.
✗ Branch 1814 not taken.
✗ Branch 1816 not taken.
✗ Branch 1817 not taken.
✗ Branch 1818 not taken.
✗ Branch 1819 not taken.
✗ Branch 1821 not taken.
✗ Branch 1822 not taken.
✗ Branch 1824 not taken.
✗ Branch 1825 not taken.
✗ Branch 1826 not taken.
✗ Branch 1827 not taken.
✗ Branch 1829 not taken.
✗ Branch 1830 not taken.
✗ Branch 1832 not taken.
✗ Branch 1833 not taken.
✗ Branch 1835 not taken.
✗ Branch 1836 not taken.
✗ Branch 1838 not taken.
✗ Branch 1839 not taken.
✗ Branch 1841 not taken.
✗ Branch 1842 not taken.
✗ Branch 1844 not taken.
✗ Branch 1845 not taken.
✗ Branch 1847 not taken.
✗ Branch 1848 not taken.
✗ Branch 1850 not taken.
✗ Branch 1851 not taken.
✗ Branch 1853 not taken.
✗ Branch 1854 not taken.
✗ Branch 1856 not taken.
✗ Branch 1857 not taken.
✗ Branch 1859 not taken.
✗ Branch 1860 not taken.
✗ Branch 1862 not taken.
✗ Branch 1863 not taken.
✗ Branch 1865 not taken.
✗ Branch 1866 not taken.
✗ Branch 1868 not taken.
✗ Branch 1869 not taken.
✗ Branch 1871 not taken.
✗ Branch 1872 not taken.
✗ Branch 1874 not taken.
✗ Branch 1875 not taken.
✗ Branch 1877 not taken.
✗ Branch 1878 not taken.
✗ Branch 1880 not taken.
✗ Branch 1881 not taken.
✗ Branch 1883 not taken.
✗ Branch 1884 not taken.
✗ Branch 1886 not taken.
✗ Branch 1887 not taken.
✗ Branch 1889 not taken.
✗ Branch 1890 not taken.
✗ Branch 1892 not taken.
✗ Branch 1893 not taken.
✗ Branch 1895 not taken.
✗ Branch 1896 not taken.
✗ Branch 1898 not taken.
✗ Branch 1899 not taken.
✗ Branch 1900 not taken.
✗ Branch 1901 not taken.
✗ Branch 1903 not taken.
✗ Branch 1904 not taken.
✗ Branch 1906 not taken.
✗ Branch 1907 not taken.
✗ Branch 1908 not taken.
✗ Branch 1909 not taken.
✗ Branch 1911 not taken.
✗ Branch 1912 not taken.
✗ Branch 1914 not taken.
✗ Branch 1915 not taken.
✗ Branch 1916 not taken.
✗ Branch 1917 not taken.
✗ Branch 1919 not taken.
✗ Branch 1920 not taken.
✗ Branch 1922 not taken.
✗ Branch 1923 not taken.
✗ Branch 1925 not taken.
✗ Branch 1926 not taken.
✗ Branch 1928 not taken.
✗ Branch 1929 not taken.
✗ Branch 1931 not taken.
✗ Branch 1932 not taken.
✗ Branch 1934 not taken.
✗ Branch 1935 not taken.
✗ Branch 1937 not taken.
✗ Branch 1938 not taken.
✗ Branch 1940 not taken.
✗ Branch 1941 not taken.
✗ Branch 1943 not taken.
✗ Branch 1944 not taken.
✗ Branch 1946 not taken.
✗ Branch 1947 not taken.
✗ Branch 1949 not taken.
✗ Branch 1950 not taken.
✗ Branch 1952 not taken.
✗ Branch 1953 not taken.
✗ Branch 1955 not taken.
✗ Branch 1956 not taken.
✗ Branch 1958 not taken.
✗ Branch 1959 not taken.
✗ Branch 1961 not taken.
✗ Branch 1962 not taken.
✗ Branch 1964 not taken.
✗ Branch 1965 not taken.
✗ Branch 1967 not taken.
✗ Branch 1968 not taken.
✗ Branch 1970 not taken.
✗ Branch 1971 not taken.
✗ Branch 1973 not taken.
✗ Branch 1974 not taken.
✗ Branch 1976 not taken.
✗ Branch 1977 not taken.
✗ Branch 1979 not taken.
✗ Branch 1980 not taken.
✗ Branch 1982 not taken.
✗ Branch 1983 not taken.
✗ Branch 1985 not taken.
✗ Branch 1986 not taken.
✗ Branch 1988 not taken.
✗ Branch 1989 not taken.
✗ Branch 1990 not taken.
✗ Branch 1991 not taken.
✗ Branch 1993 not taken.
✗ Branch 1994 not taken.
✗ Branch 1996 not taken.
✗ Branch 1997 not taken.
✗ Branch 1998 not taken.
✗ Branch 1999 not taken.
✗ Branch 2001 not taken.
✗ Branch 2002 not taken.
✗ Branch 2004 not taken.
✗ Branch 2005 not taken.
✗ Branch 2006 not taken.
✗ Branch 2007 not taken.
✗ Branch 2009 not taken.
✗ Branch 2010 not taken.
✗ Branch 2012 not taken.
✗ Branch 2013 not taken.
✗ Branch 2015 not taken.
✗ Branch 2016 not taken.
✗ Branch 2018 not taken.
✗ Branch 2019 not taken.
✗ Branch 2021 not taken.
✗ Branch 2022 not taken.
✗ Branch 2024 not taken.
✗ Branch 2025 not taken.
✗ Branch 2027 not taken.
✗ Branch 2028 not taken.
✗ Branch 2030 not taken.
✗ Branch 2031 not taken.
✗ Branch 2033 not taken.
✗ Branch 2034 not taken.
✗ Branch 2036 not taken.
✗ Branch 2037 not taken.
✗ Branch 2039 not taken.
✗ Branch 2040 not taken.
✗ Branch 2042 not taken.
✗ Branch 2043 not taken.
✗ Branch 2045 not taken.
✗ Branch 2046 not taken.
✗ Branch 2048 not taken.
✗ Branch 2049 not taken.
✗ Branch 2051 not taken.
✗ Branch 2052 not taken.
✗ Branch 2054 not taken.
✗ Branch 2055 not taken.
✗ Branch 2057 not taken.
✗ Branch 2058 not taken.
✗ Branch 2060 not taken.
✗ Branch 2061 not taken.
✗ Branch 2063 not taken.
✗ Branch 2064 not taken.
✗ Branch 2066 not taken.
✗ Branch 2067 not taken.
✗ Branch 2069 not taken.
✗ Branch 2070 not taken.
|
33966 | threaded ? tbb::parallel_reduce(range, *this) : (*this)(range); |
371 | } | ||
372 | 280272 | void operator()(const NodeRange& range) | |
373 | { | ||
374 |
2/2✓ Branch 1 taken 22582131 times.
✓ Branch 2 taken 140136 times.
|
45444534 | for (typename NodeRange::Iterator it = range.begin(); it; ++it) { |
375 | 45164262 | OpT::template eval(*mNodeOp, it); | |
376 | } | ||
377 | } | ||
378 | 76 | void join(const NodeReducer& other) | |
379 | { | ||
380 |
4/4✓ Branch 0 taken 35 times.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 35 times.
✓ Branch 3 taken 1 times.
|
1956 | mNodeOp->join(*(other.mNodeOp)); |
381 | 6877 | } | |
382 | std::unique_ptr<NodeOp> mNodeOpPtr; | ||
383 | NodeOp *mNodeOp = nullptr; | ||
384 | };// NodeList::NodeReducer | ||
385 | |||
386 | |||
387 | protected: | ||
388 | size_t mNodeCount = 0; | ||
389 | std::unique_ptr<NodeT*[]> mNodePtrs; | ||
390 | NodeT** mNodes = nullptr; | ||
391 | };// NodeList | ||
392 | |||
393 | |||
394 | ///////////////////////////////////////////// | ||
395 | |||
396 | |||
397 | /// @brief This class is a link in a chain that each caches tree nodes | ||
398 | /// of a specific type in a linear array. | ||
399 | /// | ||
400 | /// @note It is for internal use and should rarely be used directly. | ||
401 | template<typename NodeT, Index LEVEL> | ||
402 | class NodeManagerLink | ||
403 | { | ||
404 | public: | ||
405 | using NonConstChildNodeType = typename NodeT::ChildNodeType; | ||
406 | using ChildNodeType = typename CopyConstness<NodeT, NonConstChildNodeType>::Type; | ||
407 | |||
408 | NodeManagerLink() = default; | ||
409 | |||
410 | void clear() { mList.clear(); mNext.clear(); } | ||
411 | |||
412 | template <typename RootT> | ||
413 | void initRootChildren(RootT& root, bool serial = false) | ||
414 | { | ||
415 | mList.initRootChildren(root); | ||
416 | mNext.initNodeChildren(mList, serial); | ||
417 | } | ||
418 | |||
419 | template<typename ParentsT> | ||
420 | void initNodeChildren(ParentsT& parents, bool serial = false) | ||
421 | { | ||
422 | mList.initNodeChildren(parents, NodeFilter(), serial); | ||
423 | mNext.initNodeChildren(mList, serial); | ||
424 | } | ||
425 | |||
426 | Index64 nodeCount() const { return mList.nodeCount() + mNext.nodeCount(); } | ||
427 | |||
428 | Index64 nodeCount(Index i) const | ||
429 | { | ||
430 | return i==NodeT::LEVEL ? mList.nodeCount() : mNext.nodeCount(i); | ||
431 | } | ||
432 | |||
433 | template<typename NodeOp> | ||
434 | void foreachBottomUp(const NodeOp& op, bool threaded, size_t grainSize) | ||
435 | { | ||
436 | mNext.foreachBottomUp(op, threaded, grainSize); | ||
437 | mList.foreach(op, threaded, grainSize); | ||
438 | } | ||
439 | |||
440 | template<typename NodeOp> | ||
441 | void foreachTopDown(const NodeOp& op, bool threaded, size_t grainSize) | ||
442 | { | ||
443 | mList.foreach(op, threaded, grainSize); | ||
444 | mNext.foreachTopDown(op, threaded, grainSize); | ||
445 | } | ||
446 | |||
447 | template<typename NodeOp> | ||
448 | void reduceBottomUp(NodeOp& op, bool threaded, size_t grainSize) | ||
449 | { | ||
450 | mNext.reduceBottomUp(op, threaded, grainSize); | ||
451 | mList.reduce(op, threaded, grainSize); | ||
452 | } | ||
453 | |||
454 | template<typename NodeOp> | ||
455 | void reduceTopDown(NodeOp& op, bool threaded, size_t grainSize) | ||
456 | { | ||
457 | mList.reduce(op, threaded, grainSize); | ||
458 | mNext.reduceTopDown(op, threaded, grainSize); | ||
459 | } | ||
460 | |||
461 | protected: | ||
462 | NodeList<NodeT> mList; | ||
463 | NodeManagerLink<ChildNodeType, LEVEL-1> mNext; | ||
464 | };// NodeManagerLink class | ||
465 | |||
466 | |||
467 | //////////////////////////////////////// | ||
468 | |||
469 | |||
470 | /// @private | ||
471 | /// @brief Specialization that terminates the chain of cached tree nodes | ||
472 | /// @note It is for internal use and should rarely be used directly. | ||
473 | template<typename NodeT> | ||
474 | class NodeManagerLink<NodeT, 0> | ||
475 | { | ||
476 | public: | ||
477 | NodeManagerLink() = default; | ||
478 | |||
479 | /// @brief Clear all the cached tree nodes | ||
480 | void clear() { mList.clear(); } | ||
481 | |||
482 | template <typename RootT> | ||
483 | void initRootChildren(RootT& root, bool /*serial*/ = false) { mList.initRootChildren(root); } | ||
484 | |||
485 | template<typename ParentsT> | ||
486 | void initNodeChildren(ParentsT& parents, bool serial = false) { mList.initNodeChildren(parents, NodeFilter(), serial); } | ||
487 | |||
488 | Index64 nodeCount() const { return mList.nodeCount(); } | ||
489 | |||
490 | Index64 nodeCount(Index) const { return mList.nodeCount(); } | ||
491 | |||
492 | template<typename NodeOp> | ||
493 | void foreachBottomUp(const NodeOp& op, bool threaded, size_t grainSize) | ||
494 | { | ||
495 | mList.foreach(op, threaded, grainSize); | ||
496 | } | ||
497 | |||
498 | template<typename NodeOp> | ||
499 | void foreachTopDown(const NodeOp& op, bool threaded, size_t grainSize) | ||
500 | { | ||
501 | mList.foreach(op, threaded, grainSize); | ||
502 | } | ||
503 | |||
504 | template<typename NodeOp> | ||
505 | void reduceBottomUp(NodeOp& op, bool threaded, size_t grainSize) | ||
506 | { | ||
507 | mList.reduce(op, threaded, grainSize); | ||
508 | } | ||
509 | |||
510 | template<typename NodeOp> | ||
511 | void reduceTopDown(NodeOp& op, bool threaded, size_t grainSize) | ||
512 | { | ||
513 | mList.reduce(op, threaded, grainSize); | ||
514 | } | ||
515 | |||
516 | protected: | ||
517 | NodeList<NodeT> mList; | ||
518 | };// NodeManagerLink class | ||
519 | |||
520 | |||
521 | //////////////////////////////////////// | ||
522 | |||
523 | |||
524 | /// @brief To facilitate threading over the nodes of a tree, cache | ||
525 | /// node pointers in linear arrays, one for each level of the tree. | ||
526 | /// | ||
527 | /// @details This implementation works with trees of any depth, but | ||
528 | /// optimized specializations are provided for the most typical tree depths. | ||
529 | template<typename TreeOrLeafManagerT, Index _LEVELS> | ||
530 | class NodeManager | ||
531 | { | ||
532 | public: | ||
533 | static const Index LEVELS = _LEVELS; | ||
534 | static_assert(LEVELS > 0, | ||
535 | "expected instantiation of template specialization"); // see specialization below | ||
536 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
537 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
538 | using NonConstChildNodeType = typename RootNodeType::ChildNodeType; | ||
539 | using ChildNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstChildNodeType>::Type; | ||
540 | static_assert(RootNodeType::LEVEL >= LEVELS, "number of levels exceeds root node height"); | ||
541 | |||
542 | NodeManager(TreeOrLeafManagerT& tree, bool serial = false) | ||
543 | : mRoot(tree.root()) | ||
544 | { | ||
545 | this->rebuild(serial); | ||
546 | } | ||
547 | |||
548 | NodeManager(const NodeManager&) = delete; | ||
549 | |||
550 | /// @brief Clear all the cached tree nodes | ||
551 | void clear() { mChain.clear(); } | ||
552 | |||
553 | /// @brief Clear and recache all the tree nodes from the | ||
554 | /// tree. This is required if tree nodes have been added or removed. | ||
555 | void rebuild(bool serial = false) { mChain.initRootChildren(mRoot, serial); } | ||
556 | |||
557 | /// @brief Return a reference to the root node. | ||
558 | const RootNodeType& root() const { return mRoot; } | ||
559 | |||
560 | /// @brief Return the total number of cached nodes (excluding the root node) | ||
561 | Index64 nodeCount() const { return mChain.nodeCount(); } | ||
562 | |||
563 | /// @brief Return the number of cached nodes at level @a i, where | ||
564 | /// 0 corresponds to the lowest level. | ||
565 | Index64 nodeCount(Index i) const { return mChain.nodeCount(i); } | ||
566 | |||
567 | //@{ | ||
568 | /// @brief Threaded method that applies a user-supplied functor | ||
569 | /// to all the nodes in the tree. | ||
570 | /// | ||
571 | /// @param op user-supplied functor, see examples for interface details. | ||
572 | /// @param threaded optional toggle to disable threading, on by default. | ||
573 | /// @param grainSize optional parameter to specify the grainsize | ||
574 | /// for threading, one by default. | ||
575 | /// | ||
576 | /// @warning The functor object is deep-copied to create TBB tasks. | ||
577 | /// | ||
578 | /// @par Example: | ||
579 | /// @code | ||
580 | /// // Functor to offset all the inactive values of a tree. Note | ||
581 | /// // this implementation also illustrates how different | ||
582 | /// // computation can be applied to the different node types. | ||
583 | /// template<typename TreeType> | ||
584 | /// struct OffsetOp | ||
585 | /// { | ||
586 | /// using ValueT = typename TreeT::ValueType; | ||
587 | /// using RootT = typename TreeT::RootNodeType; | ||
588 | /// using LeafT = typename TreeT::LeafNodeType; | ||
589 | /// OffsetOp(const ValueT& v) : mOffset(v) {} | ||
590 | /// | ||
591 | /// // Processes the root node. Required by the NodeManager | ||
592 | /// void operator()(RootT& root) const | ||
593 | /// { | ||
594 | /// for (typename RootT::ValueOffIter i = root.beginValueOff(); i; ++i) *i += mOffset; | ||
595 | /// } | ||
596 | /// // Processes the leaf nodes. Required by the NodeManager | ||
597 | /// void operator()(LeafT& leaf) const | ||
598 | /// { | ||
599 | /// for (typename LeafT::ValueOffIter i = leaf.beginValueOff(); i; ++i) *i += mOffset; | ||
600 | /// } | ||
601 | /// // Processes the internal nodes. Required by the NodeManager | ||
602 | /// template<typename NodeT> | ||
603 | /// void operator()(NodeT& node) const | ||
604 | /// { | ||
605 | /// for (typename NodeT::ValueOffIter i = node.beginValueOff(); i; ++i) *i += mOffset; | ||
606 | /// } | ||
607 | /// private: | ||
608 | /// const ValueT mOffset; | ||
609 | /// }; | ||
610 | /// | ||
611 | /// // usage: | ||
612 | /// OffsetOp<FloatTree> op(3.0f); | ||
613 | /// tree::NodeManager<FloatTree> nodes(tree); | ||
614 | /// nodes.foreachBottomUp(op); | ||
615 | /// | ||
616 | /// // or if a LeafManager already exists | ||
617 | /// using T = tree::LeafManager<FloatTree>; | ||
618 | /// OffsetOp<T> op(3.0f); | ||
619 | /// tree::NodeManager<T> nodes(leafManager); | ||
620 | /// nodes.foreachBottomUp(op); | ||
621 | /// | ||
622 | /// @endcode | ||
623 | template<typename NodeOp> | ||
624 | void foreachBottomUp(const NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
625 | { | ||
626 | mChain.foreachBottomUp(op, threaded, grainSize); | ||
627 | op(mRoot); | ||
628 | } | ||
629 | |||
630 | template<typename NodeOp> | ||
631 | void foreachTopDown(const NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
632 | { | ||
633 | op(mRoot); | ||
634 | mChain.foreachTopDown(op, threaded, grainSize); | ||
635 | } | ||
636 | |||
637 | //@} | ||
638 | |||
639 | //@{ | ||
640 | /// @brief Threaded method that processes nodes with a user supplied functor | ||
641 | /// | ||
642 | /// @param op user-supplied functor, see examples for interface details. | ||
643 | /// @param threaded optional toggle to disable threading, on by default. | ||
644 | /// @param grainSize optional parameter to specify the grainsize | ||
645 | /// for threading, one by default. | ||
646 | /// | ||
647 | /// @warning The functor object is deep-copied to create TBB tasks. | ||
648 | /// | ||
649 | /// @par Example: | ||
650 | /// @code | ||
651 | /// // Functor to count nodes in a tree | ||
652 | /// template<typename TreeType> | ||
653 | /// struct NodeCountOp | ||
654 | /// { | ||
655 | /// NodeCountOp() : nodeCount(TreeType::DEPTH, 0), totalCount(0) | ||
656 | /// { | ||
657 | /// } | ||
658 | /// NodeCountOp(const NodeCountOp& other, tbb::split) : | ||
659 | /// nodeCount(TreeType::DEPTH, 0), totalCount(0) | ||
660 | /// { | ||
661 | /// } | ||
662 | /// void join(const NodeCountOp& other) | ||
663 | /// { | ||
664 | /// for (size_t i = 0; i < nodeCount.size(); ++i) { | ||
665 | /// nodeCount[i] += other.nodeCount[i]; | ||
666 | /// } | ||
667 | /// totalCount += other.totalCount; | ||
668 | /// } | ||
669 | /// // do nothing for the root node | ||
670 | /// void operator()(const typename TreeT::RootNodeType& node) | ||
671 | /// { | ||
672 | /// } | ||
673 | /// // count the internal and leaf nodes | ||
674 | /// template<typename NodeT> | ||
675 | /// void operator()(const NodeT& node) | ||
676 | /// { | ||
677 | /// ++(nodeCount[NodeT::LEVEL]); | ||
678 | /// ++totalCount; | ||
679 | /// } | ||
680 | /// std::vector<openvdb::Index64> nodeCount; | ||
681 | /// openvdb::Index64 totalCount; | ||
682 | /// }; | ||
683 | /// | ||
684 | /// // usage: | ||
685 | /// NodeCountOp<FloatTree> op; | ||
686 | /// tree::NodeManager<FloatTree> nodes(tree); | ||
687 | /// nodes.reduceBottomUp(op); | ||
688 | /// | ||
689 | /// // or if a LeafManager already exists | ||
690 | /// NodeCountOp<FloatTree> op; | ||
691 | /// using T = tree::LeafManager<FloatTree>; | ||
692 | /// T leafManager(tree); | ||
693 | /// tree::NodeManager<T> nodes(leafManager); | ||
694 | /// nodes.reduceBottomUp(op); | ||
695 | /// | ||
696 | /// @endcode | ||
697 | template<typename NodeOp> | ||
698 | void reduceBottomUp(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
699 | { | ||
700 | mChain.reduceBottomUp(op, threaded, grainSize); | ||
701 | op(mRoot); | ||
702 | } | ||
703 | |||
704 | template<typename NodeOp> | ||
705 | void reduceTopDown(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
706 | { | ||
707 | op(mRoot); | ||
708 | mChain.reduceTopDown(op, threaded, grainSize); | ||
709 | } | ||
710 | //@} | ||
711 | |||
712 | protected: | ||
713 | RootNodeType& mRoot; | ||
714 | NodeManagerLink<ChildNodeType, LEVELS-1> mChain; | ||
715 | };// NodeManager class | ||
716 | |||
717 | |||
718 | //////////////////////////////////////////// | ||
719 | |||
720 | |||
721 | // Wraps a user-supplied DynamicNodeManager operator and stores the return | ||
722 | // value of the operator() method to the index of the node in a bool array | ||
723 | template <typename OpT> | ||
724 |
19/80✓ Branch 0 taken 7 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 7 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 10 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 12 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 2 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 5 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 2 times.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 48 taken 2 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 2 times.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✓ Branch 56 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 5 times.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✓ Branch 78 taken 2 times.
✗ Branch 79 not taken.
|
118 | struct ForeachFilterOp |
725 | { | ||
726 | 185 | explicit ForeachFilterOp(const OpT& op, openvdb::Index64 size) | |
727 | : mOp(op) | ||
728 | , mValidPtr(std::make_unique<bool[]>(size)) | ||
729 |
19/80✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 14 taken 7 times.
✗ Branch 15 not taken.
✓ Branch 18 taken 13 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✓ Branch 26 taken 18 times.
✗ Branch 27 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 34 taken 2 times.
✗ Branch 35 not taken.
✓ Branch 38 taken 6 times.
✗ Branch 39 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 54 taken 1 times.
✗ Branch 55 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 78 taken 2 times.
✗ Branch 79 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✓ Branch 98 taken 2 times.
✗ Branch 99 not taken.
✓ Branch 102 taken 2 times.
✗ Branch 103 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✓ Branch 114 taken 2 times.
✗ Branch 115 not taken.
✓ Branch 118 taken 6 times.
✗ Branch 119 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
✓ Branch 134 taken 1 times.
✗ Branch 135 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✓ Branch 158 taken 2 times.
✗ Branch 159 not taken.
|
185 | , mValid(mValidPtr.get()) { } |
730 | |||
731 | ForeachFilterOp(const ForeachFilterOp& other) | ||
732 | : mOp(other.mOp) | ||
733 | , mValid(other.mValid) { } | ||
734 | |||
735 | template<typename NodeT> | ||
736 | void operator()(NodeT& node, size_t idx) const | ||
737 | { | ||
738 | 526 | mValid[idx] = mOp(node, idx); | |
739 | } | ||
740 | |||
741 |
91/640✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 8 times.
✓ Branch 5 taken 14 times.
✓ Branch 6 taken 9 times.
✓ Branch 7 taken 14 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 14 times.
✓ Branch 13 taken 9 times.
✓ Branch 14 taken 14 times.
✓ Branch 15 taken 9 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 1 times.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✓ Branch 53 taken 7 times.
✓ Branch 54 taken 8 times.
✓ Branch 55 taken 7 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✓ Branch 61 taken 7 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 17 times.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 69 taken 60 times.
✓ Branch 70 taken 3 times.
✓ Branch 71 taken 60 times.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 76 taken 7 times.
✓ Branch 77 taken 34 times.
✓ Branch 78 taken 8 times.
✓ Branch 79 taken 34 times.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✓ Branch 85 taken 3 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 3 times.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✓ Branch 93 taken 3 times.
✓ Branch 94 taken 7 times.
✓ Branch 95 taken 3 times.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✓ Branch 100 taken 22 times.
✓ Branch 101 taken 27 times.
✓ Branch 102 taken 144 times.
✓ Branch 103 taken 27 times.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✓ Branch 108 taken 30 times.
✓ Branch 109 taken 42 times.
✓ Branch 110 taken 38 times.
✓ Branch 111 taken 42 times.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✓ Branch 133 taken 2 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 2 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✓ Branch 141 taken 2 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 2 times.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✓ Branch 149 taken 5 times.
✓ Branch 150 taken 1 times.
✓ Branch 151 taken 5 times.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✓ Branch 157 taken 6 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 6 times.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✓ Branch 197 taken 1 times.
✗ Branch 198 not taken.
✓ Branch 199 taken 1 times.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✓ Branch 205 taken 1 times.
✗ Branch 206 not taken.
✓ Branch 207 taken 1 times.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✓ Branch 213 taken 1 times.
✗ Branch 214 not taken.
✓ Branch 215 taken 1 times.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✓ Branch 221 taken 1 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 1 times.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 238 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 253 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 262 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 271 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 295 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✓ Branch 309 taken 2 times.
✗ Branch 310 not taken.
✓ Branch 311 taken 2 times.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✓ Branch 317 taken 2 times.
✗ Branch 318 not taken.
✓ Branch 319 taken 2 times.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✓ Branch 389 taken 2 times.
✗ Branch 390 not taken.
✓ Branch 391 taken 2 times.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✓ Branch 397 taken 2 times.
✗ Branch 398 not taken.
✓ Branch 399 taken 2 times.
✗ Branch 400 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✓ Branch 405 taken 28 times.
✗ Branch 406 not taken.
✓ Branch 407 taken 28 times.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✓ Branch 413 taken 3 times.
✗ Branch 414 not taken.
✓ Branch 415 taken 3 times.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 430 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✓ Branch 453 taken 2 times.
✗ Branch 454 not taken.
✓ Branch 455 taken 2 times.
✗ Branch 456 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 460 not taken.
✓ Branch 461 taken 2 times.
✗ Branch 462 not taken.
✓ Branch 463 taken 2 times.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✓ Branch 469 taken 5 times.
✓ Branch 470 taken 1 times.
✓ Branch 471 taken 5 times.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✓ Branch 477 taken 6 times.
✗ Branch 478 not taken.
✓ Branch 479 taken 6 times.
✗ Branch 480 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 502 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✓ Branch 517 taken 1 times.
✗ Branch 518 not taken.
✓ Branch 519 taken 1 times.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✓ Branch 525 taken 1 times.
✗ Branch 526 not taken.
✓ Branch 527 taken 1 times.
✗ Branch 528 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✗ Branch 532 not taken.
✓ Branch 533 taken 1 times.
✗ Branch 534 not taken.
✓ Branch 535 taken 1 times.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✓ Branch 541 taken 1 times.
✗ Branch 542 not taken.
✓ Branch 543 taken 1 times.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✗ Branch 628 not taken.
✓ Branch 629 taken 2 times.
✗ Branch 630 not taken.
✓ Branch 631 taken 2 times.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✓ Branch 637 taken 2 times.
✗ Branch 638 not taken.
✓ Branch 639 taken 2 times.
|
906 | bool valid(size_t idx) const { return mValid[idx]; } |
742 | |||
743 | const OpT& op() const { return mOp; } | ||
744 | |||
745 | private: | ||
746 | const OpT& mOp; | ||
747 | std::unique_ptr<bool[]> mValidPtr; | ||
748 | bool* mValid = nullptr; | ||
749 | }; // struct ForeachFilterOp | ||
750 | |||
751 | |||
752 | // Wraps a user-supplied DynamicNodeManager operator and stores the return | ||
753 | // value of the operator() method to the index of the node in a bool array | ||
754 | template <typename OpT> | ||
755 | struct ReduceFilterOp | ||
756 | { | ||
757 |
1/2✓ Branch 1 taken 22605 times.
✗ Branch 2 not taken.
|
45210 | ReduceFilterOp(OpT& op, openvdb::Index64 size) |
758 | : mOp(&op) | ||
759 | , mValidPtr(std::make_unique<bool[]>(size)) | ||
760 |
1/2✓ Branch 1 taken 22605 times.
✗ Branch 2 not taken.
|
90420 | , mValid(mValidPtr.get()) { } |
761 | |||
762 | ReduceFilterOp(const ReduceFilterOp& other) | ||
763 | : mOp(other.mOp) | ||
764 | , mValid(other.mValid) { } | ||
765 | |||
766 |
19/202✓ Branch 1 taken 2374 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 18 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 93 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 71 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 10 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 58 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 4 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 3 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 4 times.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✓ Branch 34 taken 2118 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 28 times.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 42 times.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 43 taken 2 times.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✓ Branch 46 taken 104 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✓ Branch 70 taken 4 times.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✓ Branch 80 taken 4 times.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✓ Branch 89 taken 3 times.
✗ Branch 90 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✓ Branch 140 taken 18 times.
✗ Branch 141 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 164 not taken.
✗ Branch 165 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 212 not taken.
✗ Branch 213 not taken.
✗ Branch 215 not taken.
✗ Branch 216 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✗ Branch 239 not taken.
✗ Branch 240 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 245 not taken.
✗ Branch 246 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✗ Branch 254 not taken.
✗ Branch 255 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
|
4959 | ReduceFilterOp(const ReduceFilterOp& other, tbb::split) |
767 |
4/46✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 4 taken 19 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 2 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 14 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✓ Branch 16 taken 4 times.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
|
39 | : mOpPtr(std::make_unique<OpT>(*(other.mOp), tbb::split())) |
768 | , mOp(mOpPtr.get()) | ||
769 |
0/8✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
4998 | , mValid(other.mValid) { } |
770 | |||
771 | template<typename NodeT> | ||
772 | ✗ | void operator()(NodeT& node, size_t idx) const | |
773 | { | ||
774 |
0/2✗ Branch 0 not taken.
✗ Branch 1 not taken.
|
61615 | mValid[idx] = (*mOp)(node, idx); |
775 | } | ||
776 | |||
777 | 10 | void join(const ReduceFilterOp& other) | |
778 | { | ||
779 |
2/2✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
|
5003 | mOp->join(*(other.mOp)); |
780 | } | ||
781 | |||
782 | bool valid(size_t idx) const | ||
783 | { | ||
784 |
105/1656✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 16 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 16 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 18 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 18 times.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 183 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 183 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 183 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 183 times.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 322 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 340 times.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 116 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 116 times.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✓ Branch 53 taken 68 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 68 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✓ Branch 61 taken 9575 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 9605 times.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 69 taken 8410 times.
✗ Branch 70 not taken.
✓ Branch 71 taken 8423 times.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✓ Branch 77 taken 12 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 12 times.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✓ Branch 85 taken 14 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 14 times.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✓ Branch 93 taken 229 times.
✗ Branch 94 not taken.
✓ Branch 95 taken 229 times.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✓ Branch 101 taken 229 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 229 times.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✓ Branch 109 taken 23 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 23 times.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 114 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✓ Branch 133 taken 1977 times.
✗ Branch 134 not taken.
✓ Branch 135 taken 1977 times.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✓ Branch 141 taken 603 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 603 times.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✓ Branch 148 taken 7 times.
✓ Branch 149 taken 25 times.
✓ Branch 150 taken 7 times.
✓ Branch 151 taken 25 times.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✓ Branch 157 taken 13 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 13 times.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✓ Branch 165 taken 24 times.
✗ Branch 166 not taken.
✓ Branch 167 taken 24 times.
✗ Branch 168 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✓ Branch 173 taken 24 times.
✗ Branch 174 not taken.
✓ Branch 175 taken 24 times.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✓ Branch 181 taken 6 times.
✗ Branch 182 not taken.
✓ Branch 183 taken 6 times.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✓ Branch 189 taken 2 times.
✗ Branch 190 not taken.
✓ Branch 191 taken 2 times.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✓ Branch 205 taken 5 times.
✗ Branch 206 not taken.
✓ Branch 207 taken 5 times.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✓ Branch 213 taken 5 times.
✗ Branch 214 not taken.
✓ Branch 215 taken 5 times.
✗ Branch 216 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 219 not taken.
✗ Branch 220 not taken.
✓ Branch 221 taken 22 times.
✗ Branch 222 not taken.
✓ Branch 223 taken 22 times.
✗ Branch 224 not taken.
✗ Branch 225 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✗ Branch 228 not taken.
✓ Branch 229 taken 22 times.
✗ Branch 230 not taken.
✓ Branch 231 taken 22 times.
✗ Branch 232 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 235 not taken.
✗ Branch 236 not taken.
✓ Branch 237 taken 164 times.
✗ Branch 238 not taken.
✓ Branch 239 taken 165 times.
✗ Branch 240 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 243 not taken.
✗ Branch 244 not taken.
✓ Branch 245 taken 6 times.
✗ Branch 246 not taken.
✓ Branch 247 taken 6 times.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✗ Branch 252 not taken.
✓ Branch 253 taken 6 times.
✗ Branch 254 not taken.
✓ Branch 255 taken 6 times.
✗ Branch 256 not taken.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✗ Branch 259 not taken.
✗ Branch 260 not taken.
✓ Branch 261 taken 28281 times.
✗ Branch 262 not taken.
✓ Branch 263 taken 28297 times.
✗ Branch 264 not taken.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 268 not taken.
✓ Branch 269 taken 7711 times.
✗ Branch 270 not taken.
✓ Branch 271 taken 7712 times.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✓ Branch 277 taken 377 times.
✗ Branch 278 not taken.
✓ Branch 279 taken 380 times.
✗ Branch 280 not taken.
✗ Branch 281 not taken.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 284 not taken.
✓ Branch 285 taken 257 times.
✗ Branch 286 not taken.
✓ Branch 287 taken 257 times.
✗ Branch 288 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 292 not taken.
✓ Branch 293 taken 10 times.
✗ Branch 294 not taken.
✓ Branch 295 taken 10 times.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 304 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 307 not taken.
✗ Branch 308 not taken.
✓ Branch 309 taken 4 times.
✗ Branch 310 not taken.
✓ Branch 311 taken 4 times.
✗ Branch 312 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 316 not taken.
✓ Branch 317 taken 4 times.
✗ Branch 318 not taken.
✓ Branch 319 taken 4 times.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✓ Branch 325 taken 4 times.
✗ Branch 326 not taken.
✓ Branch 327 taken 4 times.
✗ Branch 328 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✓ Branch 333 taken 8 times.
✗ Branch 334 not taken.
✓ Branch 335 taken 8 times.
✗ Branch 336 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✓ Branch 341 taken 8 times.
✗ Branch 342 not taken.
✓ Branch 343 taken 8 times.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✓ Branch 349 taken 3 times.
✗ Branch 350 not taken.
✓ Branch 351 taken 3 times.
✗ Branch 352 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✓ Branch 357 taken 3 times.
✗ Branch 358 not taken.
✓ Branch 359 taken 3 times.
✗ Branch 360 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 364 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 370 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✓ Branch 389 taken 51 times.
✗ Branch 390 not taken.
✓ Branch 391 taken 51 times.
✗ Branch 392 not taken.
✓ Branch 393 taken 8 times.
✗ Branch 394 not taken.
✓ Branch 395 taken 8 times.
✗ Branch 396 not taken.
✓ Branch 397 taken 58 times.
✓ Branch 398 taken 8 times.
✓ Branch 399 taken 58 times.
✗ Branch 400 not taken.
✓ Branch 401 taken 8 times.
✗ Branch 402 not taken.
✓ Branch 403 taken 8 times.
✗ Branch 404 not taken.
✓ Branch 405 taken 16 times.
✗ Branch 406 not taken.
✓ Branch 407 taken 16 times.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 418 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✓ Branch 421 taken 10 times.
✗ Branch 422 not taken.
✓ Branch 423 taken 10 times.
✗ Branch 424 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 427 not taken.
✗ Branch 428 not taken.
✓ Branch 429 taken 10 times.
✗ Branch 430 not taken.
✓ Branch 431 taken 10 times.
✗ Branch 432 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✗ Branch 436 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 439 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 442 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 502 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✓ Branch 517 taken 47 times.
✗ Branch 518 not taken.
✓ Branch 519 taken 47 times.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✓ Branch 525 taken 47 times.
✗ Branch 526 not taken.
✓ Branch 527 taken 47 times.
✗ Branch 528 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✗ Branch 532 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 630 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 642 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 645 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 648 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 651 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 654 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 657 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 660 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 663 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 666 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 669 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 672 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 675 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 678 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 681 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 684 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 690 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 702 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 708 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 711 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 714 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✗ Branch 717 not taken.
✗ Branch 718 not taken.
✗ Branch 719 not taken.
✗ Branch 720 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✗ Branch 723 not taken.
✗ Branch 724 not taken.
✗ Branch 725 not taken.
✗ Branch 726 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 729 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 732 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 738 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 744 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 747 not taken.
✗ Branch 748 not taken.
✓ Branch 749 taken 2835 times.
✗ Branch 750 not taken.
✓ Branch 751 taken 2835 times.
✗ Branch 752 not taken.
✗ Branch 753 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 762 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 768 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 771 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 774 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 777 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 780 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 783 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 786 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 789 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 792 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 795 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 798 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 801 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 804 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 807 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 810 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 813 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 816 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 819 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 822 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 825 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 828 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 831 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 834 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 837 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 840 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 843 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 846 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 849 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 852 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 855 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 858 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 861 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 864 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 867 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 870 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 873 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 876 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 879 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 882 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✗ Branch 885 not taken.
✗ Branch 886 not taken.
✗ Branch 887 not taken.
✗ Branch 888 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 891 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 894 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 897 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 900 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✗ Branch 903 not taken.
✗ Branch 904 not taken.
✗ Branch 905 not taken.
✗ Branch 906 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 909 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 912 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 915 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 918 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 921 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 924 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 927 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 930 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 933 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 936 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 939 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 942 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 945 not taken.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 948 not taken.
✗ Branch 949 not taken.
✗ Branch 950 not taken.
✗ Branch 951 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 954 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✗ Branch 957 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 960 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 963 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 966 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 969 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 972 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 975 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 978 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 981 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 984 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 987 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 990 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 993 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 996 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 999 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1002 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1005 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1008 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1011 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1014 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1017 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1020 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1023 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1026 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1029 not taken.
✗ Branch 1030 not taken.
✗ Branch 1031 not taken.
✗ Branch 1032 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1035 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1038 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1041 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1044 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1047 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1050 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✗ Branch 1053 not taken.
✗ Branch 1054 not taken.
✗ Branch 1055 not taken.
✗ Branch 1056 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1059 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1062 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1065 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1068 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1071 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1074 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1077 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1080 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✗ Branch 1083 not taken.
✗ Branch 1084 not taken.
✗ Branch 1085 not taken.
✗ Branch 1086 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1089 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1092 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1095 not taken.
✗ Branch 1096 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1099 not taken.
✗ Branch 1100 not taken.
✗ Branch 1101 not taken.
✗ Branch 1102 not taken.
✗ Branch 1103 not taken.
✗ Branch 1104 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1107 not taken.
✗ Branch 1108 not taken.
✗ Branch 1109 not taken.
✗ Branch 1110 not taken.
✗ Branch 1111 not taken.
✗ Branch 1112 not taken.
✗ Branch 1113 not taken.
✗ Branch 1114 not taken.
✗ Branch 1115 not taken.
✗ Branch 1116 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1119 not taken.
✗ Branch 1120 not taken.
✗ Branch 1121 not taken.
✗ Branch 1122 not taken.
✗ Branch 1123 not taken.
✗ Branch 1124 not taken.
✗ Branch 1125 not taken.
✗ Branch 1126 not taken.
✗ Branch 1127 not taken.
✗ Branch 1128 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1131 not taken.
✗ Branch 1132 not taken.
✗ Branch 1133 not taken.
✗ Branch 1134 not taken.
✗ Branch 1135 not taken.
✗ Branch 1136 not taken.
✗ Branch 1137 not taken.
✗ Branch 1138 not taken.
✗ Branch 1139 not taken.
✗ Branch 1140 not taken.
✗ Branch 1141 not taken.
✗ Branch 1142 not taken.
✗ Branch 1143 not taken.
✗ Branch 1144 not taken.
✗ Branch 1145 not taken.
✗ Branch 1146 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1149 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1152 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1155 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1158 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1161 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1164 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1167 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1170 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1173 not taken.
✗ Branch 1174 not taken.
✗ Branch 1175 not taken.
✗ Branch 1176 not taken.
✗ Branch 1177 not taken.
✗ Branch 1178 not taken.
✗ Branch 1179 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
✗ Branch 1183 not taken.
✗ Branch 1184 not taken.
✗ Branch 1185 not taken.
✗ Branch 1186 not taken.
✗ Branch 1187 not taken.
✗ Branch 1188 not taken.
✗ Branch 1189 not taken.
✗ Branch 1190 not taken.
✗ Branch 1191 not taken.
✗ Branch 1192 not taken.
✗ Branch 1193 not taken.
✗ Branch 1194 not taken.
✗ Branch 1195 not taken.
✗ Branch 1196 not taken.
✗ Branch 1197 not taken.
✗ Branch 1198 not taken.
✗ Branch 1199 not taken.
✗ Branch 1200 not taken.
✗ Branch 1201 not taken.
✗ Branch 1202 not taken.
✗ Branch 1203 not taken.
✗ Branch 1204 not taken.
✗ Branch 1205 not taken.
✗ Branch 1206 not taken.
✗ Branch 1207 not taken.
✗ Branch 1208 not taken.
✗ Branch 1209 not taken.
✗ Branch 1210 not taken.
✗ Branch 1211 not taken.
✗ Branch 1212 not taken.
✗ Branch 1213 not taken.
✗ Branch 1214 not taken.
✗ Branch 1215 not taken.
✗ Branch 1216 not taken.
✗ Branch 1217 not taken.
✗ Branch 1218 not taken.
✗ Branch 1219 not taken.
✗ Branch 1220 not taken.
✗ Branch 1221 not taken.
✗ Branch 1222 not taken.
✗ Branch 1223 not taken.
✗ Branch 1224 not taken.
✗ Branch 1225 not taken.
✗ Branch 1226 not taken.
✗ Branch 1227 not taken.
✗ Branch 1228 not taken.
✗ Branch 1229 not taken.
✗ Branch 1230 not taken.
✗ Branch 1231 not taken.
✗ Branch 1232 not taken.
✗ Branch 1233 not taken.
✗ Branch 1234 not taken.
✗ Branch 1235 not taken.
✗ Branch 1236 not taken.
✗ Branch 1237 not taken.
✗ Branch 1238 not taken.
✗ Branch 1239 not taken.
✗ Branch 1240 not taken.
✗ Branch 1241 not taken.
✗ Branch 1242 not taken.
✗ Branch 1243 not taken.
✗ Branch 1244 not taken.
✗ Branch 1245 not taken.
✗ Branch 1246 not taken.
✗ Branch 1247 not taken.
✗ Branch 1248 not taken.
✗ Branch 1249 not taken.
✗ Branch 1250 not taken.
✗ Branch 1251 not taken.
✗ Branch 1252 not taken.
✗ Branch 1253 not taken.
✗ Branch 1254 not taken.
✗ Branch 1255 not taken.
✗ Branch 1256 not taken.
✗ Branch 1257 not taken.
✗ Branch 1258 not taken.
✗ Branch 1259 not taken.
✗ Branch 1260 not taken.
✗ Branch 1261 not taken.
✗ Branch 1262 not taken.
✗ Branch 1263 not taken.
✗ Branch 1264 not taken.
✗ Branch 1265 not taken.
✗ Branch 1266 not taken.
✗ Branch 1267 not taken.
✗ Branch 1268 not taken.
✗ Branch 1269 not taken.
✗ Branch 1270 not taken.
✗ Branch 1271 not taken.
✗ Branch 1272 not taken.
✗ Branch 1273 not taken.
✗ Branch 1274 not taken.
✗ Branch 1275 not taken.
✗ Branch 1276 not taken.
✗ Branch 1277 not taken.
✗ Branch 1278 not taken.
✗ Branch 1279 not taken.
✗ Branch 1280 not taken.
✗ Branch 1281 not taken.
✗ Branch 1282 not taken.
✗ Branch 1283 not taken.
✗ Branch 1284 not taken.
✗ Branch 1285 not taken.
✗ Branch 1286 not taken.
✗ Branch 1287 not taken.
✗ Branch 1288 not taken.
✗ Branch 1289 not taken.
✗ Branch 1290 not taken.
✗ Branch 1291 not taken.
✗ Branch 1292 not taken.
✗ Branch 1293 not taken.
✗ Branch 1294 not taken.
✗ Branch 1295 not taken.
✗ Branch 1296 not taken.
✗ Branch 1297 not taken.
✗ Branch 1298 not taken.
✗ Branch 1299 not taken.
✗ Branch 1300 not taken.
✗ Branch 1301 not taken.
✗ Branch 1302 not taken.
✗ Branch 1303 not taken.
✗ Branch 1304 not taken.
✗ Branch 1305 not taken.
✗ Branch 1306 not taken.
✗ Branch 1307 not taken.
✗ Branch 1308 not taken.
✗ Branch 1309 not taken.
✗ Branch 1310 not taken.
✗ Branch 1311 not taken.
✗ Branch 1312 not taken.
✗ Branch 1313 not taken.
✗ Branch 1314 not taken.
✗ Branch 1315 not taken.
✗ Branch 1316 not taken.
✗ Branch 1317 not taken.
✗ Branch 1318 not taken.
✗ Branch 1319 not taken.
✗ Branch 1320 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1323 not taken.
✗ Branch 1324 not taken.
✗ Branch 1325 not taken.
✗ Branch 1326 not taken.
✗ Branch 1327 not taken.
✗ Branch 1328 not taken.
✗ Branch 1329 not taken.
✗ Branch 1330 not taken.
✗ Branch 1331 not taken.
✗ Branch 1332 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1335 not taken.
✗ Branch 1336 not taken.
✗ Branch 1337 not taken.
✗ Branch 1338 not taken.
✗ Branch 1339 not taken.
✗ Branch 1340 not taken.
✗ Branch 1341 not taken.
✗ Branch 1342 not taken.
✗ Branch 1343 not taken.
✗ Branch 1344 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1347 not taken.
✗ Branch 1348 not taken.
✗ Branch 1349 not taken.
✗ Branch 1350 not taken.
✗ Branch 1351 not taken.
✗ Branch 1352 not taken.
✗ Branch 1353 not taken.
✗ Branch 1354 not taken.
✗ Branch 1355 not taken.
✗ Branch 1356 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1359 not taken.
✗ Branch 1360 not taken.
✗ Branch 1361 not taken.
✗ Branch 1362 not taken.
✗ Branch 1363 not taken.
✗ Branch 1364 not taken.
✗ Branch 1365 not taken.
✗ Branch 1366 not taken.
✗ Branch 1367 not taken.
✗ Branch 1368 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1371 not taken.
✗ Branch 1372 not taken.
✗ Branch 1373 not taken.
✗ Branch 1374 not taken.
✗ Branch 1375 not taken.
✗ Branch 1376 not taken.
✗ Branch 1377 not taken.
✗ Branch 1378 not taken.
✗ Branch 1379 not taken.
✗ Branch 1380 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1383 not taken.
✗ Branch 1384 not taken.
✗ Branch 1385 not taken.
✗ Branch 1386 not taken.
✗ Branch 1387 not taken.
✗ Branch 1388 not taken.
✗ Branch 1389 not taken.
✗ Branch 1390 not taken.
✗ Branch 1391 not taken.
✗ Branch 1392 not taken.
✗ Branch 1393 not taken.
✗ Branch 1394 not taken.
✗ Branch 1395 not taken.
✗ Branch 1396 not taken.
✗ Branch 1397 not taken.
✗ Branch 1398 not taken.
✗ Branch 1399 not taken.
✗ Branch 1400 not taken.
✗ Branch 1401 not taken.
✗ Branch 1402 not taken.
✗ Branch 1403 not taken.
✗ Branch 1404 not taken.
✗ Branch 1405 not taken.
✗ Branch 1406 not taken.
✗ Branch 1407 not taken.
✗ Branch 1408 not taken.
✗ Branch 1409 not taken.
✗ Branch 1410 not taken.
✗ Branch 1411 not taken.
✗ Branch 1412 not taken.
✗ Branch 1413 not taken.
✗ Branch 1414 not taken.
✗ Branch 1415 not taken.
✗ Branch 1416 not taken.
✗ Branch 1417 not taken.
✗ Branch 1418 not taken.
✗ Branch 1419 not taken.
✗ Branch 1420 not taken.
✗ Branch 1421 not taken.
✗ Branch 1422 not taken.
✗ Branch 1423 not taken.
✗ Branch 1424 not taken.
✗ Branch 1425 not taken.
✗ Branch 1426 not taken.
✗ Branch 1427 not taken.
✗ Branch 1428 not taken.
✗ Branch 1429 not taken.
✗ Branch 1430 not taken.
✗ Branch 1431 not taken.
✗ Branch 1432 not taken.
✗ Branch 1433 not taken.
✗ Branch 1434 not taken.
✗ Branch 1435 not taken.
✗ Branch 1436 not taken.
✗ Branch 1437 not taken.
✗ Branch 1438 not taken.
✗ Branch 1439 not taken.
✗ Branch 1440 not taken.
✗ Branch 1441 not taken.
✗ Branch 1442 not taken.
✗ Branch 1443 not taken.
✗ Branch 1444 not taken.
✗ Branch 1445 not taken.
✗ Branch 1446 not taken.
✗ Branch 1447 not taken.
✗ Branch 1448 not taken.
✗ Branch 1449 not taken.
✗ Branch 1450 not taken.
✗ Branch 1451 not taken.
✗ Branch 1452 not taken.
✗ Branch 1453 not taken.
✗ Branch 1454 not taken.
✗ Branch 1455 not taken.
✗ Branch 1456 not taken.
✗ Branch 1457 not taken.
✗ Branch 1458 not taken.
✗ Branch 1459 not taken.
✗ Branch 1460 not taken.
✗ Branch 1461 not taken.
✗ Branch 1462 not taken.
✗ Branch 1463 not taken.
✗ Branch 1464 not taken.
✗ Branch 1465 not taken.
✗ Branch 1466 not taken.
✗ Branch 1467 not taken.
✗ Branch 1468 not taken.
✗ Branch 1469 not taken.
✗ Branch 1470 not taken.
✗ Branch 1471 not taken.
✗ Branch 1472 not taken.
✗ Branch 1473 not taken.
✗ Branch 1474 not taken.
✗ Branch 1475 not taken.
✗ Branch 1476 not taken.
✗ Branch 1477 not taken.
✗ Branch 1478 not taken.
✗ Branch 1479 not taken.
✗ Branch 1480 not taken.
✗ Branch 1481 not taken.
✗ Branch 1482 not taken.
✗ Branch 1483 not taken.
✗ Branch 1484 not taken.
✗ Branch 1485 not taken.
✗ Branch 1486 not taken.
✗ Branch 1487 not taken.
✗ Branch 1488 not taken.
✗ Branch 1489 not taken.
✗ Branch 1490 not taken.
✗ Branch 1491 not taken.
✗ Branch 1492 not taken.
✗ Branch 1493 not taken.
✗ Branch 1494 not taken.
✗ Branch 1495 not taken.
✗ Branch 1496 not taken.
✗ Branch 1497 not taken.
✗ Branch 1498 not taken.
✗ Branch 1499 not taken.
✗ Branch 1500 not taken.
✗ Branch 1501 not taken.
✗ Branch 1502 not taken.
✗ Branch 1503 not taken.
✗ Branch 1504 not taken.
✗ Branch 1505 not taken.
✗ Branch 1506 not taken.
✗ Branch 1507 not taken.
✗ Branch 1508 not taken.
✗ Branch 1509 not taken.
✗ Branch 1510 not taken.
✗ Branch 1511 not taken.
✗ Branch 1512 not taken.
✗ Branch 1513 not taken.
✗ Branch 1514 not taken.
✗ Branch 1515 not taken.
✗ Branch 1516 not taken.
✗ Branch 1517 not taken.
✗ Branch 1518 not taken.
✗ Branch 1519 not taken.
✗ Branch 1520 not taken.
✗ Branch 1521 not taken.
✗ Branch 1522 not taken.
✗ Branch 1523 not taken.
✗ Branch 1524 not taken.
✗ Branch 1525 not taken.
✗ Branch 1526 not taken.
✗ Branch 1527 not taken.
✗ Branch 1528 not taken.
✗ Branch 1529 not taken.
✗ Branch 1530 not taken.
✗ Branch 1531 not taken.
✗ Branch 1532 not taken.
✗ Branch 1533 not taken.
✗ Branch 1534 not taken.
✗ Branch 1535 not taken.
✗ Branch 1536 not taken.
✗ Branch 1537 not taken.
✗ Branch 1538 not taken.
✗ Branch 1539 not taken.
✗ Branch 1540 not taken.
✗ Branch 1541 not taken.
✗ Branch 1542 not taken.
✗ Branch 1543 not taken.
✗ Branch 1544 not taken.
✗ Branch 1545 not taken.
✗ Branch 1546 not taken.
✗ Branch 1547 not taken.
✗ Branch 1548 not taken.
✗ Branch 1549 not taken.
✗ Branch 1550 not taken.
✗ Branch 1551 not taken.
✗ Branch 1552 not taken.
✗ Branch 1553 not taken.
✗ Branch 1554 not taken.
✗ Branch 1555 not taken.
✗ Branch 1556 not taken.
✗ Branch 1557 not taken.
✗ Branch 1558 not taken.
✗ Branch 1559 not taken.
✗ Branch 1560 not taken.
✗ Branch 1561 not taken.
✗ Branch 1562 not taken.
✗ Branch 1563 not taken.
✗ Branch 1564 not taken.
✗ Branch 1565 not taken.
✗ Branch 1566 not taken.
✗ Branch 1567 not taken.
✗ Branch 1568 not taken.
✗ Branch 1569 not taken.
✗ Branch 1570 not taken.
✗ Branch 1571 not taken.
✗ Branch 1572 not taken.
✗ Branch 1573 not taken.
✗ Branch 1574 not taken.
✗ Branch 1575 not taken.
✗ Branch 1576 not taken.
✗ Branch 1577 not taken.
✗ Branch 1578 not taken.
✗ Branch 1579 not taken.
✗ Branch 1580 not taken.
✗ Branch 1581 not taken.
✗ Branch 1582 not taken.
✗ Branch 1583 not taken.
✗ Branch 1584 not taken.
✗ Branch 1585 not taken.
✗ Branch 1586 not taken.
✗ Branch 1587 not taken.
✗ Branch 1588 not taken.
✗ Branch 1589 not taken.
✗ Branch 1590 not taken.
✗ Branch 1591 not taken.
✗ Branch 1592 not taken.
✗ Branch 1593 not taken.
✗ Branch 1594 not taken.
✗ Branch 1595 not taken.
✗ Branch 1596 not taken.
✗ Branch 1597 not taken.
✗ Branch 1598 not taken.
✗ Branch 1599 not taken.
✗ Branch 1600 not taken.
✗ Branch 1601 not taken.
✗ Branch 1602 not taken.
✗ Branch 1603 not taken.
✗ Branch 1604 not taken.
✗ Branch 1605 not taken.
✗ Branch 1606 not taken.
✗ Branch 1607 not taken.
✗ Branch 1608 not taken.
✗ Branch 1609 not taken.
✗ Branch 1610 not taken.
✗ Branch 1611 not taken.
✗ Branch 1612 not taken.
✗ Branch 1613 not taken.
✗ Branch 1614 not taken.
✗ Branch 1615 not taken.
✗ Branch 1616 not taken.
✗ Branch 1617 not taken.
✗ Branch 1618 not taken.
✗ Branch 1619 not taken.
✗ Branch 1620 not taken.
✗ Branch 1621 not taken.
✗ Branch 1622 not taken.
✗ Branch 1623 not taken.
✗ Branch 1624 not taken.
✗ Branch 1625 not taken.
✗ Branch 1626 not taken.
✗ Branch 1627 not taken.
✗ Branch 1628 not taken.
✗ Branch 1629 not taken.
✗ Branch 1630 not taken.
✗ Branch 1631 not taken.
✗ Branch 1632 not taken.
✗ Branch 1633 not taken.
✗ Branch 1634 not taken.
✗ Branch 1635 not taken.
✗ Branch 1636 not taken.
✗ Branch 1637 not taken.
✗ Branch 1638 not taken.
✗ Branch 1639 not taken.
✗ Branch 1640 not taken.
✗ Branch 1641 not taken.
✗ Branch 1642 not taken.
✗ Branch 1643 not taken.
✗ Branch 1644 not taken.
✗ Branch 1645 not taken.
✗ Branch 1646 not taken.
✗ Branch 1647 not taken.
✗ Branch 1648 not taken.
✗ Branch 1649 not taken.
✗ Branch 1650 not taken.
✗ Branch 1651 not taken.
✗ Branch 1652 not taken.
✗ Branch 1653 not taken.
✗ Branch 1654 not taken.
✗ Branch 1655 not taken.
|
124228 | return mValid[idx]; |
785 | } | ||
786 | |||
787 | OpT& op() { return *mOp; } | ||
788 | |||
789 | private: | ||
790 | std::unique_ptr<OpT> mOpPtr; | ||
791 | OpT* mOp = nullptr; | ||
792 | std::unique_ptr<bool[]> mValidPtr; | ||
793 | bool* mValid = nullptr; | ||
794 | }; // struct ReduceFilterOp | ||
795 | |||
796 | |||
797 | /// @brief This class is a link in a chain that each caches tree nodes | ||
798 | /// of a specific type in a linear array. | ||
799 | /// | ||
800 | /// @note It is for internal use and should rarely be used directly. | ||
801 | template<typename NodeT, Index LEVEL> | ||
802 | class DynamicNodeManagerLink | ||
803 | { | ||
804 | public: | ||
805 | using NonConstChildNodeType = typename NodeT::ChildNodeType; | ||
806 | using ChildNodeType = typename CopyConstness<NodeT, NonConstChildNodeType>::Type; | ||
807 | |||
808 | DynamicNodeManagerLink() = default; | ||
809 | |||
810 | template<typename NodeOpT, typename RootT> | ||
811 | void foreachTopDown(const NodeOpT& op, RootT& root, bool threaded, | ||
812 | size_t leafGrainSize, size_t nonLeafGrainSize) | ||
813 | { | ||
814 | if (!op(root, /*index=*/0)) return; | ||
815 | if (!mList.initRootChildren(root)) return; | ||
816 | ForeachFilterOp<NodeOpT> filterOp(op, mList.nodeCount()); | ||
817 | mList.foreachWithIndex(filterOp, threaded, LEVEL == 0 ? leafGrainSize : nonLeafGrainSize); | ||
818 | mNext.foreachTopDownRecurse(filterOp, mList, threaded, leafGrainSize, nonLeafGrainSize); | ||
819 | } | ||
820 | |||
821 | template<typename FilterOpT, typename ParentT> | ||
822 | void foreachTopDownRecurse(const FilterOpT& filterOp, ParentT& parent, bool threaded, | ||
823 | size_t leafGrainSize, size_t nonLeafGrainSize) | ||
824 | { | ||
825 | if (!mList.initNodeChildren(parent, filterOp, !threaded)) return; | ||
826 | FilterOpT childFilterOp(filterOp.op(), mList.nodeCount()); | ||
827 | mList.foreachWithIndex(childFilterOp, threaded, LEVEL == 0 ? leafGrainSize : nonLeafGrainSize); | ||
828 | mNext.foreachTopDownRecurse(childFilterOp, mList, threaded, leafGrainSize, nonLeafGrainSize); | ||
829 | } | ||
830 | |||
831 | template<typename NodeOpT, typename RootT> | ||
832 | void reduceTopDown(NodeOpT& op, RootT& root, bool threaded, | ||
833 | size_t leafGrainSize, size_t nonLeafGrainSize) | ||
834 | { | ||
835 | if (!op(root, /*index=*/0)) return; | ||
836 | if (!mList.initRootChildren(root)) return; | ||
837 | ReduceFilterOp<NodeOpT> filterOp(op, mList.nodeCount()); | ||
838 | mList.reduceWithIndex(filterOp, threaded, LEVEL == 0 ? leafGrainSize : nonLeafGrainSize); | ||
839 | mNext.reduceTopDownRecurse(filterOp, mList, threaded, leafGrainSize, nonLeafGrainSize); | ||
840 | } | ||
841 | |||
842 | template<typename FilterOpT, typename ParentT> | ||
843 | void reduceTopDownRecurse(FilterOpT& filterOp, ParentT& parent, bool threaded, | ||
844 | size_t leafGrainSize, size_t nonLeafGrainSize) | ||
845 | { | ||
846 | if (!mList.initNodeChildren(parent, filterOp, !threaded)) return; | ||
847 | FilterOpT childFilterOp(filterOp.op(), mList.nodeCount()); | ||
848 | mList.reduceWithIndex(childFilterOp, threaded, LEVEL == 0 ? leafGrainSize : nonLeafGrainSize); | ||
849 | mNext.reduceTopDownRecurse(childFilterOp, mList, threaded, leafGrainSize, nonLeafGrainSize); | ||
850 | } | ||
851 | |||
852 | protected: | ||
853 | NodeList<NodeT> mList; | ||
854 | DynamicNodeManagerLink<ChildNodeType, LEVEL-1> mNext; | ||
855 | };// DynamicNodeManagerLink class | ||
856 | |||
857 | |||
858 | /// @private | ||
859 | /// @brief Specialization that terminates the chain of cached tree nodes | ||
860 | /// @note It is for internal use and should rarely be used directly. | ||
861 | template<typename NodeT> | ||
862 | class DynamicNodeManagerLink<NodeT, 0> | ||
863 | { | ||
864 | public: | ||
865 | DynamicNodeManagerLink() = default; | ||
866 | |||
867 | template<typename NodeFilterOp, typename ParentT> | ||
868 | void foreachTopDownRecurse(const NodeFilterOp& nodeFilterOp, ParentT& parent, bool threaded, | ||
869 | size_t leafGrainSize, size_t /*nonLeafGrainSize*/) | ||
870 | { | ||
871 | if (!mList.initNodeChildren(parent, nodeFilterOp, !threaded)) return; | ||
872 | mList.foreachWithIndex(nodeFilterOp.op(), threaded, leafGrainSize); | ||
873 | } | ||
874 | |||
875 | template<typename NodeFilterOp, typename ParentT> | ||
876 | void reduceTopDownRecurse(NodeFilterOp& nodeFilterOp, ParentT& parent, bool threaded, | ||
877 | size_t leafGrainSize, size_t /*nonLeafGrainSize*/) | ||
878 | { | ||
879 | if (!mList.initNodeChildren(parent, nodeFilterOp, !threaded)) return; | ||
880 | mList.reduceWithIndex(nodeFilterOp.op(), threaded, leafGrainSize); | ||
881 | } | ||
882 | |||
883 | protected: | ||
884 | NodeList<NodeT> mList; | ||
885 | };// DynamicNodeManagerLink class | ||
886 | |||
887 | |||
888 | template<typename TreeOrLeafManagerT, Index _LEVELS> | ||
889 | class DynamicNodeManager | ||
890 | { | ||
891 | public: | ||
892 | static const Index LEVELS = _LEVELS; | ||
893 | static_assert(LEVELS > 0, | ||
894 | "expected instantiation of template specialization"); // see specialization below | ||
895 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
896 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
897 | using NonConstChildNodeType = typename RootNodeType::ChildNodeType; | ||
898 | using ChildNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstChildNodeType>::Type; | ||
899 | static_assert(RootNodeType::LEVEL >= LEVELS, "number of levels exceeds root node height"); | ||
900 | |||
901 | explicit DynamicNodeManager(TreeOrLeafManagerT& tree) : mRoot(tree.root()) { } | ||
902 | |||
903 | DynamicNodeManager(const DynamicNodeManager&) = delete; | ||
904 | |||
905 | /// @brief Return a reference to the root node. | ||
906 | const NonConstRootNodeType& root() const { return mRoot; } | ||
907 | |||
908 | /// @brief Threaded method that applies a user-supplied functor | ||
909 | /// to all the nodes in the tree. | ||
910 | /// | ||
911 | /// @param op user-supplied functor, see examples for interface details. | ||
912 | /// @param threaded optional toggle to disable threading, on by default. | ||
913 | /// @param leafGrainSize optional parameter to specify the grainsize | ||
914 | /// for threading over leaf nodes, one by default. | ||
915 | /// @param nonLeafGrainSize optional parameter to specify the grainsize | ||
916 | /// for threading over non-leaf nodes, one by default. | ||
917 | /// | ||
918 | /// @note There are two key differences to the interface of the | ||
919 | /// user-supplied functor to the NodeManager class - (1) the operator() | ||
920 | /// method aligns with the LeafManager class in expecting the index of the | ||
921 | /// node in a linear array of identical node types, (2) the operator() | ||
922 | /// method returns a boolean termination value with true indicating that | ||
923 | /// children of this node should be processed, false indicating the | ||
924 | /// early-exit termination should occur. | ||
925 | /// | ||
926 | /// @note Unlike the NodeManager, the foreach() method of the | ||
927 | /// DynamicNodeManager uses copy-by-reference for the user-supplied functor. | ||
928 | /// This can be an issue when using a shared Accessor or shared Sampler in | ||
929 | /// the operator as they are not inherently thread-safe. For these use | ||
930 | /// cases, it is recommended to create the Accessor or Sampler in the | ||
931 | /// operator execution itself. | ||
932 | /// | ||
933 | /// @par Example: | ||
934 | /// @code | ||
935 | /// // Functor to densify the first child node in a linear array. Note | ||
936 | /// // this implementation also illustrates how different | ||
937 | /// // computation can be applied to the different node types. | ||
938 | /// | ||
939 | /// template<typename TreeT> | ||
940 | /// struct DensifyOp | ||
941 | /// { | ||
942 | /// using RootT = typename TreeT::RootNodeType; | ||
943 | /// using LeafT = typename TreeT::LeafNodeType; | ||
944 | /// | ||
945 | /// DensifyOp() = default; | ||
946 | /// | ||
947 | /// // Processes the root node. Required by the DynamicNodeManager | ||
948 | /// bool operator()(RootT&, size_t) const { return true; } | ||
949 | /// | ||
950 | /// // Processes the internal nodes. Required by the DynamicNodeManager | ||
951 | /// template<typename NodeT> | ||
952 | /// bool operator()(NodeT& node, size_t idx) const | ||
953 | /// { | ||
954 | /// // densify child | ||
955 | /// for (auto iter = node.cbeginValueAll(); iter; ++iter) { | ||
956 | /// const openvdb::Coord ijk = iter.getCoord(); | ||
957 | /// node.addChild(new typename NodeT::ChildNodeType(iter.getCoord(), NodeT::LEVEL, true)); | ||
958 | /// } | ||
959 | /// // early-exit termination for all non-zero index children | ||
960 | /// return idx == 0; | ||
961 | /// } | ||
962 | /// // Processes the leaf nodes. Required by the DynamicNodeManager | ||
963 | /// bool operator()(LeafT&, size_t) const | ||
964 | /// { | ||
965 | /// return true; | ||
966 | /// } | ||
967 | /// };// DensifyOp | ||
968 | /// | ||
969 | /// // usage: | ||
970 | /// DensifyOp<FloatTree> op; | ||
971 | /// tree::DynamicNodeManager<FloatTree> nodes(tree); | ||
972 | /// nodes.foreachTopDown(op); | ||
973 | /// | ||
974 | /// @endcode | ||
975 | template<typename NodeOp> | ||
976 | void foreachTopDown(const NodeOp& op, bool threaded = true, | ||
977 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
978 | { | ||
979 | mChain.foreachTopDown(op, mRoot, threaded, leafGrainSize, nonLeafGrainSize); | ||
980 | } | ||
981 | |||
982 | /// @brief Threaded method that processes nodes with a user supplied functor | ||
983 | /// | ||
984 | /// @param op user-supplied functor, see examples for interface details. | ||
985 | /// @param threaded optional toggle to disable threading, on by default. | ||
986 | /// @param leafGrainSize optional parameter to specify the grainsize | ||
987 | /// for threading over leaf nodes, one by default. | ||
988 | /// @param nonLeafGrainSize optional parameter to specify the grainsize | ||
989 | /// for threading over non-leaf nodes, one by default. | ||
990 | /// | ||
991 | /// @note There are two key differences to the interface of the | ||
992 | /// user-supplied functor to the NodeManager class - (1) the operator() | ||
993 | /// method aligns with the LeafManager class in expecting the index of the | ||
994 | /// node in a linear array of identical node types, (2) the operator() | ||
995 | /// method returns a boolean termination value with true indicating that | ||
996 | /// children of this node should be processed, false indicating the | ||
997 | /// early-exit termination should occur. | ||
998 | /// | ||
999 | /// @par Example: | ||
1000 | /// @code | ||
1001 | /// // Functor to count nodes in a tree | ||
1002 | /// template<typename TreeType> | ||
1003 | /// struct NodeCountOp | ||
1004 | /// { | ||
1005 | /// NodeCountOp() : nodeCount(TreeType::DEPTH, 0), totalCount(0) | ||
1006 | /// { | ||
1007 | /// } | ||
1008 | /// NodeCountOp(const NodeCountOp& other, tbb::split) : | ||
1009 | /// nodeCount(TreeType::DEPTH, 0), totalCount(0) | ||
1010 | /// { | ||
1011 | /// } | ||
1012 | /// void join(const NodeCountOp& other) | ||
1013 | /// { | ||
1014 | /// for (size_t i = 0; i < nodeCount.size(); ++i) { | ||
1015 | /// nodeCount[i] += other.nodeCount[i]; | ||
1016 | /// } | ||
1017 | /// totalCount += other.totalCount; | ||
1018 | /// } | ||
1019 | /// // do nothing for the root node | ||
1020 | /// bool operator()(const typename TreeT::RootNodeType& node, size_t) | ||
1021 | /// { | ||
1022 | /// return true; | ||
1023 | /// } | ||
1024 | /// // count the internal and leaf nodes | ||
1025 | /// template<typename NodeT> | ||
1026 | /// bool operator()(const NodeT& node, size_t) | ||
1027 | /// { | ||
1028 | /// ++(nodeCount[NodeT::LEVEL]); | ||
1029 | /// ++totalCount; | ||
1030 | /// return true; | ||
1031 | /// } | ||
1032 | /// std::vector<openvdb::Index64> nodeCount; | ||
1033 | /// openvdb::Index64 totalCount; | ||
1034 | /// }; | ||
1035 | /// | ||
1036 | /// // usage: | ||
1037 | /// NodeCountOp<FloatTree> op; | ||
1038 | /// tree::DynamicNodeManager<FloatTree> nodes(tree); | ||
1039 | /// nodes.reduceTopDown(op); | ||
1040 | /// | ||
1041 | /// @endcode | ||
1042 | template<typename NodeOp> | ||
1043 | void reduceTopDown(NodeOp& op, bool threaded = true, | ||
1044 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
1045 | { | ||
1046 | mChain.reduceTopDown(op, mRoot, threaded, leafGrainSize, nonLeafGrainSize); | ||
1047 | } | ||
1048 | |||
1049 | protected: | ||
1050 | RootNodeType& mRoot; | ||
1051 | DynamicNodeManagerLink<ChildNodeType, LEVELS-1> mChain; | ||
1052 | };// DynamicNodeManager class | ||
1053 | |||
1054 | |||
1055 | |||
1056 | //////////////////////////////////////////// | ||
1057 | |||
1058 | |||
1059 | /// @private | ||
1060 | /// Template specialization of the NodeManager with no caching of nodes | ||
1061 | template<typename TreeOrLeafManagerT> | ||
1062 | class NodeManager<TreeOrLeafManagerT, 0> | ||
1063 | { | ||
1064 | public: | ||
1065 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1066 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1067 | static const Index LEVELS = 0; | ||
1068 | |||
1069 | NodeManager(TreeOrLeafManagerT& tree, bool /*serial*/ = false) : mRoot(tree.root()) { } | ||
1070 | |||
1071 | NodeManager(const NodeManager&) = delete; | ||
1072 | |||
1073 | /// @brief Clear all the cached tree nodes | ||
1074 | void clear() {} | ||
1075 | |||
1076 | /// @brief Clear and recache all the tree nodes from the | ||
1077 | /// tree. This is required if tree nodes have been added or removed. | ||
1078 | void rebuild(bool /*serial*/ = false) { } | ||
1079 | |||
1080 | /// @brief Return a reference to the root node. | ||
1081 | const RootNodeType& root() const { return mRoot; } | ||
1082 | |||
1083 | /// @brief Return the total number of cached nodes (excluding the root node) | ||
1084 | Index64 nodeCount() const { return 0; } | ||
1085 | |||
1086 | Index64 nodeCount(Index) const { return 0; } | ||
1087 | |||
1088 | template<typename NodeOp> | ||
1089 | void foreachBottomUp(const NodeOp& op, bool, size_t) { op(mRoot); } | ||
1090 | |||
1091 | template<typename NodeOp> | ||
1092 | void foreachTopDown(const NodeOp& op, bool, size_t) { op(mRoot); } | ||
1093 | |||
1094 | template<typename NodeOp> | ||
1095 | void reduceBottomUp(NodeOp& op, bool, size_t) { op(mRoot); } | ||
1096 | |||
1097 | template<typename NodeOp> | ||
1098 | void reduceTopDown(NodeOp& op, bool, size_t) { op(mRoot); } | ||
1099 | |||
1100 | protected: | ||
1101 | RootNodeType& mRoot; | ||
1102 | }; // NodeManager<0> | ||
1103 | |||
1104 | |||
1105 | //////////////////////////////////////////// | ||
1106 | |||
1107 | |||
1108 | /// @private | ||
1109 | /// Template specialization of the NodeManager with one level of nodes | ||
1110 | template<typename TreeOrLeafManagerT> | ||
1111 | class NodeManager<TreeOrLeafManagerT, 1> | ||
1112 | { | ||
1113 | public: | ||
1114 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1115 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1116 | static_assert(RootNodeType::LEVEL > 0, "expected instantiation of template specialization"); | ||
1117 | static const Index LEVELS = 1; | ||
1118 | |||
1119 |
1/2✓ Branch 1 taken 24 times.
✗ Branch 2 not taken.
|
48 | NodeManager(TreeOrLeafManagerT& tree, bool serial = false) |
1120 |
1/2✓ Branch 1 taken 24 times.
✗ Branch 2 not taken.
|
48 | : mRoot(tree.root()) |
1121 | { | ||
1122 | this->rebuild(serial); | ||
1123 | } | ||
1124 | |||
1125 | NodeManager(const NodeManager&) = delete; | ||
1126 | |||
1127 | /// @brief Clear all the cached tree nodes | ||
1128 | void clear() { mList0.clear(); } | ||
1129 | |||
1130 | /// @brief Clear and recache all the tree nodes from the | ||
1131 | /// tree. This is required if tree nodes have been added or removed. | ||
1132 |
2/16✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 22 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
|
24 | void rebuild(bool /*serial*/ = false) { mList0.initRootChildren(mRoot); } |
1133 | |||
1134 | /// @brief Return a reference to the root node. | ||
1135 | const RootNodeType& root() const { return mRoot; } | ||
1136 | |||
1137 | /// @brief Return the total number of cached nodes (excluding the root node) | ||
1138 | Index64 nodeCount() const { return mList0.nodeCount(); } | ||
1139 | |||
1140 | /// @brief Return the number of cached nodes at level @a i, where | ||
1141 | /// 0 corresponds to the lowest level. | ||
1142 | Index64 nodeCount(Index i) const { return i==0 ? mList0.nodeCount() : 0; } | ||
1143 | |||
1144 | template<typename NodeOp> | ||
1145 | void foreachBottomUp(const NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1146 | { | ||
1147 |
2/16✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 22 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
|
24 | mList0.foreach(op, threaded, grainSize); |
1148 |
2/16✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 13 taken 22 times.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 22 taken 2 times.
✗ Branch 23 not taken.
|
24 | op(mRoot); |
1149 | 24 | } | |
1150 | |||
1151 | template<typename NodeOp> | ||
1152 | void foreachTopDown(const NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1153 | { | ||
1154 | op(mRoot); | ||
1155 | mList0.foreach(op, threaded, grainSize); | ||
1156 | } | ||
1157 | |||
1158 | template<typename NodeOp> | ||
1159 | void reduceBottomUp(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1160 | { | ||
1161 | mList0.reduce(op, threaded, grainSize); | ||
1162 | op(mRoot); | ||
1163 | } | ||
1164 | |||
1165 | template<typename NodeOp> | ||
1166 | void reduceTopDown(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1167 | { | ||
1168 | op(mRoot); | ||
1169 | mList0.reduce(op, threaded, grainSize); | ||
1170 | } | ||
1171 | |||
1172 | protected: | ||
1173 | using NodeT1 = RootNodeType; | ||
1174 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1175 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; | ||
1176 | using ListT0 = NodeList<NodeT0>; | ||
1177 | |||
1178 | NodeT1& mRoot; | ||
1179 | ListT0 mList0; | ||
1180 | }; // NodeManager<1> | ||
1181 | |||
1182 | |||
1183 | //////////////////////////////////////////// | ||
1184 | |||
1185 | |||
1186 | /// @private | ||
1187 | /// Template specialization of the NodeManager with two levels of nodes | ||
1188 | template<typename TreeOrLeafManagerT> | ||
1189 | class NodeManager<TreeOrLeafManagerT, 2> | ||
1190 | { | ||
1191 | public: | ||
1192 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1193 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1194 | static_assert(RootNodeType::LEVEL > 1, "expected instantiation of template specialization"); | ||
1195 | static const Index LEVELS = 2; | ||
1196 | |||
1197 |
1/2✓ Branch 1 taken 9768 times.
✗ Branch 2 not taken.
|
16206 | NodeManager(TreeOrLeafManagerT& tree, bool serial = false) : mRoot(tree.root()) |
1198 | { | ||
1199 |
1/2✓ Branch 1 taken 9768 times.
✗ Branch 2 not taken.
|
16206 | this->rebuild(serial); |
1200 | 16206 | } | |
1201 | |||
1202 | NodeManager(const NodeManager&) = delete; | ||
1203 | |||
1204 | /// @brief Clear all the cached tree nodes | ||
1205 | void clear() { mList0.clear(); mList1.clear(); } | ||
1206 | |||
1207 | /// @brief Clear and recache all the tree nodes from the | ||
1208 | /// tree. This is required if tree nodes have been added or removed. | ||
1209 | 16210 | void rebuild(bool serial = false) | |
1210 | { | ||
1211 | 16210 | mList1.initRootChildren(mRoot); | |
1212 | 16210 | mList0.initNodeChildren(mList1, NodeFilter(), serial); | |
1213 | 16210 | } | |
1214 | |||
1215 | /// @brief Return a reference to the root node. | ||
1216 | const RootNodeType& root() const { return mRoot; } | ||
1217 | |||
1218 | /// @brief Return the total number of cached nodes (excluding the root node) | ||
1219 | Index64 nodeCount() const { return mList0.nodeCount() + mList1.nodeCount(); } | ||
1220 | |||
1221 | /// @brief Return the number of cached nodes at level @a i, where | ||
1222 | /// 0 corresponds to the lowest level. | ||
1223 | Index64 nodeCount(Index i) const | ||
1224 | { | ||
1225 | return i==0 ? mList0.nodeCount() : i==1 ? mList1.nodeCount() : 0; | ||
1226 | } | ||
1227 | |||
1228 | template<typename NodeOp> | ||
1229 | 16275 | void foreachBottomUp(const NodeOp& op, bool threaded = true, size_t grainSize=1) | |
1230 | { | ||
1231 | 16275 | mList0.foreach(op, threaded, grainSize); | |
1232 | 16275 | mList1.foreach(op, threaded, grainSize); | |
1233 | 16275 | op(mRoot); | |
1234 | 16275 | } | |
1235 | |||
1236 | template<typename NodeOp> | ||
1237 | void foreachTopDown(const NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1238 | { | ||
1239 | op(mRoot); | ||
1240 | mList1.foreach(op, threaded, grainSize); | ||
1241 | mList0.foreach(op, threaded, grainSize); | ||
1242 | } | ||
1243 | |||
1244 | template<typename NodeOp> | ||
1245 | void reduceBottomUp(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1246 | { | ||
1247 | mList0.reduce(op, threaded, grainSize); | ||
1248 | mList1.reduce(op, threaded, grainSize); | ||
1249 | op(mRoot); | ||
1250 | } | ||
1251 | |||
1252 | template<typename NodeOp> | ||
1253 | void reduceTopDown(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1254 | { | ||
1255 | op(mRoot); | ||
1256 | mList1.reduce(op, threaded, grainSize); | ||
1257 | mList0.reduce(op, threaded, grainSize); | ||
1258 | } | ||
1259 | |||
1260 | protected: | ||
1261 | using NodeT2 = RootNodeType; | ||
1262 | using NonConstNodeT1 = typename NodeT2::ChildNodeType; | ||
1263 | using NodeT1 = typename CopyConstness<RootNodeType, NonConstNodeT1>::Type; // upper level | ||
1264 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1265 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; // lower level | ||
1266 | |||
1267 | using ListT1 = NodeList<NodeT1>; // upper level | ||
1268 | using ListT0 = NodeList<NodeT0>; // lower level | ||
1269 | |||
1270 | NodeT2& mRoot; | ||
1271 | ListT1 mList1; | ||
1272 | ListT0 mList0; | ||
1273 | }; // NodeManager<2> | ||
1274 | |||
1275 | |||
1276 | //////////////////////////////////////////// | ||
1277 | |||
1278 | |||
1279 | /// @private | ||
1280 | /// Template specialization of the NodeManager with three levels of nodes | ||
1281 | template<typename TreeOrLeafManagerT> | ||
1282 | class NodeManager<TreeOrLeafManagerT, 3> | ||
1283 | { | ||
1284 | public: | ||
1285 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1286 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1287 | static_assert(RootNodeType::LEVEL > 2, "expected instantiation of template specialization"); | ||
1288 | static const Index LEVELS = 3; | ||
1289 | |||
1290 |
1/2✓ Branch 1 taken 3454 times.
✗ Branch 2 not taken.
|
3673 | NodeManager(TreeOrLeafManagerT& tree, bool serial = false) : mRoot(tree.root()) |
1291 | { | ||
1292 |
1/2✓ Branch 1 taken 3454 times.
✗ Branch 2 not taken.
|
3673 | this->rebuild(serial); |
1293 | 3673 | } | |
1294 | |||
1295 | NodeManager(const NodeManager&) = delete; | ||
1296 | |||
1297 | /// @brief Clear all the cached tree nodes | ||
1298 | void clear() { mList0.clear(); mList1.clear(); mList2.clear(); } | ||
1299 | |||
1300 | /// @brief Clear and recache all the tree nodes from the | ||
1301 | /// tree. This is required if tree nodes have been added or removed. | ||
1302 | 3673 | void rebuild(bool serial = false) | |
1303 | { | ||
1304 | 3673 | mList2.initRootChildren(mRoot); | |
1305 | 3673 | mList1.initNodeChildren(mList2, NodeFilter(), serial); | |
1306 | 3673 | mList0.initNodeChildren(mList1, NodeFilter(), serial); | |
1307 | 3673 | } | |
1308 | |||
1309 | /// @brief Return a reference to the root node. | ||
1310 | const RootNodeType& root() const { return mRoot; } | ||
1311 | |||
1312 | /// @brief Return the total number of cached nodes (excluding the root node) | ||
1313 |
8/16✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 13 taken 1 times.
✗ Branch 14 not taken.
✓ Branch 16 taken 1 times.
✗ Branch 17 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
|
8 | Index64 nodeCount() const { return mList0.nodeCount()+mList1.nodeCount()+mList2.nodeCount(); } |
1314 | |||
1315 | /// @brief Return the number of cached nodes at level @a i, where | ||
1316 | /// 0 corresponds to the lowest level. | ||
1317 | Index64 nodeCount(Index i) const | ||
1318 | { | ||
1319 |
28/28✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 2 times.
✓ Branch 10 taken 1 times.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 1 times.
✓ Branch 13 taken 2 times.
✓ Branch 14 taken 1 times.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 17 taken 2 times.
✓ Branch 18 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 20 taken 1 times.
✓ Branch 21 taken 2 times.
✓ Branch 22 taken 1 times.
✓ Branch 23 taken 1 times.
✓ Branch 24 taken 1 times.
✓ Branch 25 taken 2 times.
✓ Branch 26 taken 1 times.
✓ Branch 27 taken 1 times.
|
21 | return i==0 ? mList0.nodeCount() : i==1 ? mList1.nodeCount() |
1320 |
7/14✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
|
7 | : i==2 ? mList2.nodeCount() : 0; |
1321 | } | ||
1322 | |||
1323 | template<typename NodeOp> | ||
1324 | 6722 | void foreachBottomUp(const NodeOp& op, bool threaded = true, size_t grainSize=1) | |
1325 | { | ||
1326 | 6722 | mList0.foreach(op, threaded, grainSize); | |
1327 | 6722 | mList1.foreach(op, threaded, grainSize); | |
1328 | 6722 | mList2.foreach(op, threaded, grainSize); | |
1329 | 256 | op(mRoot); | |
1330 | 6722 | } | |
1331 | |||
1332 | template<typename NodeOp> | ||
1333 | 177 | void foreachTopDown(const NodeOp& op, bool threaded = true, size_t grainSize=1) | |
1334 | { | ||
1335 | 176 | op(mRoot); | |
1336 | 177 | mList2.foreach(op, threaded, grainSize); | |
1337 | 177 | mList1.foreach(op, threaded, grainSize); | |
1338 | 177 | mList0.foreach(op, threaded, grainSize); | |
1339 | 177 | } | |
1340 | |||
1341 | template<typename NodeOp> | ||
1342 | 6 | void reduceBottomUp(NodeOp& op, bool threaded = true, size_t grainSize=1) | |
1343 | { | ||
1344 | 6 | mList0.reduce(op, threaded, grainSize); | |
1345 | 6 | mList1.reduce(op, threaded, grainSize); | |
1346 | 6 | mList2.reduce(op, threaded, grainSize); | |
1347 | op(mRoot); | ||
1348 | 6 | } | |
1349 | |||
1350 | template<typename NodeOp> | ||
1351 | 6 | void reduceTopDown(NodeOp& op, bool threaded = true, size_t grainSize=1) | |
1352 | { | ||
1353 | op(mRoot); | ||
1354 | 6 | mList2.reduce(op, threaded, grainSize); | |
1355 | 6 | mList1.reduce(op, threaded, grainSize); | |
1356 | 6 | mList0.reduce(op, threaded, grainSize); | |
1357 | 6 | } | |
1358 | |||
1359 | protected: | ||
1360 | using NodeT3 = RootNodeType; | ||
1361 | using NonConstNodeT2 = typename NodeT3::ChildNodeType; | ||
1362 | using NodeT2 = typename CopyConstness<RootNodeType, NonConstNodeT2>::Type; // upper level | ||
1363 | using NonConstNodeT1 = typename NodeT2::ChildNodeType; | ||
1364 | using NodeT1 = typename CopyConstness<RootNodeType, NonConstNodeT1>::Type; // mid level | ||
1365 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1366 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; // lower level | ||
1367 | |||
1368 | using ListT2 = NodeList<NodeT2>; // upper level of internal nodes | ||
1369 | using ListT1 = NodeList<NodeT1>; // lower level of internal nodes | ||
1370 | using ListT0 = NodeList<NodeT0>; // lower level of internal nodes or leafs | ||
1371 | |||
1372 | NodeT3& mRoot; | ||
1373 | ListT2 mList2; | ||
1374 | ListT1 mList1; | ||
1375 | ListT0 mList0; | ||
1376 | }; // NodeManager<3> | ||
1377 | |||
1378 | |||
1379 | //////////////////////////////////////////// | ||
1380 | |||
1381 | |||
1382 | /// @private | ||
1383 | /// Template specialization of the NodeManager with four levels of nodes | ||
1384 | template<typename TreeOrLeafManagerT> | ||
1385 | class NodeManager<TreeOrLeafManagerT, 4> | ||
1386 | { | ||
1387 | public: | ||
1388 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1389 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1390 | static_assert(RootNodeType::LEVEL > 3, "expected instantiation of template specialization"); | ||
1391 | static const Index LEVELS = 4; | ||
1392 | |||
1393 | NodeManager(TreeOrLeafManagerT& tree, bool serial = false) : mRoot(tree.root()) | ||
1394 | { | ||
1395 | this->rebuild(serial); | ||
1396 | } | ||
1397 | |||
1398 | NodeManager(const NodeManager&) = delete; // disallow copy-construction | ||
1399 | |||
1400 | /// @brief Clear all the cached tree nodes | ||
1401 | void clear() { mList0.clear(); mList1.clear(); mList2.clear(); mList3.clear(); } | ||
1402 | |||
1403 | /// @brief Clear and recache all the tree nodes from the | ||
1404 | /// tree. This is required if tree nodes have been added or removed. | ||
1405 | void rebuild(bool serial = false) | ||
1406 | { | ||
1407 | mList3.initRootChildren(mRoot); | ||
1408 | mList2.initNodeChildren(mList3, NodeFilter(), serial); | ||
1409 | mList1.initNodeChildren(mList2, NodeFilter(), serial); | ||
1410 | mList0.initNodeChildren(mList1, NodeFilter(), serial); | ||
1411 | } | ||
1412 | |||
1413 | /// @brief Return a reference to the root node. | ||
1414 | const RootNodeType& root() const { return mRoot; } | ||
1415 | |||
1416 | /// @brief Return the total number of cached nodes (excluding the root node) | ||
1417 | Index64 nodeCount() const | ||
1418 | { | ||
1419 | return mList0.nodeCount() + mList1.nodeCount() | ||
1420 | + mList2.nodeCount() + mList3.nodeCount(); | ||
1421 | } | ||
1422 | |||
1423 | /// @brief Return the number of cached nodes at level @a i, where | ||
1424 | /// 0 corresponds to the lowest level. | ||
1425 | Index64 nodeCount(Index i) const | ||
1426 | { | ||
1427 | return i==0 ? mList0.nodeCount() : i==1 ? mList1.nodeCount() : | ||
1428 | i==2 ? mList2.nodeCount() : i==3 ? mList3.nodeCount() : 0; | ||
1429 | } | ||
1430 | |||
1431 | template<typename NodeOp> | ||
1432 | void foreachBottomUp(const NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1433 | { | ||
1434 | mList0.foreach(op, threaded, grainSize); | ||
1435 | mList1.foreach(op, threaded, grainSize); | ||
1436 | mList2.foreach(op, threaded, grainSize); | ||
1437 | mList3.foreach(op, threaded, grainSize); | ||
1438 | op(mRoot); | ||
1439 | } | ||
1440 | |||
1441 | template<typename NodeOp> | ||
1442 | void foreachTopDown(const NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1443 | { | ||
1444 | op(mRoot); | ||
1445 | mList3.foreach(op, threaded, grainSize); | ||
1446 | mList2.foreach(op, threaded, grainSize); | ||
1447 | mList1.foreach(op, threaded, grainSize); | ||
1448 | mList0.foreach(op, threaded, grainSize); | ||
1449 | } | ||
1450 | |||
1451 | template<typename NodeOp> | ||
1452 | void reduceBottomUp(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1453 | { | ||
1454 | mList0.reduce(op, threaded, grainSize); | ||
1455 | mList1.reduce(op, threaded, grainSize); | ||
1456 | mList2.reduce(op, threaded, grainSize); | ||
1457 | mList3.reduce(op, threaded, grainSize); | ||
1458 | op(mRoot); | ||
1459 | } | ||
1460 | |||
1461 | template<typename NodeOp> | ||
1462 | void reduceTopDown(NodeOp& op, bool threaded = true, size_t grainSize=1) | ||
1463 | { | ||
1464 | op(mRoot); | ||
1465 | mList3.reduce(op, threaded, grainSize); | ||
1466 | mList2.reduce(op, threaded, grainSize); | ||
1467 | mList1.reduce(op, threaded, grainSize); | ||
1468 | mList0.reduce(op, threaded, grainSize); | ||
1469 | } | ||
1470 | |||
1471 | protected: | ||
1472 | using NodeT4 = RootNodeType; | ||
1473 | using NonConstNodeT3 = typename NodeT4::ChildNodeType; | ||
1474 | using NodeT3 = typename CopyConstness<RootNodeType, NonConstNodeT3>::Type; // upper level | ||
1475 | using NonConstNodeT2 = typename NodeT3::ChildNodeType; | ||
1476 | using NodeT2 = typename CopyConstness<RootNodeType, NonConstNodeT2>::Type; // upper mid level | ||
1477 | using NonConstNodeT1 = typename NodeT2::ChildNodeType; | ||
1478 | using NodeT1 = typename CopyConstness<RootNodeType, NonConstNodeT1>::Type; // lower mid level | ||
1479 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1480 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; // lower level | ||
1481 | |||
1482 | using ListT3 = NodeList<NodeT3>; // upper level of internal nodes | ||
1483 | using ListT2 = NodeList<NodeT2>; // upper mid level of internal nodes | ||
1484 | using ListT1 = NodeList<NodeT1>; // lower mid level of internal nodes | ||
1485 | using ListT0 = NodeList<NodeT0>; // lower level of internal nodes or leafs | ||
1486 | |||
1487 | NodeT4& mRoot; | ||
1488 | ListT3 mList3; | ||
1489 | ListT2 mList2; | ||
1490 | ListT1 mList1; | ||
1491 | ListT0 mList0; | ||
1492 | }; // NodeManager<4> | ||
1493 | |||
1494 | |||
1495 | //////////////////////////////////////////// | ||
1496 | |||
1497 | |||
1498 | /// @private | ||
1499 | /// Template specialization of the DynamicNodeManager with no caching of nodes | ||
1500 | template<typename TreeOrLeafManagerT> | ||
1501 | class DynamicNodeManager<TreeOrLeafManagerT, 0> | ||
1502 | { | ||
1503 | public: | ||
1504 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1505 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1506 | static_assert(RootNodeType::LEVEL > 0, "expected instantiation of template specialization"); | ||
1507 | static const Index LEVELS = 0; | ||
1508 | |||
1509 | explicit DynamicNodeManager(TreeOrLeafManagerT& tree) : mRoot(tree.root()) { } | ||
1510 | |||
1511 | DynamicNodeManager(const DynamicNodeManager&) = delete; | ||
1512 | |||
1513 | /// @brief Return a reference to the root node. | ||
1514 | const RootNodeType& root() const { return mRoot; } | ||
1515 | |||
1516 | template<typename NodeOp> | ||
1517 | void foreachTopDown(const NodeOp& op, bool /*threaded*/=true, size_t /*grainSize*/=1) | ||
1518 | { | ||
1519 | // root | ||
1520 | if (!op(mRoot, /*index=*/0)) return; | ||
1521 | } | ||
1522 | |||
1523 | template<typename NodeOp> | ||
1524 | void reduceTopDown(NodeOp& op, bool /*threaded*/=true, size_t /*grainSize*/=1) | ||
1525 | { | ||
1526 | // root | ||
1527 | ✗ | if (!op(mRoot, /*index=*/0)) return; | |
1528 | } | ||
1529 | |||
1530 | protected: | ||
1531 | using NodeT1 = RootNodeType; | ||
1532 | |||
1533 | NodeT1& mRoot; | ||
1534 | };// DynamicNodeManager<0> class | ||
1535 | |||
1536 | |||
1537 | //////////////////////////////////////////// | ||
1538 | |||
1539 | |||
1540 | /// @private | ||
1541 | /// Template specialization of the DynamicNodeManager with one level of nodes | ||
1542 | template<typename TreeOrLeafManagerT> | ||
1543 | class DynamicNodeManager<TreeOrLeafManagerT, 1> | ||
1544 | { | ||
1545 | public: | ||
1546 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1547 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1548 | static_assert(RootNodeType::LEVEL > 0, "expected instantiation of template specialization"); | ||
1549 | static const Index LEVELS = 1; | ||
1550 | |||
1551 | ✗ | explicit DynamicNodeManager(TreeOrLeafManagerT& tree) : mRoot(tree.root()) { } | |
1552 | |||
1553 | DynamicNodeManager(const DynamicNodeManager&) = delete; | ||
1554 | |||
1555 | /// @brief Return a reference to the root node. | ||
1556 | const RootNodeType& root() const { return mRoot; } | ||
1557 | |||
1558 | template<typename NodeOp> | ||
1559 | void foreachTopDown(const NodeOp& op, bool threaded = true, | ||
1560 | size_t leafGrainSize=1, size_t /*nonLeafGrainSize*/ =1) | ||
1561 | { | ||
1562 | // root | ||
1563 | if (!op(mRoot, /*index=*/0)) return; | ||
1564 | // list0 | ||
1565 | if (!mList0.initRootChildren(mRoot)) return; | ||
1566 | ForeachFilterOp<NodeOp> nodeOp(op, mList0.nodeCount()); | ||
1567 | mList0.foreachWithIndex(nodeOp, threaded, leafGrainSize); | ||
1568 | } | ||
1569 | |||
1570 | template<typename NodeOp> | ||
1571 | ✗ | void reduceTopDown(NodeOp& op, bool threaded = true, | |
1572 | size_t leafGrainSize=1, size_t /*nonLeafGrainSize*/ =1) | ||
1573 | { | ||
1574 | // root | ||
1575 | ✗ | if (!op(mRoot, /*index=*/0)) return; | |
1576 | // list0 | ||
1577 | ✗ | if (!mList0.initRootChildren(mRoot)) return; | |
1578 | ✗ | ReduceFilterOp<NodeOp> nodeOp(op, mList0.nodeCount()); | |
1579 | ✗ | mList0.reduceWithIndex(nodeOp, threaded, leafGrainSize); | |
1580 | } | ||
1581 | |||
1582 | protected: | ||
1583 | using NodeT1 = RootNodeType; | ||
1584 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1585 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; | ||
1586 | using ListT0 = NodeList<NodeT0>; | ||
1587 | |||
1588 | NodeT1& mRoot; | ||
1589 | ListT0 mList0; | ||
1590 | };// DynamicNodeManager<1> class | ||
1591 | |||
1592 | |||
1593 | //////////////////////////////////////////// | ||
1594 | |||
1595 | |||
1596 | /// @private | ||
1597 | /// Template specialization of the DynamicNodeManager with two levels of nodes | ||
1598 | template<typename TreeOrLeafManagerT> | ||
1599 | class DynamicNodeManager<TreeOrLeafManagerT, 2> | ||
1600 | { | ||
1601 | public: | ||
1602 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1603 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1604 | static_assert(RootNodeType::LEVEL > 1, "expected instantiation of template specialization"); | ||
1605 | static const Index LEVELS = 2; | ||
1606 | |||
1607 |
6/46✓ Branch 1 taken 141 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 11 times.
✗ Branch 5 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 66 times.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 22 taken 30 times.
✗ Branch 23 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✓ Branch 40 taken 6 times.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
|
258 | explicit DynamicNodeManager(TreeOrLeafManagerT& tree) : mRoot(tree.root()) { } |
1608 | |||
1609 | DynamicNodeManager(const DynamicNodeManager&) = delete; | ||
1610 | |||
1611 | /// @brief Return a reference to the root node. | ||
1612 | const RootNodeType& root() const { return mRoot; } | ||
1613 | |||
1614 | template<typename NodeOp> | ||
1615 | 60 | void foreachTopDown(const NodeOp& op, bool threaded = true, | |
1616 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
1617 | { | ||
1618 | // root | ||
1619 |
1/2✓ Branch 1 taken 30 times.
✗ Branch 2 not taken.
|
120 | if (!op(mRoot, /*index=*/0)) return; |
1620 | // list1 | ||
1621 |
2/2✓ Branch 1 taken 8 times.
✓ Branch 2 taken 22 times.
|
60 | if (!mList1.initRootChildren(mRoot)) return; |
1622 | ForeachFilterOp<NodeOp> nodeOp(op, mList1.nodeCount()); | ||
1623 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
16 | mList1.foreachWithIndex(nodeOp, threaded, nonLeafGrainSize); |
1624 | // list0 | ||
1625 |
2/4✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8 times.
✗ Branch 4 not taken.
|
16 | if (!mList0.initNodeChildren(mList1, nodeOp, !threaded)) return; |
1626 | ✗ | mList0.foreachWithIndex(op, threaded, leafGrainSize); | |
1627 | } | ||
1628 | |||
1629 | template<typename NodeOp> | ||
1630 | 456 | void reduceTopDown(NodeOp& op, bool threaded = true, | |
1631 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
1632 | { | ||
1633 | // root | ||
1634 |
1/2✓ Branch 1 taken 228 times.
✗ Branch 2 not taken.
|
498 | if (!op(mRoot, /*index=*/0)) return; |
1635 | // list1 | ||
1636 |
2/2✓ Branch 1 taken 219 times.
✓ Branch 2 taken 9 times.
|
456 | if (!mList1.initRootChildren(mRoot)) return; |
1637 | 852 | ReduceFilterOp<NodeOp> nodeOp(op, mList1.nodeCount()); | |
1638 |
1/2✓ Branch 1 taken 219 times.
✗ Branch 2 not taken.
|
438 | mList1.reduceWithIndex(nodeOp, threaded, nonLeafGrainSize); |
1639 | // list0 | ||
1640 |
3/4✓ Branch 1 taken 219 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 12 times.
✓ Branch 4 taken 207 times.
|
438 | if (!mList0.initNodeChildren(mList1, nodeOp, !threaded)) return; |
1641 |
1/2✓ Branch 1 taken 207 times.
✗ Branch 2 not taken.
|
414 | mList0.reduceWithIndex(op, threaded, leafGrainSize); |
1642 | } | ||
1643 | |||
1644 | protected: | ||
1645 | using NodeT2 = RootNodeType; | ||
1646 | using NonConstNodeT1 = typename NodeT2::ChildNodeType; | ||
1647 | using NodeT1 = typename CopyConstness<RootNodeType, NonConstNodeT1>::Type; // upper level | ||
1648 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1649 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; // lower level | ||
1650 | |||
1651 | using ListT1 = NodeList<NodeT1>; // upper level | ||
1652 | using ListT0 = NodeList<NodeT0>; // lower level | ||
1653 | |||
1654 | NodeT2& mRoot; | ||
1655 | ListT1 mList1; | ||
1656 | ListT0 mList0; | ||
1657 | };// DynamicNodeManager<2> class | ||
1658 | |||
1659 | |||
1660 | //////////////////////////////////////////// | ||
1661 | |||
1662 | |||
1663 | /// @private | ||
1664 | /// Template specialization of the DynamicNodeManager with three levels of nodes | ||
1665 | template<typename TreeOrLeafManagerT> | ||
1666 | class DynamicNodeManager<TreeOrLeafManagerT, 3> | ||
1667 | { | ||
1668 | public: | ||
1669 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1670 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1671 | static_assert(RootNodeType::LEVEL > 2, "expected instantiation of template specialization"); | ||
1672 | static const Index LEVELS = 3; | ||
1673 | |||
1674 |
156/321✗ Branch 0 not taken.
✓ Branch 1 taken 20 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 102 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 9 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 5618 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 12 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 59 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 152 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 2 times.
✓ Branch 25 taken 10 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 21 times.
✓ Branch 29 taken 4 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✓ Branch 32 taken 1 times.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 5 times.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 6 times.
✓ Branch 38 taken 2 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 2 times.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✓ Branch 43 taken 5126 times.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✓ Branch 46 taken 73 times.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✓ Branch 52 taken 21 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 4 times.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✓ Branch 64 taken 20 times.
✓ Branch 65 taken 4 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✓ Branch 68 taken 8 times.
✓ Branch 69 taken 4 times.
✓ Branch 70 taken 14 times.
✗ Branch 71 not taken.
✓ Branch 72 taken 1 times.
✓ Branch 73 taken 2 times.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 2 times.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 8 times.
✗ Branch 86 not taken.
✓ Branch 88 taken 1 times.
✗ Branch 89 not taken.
✓ Branch 91 taken 1 times.
✗ Branch 92 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 97 taken 1 times.
✗ Branch 98 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✓ Branch 103 taken 1 times.
✗ Branch 104 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 110 not taken.
✓ Branch 112 taken 1 times.
✗ Branch 113 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 116 not taken.
✓ Branch 118 taken 1 times.
✗ Branch 119 not taken.
✓ Branch 121 taken 1 times.
✗ Branch 122 not taken.
✓ Branch 124 taken 1 times.
✗ Branch 125 not taken.
✓ Branch 127 taken 1 times.
✗ Branch 128 not taken.
✓ Branch 130 taken 1 times.
✗ Branch 131 not taken.
✓ Branch 133 taken 1 times.
✗ Branch 134 not taken.
✓ Branch 136 taken 1 times.
✗ Branch 137 not taken.
✓ Branch 139 taken 1 times.
✗ Branch 140 not taken.
✓ Branch 142 taken 1 times.
✗ Branch 143 not taken.
✓ Branch 145 taken 1 times.
✗ Branch 146 not taken.
✓ Branch 148 taken 1 times.
✗ Branch 149 not taken.
✓ Branch 151 taken 1 times.
✗ Branch 152 not taken.
✓ Branch 154 taken 1 times.
✗ Branch 155 not taken.
✓ Branch 157 taken 1 times.
✗ Branch 158 not taken.
✓ Branch 160 taken 1 times.
✗ Branch 161 not taken.
✓ Branch 163 taken 1 times.
✗ Branch 164 not taken.
✓ Branch 166 taken 1 times.
✗ Branch 167 not taken.
✓ Branch 169 taken 1 times.
✗ Branch 170 not taken.
✓ Branch 172 taken 1 times.
✗ Branch 173 not taken.
✓ Branch 175 taken 1 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 1 times.
✗ Branch 179 not taken.
✓ Branch 181 taken 1 times.
✗ Branch 182 not taken.
✓ Branch 184 taken 1 times.
✗ Branch 185 not taken.
✓ Branch 187 taken 1 times.
✗ Branch 188 not taken.
✓ Branch 190 taken 1 times.
✗ Branch 191 not taken.
✓ Branch 193 taken 1 times.
✗ Branch 194 not taken.
✓ Branch 196 taken 1 times.
✗ Branch 197 not taken.
✓ Branch 199 taken 1 times.
✗ Branch 200 not taken.
✓ Branch 202 taken 1 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 1 times.
✗ Branch 206 not taken.
✓ Branch 208 taken 1 times.
✗ Branch 209 not taken.
✓ Branch 211 taken 1 times.
✗ Branch 212 not taken.
✓ Branch 214 taken 1 times.
✗ Branch 215 not taken.
✓ Branch 217 taken 1 times.
✗ Branch 218 not taken.
✓ Branch 220 taken 1 times.
✗ Branch 221 not taken.
✓ Branch 223 taken 1 times.
✗ Branch 224 not taken.
✓ Branch 226 taken 1 times.
✗ Branch 227 not taken.
✓ Branch 229 taken 1 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 1 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 1 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 1 times.
✗ Branch 239 not taken.
✓ Branch 241 taken 1 times.
✗ Branch 242 not taken.
✓ Branch 244 taken 1 times.
✗ Branch 245 not taken.
✓ Branch 247 taken 1 times.
✗ Branch 248 not taken.
✓ Branch 250 taken 1 times.
✗ Branch 251 not taken.
✓ Branch 253 taken 1 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 1 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 1 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 1 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 1 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 1 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 1 times.
✗ Branch 272 not taken.
✓ Branch 274 taken 1 times.
✗ Branch 275 not taken.
✓ Branch 277 taken 1 times.
✗ Branch 278 not taken.
✓ Branch 280 taken 1 times.
✗ Branch 281 not taken.
✓ Branch 283 taken 1 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 1 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 1 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 1 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 1 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 1 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 1 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 1 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 1 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 1 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 1 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 1 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 1 times.
✗ Branch 320 not taken.
✓ Branch 322 taken 1 times.
✗ Branch 323 not taken.
✓ Branch 325 taken 1 times.
✗ Branch 326 not taken.
✓ Branch 328 taken 1 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 1 times.
✗ Branch 332 not taken.
✓ Branch 334 taken 1 times.
✗ Branch 335 not taken.
✓ Branch 337 taken 1 times.
✗ Branch 338 not taken.
✓ Branch 340 taken 1 times.
✗ Branch 341 not taken.
✓ Branch 343 taken 1 times.
✗ Branch 344 not taken.
✓ Branch 346 taken 1 times.
✗ Branch 347 not taken.
✓ Branch 349 taken 1 times.
✗ Branch 350 not taken.
✓ Branch 352 taken 1 times.
✗ Branch 353 not taken.
✓ Branch 355 taken 1 times.
✗ Branch 356 not taken.
✓ Branch 358 taken 1 times.
✗ Branch 359 not taken.
✓ Branch 361 taken 1 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 1 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 1 times.
✗ Branch 368 not taken.
✓ Branch 370 taken 1 times.
✗ Branch 371 not taken.
✓ Branch 373 taken 1 times.
✗ Branch 374 not taken.
✓ Branch 376 taken 1 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 1 times.
✗ Branch 380 not taken.
✓ Branch 382 taken 1 times.
✗ Branch 383 not taken.
✓ Branch 385 taken 1 times.
✗ Branch 386 not taken.
✓ Branch 388 taken 1 times.
✗ Branch 389 not taken.
✓ Branch 391 taken 1 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 1 times.
✗ Branch 395 not taken.
✓ Branch 397 taken 1 times.
✗ Branch 398 not taken.
✓ Branch 400 taken 1 times.
✗ Branch 401 not taken.
✓ Branch 403 taken 1 times.
✗ Branch 404 not taken.
✓ Branch 406 taken 1 times.
✗ Branch 407 not taken.
✓ Branch 409 taken 1 times.
✗ Branch 410 not taken.
✓ Branch 412 taken 1 times.
✗ Branch 413 not taken.
✓ Branch 415 taken 1 times.
✗ Branch 416 not taken.
✓ Branch 418 taken 1 times.
✗ Branch 419 not taken.
✓ Branch 421 taken 1 times.
✗ Branch 422 not taken.
✓ Branch 424 taken 1 times.
✗ Branch 425 not taken.
✓ Branch 427 taken 1 times.
✗ Branch 428 not taken.
✓ Branch 430 taken 1 times.
✗ Branch 431 not taken.
✓ Branch 433 taken 1 times.
✗ Branch 434 not taken.
✓ Branch 436 taken 1 times.
✗ Branch 437 not taken.
✓ Branch 439 taken 1 times.
✗ Branch 440 not taken.
|
11441 | explicit DynamicNodeManager(TreeOrLeafManagerT& tree) : mRoot(tree.root()) { } |
1675 | |||
1676 | DynamicNodeManager(const DynamicNodeManager&) = delete; | ||
1677 | |||
1678 | /// @brief Return a reference to the root node. | ||
1679 | const RootNodeType& root() const { return mRoot; } | ||
1680 | |||
1681 | template<typename NodeOp> | ||
1682 | 361 | void foreachTopDown(const NodeOp& op, bool threaded = true, | |
1683 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
1684 | { | ||
1685 | // root | ||
1686 |
2/2✓ Branch 1 taken 70 times.
✓ Branch 2 taken 91 times.
|
440 | if (!op(mRoot, /*index=*/0)) return; |
1687 | // list2 | ||
1688 |
2/2✓ Branch 1 taken 66 times.
✓ Branch 2 taken 6 times.
|
179 | if (!mList2.initRootChildren(mRoot)) return; |
1689 | ForeachFilterOp<NodeOp> nodeOp2(op, mList2.nodeCount()); | ||
1690 |
1/2✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
|
157 | mList2.foreachWithIndex(nodeOp2, threaded, nonLeafGrainSize); |
1691 | // list1 | ||
1692 |
3/4✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 47 times.
✓ Branch 4 taken 19 times.
|
157 | if (!mList1.initNodeChildren(mList2, nodeOp2, !threaded)) return; |
1693 | ForeachFilterOp<NodeOp> nodeOp1(op, mList1.nodeCount()); | ||
1694 |
1/2✓ Branch 1 taken 47 times.
✗ Branch 2 not taken.
|
119 | mList1.foreachWithIndex(nodeOp1, threaded, nonLeafGrainSize); |
1695 | // list0 | ||
1696 |
3/4✓ Branch 1 taken 47 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 10 times.
✓ Branch 4 taken 37 times.
|
119 | if (!mList0.initNodeChildren(mList1, nodeOp1, !threaded)) return; |
1697 |
1/2✓ Branch 1 taken 37 times.
✗ Branch 2 not taken.
|
98 | mList0.foreachWithIndex(op, threaded, leafGrainSize); |
1698 | } | ||
1699 | |||
1700 | template<typename NodeOp> | ||
1701 | 11238 | void reduceTopDown(NodeOp& op, bool threaded = true, | |
1702 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
1703 | { | ||
1704 | // root | ||
1705 |
0/2✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
11163 | if (!op(mRoot, /*index=*/0)) return; |
1706 | // list2 | ||
1707 |
0/2✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
11238 | if (!mList2.initRootChildren(mRoot)) return; |
1708 | 22326 | ReduceFilterOp<NodeOp> nodeOp2(op, mList2.nodeCount()); | |
1709 |
0/2✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
11194 | mList2.reduceWithIndex(nodeOp2, threaded, nonLeafGrainSize); |
1710 | // list1 | ||
1711 |
0/4✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
11242 | if (!mList1.initNodeChildren(mList2, nodeOp2, !threaded)) return; |
1712 |
0/2✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
22312 | ReduceFilterOp<NodeOp> nodeOp1(op, mList1.nodeCount()); |
1713 |
0/2✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
11180 | mList1.reduceWithIndex(nodeOp1, threaded, nonLeafGrainSize); |
1714 | // list0 | ||
1715 |
0/4✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
|
11180 | if (!mList0.initNodeChildren(mList1, nodeOp1, !threaded)) return; |
1716 |
0/2✗ Branch 1 not taken.
✗ Branch 2 not taken.
|
11132 | mList0.reduceWithIndex(op, threaded, leafGrainSize); |
1717 | } | ||
1718 | |||
1719 | protected: | ||
1720 | using NodeT3 = RootNodeType; | ||
1721 | using NonConstNodeT2 = typename NodeT3::ChildNodeType; | ||
1722 | using NodeT2 = typename CopyConstness<RootNodeType, NonConstNodeT2>::Type; // upper level | ||
1723 | using NonConstNodeT1 = typename NodeT2::ChildNodeType; | ||
1724 | using NodeT1 = typename CopyConstness<RootNodeType, NonConstNodeT1>::Type; // mid level | ||
1725 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1726 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; // lower level | ||
1727 | |||
1728 | using ListT2 = NodeList<NodeT2>; // upper level of internal nodes | ||
1729 | using ListT1 = NodeList<NodeT1>; // lower level of internal nodes | ||
1730 | using ListT0 = NodeList<NodeT0>; // lower level of internal nodes or leafs | ||
1731 | |||
1732 | NodeT3& mRoot; | ||
1733 | ListT2 mList2; | ||
1734 | ListT1 mList1; | ||
1735 | ListT0 mList0; | ||
1736 | };// DynamicNodeManager<3> class | ||
1737 | |||
1738 | |||
1739 | //////////////////////////////////////////// | ||
1740 | |||
1741 | |||
1742 | /// @private | ||
1743 | /// Template specialization of the DynamicNodeManager with four levels of nodes | ||
1744 | template<typename TreeOrLeafManagerT> | ||
1745 | class DynamicNodeManager<TreeOrLeafManagerT, 4> | ||
1746 | { | ||
1747 | public: | ||
1748 | using NonConstRootNodeType = typename TreeOrLeafManagerT::RootNodeType; | ||
1749 | using RootNodeType = typename CopyConstness<TreeOrLeafManagerT, NonConstRootNodeType>::Type; | ||
1750 | static_assert(RootNodeType::LEVEL > 3, "expected instantiation of template specialization"); | ||
1751 | static const Index LEVELS = 4; | ||
1752 | |||
1753 |
2/8✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✓ Branch 10 taken 2 times.
✗ Branch 11 not taken.
|
4 | explicit DynamicNodeManager(TreeOrLeafManagerT& tree) : mRoot(tree.root()) { } |
1754 | |||
1755 | DynamicNodeManager(const DynamicNodeManager&) = delete; | ||
1756 | |||
1757 | /// @brief Return a reference to the root node. | ||
1758 | const RootNodeType& root() const { return mRoot; } | ||
1759 | |||
1760 | template<typename NodeOp> | ||
1761 | void foreachTopDown(const NodeOp& op, bool threaded = true, | ||
1762 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
1763 | { | ||
1764 | // root | ||
1765 | if (!op(mRoot, /*index=*/0)) return; | ||
1766 | // list3 | ||
1767 | if (!mList3.initRootChildren(mRoot)) return; | ||
1768 | ForeachFilterOp<NodeOp> nodeOp3(op, mList3.nodeCount()); | ||
1769 | mList3.foreachWithIndex(nodeOp3, threaded, nonLeafGrainSize); | ||
1770 | // list2 | ||
1771 | if (!mList2.initNodeChildren(mList3, nodeOp3, !threaded)) return; | ||
1772 | ForeachFilterOp<NodeOp> nodeOp2(op, mList2.nodeCount()); | ||
1773 | mList2.foreachWithIndex(nodeOp2, threaded, nonLeafGrainSize); | ||
1774 | // list1 | ||
1775 | if (!mList1.initNodeChildren(mList2, nodeOp2, !threaded)) return; | ||
1776 | ForeachFilterOp<NodeOp> nodeOp1(op, mList1.nodeCount()); | ||
1777 | mList1.foreachWithIndex(nodeOp1, threaded, nonLeafGrainSize); | ||
1778 | // list0 | ||
1779 | if (!mList0.initNodeChildren(mList1, nodeOp1, !threaded)) return; | ||
1780 | mList0.foreachWithIndex(op, threaded, leafGrainSize); | ||
1781 | } | ||
1782 | |||
1783 | template<typename NodeOp> | ||
1784 | 4 | void reduceTopDown(NodeOp& op, bool threaded = true, | |
1785 | size_t leafGrainSize=1, size_t nonLeafGrainSize=1) | ||
1786 | { | ||
1787 | // root | ||
1788 | 2 | if (!op(mRoot, /*index=*/0)) return; | |
1789 | // list3 | ||
1790 | 4 | if (!mList3.initRootChildren(mRoot)) return; | |
1791 | 8 | ReduceFilterOp<NodeOp> nodeOp3(op, mList3.nodeCount()); | |
1792 | 4 | mList3.reduceWithIndex(nodeOp3, threaded, nonLeafGrainSize); | |
1793 | // list2 | ||
1794 | 4 | if (!mList2.initNodeChildren(mList3, nodeOp3, !threaded)) return; | |
1795 | 8 | ReduceFilterOp<NodeOp> nodeOp2(op, mList2.nodeCount()); | |
1796 | 4 | mList2.reduceWithIndex(nodeOp2, threaded, nonLeafGrainSize); | |
1797 | // list1 | ||
1798 | 4 | if (!mList1.initNodeChildren(mList2, nodeOp2, !threaded)) return; | |
1799 | 8 | ReduceFilterOp<NodeOp> nodeOp1(op, mList1.nodeCount()); | |
1800 | 4 | mList1.reduceWithIndex(nodeOp1, threaded, nonLeafGrainSize); | |
1801 | // list0 | ||
1802 | 4 | if (!mList0.initNodeChildren(mList1, nodeOp1, !threaded)) return; | |
1803 | 4 | mList0.reduceWithIndex(op, threaded, leafGrainSize); | |
1804 | } | ||
1805 | |||
1806 | protected: | ||
1807 | using NodeT4 = RootNodeType; | ||
1808 | using NonConstNodeT3 = typename NodeT4::ChildNodeType; | ||
1809 | using NodeT3 = typename CopyConstness<RootNodeType, NonConstNodeT3>::Type; // upper level | ||
1810 | using NonConstNodeT2 = typename NodeT3::ChildNodeType; | ||
1811 | using NodeT2 = typename CopyConstness<RootNodeType, NonConstNodeT2>::Type; // upper mid level | ||
1812 | using NonConstNodeT1 = typename NodeT2::ChildNodeType; | ||
1813 | using NodeT1 = typename CopyConstness<RootNodeType, NonConstNodeT1>::Type; // lower mid level | ||
1814 | using NonConstNodeT0 = typename NodeT1::ChildNodeType; | ||
1815 | using NodeT0 = typename CopyConstness<RootNodeType, NonConstNodeT0>::Type; // lower level | ||
1816 | |||
1817 | using ListT3 = NodeList<NodeT3>; // upper level of internal nodes | ||
1818 | using ListT2 = NodeList<NodeT2>; // upper mid level of internal nodes | ||
1819 | using ListT1 = NodeList<NodeT1>; // lower mid level of internal nodes | ||
1820 | using ListT0 = NodeList<NodeT0>; // lower level of internal nodes or leafs | ||
1821 | |||
1822 | NodeT4& mRoot; | ||
1823 | ListT3 mList3; | ||
1824 | ListT2 mList2; | ||
1825 | ListT1 mList1; | ||
1826 | ListT0 mList0; | ||
1827 | };// DynamicNodeManager<4> class | ||
1828 | |||
1829 | |||
1830 | } // namespace tree | ||
1831 | } // namespace OPENVDB_VERSION_NAME | ||
1832 | } // namespace openvdb | ||
1833 | |||
1834 | #endif // OPENVDB_TREE_NODEMANAGER_HAS_BEEN_INCLUDED | ||
1835 |