GCC Code Coverage Report


Directory: ./
File: openvdb/openvdb/math/Vec3.h
Date: 2022-07-25 17:40:05
Exec Total Coverage
Lines: 131 145 90.3%
Functions: 18 22 81.8%
Branches: 1758 7234 24.3%

Line Branch Exec Source
1 // Copyright Contributors to the OpenVDB Project
2 // SPDX-License-Identifier: MPL-2.0
3
4 #ifndef OPENVDB_MATH_VEC3_HAS_BEEN_INCLUDED
5 #define OPENVDB_MATH_VEC3_HAS_BEEN_INCLUDED
6
7 #include <openvdb/Exceptions.h>
8 #include "Math.h"
9 #include "Tuple.h"
10 #include <algorithm>
11 #include <cmath>
12 #include <type_traits>
13
14
15 namespace openvdb {
16 OPENVDB_USE_VERSION_NAMESPACE
17 namespace OPENVDB_VERSION_NAME {
18 namespace math {
19
20 template<typename T> class Mat3;
21
22 template<typename T>
23 class Vec3: public Tuple<3, T>
24 {
25 public:
26 using value_type = T;
27 using ValueType = T;
28
29 /// Trivial constructor, the vector is NOT initialized
30 #if OPENVDB_ABI_VERSION_NUMBER >= 8
31 /// @note destructor, copy constructor, assignment operator and
32 /// move constructor are left to be defined by the compiler (default)
33 Vec3() = default;
34 #else
35 Vec3() {}
36 #endif
37
38 /// @brief Construct a vector all of whose components have the given value.
39
74/129
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 14 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 7 times.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 2 times.
✓ Branch 10 taken 3 times.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 19 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 3 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✓ Branch 22 taken 2 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
✓ Branch 28 taken 1 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 131 times.
✗ Branch 38 not taken.
✓ Branch 39 taken 1 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✓ Branch 44 taken 3 times.
✓ Branch 45 taken 4 times.
✓ Branch 46 taken 1 times.
✓ Branch 47 taken 7 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✓ Branch 50 taken 6 times.
✓ Branch 51 taken 1 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 1 times.
✓ Branch 54 taken 1 times.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 57 taken 1 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 1 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 4 times.
✓ Branch 62 taken 3 times.
✓ Branch 63 taken 1 times.
✓ Branch 64 taken 5 times.
✓ Branch 65 taken 9051553 times.
✓ Branch 66 taken 3017224 times.
✓ Branch 67 taken 1 times.
✓ Branch 68 taken 5 times.
✓ Branch 69 taken 1 times.
✓ Branch 70 taken 5 times.
✓ Branch 71 taken 14774609 times.
✓ Branch 72 taken 6690675 times.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 1 times.
✗ Branch 76 not taken.
✓ Branch 77 taken 1 times.
✗ Branch 78 not taken.
✓ Branch 79 taken 2 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 1 times.
✓ Branch 82 taken 1 times.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 2 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 1 times.
✓ Branch 88 taken 1 times.
✓ Branch 89 taken 1 times.
✗ Branch 90 not taken.
✓ Branch 91 taken 2 times.
✗ Branch 92 not taken.
✓ Branch 93 taken 1 times.
✓ Branch 94 taken 1 times.
✓ Branch 95 taken 1 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✗ Branch 98 not taken.
✓ Branch 99 taken 1 times.
✓ Branch 100 taken 1 times.
✓ Branch 101 taken 1 times.
✗ Branch 102 not taken.
✓ Branch 103 taken 2 times.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✓ Branch 106 taken 1 times.
✗ 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.
35413998 explicit Vec3(T val) { this->mm[0] = this->mm[1] = this->mm[2] = val; }
40
41 /// Constructor with three arguments, e.g. Vec3d v(1,2,3);
42
1/2
✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
16454174282 Vec3(T x, T y, T z)
43 {
44 16454174337 this->mm[0] = x;
45 16454174337 this->mm[1] = y;
46
496/911
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 4737737 times.
✓ Branch 2 taken 20025 times.
✓ Branch 3 taken 20 times.
✓ Branch 4 taken 613046 times.
✓ Branch 5 taken 1262153 times.
✓ Branch 6 taken 8311 times.
✓ Branch 7 taken 278338 times.
✓ Branch 8 taken 11 times.
✓ Branch 9 taken 28679 times.
✓ Branch 10 taken 646545 times.
✓ Branch 11 taken 1000008 times.
✓ Branch 12 taken 21118450 times.
✓ Branch 13 taken 300054 times.
✓ Branch 14 taken 59547 times.
✓ Branch 15 taken 9 times.
✓ Branch 16 taken 638544 times.
✓ Branch 17 taken 9 times.
✓ Branch 18 taken 9 times.
✓ Branch 19 taken 270157 times.
✓ Branch 20 taken 8009 times.
✓ Branch 21 taken 64006 times.
✓ Branch 22 taken 8014 times.
✓ Branch 23 taken 8005 times.
✓ Branch 24 taken 64009 times.
✓ Branch 25 taken 8017 times.
✓ Branch 26 taken 8009 times.
✓ Branch 27 taken 4 times.
✓ Branch 28 taken 8015 times.
✓ Branch 29 taken 172738 times.
✓ Branch 30 taken 104839 times.
✓ Branch 31 taken 19 times.
✓ Branch 32 taken 4 times.
✓ Branch 33 taken 3 times.
✓ Branch 34 taken 11 times.
✓ Branch 35 taken 6 times.
✓ Branch 36 taken 22664 times.
✓ Branch 37 taken 1048586 times.
✓ Branch 38 taken 5 times.
✓ Branch 39 taken 8001 times.
✓ Branch 40 taken 9 times.
✓ Branch 41 taken 2528 times.
✓ Branch 42 taken 8003 times.
✓ Branch 43 taken 17 times.
✓ Branch 44 taken 1788 times.
✓ Branch 45 taken 48002 times.
✓ Branch 46 taken 48 times.
✓ Branch 47 taken 2925 times.
✓ Branch 48 taken 8011 times.
✓ Branch 49 taken 4 times.
✓ Branch 50 taken 1033225 times.
✓ Branch 51 taken 8003 times.
✓ Branch 52 taken 3 times.
✓ Branch 53 taken 3 times.
✓ Branch 54 taken 11237 times.
✓ Branch 55 taken 582235 times.
✓ Branch 56 taken 110594 times.
✓ Branch 57 taken 9457 times.
✓ Branch 58 taken 3 times.
✓ Branch 59 taken 110594 times.
✓ Branch 60 taken 297540 times.
✓ Branch 61 taken 3 times.
✓ Branch 62 taken 110595 times.
✓ Branch 63 taken 487 times.
✓ Branch 64 taken 652970 times.
✓ Branch 65 taken 2 times.
✓ Branch 66 taken 741 times.
✓ Branch 67 taken 1635455 times.
✓ Branch 68 taken 2 times.
✓ Branch 69 taken 2 times.
✓ Branch 70 taken 4 times.
✓ Branch 71 taken 2 times.
✓ Branch 72 taken 5006 times.
✓ Branch 73 taken 5 times.
✓ Branch 74 taken 2 times.
✓ Branch 75 taken 82519 times.
✓ Branch 76 taken 6 times.
✓ Branch 77 taken 1 times.
✓ Branch 78 taken 621 times.
✓ Branch 79 taken 6 times.
✓ Branch 80 taken 1 times.
✓ Branch 81 taken 3880 times.
✓ Branch 82 taken 6 times.
✓ Branch 83 taken 1 times.
✗ Branch 84 not taken.
✓ Branch 85 taken 7203 times.
✓ Branch 86 taken 3 times.
✗ Branch 87 not taken.
✓ Branch 88 taken 311216 times.
✗ Branch 89 not taken.
✓ Branch 90 taken 294912 times.
✓ Branch 91 taken 1943 times.
✓ Branch 92 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 3 times.
✓ Branch 95 taken 31257 times.
✗ Branch 96 not taken.
✓ Branch 97 taken 2 times.
✓ Branch 98 taken 4 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 2 times.
✓ Branch 101 taken 2 times.
✓ Branch 102 taken 1 times.
✓ Branch 103 taken 3 times.
✓ Branch 104 taken 3 times.
✓ Branch 105 taken 1 times.
✓ Branch 106 taken 45086 times.
✗ Branch 107 not taken.
✓ Branch 108 taken 15626 times.
✓ Branch 109 taken 3 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 1 times.
✓ Branch 112 taken 3 times.
✓ Branch 113 taken 1 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 2 times.
✓ Branch 116 taken 1 times.
✓ Branch 117 taken 8 times.
✓ Branch 118 taken 8000002 times.
✓ Branch 119 taken 1 times.
✗ Branch 120 not taken.
✓ Branch 121 taken 2 times.
✓ Branch 122 taken 2 times.
✗ Branch 123 not taken.
✓ Branch 124 taken 2 times.
✓ Branch 125 taken 9261 times.
✓ Branch 126 taken 1 times.
✓ Branch 127 taken 2 times.
✓ Branch 128 taken 1 times.
✓ Branch 129 taken 1 times.
✓ Branch 130 taken 2 times.
✓ Branch 131 taken 1 times.
✗ Branch 132 not taken.
✓ Branch 133 taken 2 times.
✓ Branch 134 taken 2 times.
✗ Branch 135 not taken.
✓ Branch 136 taken 2 times.
✓ Branch 137 taken 1 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 3 times.
✓ Branch 140 taken 1 times.
✗ Branch 141 not taken.
✓ Branch 142 taken 3 times.
✓ Branch 143 taken 1 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 3 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 1 times.
✓ Branch 148 taken 45085 times.
✗ Branch 149 not taken.
✓ Branch 150 taken 6 times.
✓ Branch 151 taken 2 times.
✓ Branch 152 taken 1 times.
✓ Branch 153 taken 1 times.
✓ Branch 154 taken 3 times.
✗ Branch 155 not taken.
✓ Branch 156 taken 1 times.
✓ Branch 157 taken 1 times.
✗ Branch 158 not taken.
✓ Branch 159 taken 1 times.
✓ Branch 160 taken 1 times.
✗ Branch 161 not taken.
✓ Branch 162 taken 1 times.
✓ Branch 163 taken 1 times.
✗ Branch 164 not taken.
✓ Branch 165 taken 1 times.
✓ Branch 166 taken 1 times.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✓ Branch 169 taken 1 times.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✓ Branch 172 taken 1 times.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✓ Branch 175 taken 1 times.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✓ Branch 178 taken 1 times.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✓ Branch 181 taken 1 times.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✓ Branch 184 taken 1 times.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✓ Branch 187 taken 1 times.
✗ Branch 188 not taken.
✗ Branch 189 not taken.
✓ Branch 190 taken 1 times.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✓ Branch 193 taken 1 times.
✗ Branch 194 not taken.
✗ Branch 195 not taken.
✓ Branch 196 taken 1 times.
✗ Branch 197 not taken.
✗ Branch 198 not taken.
✓ Branch 199 taken 1 times.
✗ Branch 200 not taken.
✗ Branch 201 not taken.
✓ Branch 202 taken 1 times.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✓ Branch 205 taken 1 times.
✗ Branch 206 not taken.
✗ Branch 207 not taken.
✓ Branch 208 taken 1 times.
✗ Branch 209 not taken.
✗ Branch 210 not taken.
✓ Branch 211 taken 1 times.
✗ Branch 212 not taken.
✗ Branch 213 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 2 times.
✗ Branch 284 not taken.
✓ Branch 286 taken 2 times.
✗ Branch 287 not taken.
✓ Branch 289 taken 2 times.
✗ Branch 290 not taken.
✓ Branch 292 taken 2 times.
✗ Branch 293 not taken.
✓ Branch 295 taken 2 times.
✗ Branch 296 not taken.
✓ Branch 298 taken 2 times.
✗ Branch 299 not taken.
✓ Branch 301 taken 2 times.
✗ Branch 302 not taken.
✓ Branch 304 taken 2 times.
✗ Branch 305 not taken.
✓ Branch 307 taken 10 times.
✗ Branch 308 not taken.
✓ Branch 310 taken 10 times.
✗ Branch 311 not taken.
✓ Branch 313 taken 10 times.
✗ Branch 314 not taken.
✓ Branch 316 taken 10 times.
✗ Branch 317 not taken.
✓ Branch 319 taken 10 times.
✗ Branch 320 not taken.
✓ Branch 322 taken 10 times.
✗ Branch 323 not taken.
✓ Branch 325 taken 10 times.
✗ Branch 326 not taken.
✓ Branch 328 taken 10 times.
✗ Branch 329 not taken.
✓ Branch 331 taken 2 times.
✗ Branch 332 not taken.
✓ Branch 334 taken 2 times.
✗ Branch 335 not taken.
✓ Branch 337 taken 2 times.
✗ Branch 338 not taken.
✓ Branch 340 taken 2 times.
✗ Branch 341 not taken.
✓ Branch 343 taken 2 times.
✗ Branch 344 not taken.
✓ Branch 346 taken 2 times.
✗ Branch 347 not taken.
✓ Branch 349 taken 2 times.
✗ Branch 350 not taken.
✓ Branch 352 taken 2 times.
✗ Branch 353 not taken.
✓ Branch 355 taken 2 times.
✗ Branch 356 not taken.
✓ Branch 358 taken 2 times.
✗ Branch 359 not taken.
✓ Branch 361 taken 2 times.
✗ Branch 362 not taken.
✓ Branch 364 taken 2 times.
✗ Branch 365 not taken.
✓ Branch 367 taken 2 times.
✗ Branch 368 not taken.
✓ Branch 370 taken 2 times.
✗ Branch 371 not taken.
✓ Branch 373 taken 3 times.
✗ Branch 374 not taken.
✓ Branch 376 taken 3 times.
✗ Branch 377 not taken.
✓ Branch 379 taken 3 times.
✗ Branch 380 not taken.
✓ Branch 382 taken 3 times.
✗ Branch 383 not taken.
✓ Branch 385 taken 3 times.
✗ Branch 386 not taken.
✓ Branch 388 taken 3 times.
✗ Branch 389 not taken.
✓ Branch 391 taken 3 times.
✗ Branch 392 not taken.
✓ Branch 394 taken 3 times.
✗ Branch 395 not taken.
✓ Branch 397 taken 3 times.
✗ Branch 398 not taken.
✓ Branch 400 taken 3 times.
✗ Branch 401 not taken.
✓ Branch 403 taken 3 times.
✗ Branch 404 not taken.
✓ Branch 406 taken 3 times.
✗ Branch 407 not taken.
✓ Branch 409 taken 3 times.
✗ Branch 410 not taken.
✓ Branch 412 taken 3 times.
✗ Branch 413 not taken.
✓ Branch 415 taken 3 times.
✗ Branch 416 not taken.
✓ Branch 418 taken 3 times.
✗ Branch 419 not taken.
✓ Branch 421 taken 3 times.
✗ Branch 422 not taken.
✓ Branch 424 taken 3 times.
✗ Branch 425 not taken.
✓ Branch 427 taken 3 times.
✗ Branch 428 not taken.
✓ Branch 430 taken 3 times.
✗ Branch 431 not taken.
✓ Branch 433 taken 3 times.
✗ Branch 434 not taken.
✓ Branch 436 taken 3 times.
✗ Branch 437 not taken.
✓ Branch 439 taken 3 times.
✗ Branch 440 not taken.
✓ Branch 442 taken 3 times.
✗ Branch 443 not taken.
✓ Branch 445 taken 3 times.
✗ Branch 446 not taken.
✓ Branch 448 taken 3 times.
✗ Branch 449 not taken.
✓ Branch 451 taken 3 times.
✗ Branch 452 not taken.
✓ Branch 454 taken 3 times.
✗ Branch 455 not taken.
✓ Branch 457 taken 3 times.
✗ Branch 458 not taken.
✓ Branch 460 taken 3 times.
✗ Branch 461 not taken.
✓ Branch 463 taken 3 times.
✗ Branch 464 not taken.
✓ Branch 466 taken 3 times.
✗ Branch 467 not taken.
✓ Branch 469 taken 2 times.
✗ Branch 470 not taken.
✓ Branch 472 taken 2 times.
✗ Branch 473 not taken.
✓ Branch 475 taken 2 times.
✗ Branch 476 not taken.
✓ Branch 478 taken 2 times.
✗ Branch 479 not taken.
✓ Branch 481 taken 2 times.
✗ Branch 482 not taken.
✓ Branch 484 taken 2 times.
✗ Branch 485 not taken.
✓ Branch 487 taken 2 times.
✗ Branch 488 not taken.
✓ Branch 490 taken 2 times.
✗ Branch 491 not taken.
✓ Branch 493 taken 2 times.
✗ Branch 494 not taken.
✓ Branch 496 taken 2 times.
✗ Branch 497 not taken.
✓ Branch 499 taken 1 times.
✓ Branch 500 taken 1 times.
✗ Branch 501 not taken.
✓ Branch 502 taken 1 times.
✓ Branch 503 taken 1 times.
✗ Branch 504 not taken.
✓ Branch 505 taken 1 times.
✓ Branch 506 taken 1 times.
✗ Branch 507 not taken.
✓ Branch 508 taken 1 times.
✓ Branch 509 taken 1 times.
✗ Branch 510 not taken.
✓ Branch 511 taken 1 times.
✓ Branch 512 taken 1 times.
✗ Branch 513 not taken.
✓ Branch 514 taken 1 times.
✓ Branch 515 taken 1 times.
✗ Branch 516 not taken.
✓ Branch 517 taken 1 times.
✓ Branch 518 taken 1 times.
✗ Branch 519 not taken.
✓ Branch 520 taken 1 times.
✓ Branch 521 taken 1 times.
✗ Branch 522 not taken.
✓ Branch 523 taken 1 times.
✓ Branch 524 taken 1 times.
✗ Branch 525 not taken.
✓ Branch 526 taken 1 times.
✓ Branch 527 taken 1 times.
✗ Branch 528 not taken.
✓ Branch 529 taken 1 times.
✓ Branch 530 taken 1 times.
✗ Branch 531 not taken.
✓ Branch 532 taken 1 times.
✓ Branch 533 taken 1 times.
✗ Branch 534 not taken.
✓ Branch 535 taken 1 times.
✓ Branch 536 taken 1 times.
✗ Branch 537 not taken.
✓ Branch 538 taken 1 times.
✓ Branch 539 taken 1 times.
✗ Branch 540 not taken.
✓ Branch 541 taken 1 times.
✓ Branch 542 taken 1 times.
✗ Branch 543 not taken.
✓ Branch 544 taken 1 times.
✓ Branch 545 taken 1 times.
✗ Branch 546 not taken.
✓ Branch 547 taken 1 times.
✓ Branch 548 taken 1 times.
✗ Branch 549 not taken.
✓ Branch 550 taken 1 times.
✓ Branch 551 taken 1 times.
✗ Branch 552 not taken.
✓ Branch 553 taken 1 times.
✓ Branch 554 taken 1 times.
✗ Branch 555 not taken.
✓ Branch 556 taken 1 times.
✓ Branch 557 taken 1 times.
✗ Branch 558 not taken.
✓ Branch 559 taken 1 times.
✓ Branch 560 taken 1 times.
✗ Branch 561 not taken.
✓ Branch 562 taken 1 times.
✓ Branch 563 taken 1 times.
✗ Branch 564 not taken.
✗ Branch 565 not taken.
✓ Branch 566 taken 1 times.
✗ Branch 567 not taken.
✗ Branch 568 not taken.
✓ Branch 569 taken 1 times.
✗ Branch 570 not taken.
✗ Branch 571 not taken.
✓ Branch 572 taken 1 times.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✓ Branch 575 taken 1 times.
✗ Branch 576 not taken.
✗ Branch 577 not taken.
✓ Branch 578 taken 1 times.
✗ Branch 579 not taken.
✗ Branch 580 not taken.
✓ Branch 581 taken 1 times.
✗ Branch 582 not taken.
✗ Branch 583 not taken.
✓ Branch 584 taken 1 times.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✓ Branch 587 taken 1 times.
✗ Branch 588 not taken.
✗ Branch 589 not taken.
✓ Branch 590 taken 1 times.
✗ Branch 591 not taken.
✗ Branch 592 not taken.
✓ Branch 593 taken 1 times.
✗ Branch 594 not taken.
✗ Branch 595 not taken.
✓ Branch 596 taken 1 times.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✓ Branch 599 taken 1 times.
✗ Branch 600 not taken.
✓ Branch 602 taken 1 times.
✗ Branch 603 not taken.
✗ Branch 604 not taken.
✓ Branch 605 taken 1 times.
✗ Branch 606 not taken.
✗ Branch 607 not taken.
✓ Branch 608 taken 1 times.
✗ Branch 609 not taken.
✗ Branch 610 not taken.
✓ Branch 611 taken 1 times.
✗ Branch 612 not taken.
✗ Branch 613 not taken.
✓ Branch 614 taken 1 times.
✗ Branch 615 not taken.
✗ Branch 616 not taken.
✓ Branch 617 taken 1 times.
✗ Branch 618 not taken.
✗ Branch 619 not taken.
✓ Branch 621 taken 1 times.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✓ Branch 624 taken 1 times.
✗ Branch 625 not taken.
✓ Branch 626 taken 1 times.
✗ Branch 627 not taken.
✗ Branch 628 not taken.
✓ Branch 629 taken 1 times.
✗ Branch 630 not taken.
✓ Branch 631 taken 1 times.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✓ Branch 634 taken 1 times.
✗ Branch 635 not taken.
✓ Branch 636 taken 1 times.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✓ Branch 639 taken 1 times.
✓ Branch 641 taken 1 times.
✗ Branch 642 not taken.
✗ Branch 643 not taken.
✓ Branch 644 taken 1 times.
✓ Branch 646 taken 1 times.
✗ Branch 647 not taken.
✗ Branch 648 not taken.
✓ Branch 649 taken 1 times.
✓ Branch 651 taken 1 times.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✓ Branch 654 taken 1 times.
✓ Branch 656 taken 1 times.
✗ Branch 657 not taken.
✗ Branch 658 not taken.
✓ Branch 659 taken 1 times.
✓ Branch 662 taken 1 times.
✗ Branch 663 not taken.
✓ Branch 665 taken 1 times.
✗ Branch 666 not taken.
✓ Branch 668 taken 1 times.
✗ Branch 669 not taken.
✓ Branch 671 taken 1 times.
✗ Branch 672 not taken.
✓ Branch 674 taken 1 times.
✗ Branch 675 not taken.
✓ Branch 677 taken 1 times.
✗ Branch 678 not taken.
✓ Branch 680 taken 1 times.
✗ Branch 681 not taken.
✓ Branch 683 taken 1 times.
✗ Branch 684 not taken.
✓ Branch 686 taken 1 times.
✗ Branch 687 not taken.
✓ Branch 689 taken 1 times.
✗ Branch 690 not taken.
✓ Branch 692 taken 1 times.
✗ Branch 693 not taken.
✓ Branch 695 taken 1 times.
✗ Branch 696 not taken.
✓ Branch 698 taken 1 times.
✗ Branch 699 not taken.
✓ Branch 701 taken 1 times.
✗ Branch 702 not taken.
✓ Branch 704 taken 1 times.
✗ Branch 705 not taken.
✓ Branch 707 taken 1 times.
✗ Branch 708 not taken.
✓ Branch 710 taken 1 times.
✗ Branch 711 not taken.
✓ Branch 713 taken 1 times.
✗ Branch 714 not taken.
✓ Branch 716 taken 1 times.
✗ Branch 717 not taken.
✓ Branch 719 taken 1 times.
✗ Branch 720 not taken.
✓ Branch 722 taken 1 times.
✗ Branch 723 not taken.
✓ Branch 725 taken 1 times.
✗ Branch 726 not taken.
✓ Branch 728 taken 1 times.
✗ Branch 729 not taken.
✓ Branch 731 taken 1 times.
✗ Branch 732 not taken.
✓ Branch 734 taken 1 times.
✗ Branch 735 not taken.
✓ Branch 737 taken 1 times.
✗ Branch 738 not taken.
✓ Branch 740 taken 1 times.
✗ Branch 741 not taken.
✓ Branch 743 taken 1 times.
✗ Branch 744 not taken.
✗ Branch 745 not taken.
✓ Branch 746 taken 1 times.
✓ Branch 748 taken 1 times.
✗ Branch 749 not taken.
✗ Branch 750 not taken.
✓ Branch 751 taken 1 times.
✓ Branch 753 taken 1 times.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✓ Branch 756 taken 1 times.
✓ Branch 758 taken 1 times.
✗ Branch 759 not taken.
✗ Branch 760 not taken.
✓ Branch 761 taken 1 times.
✓ Branch 763 taken 1 times.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✓ Branch 766 taken 1 times.
✓ Branch 768 taken 1 times.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✓ Branch 771 taken 1 times.
✓ Branch 773 taken 1 times.
✗ Branch 774 not taken.
✗ Branch 775 not taken.
✓ Branch 776 taken 1 times.
✓ Branch 778 taken 1 times.
✗ Branch 779 not taken.
✗ Branch 780 not taken.
✓ Branch 781 taken 1 times.
✓ Branch 784 taken 1 times.
✗ Branch 785 not taken.
✓ Branch 787 taken 1 times.
✗ Branch 788 not taken.
✓ Branch 790 taken 1 times.
✗ Branch 791 not taken.
✓ Branch 793 taken 1 times.
✗ Branch 794 not taken.
✓ Branch 796 taken 1 times.
✗ Branch 797 not taken.
✓ Branch 799 taken 1 times.
✗ Branch 800 not taken.
✓ Branch 802 taken 1 times.
✗ Branch 803 not taken.
✓ Branch 805 taken 1 times.
✗ Branch 806 not taken.
✓ Branch 808 taken 1 times.
✗ Branch 809 not taken.
✓ Branch 811 taken 1 times.
✗ Branch 812 not taken.
✓ Branch 814 taken 1 times.
✗ Branch 815 not taken.
✓ Branch 817 taken 1 times.
✗ Branch 818 not taken.
✓ Branch 820 taken 1 times.
✗ Branch 821 not taken.
✓ Branch 823 taken 1 times.
✗ Branch 824 not taken.
✓ Branch 826 taken 1 times.
✗ Branch 827 not taken.
✓ Branch 829 taken 1 times.
✗ Branch 830 not taken.
✓ Branch 832 taken 1 times.
✗ Branch 833 not taken.
✓ Branch 835 taken 1 times.
✗ Branch 836 not taken.
✓ Branch 838 taken 1 times.
✗ Branch 839 not taken.
✓ Branch 841 taken 1 times.
✗ Branch 842 not taken.
✓ Branch 844 taken 1 times.
✗ Branch 845 not taken.
✓ Branch 847 taken 1 times.
✗ Branch 848 not taken.
✓ Branch 850 taken 1 times.
✗ Branch 851 not taken.
✓ Branch 853 taken 1 times.
✗ Branch 854 not taken.
✓ Branch 856 taken 1 times.
✗ Branch 857 not taken.
✓ Branch 859 taken 1 times.
✗ Branch 860 not taken.
✓ Branch 862 taken 1 times.
✗ Branch 863 not taken.
✓ Branch 865 taken 1 times.
✗ Branch 866 not taken.
✓ Branch 868 taken 1 times.
✗ Branch 869 not taken.
✓ Branch 871 taken 1 times.
✗ Branch 872 not taken.
✓ Branch 874 taken 1 times.
✗ Branch 875 not taken.
✓ Branch 877 taken 1 times.
✗ Branch 878 not taken.
✓ Branch 880 taken 1 times.
✗ Branch 881 not taken.
✓ Branch 883 taken 1 times.
✗ Branch 884 not taken.
✓ Branch 886 taken 1 times.
✗ Branch 887 not taken.
✓ Branch 889 taken 1 times.
✗ Branch 890 not taken.
✓ Branch 892 taken 1 times.
✗ Branch 893 not taken.
✓ Branch 895 taken 1 times.
✗ Branch 896 not taken.
✓ Branch 898 taken 1 times.
✗ Branch 899 not taken.
✓ Branch 901 taken 1 times.
✗ Branch 902 not taken.
✓ Branch 905 taken 1 times.
✗ Branch 906 not taken.
✓ Branch 908 taken 1 times.
✗ Branch 909 not taken.
✓ Branch 911 taken 1 times.
✗ Branch 912 not taken.
✓ Branch 914 taken 1 times.
✗ Branch 915 not taken.
✓ Branch 917 taken 1 times.
✗ Branch 918 not taken.
✓ Branch 920 taken 1 times.
✗ Branch 921 not taken.
✓ Branch 923 taken 1 times.
✗ Branch 924 not taken.
✓ Branch 926 taken 1 times.
✗ Branch 927 not taken.
✓ Branch 929 taken 1 times.
✗ Branch 930 not taken.
✓ Branch 932 taken 1 times.
✗ Branch 933 not taken.
✓ Branch 935 taken 1 times.
✗ Branch 936 not taken.
✓ Branch 938 taken 1 times.
✗ Branch 939 not taken.
✓ Branch 941 taken 1 times.
✗ Branch 942 not taken.
✓ Branch 944 taken 1 times.
✗ Branch 945 not taken.
✓ Branch 947 taken 1 times.
✗ Branch 948 not taken.
✓ Branch 950 taken 1 times.
✗ Branch 951 not taken.
✓ Branch 953 taken 1 times.
✗ Branch 954 not taken.
✓ Branch 956 taken 1 times.
✗ Branch 957 not taken.
✓ Branch 959 taken 1 times.
✗ Branch 960 not taken.
✓ Branch 962 taken 1 times.
✗ Branch 963 not taken.
✓ Branch 965 taken 1 times.
✗ Branch 966 not taken.
✓ Branch 968 taken 1 times.
✗ Branch 969 not taken.
✓ Branch 971 taken 1 times.
✗ Branch 972 not taken.
✓ Branch 974 taken 1 times.
✗ Branch 975 not taken.
✓ Branch 977 taken 1 times.
✗ Branch 978 not taken.
✓ Branch 980 taken 1 times.
✗ Branch 981 not taken.
✓ Branch 983 taken 1 times.
✗ Branch 984 not taken.
✓ Branch 986 taken 1 times.
✗ Branch 987 not taken.
✓ Branch 989 taken 1 times.
✗ Branch 990 not taken.
✓ Branch 992 taken 1 times.
✗ Branch 993 not taken.
✓ Branch 995 taken 1 times.
✗ Branch 996 not taken.
✓ Branch 998 taken 1 times.
✗ Branch 999 not taken.
✓ Branch 1001 taken 1 times.
✗ Branch 1002 not taken.
✓ Branch 1004 taken 1 times.
✗ Branch 1005 not taken.
✓ Branch 1007 taken 1 times.
✗ Branch 1008 not taken.
✓ Branch 1010 taken 1 times.
✗ Branch 1011 not taken.
✓ Branch 1013 taken 1 times.
✗ Branch 1014 not taken.
✓ Branch 1016 taken 1 times.
✗ Branch 1017 not taken.
✓ Branch 1019 taken 1 times.
✗ Branch 1020 not taken.
✓ Branch 1022 taken 1 times.
✗ Branch 1023 not taken.
✓ Branch 1026 taken 1 times.
✗ Branch 1027 not taken.
✓ Branch 1029 taken 1 times.
✗ Branch 1030 not taken.
✓ Branch 1032 taken 1 times.
✗ Branch 1033 not taken.
✓ Branch 1035 taken 1 times.
✗ Branch 1036 not taken.
✓ Branch 1038 taken 1 times.
✗ Branch 1039 not taken.
✓ Branch 1041 taken 1 times.
✗ Branch 1042 not taken.
✓ Branch 1044 taken 1 times.
✗ Branch 1045 not taken.
✓ Branch 1047 taken 1 times.
✗ Branch 1048 not taken.
✓ Branch 1050 taken 1 times.
✗ Branch 1051 not taken.
✓ Branch 1053 taken 1 times.
✗ Branch 1054 not taken.
✓ Branch 1056 taken 1 times.
✗ Branch 1057 not taken.
✓ Branch 1059 taken 1 times.
✗ Branch 1060 not taken.
✓ Branch 1062 taken 1 times.
✗ Branch 1063 not taken.
✓ Branch 1065 taken 1 times.
✗ Branch 1066 not taken.
✓ Branch 1068 taken 1 times.
✗ Branch 1069 not taken.
✓ Branch 1071 taken 1 times.
✗ Branch 1072 not taken.
✓ Branch 1074 taken 1 times.
✗ Branch 1075 not taken.
✓ Branch 1077 taken 1 times.
✗ Branch 1078 not taken.
✓ Branch 1080 taken 1 times.
✗ Branch 1081 not taken.
✓ Branch 1083 taken 1 times.
✗ Branch 1084 not taken.
✓ Branch 1086 taken 1 times.
✗ Branch 1087 not taken.
✓ Branch 1089 taken 1 times.
✗ Branch 1090 not taken.
✓ Branch 1092 taken 1 times.
✗ Branch 1093 not taken.
✓ Branch 1095 taken 1 times.
✗ Branch 1096 not taken.
✓ Branch 1098 taken 1 times.
✗ Branch 1099 not taken.
✓ Branch 1101 taken 1 times.
✗ Branch 1102 not taken.
✓ Branch 1104 taken 1 times.
✗ Branch 1105 not taken.
✓ Branch 1107 taken 1 times.
✗ Branch 1108 not taken.
✓ Branch 1110 taken 1 times.
✗ Branch 1111 not taken.
✓ Branch 1113 taken 1 times.
✗ Branch 1114 not taken.
✓ Branch 1116 taken 1 times.
✗ Branch 1117 not taken.
✓ Branch 1119 taken 1 times.
✗ Branch 1120 not taken.
✓ Branch 1122 taken 1 times.
✗ Branch 1123 not taken.
✓ Branch 1125 taken 1 times.
✗ Branch 1126 not taken.
✓ Branch 1128 taken 1 times.
✗ Branch 1129 not taken.
✓ Branch 1131 taken 1 times.
✗ Branch 1132 not taken.
✓ Branch 1134 taken 1 times.
✗ Branch 1135 not taken.
✓ Branch 1137 taken 1 times.
✗ Branch 1138 not taken.
✓ Branch 1140 taken 1 times.
✗ Branch 1141 not taken.
✓ Branch 1143 taken 1 times.
✗ Branch 1144 not taken.
✗ Branch 1147 not taken.
✗ Branch 1148 not taken.
✗ Branch 1150 not taken.
✗ Branch 1151 not taken.
✗ Branch 1153 not taken.
✗ Branch 1154 not taken.
✗ Branch 1156 not taken.
✗ Branch 1157 not taken.
✗ Branch 1159 not taken.
✗ Branch 1160 not taken.
✗ Branch 1162 not taken.
✗ Branch 1163 not taken.
✗ Branch 1165 not taken.
✗ Branch 1166 not taken.
✗ Branch 1168 not taken.
✗ Branch 1169 not taken.
✗ Branch 1171 not taken.
✗ Branch 1172 not taken.
✗ Branch 1173 not taken.
✗ Branch 1174 not taken.
✗ Branch 1176 not taken.
✗ Branch 1177 not taken.
✗ Branch 1179 not taken.
✗ Branch 1180 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
4497881263 this->mm[2] = z;
47 2441555 }
48
49 /// Constructor with array argument, e.g. double a[3]; Vec3d v(a);
50 template <typename Source>
51 454 Vec3(Source *a)
52 {
53 11365008 this->mm[0] = static_cast<T>(a[0]);
54 11365008 this->mm[1] = static_cast<T>(a[1]);
55
26/112
✗ Branch 0 not taken.
✓ Branch 1 taken 158 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 8 times.
✓ Branch 4 taken 150 times.
✓ Branch 5 taken 8 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 9 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 8 times.
✓ Branch 10 taken 1 times.
✓ Branch 11 taken 8 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 8 times.
✓ Branch 16 taken 1 times.
✓ Branch 17 taken 8 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 9 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 8 times.
✓ Branch 22 taken 1 times.
✓ Branch 23 taken 8 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 9 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 8 times.
✓ Branch 28 taken 1 times.
✓ Branch 29 taken 8 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 8 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 8 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 8 times.
✗ 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 taken 2 times.
✓ Branch 109 taken 1623507 times.
✗ Branch 110 not taken.
✓ Branch 111 taken 9741025 times.
11364991 this->mm[2] = static_cast<T>(a[2]);
56 }
57
58 /// @brief Construct a Vec3 from a 3-Tuple with a possibly different value type.
59 /// @details Type conversion warnings are suppressed.
60 template<typename Source>
61 explicit Vec3(const Tuple<3, Source> &v)
62 {
63 this->mm[0] = static_cast<T>(v[0]);
64 this->mm[1] = static_cast<T>(v[1]);
65 this->mm[2] = static_cast<T>(v[2]);
66 }
67
68 /// @brief Construct a vector all of whose components have the given value,
69 /// which may be of an arithmetic type different from this vector's value type.
70 /// @details Type conversion warnings are suppressed.
71 template<typename Other>
72 20424450 explicit Vec3(Other val,
73 typename std::enable_if<std::is_arithmetic<Other>::value, Conversion>::type = Conversion{})
74 {
75
78/434
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 376 times.
✓ Branch 2 taken 5 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 6 times.
✓ Branch 5 taken 3 times.
✓ Branch 6 taken 512 times.
✓ Branch 7 taken 571 times.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 22 times.
✓ Branch 10 taken 6 times.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 22 times.
✓ Branch 13 taken 5 times.
✓ Branch 14 taken 2 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 63 times.
✓ Branch 17 taken 21 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 26 times.
✓ Branch 20 taken 21 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 5 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 513 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 3 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 884 times.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✓ Branch 35 taken 50 times.
✗ 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 taken 11 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 2 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 2 times.
✓ Branch 53 taken 3 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 2 times.
✓ Branch 56 taken 2 times.
✗ Branch 57 not taken.
✓ Branch 58 taken 1 times.
✓ Branch 59 taken 2 times.
✗ Branch 60 not taken.
✓ Branch 61 taken 1 times.
✓ Branch 62 taken 2 times.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 times.
✓ Branch 65 taken 2 times.
✗ Branch 66 not taken.
✓ Branch 67 taken 1 times.
✓ Branch 68 taken 2 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 1 times.
✓ Branch 71 taken 1 times.
✗ Branch 72 not taken.
✓ Branch 73 taken 2 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 1 times.
✓ Branch 76 taken 1 times.
✓ Branch 77 taken 188 times.
✓ Branch 78 taken 1 times.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
✓ Branch 82 taken 1 times.
✓ Branch 83 taken 160 times.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✓ Branch 88 taken 516 times.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 91 taken 4 times.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✓ Branch 94 taken 5 times.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✓ Branch 97 taken 1 times.
✓ Branch 98 taken 16 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 1 times.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✓ Branch 108 taken 2 times.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✓ Branch 111 taken 1 times.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✓ Branch 114 taken 13 times.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 117 not taken.
✗ Branch 118 not taken.
✓ Branch 119 taken 8 times.
✗ Branch 120 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✓ Branch 130 taken 331776 times.
✗ Branch 131 not taken.
✓ Branch 132 taken 1 times.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✗ Branch 137 not taken.
✓ Branch 138 taken 1 times.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✓ Branch 141 taken 1 times.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✓ Branch 144 taken 1 times.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✓ Branch 147 taken 1 times.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✓ Branch 150 taken 1 times.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✓ Branch 153 taken 1 times.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✓ Branch 156 taken 1 times.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✓ Branch 159 taken 1 times.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✓ Branch 162 taken 1 times.
✗ Branch 163 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 taken 1 times.
✗ 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 taken 4 times.
✗ Branch 258 not taken.
✗ Branch 260 not taken.
✗ Branch 261 not taken.
✗ Branch 263 not taken.
✗ Branch 264 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✗ Branch 269 not taken.
✗ Branch 270 not taken.
✗ Branch 272 not taken.
✗ Branch 273 not taken.
✗ Branch 275 not taken.
✗ Branch 276 not taken.
✗ Branch 278 not taken.
✗ Branch 279 not taken.
✓ Branch 281 taken 12 times.
✗ Branch 282 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 287 not taken.
✗ Branch 288 not taken.
✗ Branch 290 not taken.
✗ Branch 291 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 296 not taken.
✗ Branch 297 not taken.
✗ Branch 299 not taken.
✗ Branch 300 not taken.
✗ Branch 302 not taken.
✗ Branch 303 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 308 not taken.
✗ Branch 309 not taken.
✗ Branch 311 not taken.
✗ Branch 312 not taken.
✗ Branch 314 not taken.
✗ Branch 315 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 320 not taken.
✗ Branch 321 not taken.
✗ Branch 323 not taken.
✗ Branch 324 not taken.
✗ Branch 326 not taken.
✗ Branch 327 not taken.
✓ Branch 329 taken 1 times.
✗ Branch 330 not taken.
✗ Branch 332 not taken.
✗ Branch 333 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 338 not taken.
✗ Branch 339 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 344 not taken.
✗ Branch 345 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 350 not taken.
✗ Branch 351 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 356 not taken.
✗ Branch 357 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 362 not taken.
✗ Branch 363 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 368 not taken.
✗ Branch 369 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 374 not taken.
✗ Branch 375 not taken.
✓ Branch 377 taken 5 times.
✗ Branch 378 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 386 not taken.
✗ Branch 387 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 392 not taken.
✗ Branch 393 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 398 not taken.
✗ Branch 399 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 404 not taken.
✗ Branch 405 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 416 not taken.
✗ Branch 417 not taken.
✗ Branch 419 not taken.
✗ Branch 420 not taken.
✗ Branch 422 not taken.
✗ Branch 423 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 428 not taken.
✗ Branch 429 not taken.
✗ Branch 431 not taken.
✗ Branch 432 not taken.
✗ Branch 434 not taken.
✗ Branch 435 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 440 not taken.
✗ Branch 441 not taken.
✗ Branch 443 not taken.
✗ Branch 444 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 527 not taken.
✗ Branch 528 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✗ Branch 536 not taken.
✗ Branch 537 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
9976465 this->mm[0] = this->mm[1] = this->mm[2] = static_cast<T>(val);
76 }
77
78 /// @brief Construct a Vec3 from another Vec3 with a possibly different value type.
79 /// @details Type conversion warnings are suppressed.
80 template<typename Other>
81
108/1279
✓ Branch 1 taken 608013 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 8412105 times.
✓ Branch 5 taken 7 times.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 29 times.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 4 times.
✓ Branch 10 taken 10 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 30 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 6 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 2 times.
✓ Branch 19 taken 8 times.
✓ Branch 20 taken 3 times.
✓ Branch 21 taken 3 times.
✓ Branch 22 taken 6 times.
✓ Branch 23 taken 9 times.
✓ Branch 24 taken 25 times.
✓ Branch 25 taken 12068791 times.
✓ Branch 26 taken 1388025 times.
✓ Branch 27 taken 5 times.
✓ Branch 28 taken 1654104 times.
✓ Branch 29 taken 9 times.
✓ Branch 30 taken 2164701 times.
✓ Branch 31 taken 19300585 times.
✓ Branch 32 taken 4 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 8 times.
✓ Branch 35 taken 4 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 4 times.
✓ Branch 38 taken 4 times.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 4 times.
✓ Branch 44 taken 1 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 8 times.
✓ Branch 50 taken 1 times.
✗ Branch 51 not taken.
✓ Branch 52 taken 6 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 15 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 1654104 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 2 times.
✓ Branch 61 taken 4 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 5000 times.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✓ Branch 66 taken 4 times.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✓ Branch 72 taken 4 times.
✓ Branch 73 taken 4 times.
✗ Branch 74 not taken.
✓ Branch 75 taken 4 times.
✓ Branch 76 taken 4 times.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✓ Branch 81 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 84 taken 1 times.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✓ Branch 87 taken 1 times.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✓ Branch 90 taken 1 times.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✓ Branch 93 taken 1 times.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✓ Branch 96 taken 1 times.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✓ Branch 99 taken 1 times.
✓ Branch 100 taken 3837100 times.
✗ Branch 101 not taken.
✓ Branch 102 taken 1 times.
✓ Branch 103 taken 3 times.
✗ Branch 104 not taken.
✓ Branch 105 taken 1 times.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✓ Branch 108 taken 1 times.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✓ Branch 111 taken 4 times.
✗ Branch 112 not taken.
✓ Branch 113 taken 4 times.
✗ Branch 114 not taken.
✓ Branch 115 taken 1 times.
✗ Branch 116 not taken.
✓ Branch 117 taken 53 times.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✓ Branch 120 taken 53 times.
✗ Branch 121 not taken.
✗ Branch 122 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 133 not taken.
✗ Branch 134 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 145 not taken.
✗ Branch 146 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 157 not taken.
✗ Branch 158 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 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✓ Branch 175 taken 4 times.
✗ Branch 176 not taken.
✗ Branch 177 not taken.
✓ Branch 178 taken 4 times.
✗ 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 taken 3837100 times.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✓ Branch 205 taken 3 times.
✗ 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 taken 3827080 times.
✗ Branch 230 not taken.
✗ Branch 231 not taken.
✓ Branch 232 taken 4 times.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✓ Branch 235 taken 4 times.
✗ Branch 236 not taken.
✗ Branch 237 not taken.
✓ Branch 238 taken 4 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 taken 1913536 times.
✗ Branch 257 not taken.
✗ Branch 258 not taken.
✓ Branch 260 taken 1913537 times.
✗ Branch 261 not taken.
✗ Branch 263 not taken.
✓ Branch 264 taken 1913536 times.
✗ Branch 265 not taken.
✗ Branch 266 not taken.
✗ Branch 267 not taken.
✓ Branch 268 taken 20 times.
✗ Branch 269 not taken.
✓ Branch 270 taken 16 times.
✓ Branch 271 taken 4 times.
✗ Branch 272 not taken.
✓ Branch 273 taken 4 times.
✗ Branch 274 not taken.
✓ Branch 275 taken 4 times.
✗ Branch 276 not taken.
✓ Branch 278 taken 4 times.
✗ Branch 279 not taken.
✓ Branch 280 taken 1 times.
✓ Branch 281 taken 3 times.
✗ Branch 282 not taken.
✓ Branch 283 taken 1 times.
✗ Branch 284 not taken.
✓ Branch 285 taken 1 times.
✗ Branch 286 not taken.
✓ Branch 288 taken 3 times.
✗ Branch 289 not taken.
✓ Branch 290 taken 1 times.
✓ Branch 291 taken 2 times.
✓ Branch 293 taken 4 times.
✗ Branch 294 not taken.
✓ Branch 296 taken 3 times.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 369 not taken.
✗ Branch 370 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 417 not taken.
✗ Branch 418 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 429 not taken.
✗ Branch 430 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 441 not taken.
✗ Branch 442 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 449 not taken.
✗ Branch 450 not taken.
✗ Branch 452 not taken.
✗ Branch 453 not taken.
✗ Branch 455 not taken.
✗ Branch 456 not taken.
✗ Branch 458 not taken.
✗ Branch 459 not taken.
✗ Branch 461 not taken.
✗ Branch 462 not taken.
✗ Branch 464 not taken.
✗ Branch 465 not taken.
✗ Branch 467 not taken.
✗ Branch 468 not taken.
✗ Branch 470 not taken.
✗ Branch 471 not taken.
✗ Branch 473 not taken.
✗ Branch 474 not taken.
✗ Branch 476 not taken.
✗ Branch 477 not taken.
✗ Branch 479 not taken.
✗ Branch 480 not taken.
✗ Branch 482 not taken.
✗ Branch 483 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 488 not taken.
✗ Branch 489 not taken.
✗ Branch 491 not taken.
✗ Branch 492 not taken.
✗ Branch 494 not taken.
✗ Branch 495 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 500 not taken.
✗ Branch 501 not taken.
✗ Branch 503 not taken.
✗ Branch 504 not taken.
✗ Branch 506 not taken.
✗ Branch 507 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 512 not taken.
✗ Branch 513 not taken.
✗ Branch 515 not taken.
✗ Branch 516 not taken.
✗ Branch 518 not taken.
✗ Branch 519 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 524 not taken.
✗ Branch 525 not taken.
✗ Branch 527 not taken.
✗ Branch 528 not taken.
✗ Branch 530 not taken.
✗ Branch 531 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✓ Branch 536 taken 1 times.
✗ Branch 537 not taken.
✗ Branch 539 not taken.
✗ Branch 540 not taken.
✗ Branch 542 not taken.
✗ Branch 543 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 548 not taken.
✗ Branch 549 not taken.
✗ Branch 551 not taken.
✗ Branch 552 not taken.
✗ Branch 554 not taken.
✗ Branch 555 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 560 not taken.
✗ Branch 561 not taken.
✗ Branch 563 not taken.
✗ Branch 564 not taken.
✗ Branch 566 not taken.
✗ Branch 567 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 572 not taken.
✗ Branch 573 not taken.
✗ Branch 575 not taken.
✗ Branch 576 not taken.
✗ Branch 578 not taken.
✗ Branch 579 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 584 not taken.
✗ Branch 585 not taken.
✗ Branch 587 not taken.
✗ Branch 588 not taken.
✗ Branch 590 not taken.
✗ Branch 591 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 596 not taken.
✗ Branch 597 not taken.
✗ Branch 599 not taken.
✗ Branch 600 not taken.
✗ Branch 602 not taken.
✗ Branch 603 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
✗ Branch 608 not taken.
✗ Branch 609 not taken.
✗ Branch 611 not taken.
✗ Branch 612 not taken.
✗ Branch 614 not taken.
✗ Branch 615 not taken.
✗ Branch 617 not taken.
✗ Branch 618 not taken.
✗ Branch 620 not taken.
✗ Branch 621 not taken.
✗ Branch 623 not taken.
✗ Branch 624 not taken.
✗ Branch 626 not taken.
✗ Branch 627 not taken.
✗ Branch 629 not taken.
✗ Branch 630 not taken.
✗ Branch 632 not taken.
✗ Branch 633 not taken.
✗ Branch 635 not taken.
✗ Branch 636 not taken.
✗ Branch 638 not taken.
✗ Branch 639 not taken.
✗ Branch 641 not taken.
✗ Branch 642 not taken.
✗ Branch 644 not taken.
✗ Branch 645 not taken.
✗ Branch 647 not taken.
✗ Branch 648 not taken.
✗ Branch 650 not taken.
✗ Branch 651 not taken.
✗ Branch 653 not taken.
✗ Branch 654 not taken.
✗ Branch 656 not taken.
✗ Branch 657 not taken.
✗ Branch 659 not taken.
✗ Branch 660 not taken.
✗ Branch 662 not taken.
✗ Branch 663 not taken.
✗ Branch 665 not taken.
✗ Branch 666 not taken.
✗ Branch 668 not taken.
✗ Branch 669 not taken.
✗ Branch 671 not taken.
✗ Branch 672 not taken.
✗ Branch 674 not taken.
✗ Branch 675 not taken.
✗ Branch 677 not taken.
✗ Branch 678 not taken.
✗ Branch 680 not taken.
✗ Branch 681 not taken.
✗ Branch 683 not taken.
✗ Branch 684 not taken.
✗ Branch 686 not taken.
✗ Branch 687 not taken.
✗ Branch 689 not taken.
✗ Branch 690 not taken.
✗ Branch 692 not taken.
✗ Branch 693 not taken.
✗ Branch 695 not taken.
✗ Branch 696 not taken.
✗ Branch 698 not taken.
✗ Branch 699 not taken.
✗ Branch 701 not taken.
✗ Branch 702 not taken.
✗ Branch 704 not taken.
✗ Branch 705 not taken.
✗ Branch 707 not taken.
✗ Branch 708 not taken.
✗ Branch 710 not taken.
✗ Branch 711 not taken.
✗ Branch 713 not taken.
✗ Branch 714 not taken.
✗ Branch 716 not taken.
✗ Branch 717 not taken.
✗ Branch 719 not taken.
✗ Branch 720 not taken.
✗ Branch 722 not taken.
✗ Branch 723 not taken.
✗ Branch 725 not taken.
✗ Branch 726 not taken.
✓ Branch 728 taken 1 times.
✗ Branch 729 not taken.
✗ Branch 731 not taken.
✗ Branch 732 not taken.
✗ Branch 734 not taken.
✗ Branch 735 not taken.
✗ Branch 737 not taken.
✗ Branch 738 not taken.
✗ Branch 740 not taken.
✗ Branch 741 not taken.
✗ Branch 743 not taken.
✗ Branch 744 not taken.
✗ Branch 746 not taken.
✗ Branch 747 not taken.
✗ Branch 749 not taken.
✗ Branch 750 not taken.
✗ Branch 752 not taken.
✗ Branch 753 not taken.
✗ Branch 755 not taken.
✗ Branch 756 not taken.
✗ Branch 758 not taken.
✗ Branch 759 not taken.
✗ Branch 761 not taken.
✗ Branch 762 not taken.
✗ Branch 764 not taken.
✗ Branch 765 not taken.
✗ Branch 767 not taken.
✗ Branch 768 not taken.
✗ Branch 770 not taken.
✗ Branch 771 not taken.
✗ Branch 773 not taken.
✗ Branch 774 not taken.
✗ Branch 776 not taken.
✗ Branch 777 not taken.
✗ Branch 779 not taken.
✗ Branch 780 not taken.
✗ Branch 782 not taken.
✗ Branch 783 not taken.
✗ Branch 785 not taken.
✗ Branch 786 not taken.
✗ Branch 788 not taken.
✗ Branch 789 not taken.
✗ Branch 791 not taken.
✗ Branch 792 not taken.
✗ Branch 794 not taken.
✗ Branch 795 not taken.
✗ Branch 797 not taken.
✗ Branch 798 not taken.
✗ Branch 800 not taken.
✗ Branch 801 not taken.
✗ Branch 803 not taken.
✗ Branch 804 not taken.
✗ Branch 806 not taken.
✗ Branch 807 not taken.
✗ Branch 809 not taken.
✗ Branch 810 not taken.
✗ Branch 812 not taken.
✗ Branch 813 not taken.
✗ Branch 815 not taken.
✗ Branch 816 not taken.
✗ Branch 818 not taken.
✗ Branch 819 not taken.
✗ Branch 821 not taken.
✗ Branch 822 not taken.
✗ Branch 824 not taken.
✗ Branch 825 not taken.
✗ Branch 827 not taken.
✗ Branch 828 not taken.
✗ Branch 830 not taken.
✗ Branch 831 not taken.
✗ Branch 833 not taken.
✗ Branch 834 not taken.
✗ Branch 836 not taken.
✗ Branch 837 not taken.
✗ Branch 839 not taken.
✗ Branch 840 not taken.
✗ Branch 842 not taken.
✗ Branch 843 not taken.
✗ Branch 845 not taken.
✗ Branch 846 not taken.
✗ Branch 848 not taken.
✗ Branch 849 not taken.
✗ Branch 851 not taken.
✗ Branch 852 not taken.
✗ Branch 854 not taken.
✗ Branch 855 not taken.
✗ Branch 857 not taken.
✗ Branch 858 not taken.
✗ Branch 860 not taken.
✗ Branch 861 not taken.
✗ Branch 863 not taken.
✗ Branch 864 not taken.
✗ Branch 866 not taken.
✗ Branch 867 not taken.
✗ Branch 869 not taken.
✗ Branch 870 not taken.
✗ Branch 872 not taken.
✗ Branch 873 not taken.
✗ Branch 875 not taken.
✗ Branch 876 not taken.
✗ Branch 878 not taken.
✗ Branch 879 not taken.
✗ Branch 881 not taken.
✗ Branch 882 not taken.
✗ Branch 884 not taken.
✗ Branch 885 not taken.
✗ Branch 887 not taken.
✗ Branch 888 not taken.
✗ Branch 890 not taken.
✗ Branch 891 not taken.
✗ Branch 893 not taken.
✗ Branch 894 not taken.
✗ Branch 896 not taken.
✗ Branch 897 not taken.
✗ Branch 899 not taken.
✗ Branch 900 not taken.
✗ Branch 902 not taken.
✗ Branch 903 not taken.
✗ Branch 905 not taken.
✗ Branch 906 not taken.
✓ Branch 908 taken 1 times.
✗ Branch 909 not taken.
✗ Branch 911 not taken.
✗ Branch 912 not taken.
✗ Branch 914 not taken.
✗ Branch 915 not taken.
✗ Branch 917 not taken.
✗ Branch 918 not taken.
✗ Branch 920 not taken.
✗ Branch 921 not taken.
✗ Branch 923 not taken.
✗ Branch 924 not taken.
✗ Branch 926 not taken.
✗ Branch 927 not taken.
✗ Branch 929 not taken.
✗ Branch 930 not taken.
✗ Branch 932 not taken.
✗ Branch 933 not taken.
✗ Branch 935 not taken.
✗ Branch 936 not taken.
✗ Branch 938 not taken.
✗ Branch 939 not taken.
✗ Branch 941 not taken.
✗ Branch 942 not taken.
✗ Branch 944 not taken.
✗ Branch 945 not taken.
✗ Branch 947 not taken.
✗ Branch 948 not taken.
✗ Branch 950 not taken.
✗ Branch 951 not taken.
✗ Branch 953 not taken.
✗ Branch 954 not taken.
✗ Branch 956 not taken.
✗ Branch 957 not taken.
✗ Branch 959 not taken.
✗ Branch 960 not taken.
✗ Branch 962 not taken.
✗ Branch 963 not taken.
✗ Branch 965 not taken.
✗ Branch 966 not taken.
✗ Branch 968 not taken.
✗ Branch 969 not taken.
✗ Branch 971 not taken.
✗ Branch 972 not taken.
✗ Branch 974 not taken.
✗ Branch 975 not taken.
✗ Branch 977 not taken.
✗ Branch 978 not taken.
✗ Branch 980 not taken.
✗ Branch 981 not taken.
✗ Branch 983 not taken.
✗ Branch 984 not taken.
✗ Branch 986 not taken.
✗ Branch 987 not taken.
✗ Branch 989 not taken.
✗ Branch 990 not taken.
✗ Branch 992 not taken.
✗ Branch 993 not taken.
✗ Branch 995 not taken.
✗ Branch 996 not taken.
✗ Branch 998 not taken.
✗ Branch 999 not taken.
✗ Branch 1001 not taken.
✗ Branch 1002 not taken.
✗ Branch 1004 not taken.
✗ Branch 1005 not taken.
✗ Branch 1007 not taken.
✗ Branch 1008 not taken.
✗ Branch 1010 not taken.
✗ Branch 1011 not taken.
✗ Branch 1013 not taken.
✗ Branch 1014 not taken.
✗ Branch 1016 not taken.
✗ Branch 1017 not taken.
✗ Branch 1019 not taken.
✗ Branch 1020 not taken.
✗ Branch 1022 not taken.
✗ Branch 1023 not taken.
✗ Branch 1025 not taken.
✗ Branch 1026 not taken.
✗ Branch 1028 not taken.
✗ Branch 1029 not taken.
✗ Branch 1031 not taken.
✗ Branch 1032 not taken.
✗ Branch 1034 not taken.
✗ Branch 1035 not taken.
✗ Branch 1037 not taken.
✗ Branch 1038 not taken.
✗ Branch 1040 not taken.
✗ Branch 1041 not taken.
✗ Branch 1043 not taken.
✗ Branch 1044 not taken.
✗ Branch 1046 not taken.
✗ Branch 1047 not taken.
✗ Branch 1049 not taken.
✗ Branch 1050 not taken.
✗ Branch 1052 not taken.
✗ Branch 1053 not taken.
✗ Branch 1055 not taken.
✗ Branch 1056 not taken.
✗ Branch 1058 not taken.
✗ Branch 1059 not taken.
✗ Branch 1061 not taken.
✗ Branch 1062 not taken.
✗ Branch 1064 not taken.
✗ Branch 1065 not taken.
✗ Branch 1067 not taken.
✗ Branch 1068 not taken.
✗ Branch 1070 not taken.
✗ Branch 1071 not taken.
✗ Branch 1073 not taken.
✗ Branch 1074 not taken.
✗ Branch 1076 not taken.
✗ Branch 1077 not taken.
✗ Branch 1079 not taken.
✗ Branch 1080 not taken.
✗ Branch 1082 not taken.
✗ Branch 1083 not taken.
✗ Branch 1085 not taken.
✗ Branch 1086 not taken.
✓ Branch 1088 taken 1 times.
✗ Branch 1089 not taken.
✗ Branch 1091 not taken.
✗ Branch 1092 not taken.
✗ Branch 1094 not taken.
✗ Branch 1095 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1101 not taken.
✗ Branch 1102 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1109 not taken.
✗ Branch 1110 not taken.
✗ Branch 1113 not taken.
✗ Branch 1114 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1121 not taken.
✗ Branch 1122 not taken.
✗ Branch 1125 not taken.
✗ Branch 1126 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1133 not taken.
✗ Branch 1134 not taken.
✗ Branch 1137 not taken.
✗ Branch 1138 not taken.
✗ Branch 1140 not taken.
✗ Branch 1141 not taken.
✗ Branch 1143 not taken.
✗ Branch 1144 not taken.
✗ Branch 1146 not taken.
✗ Branch 1147 not taken.
✗ Branch 1149 not taken.
✗ Branch 1150 not taken.
✗ Branch 1152 not taken.
✗ Branch 1153 not taken.
✗ Branch 1155 not taken.
✗ Branch 1156 not taken.
✗ Branch 1158 not taken.
✗ Branch 1159 not taken.
✗ Branch 1161 not taken.
✗ Branch 1162 not taken.
✗ Branch 1164 not taken.
✗ Branch 1165 not taken.
✗ Branch 1167 not taken.
✗ Branch 1168 not taken.
✗ Branch 1170 not taken.
✗ Branch 1171 not taken.
✗ Branch 1173 not taken.
✗ Branch 1174 not taken.
✗ Branch 1176 not taken.
✗ Branch 1177 not taken.
✗ Branch 1179 not taken.
✗ Branch 1180 not taken.
✗ Branch 1182 not taken.
✗ Branch 1183 not taken.
✗ Branch 1185 not taken.
✗ Branch 1186 not taken.
✗ Branch 1188 not taken.
✗ Branch 1189 not taken.
✗ Branch 1191 not taken.
✗ Branch 1192 not taken.
✗ Branch 1194 not taken.
✗ Branch 1195 not taken.
✗ Branch 1197 not taken.
✗ Branch 1198 not taken.
✗ Branch 1200 not taken.
✗ Branch 1201 not taken.
✗ Branch 1203 not taken.
✗ Branch 1204 not taken.
✗ Branch 1206 not taken.
✗ Branch 1207 not taken.
✗ Branch 1209 not taken.
✗ Branch 1210 not taken.
✗ Branch 1212 not taken.
✗ Branch 1213 not taken.
✗ Branch 1215 not taken.
✗ Branch 1216 not taken.
✗ Branch 1218 not taken.
✗ Branch 1219 not taken.
✗ Branch 1221 not taken.
✗ Branch 1222 not taken.
✗ Branch 1224 not taken.
✗ Branch 1225 not taken.
✗ Branch 1227 not taken.
✗ Branch 1228 not taken.
✗ Branch 1230 not taken.
✗ Branch 1231 not taken.
✗ Branch 1233 not taken.
✗ Branch 1234 not taken.
✗ Branch 1236 not taken.
✗ Branch 1237 not taken.
✗ Branch 1239 not taken.
✗ Branch 1240 not taken.
✗ Branch 1242 not taken.
✗ Branch 1243 not taken.
✗ Branch 1245 not taken.
✗ Branch 1246 not taken.
✗ Branch 1248 not taken.
✗ Branch 1249 not taken.
✗ Branch 1251 not taken.
✗ Branch 1252 not taken.
✗ Branch 1254 not taken.
✗ Branch 1255 not taken.
✗ Branch 1257 not taken.
✗ Branch 1258 not taken.
✗ Branch 1260 not taken.
✗ Branch 1261 not taken.
✗ Branch 1263 not taken.
✗ Branch 1264 not taken.
✗ Branch 1266 not taken.
✗ Branch 1267 not taken.
✗ Branch 1269 not taken.
✗ Branch 1270 not taken.
✗ Branch 1272 not taken.
✗ Branch 1273 not taken.
✗ Branch 1275 not taken.
✗ Branch 1276 not taken.
✗ Branch 1278 not taken.
✗ Branch 1279 not taken.
✗ Branch 1281 not taken.
✗ Branch 1282 not taken.
✗ Branch 1284 not taken.
✗ Branch 1285 not taken.
✗ Branch 1287 not taken.
✗ Branch 1288 not taken.
✗ Branch 1290 not taken.
✗ Branch 1291 not taken.
✗ Branch 1293 not taken.
✗ Branch 1294 not taken.
✗ Branch 1296 not taken.
✗ Branch 1297 not taken.
✗ Branch 1299 not taken.
✗ Branch 1300 not taken.
✗ Branch 1302 not taken.
✗ Branch 1303 not taken.
✗ Branch 1305 not taken.
✗ Branch 1306 not taken.
✓ Branch 1308 taken 3 times.
✗ Branch 1309 not taken.
✗ Branch 1311 not taken.
✗ Branch 1312 not taken.
✗ Branch 1314 not taken.
✗ Branch 1315 not taken.
✗ Branch 1317 not taken.
✗ Branch 1318 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1325 not taken.
✗ Branch 1326 not taken.
✗ Branch 1329 not taken.
✗ Branch 1330 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1337 not taken.
✗ Branch 1338 not taken.
✗ Branch 1341 not taken.
✗ Branch 1342 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1349 not taken.
✗ Branch 1350 not taken.
✗ Branch 1353 not taken.
✗ Branch 1354 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1361 not taken.
✗ Branch 1362 not taken.
✗ Branch 1365 not taken.
✗ Branch 1366 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1373 not taken.
✗ Branch 1374 not taken.
✗ Branch 1377 not taken.
✗ Branch 1378 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1385 not taken.
✗ Branch 1386 not taken.
✗ Branch 1389 not taken.
✗ Branch 1390 not taken.
✗ Branch 1393 not taken.
✗ Branch 1394 not taken.
✗ Branch 1397 not taken.
✗ Branch 1398 not taken.
✗ Branch 1401 not taken.
✗ Branch 1402 not taken.
✗ Branch 1405 not taken.
✗ Branch 1406 not taken.
✗ Branch 1409 not taken.
✗ Branch 1410 not taken.
✗ Branch 1413 not taken.
✗ Branch 1414 not taken.
✗ Branch 1417 not taken.
✗ Branch 1418 not taken.
✗ Branch 1421 not taken.
✗ Branch 1422 not taken.
✗ Branch 1425 not taken.
✗ Branch 1426 not taken.
✗ Branch 1429 not taken.
✗ Branch 1430 not taken.
✗ Branch 1433 not taken.
✗ Branch 1434 not taken.
✗ Branch 1437 not taken.
✗ Branch 1438 not taken.
✗ Branch 1440 not taken.
✗ Branch 1441 not taken.
✗ Branch 1443 not taken.
✗ Branch 1444 not taken.
✓ Branch 1446 taken 1 times.
✗ Branch 1447 not taken.
✗ Branch 1449 not taken.
✗ Branch 1450 not taken.
✗ Branch 1452 not taken.
✗ Branch 1453 not taken.
✗ Branch 1455 not taken.
✗ Branch 1456 not taken.
✗ Branch 1458 not taken.
✗ Branch 1459 not taken.
✗ Branch 1461 not taken.
✗ Branch 1462 not taken.
✗ Branch 1464 not taken.
✗ Branch 1465 not taken.
✗ Branch 1467 not taken.
✗ Branch 1468 not taken.
✗ Branch 1470 not taken.
✗ Branch 1471 not taken.
✗ Branch 1473 not taken.
✗ Branch 1474 not taken.
✗ Branch 1476 not taken.
✗ Branch 1477 not taken.
✗ Branch 1479 not taken.
✗ Branch 1480 not taken.
✗ Branch 1482 not taken.
✗ Branch 1483 not taken.
✗ Branch 1485 not taken.
✗ Branch 1486 not taken.
✗ Branch 1488 not taken.
✗ Branch 1489 not taken.
✗ Branch 1491 not taken.
✗ Branch 1492 not taken.
✗ Branch 1494 not taken.
✗ Branch 1495 not taken.
✗ Branch 1497 not taken.
✗ Branch 1498 not taken.
✗ Branch 1500 not taken.
✗ Branch 1501 not taken.
✗ Branch 1503 not taken.
✗ Branch 1504 not taken.
✗ Branch 1506 not taken.
✗ Branch 1507 not taken.
✗ Branch 1509 not taken.
✗ Branch 1510 not taken.
✗ Branch 1512 not taken.
✗ Branch 1513 not taken.
✗ Branch 1515 not taken.
✗ Branch 1516 not taken.
✓ Branch 1518 taken 1 times.
✗ Branch 1519 not taken.
✗ Branch 1521 not taken.
✗ Branch 1522 not taken.
✗ Branch 1524 not taken.
✗ Branch 1525 not taken.
✗ Branch 1527 not taken.
✗ Branch 1528 not taken.
✗ Branch 1530 not taken.
✗ Branch 1531 not taken.
✗ Branch 1533 not taken.
✗ Branch 1534 not taken.
✗ Branch 1536 not taken.
✗ Branch 1537 not taken.
✗ Branch 1539 not taken.
✗ Branch 1540 not taken.
✗ Branch 1542 not taken.
✗ Branch 1543 not taken.
✗ Branch 1545 not taken.
✗ Branch 1546 not taken.
✗ Branch 1548 not taken.
✗ Branch 1549 not taken.
✗ Branch 1551 not taken.
✗ Branch 1552 not taken.
✗ Branch 1554 not taken.
✗ Branch 1555 not taken.
✗ Branch 1557 not taken.
✗ Branch 1558 not taken.
✗ Branch 1560 not taken.
✗ Branch 1561 not taken.
✗ Branch 1563 not taken.
✗ Branch 1564 not taken.
✗ Branch 1566 not taken.
✗ Branch 1567 not taken.
✗ Branch 1569 not taken.
✗ Branch 1570 not taken.
✗ Branch 1572 not taken.
✗ Branch 1573 not taken.
✗ Branch 1575 not taken.
✗ Branch 1576 not taken.
✗ Branch 1578 not taken.
✗ Branch 1579 not taken.
✗ Branch 1581 not taken.
✗ Branch 1582 not taken.
✗ Branch 1584 not taken.
✗ Branch 1585 not taken.
✗ Branch 1587 not taken.
✗ Branch 1588 not taken.
✗ Branch 1590 not taken.
✗ Branch 1591 not taken.
✗ Branch 1593 not taken.
✗ Branch 1594 not taken.
✗ Branch 1596 not taken.
✗ Branch 1597 not taken.
✗ Branch 1599 not taken.
✗ Branch 1600 not taken.
✗ Branch 1602 not taken.
✗ Branch 1603 not taken.
✗ Branch 1605 not taken.
✗ Branch 1606 not taken.
✗ Branch 1608 not taken.
✗ Branch 1609 not taken.
✗ Branch 1611 not taken.
✗ Branch 1612 not taken.
✗ Branch 1614 not taken.
✗ Branch 1615 not taken.
✗ Branch 1617 not taken.
✗ Branch 1618 not taken.
✓ Branch 1620 taken 2 times.
✗ Branch 1621 not taken.
✓ Branch 1623 taken 1 times.
✗ Branch 1624 not taken.
✓ Branch 1626 taken 2 times.
✗ Branch 1627 not taken.
✗ Branch 1629 not taken.
✗ Branch 1630 not taken.
✓ Branch 1632 taken 2 times.
✗ Branch 1633 not taken.
✗ Branch 1635 not taken.
✗ Branch 1636 not taken.
✗ Branch 1639 not taken.
✗ Branch 1640 not taken.
✗ Branch 1643 not taken.
✗ Branch 1644 not taken.
✗ Branch 1647 not taken.
✗ Branch 1648 not taken.
✗ Branch 1651 not taken.
✗ Branch 1652 not taken.
✗ Branch 1655 not taken.
✗ Branch 1656 not taken.
✗ Branch 1659 not taken.
✗ Branch 1660 not taken.
✗ Branch 1663 not taken.
✗ Branch 1664 not taken.
✗ Branch 1667 not taken.
✗ Branch 1668 not taken.
✗ Branch 1671 not taken.
✗ Branch 1672 not taken.
✗ Branch 1675 not taken.
✗ Branch 1676 not taken.
✗ Branch 1679 not taken.
✗ Branch 1680 not taken.
✗ Branch 1683 not taken.
✗ Branch 1684 not taken.
✗ Branch 1687 not taken.
✗ Branch 1688 not taken.
✗ Branch 1691 not taken.
✗ Branch 1692 not taken.
✗ Branch 1695 not taken.
✗ Branch 1696 not taken.
✗ Branch 1699 not taken.
✗ Branch 1700 not taken.
✗ Branch 1703 not taken.
✗ Branch 1704 not taken.
✗ Branch 1707 not taken.
✗ Branch 1708 not taken.
✗ Branch 1711 not taken.
✗ Branch 1712 not taken.
✗ Branch 1715 not taken.
✗ Branch 1716 not taken.
✗ Branch 1719 not taken.
✗ Branch 1720 not taken.
✗ Branch 1723 not taken.
✗ Branch 1724 not taken.
✗ Branch 1727 not taken.
✗ Branch 1728 not taken.
✗ Branch 1731 not taken.
✗ Branch 1732 not taken.
✗ Branch 1735 not taken.
✗ Branch 1736 not taken.
✗ Branch 1739 not taken.
✗ Branch 1740 not taken.
✗ Branch 1743 not taken.
✗ Branch 1744 not taken.
✗ Branch 1747 not taken.
✗ Branch 1748 not taken.
✗ Branch 1751 not taken.
✗ Branch 1752 not taken.
✗ Branch 1755 not taken.
✗ Branch 1756 not taken.
✗ Branch 1759 not taken.
✗ Branch 1760 not taken.
✗ Branch 1763 not taken.
✗ Branch 1764 not taken.
✗ Branch 1767 not taken.
✗ Branch 1768 not taken.
✗ Branch 1771 not taken.
✗ Branch 1772 not taken.
✗ Branch 1775 not taken.
✗ Branch 1776 not taken.
✗ Branch 1779 not taken.
✗ Branch 1780 not taken.
✗ Branch 1783 not taken.
✗ Branch 1784 not taken.
✗ Branch 1787 not taken.
✗ Branch 1788 not taken.
✗ Branch 1791 not taken.
✗ Branch 1792 not taken.
✗ Branch 1795 not taken.
✗ Branch 1796 not taken.
✗ Branch 1799 not taken.
✗ Branch 1800 not taken.
✗ Branch 1803 not taken.
✗ Branch 1804 not taken.
✗ Branch 1806 not taken.
✗ Branch 1807 not taken.
✗ Branch 1809 not taken.
✗ Branch 1810 not taken.
✗ Branch 1812 not taken.
✗ Branch 1813 not taken.
✗ Branch 1815 not taken.
✗ Branch 1816 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 1827 not taken.
✗ Branch 1828 not taken.
✗ Branch 1830 not taken.
✗ Branch 1831 not taken.
✗ Branch 1833 not taken.
✗ Branch 1834 not taken.
✗ Branch 1836 not taken.
✗ Branch 1837 not taken.
✗ Branch 1839 not taken.
✗ Branch 1840 not taken.
✗ Branch 1842 not taken.
✗ Branch 1843 not taken.
✗ Branch 1845 not taken.
✗ Branch 1846 not taken.
✗ Branch 1848 not taken.
✗ Branch 1849 not taken.
✗ Branch 1851 not taken.
✗ Branch 1852 not taken.
✓ Branch 1854 taken 3 times.
✗ Branch 1855 not taken.
✗ Branch 1857 not taken.
✗ Branch 1858 not taken.
✗ Branch 1860 not taken.
✗ Branch 1861 not taken.
✗ Branch 1863 not taken.
✗ Branch 1864 not taken.
✗ Branch 1866 not taken.
✗ Branch 1867 not taken.
✗ Branch 1869 not taken.
✗ Branch 1870 not taken.
✗ Branch 1872 not taken.
✗ Branch 1873 not taken.
✗ Branch 1875 not taken.
✗ Branch 1876 not taken.
✗ Branch 1878 not taken.
✗ Branch 1879 not taken.
✓ Branch 1881 taken 3 times.
✗ Branch 1882 not taken.
✗ Branch 1884 not taken.
✗ Branch 1885 not taken.
✓ Branch 1887 taken 1 times.
✗ Branch 1888 not taken.
✓ Branch 1890 taken 1 times.
✗ Branch 1891 not taken.
✓ Branch 1893 taken 3 times.
✗ Branch 1894 not taken.
✗ Branch 1896 not taken.
✗ Branch 1897 not taken.
✗ Branch 1899 not taken.
✗ Branch 1900 not taken.
✗ Branch 1902 not taken.
✗ Branch 1903 not taken.
✓ Branch 1905 taken 3 times.
✗ Branch 1906 not taken.
✗ Branch 1908 not taken.
✗ Branch 1909 not taken.
✗ Branch 1911 not taken.
✗ Branch 1912 not taken.
75986882 Vec3(const Vec3<Other>& v)
82 {
83
3/5
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 4 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
803229418 this->mm[0] = static_cast<T>(v[0]);
84 803229434 this->mm[1] = static_cast<T>(v[1]);
85
55/68
✓ Branch 1 taken 537975 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 18 times.
✓ Branch 4 taken 6 times.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 18 times.
✓ Branch 7 taken 8415780 times.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 8 times.
✓ Branch 11 taken 4 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 1388026 times.
✓ Branch 14 taken 1 times.
✓ Branch 15 taken 6 times.
✓ Branch 16 taken 2 times.
✓ Branch 17 taken 4 times.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 1 times.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 1 times.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 1 times.
✓ Branch 31 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 3 times.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 1 times.
✓ Branch 37 taken 1 times.
✓ Branch 38 taken 4 times.
✓ Branch 39 taken 26 times.
✓ Branch 40 taken 1 times.
✓ Branch 41 taken 1388025 times.
✓ Branch 42 taken 1 times.
✓ Branch 43 taken 1 times.
✓ Branch 44 taken 1520879 times.
✓ Branch 45 taken 1 times.
✓ Branch 46 taken 1 times.
✓ Branch 47 taken 4 times.
✓ Branch 48 taken 1 times.
✓ Branch 49 taken 17 times.
✓ Branch 50 taken 5 times.
✓ Branch 51 taken 5 times.
✓ Branch 52 taken 1 times.
✓ Branch 53 taken 2 times.
✓ Branch 54 taken 4 times.
✓ Branch 55 taken 54 times.
✓ Branch 56 taken 1 times.
✓ Branch 57 taken 2 times.
✓ Branch 58 taken 2 times.
✓ Branch 59 taken 5 times.
✓ Branch 60 taken 1 times.
✓ Branch 61 taken 1 times.
✓ Branch 62 taken 2 times.
✓ Branch 63 taken 1 times.
✗ Branch 64 not taken.
✓ Branch 66 taken 1 times.
✗ Branch 67 not taken.
✓ Branch 69 taken 1 times.
✗ Branch 70 not taken.
36334599 this->mm[2] = static_cast<T>(v[2]);
86 2289852 }
87
88 /// Reference to the component, e.g. v.x() = 4.5f;
89 T& x() { return this->mm[0]; }
90 T& y() { return this->mm[1]; }
91 T& z() { return this->mm[2]; }
92
93 /// Get the component, e.g. float f = v.y();
94
29/87
✓ Branch 0 taken 81248 times.
✓ Branch 1 taken 2406619 times.
✓ Branch 2 taken 661 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 80 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 4279 times.
✓ Branch 7 taken 2943254 times.
✓ Branch 8 taken 1968767 times.
✓ Branch 9 taken 1000809 times.
✓ Branch 10 taken 143 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 36860 times.
✓ Branch 13 taken 4 times.
✓ Branch 14 taken 36859 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 36992 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 12 times.
✓ Branch 20 taken 1 times.
✓ Branch 21 taken 8192 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 65536 times.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 4 times.
✓ Branch 27 taken 8 times.
✓ Branch 28 taken 3330845 times.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✓ Branch 35 taken 1029 times.
✗ 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 taken 8 times.
✗ 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 4 times.
✓ Branch 51 taken 8 times.
✗ 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 taken 8 times.
✗ 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 67 not taken.
✗ Branch 68 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
2498986257 T x() const { return this->mm[0]; }
95
30/159
✓ Branch 0 taken 81197 times.
✓ Branch 1 taken 2397341 times.
✓ Branch 2 taken 659 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 80 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✓ Branch 7 taken 1038273 times.
✓ Branch 8 taken 1968759 times.
✓ Branch 9 taken 1000011 times.
✓ Branch 10 taken 141 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 37667 times.
✓ Branch 13 taken 6 times.
✓ Branch 14 taken 36858 times.
✓ Branch 15 taken 1 times.
✓ Branch 16 taken 36992 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✓ Branch 19 taken 8 times.
✗ 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 taken 7 times.
✓ Branch 27 taken 12 times.
✓ Branch 28 taken 3326941 times.
✓ Branch 29 taken 3905 times.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✓ Branch 35 taken 9 times.
✗ 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 taken 8 times.
✗ 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 6 times.
✓ Branch 51 taken 12 times.
✗ 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 taken 8 times.
✗ 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 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 181 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
2579393817 T y() const { return this->mm[1]; }
96
37/157
✓ Branch 0 taken 21614 times.
✓ Branch 1 taken 2386384 times.
✓ Branch 2 taken 60221 times.
✓ Branch 3 taken 10935 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 83 times.
✓ Branch 6 taken 4 times.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 55225 times.
✓ Branch 9 taken 1033996 times.
✓ Branch 10 taken 3 times.
✓ Branch 11 taken 2913656 times.
✓ Branch 12 taken 36859 times.
✓ Branch 13 taken 21 times.
✓ Branch 14 taken 37662 times.
✓ Branch 15 taken 8 times.
✓ Branch 16 taken 36856 times.
✓ Branch 17 taken 133 times.
✓ Branch 18 taken 4 times.
✓ Branch 19 taken 12 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 9 times.
✓ Branch 27 taken 19 times.
✓ Branch 28 taken 3326941 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 1 times.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 times.
✓ Branch 34 taken 2 times.
✓ Branch 35 taken 8 times.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✓ Branch 39 taken 1 times.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✓ Branch 42 taken 1 times.
✓ Branch 43 taken 8 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✓ Branch 50 taken 9 times.
✓ Branch 51 taken 18 times.
✗ 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 taken 8 times.
✗ 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 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 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✗ Branch 113 not taken.
✗ Branch 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✗ Branch 133 not taken.
✗ Branch 134 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 160 not taken.
✗ Branch 161 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
2744996482 T z() const { return this->mm[2]; }
97
98 705 T* asPointer() { return this->mm; }
99 const T* asPointer() const { return this->mm; }
100
101 /// Alternative indexed reference to the elements
102
4/8
✓ Branch 0 taken 8939760 times.
✓ Branch 1 taken 195677163 times.
✓ Branch 2 taken 38169668 times.
✓ Branch 3 taken 166447255 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
213556683 T& operator()(int i) { return this->mm[i]; }
103
104 /// Alternative indexed constant reference to the elements,
105
11/26
✓ Branch 0 taken 74304 times.
✓ Branch 1 taken 148876 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 25908 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 10 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 10 times.
✗ Branch 10 not taken.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 27 taken 1 times.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
9995446 T operator()(int i) const { return this->mm[i]; }
106
107 /// "this" vector gets initialized to [x, y, z],
108 /// calling v.init(); has same effect as calling v = Vec3::zero();
109 const Vec3<T>& init(T x=0, T y=0, T z=0)
110 {
111 this->mm[0] = x; this->mm[1] = y; this->mm[2] = z;
112 return *this;
113 }
114
115
116 /// Set "this" vector to zero
117 const Vec3<T>& setZero()
118 {
119 14078658 this->mm[0] = 0; this->mm[1] = 0; this->mm[2] = 0;
120 2213 return *this;
121 }
122
123 /// @brief Assignment operator
124 /// @details Type conversion warnings are not suppressed.
125 template<typename Source>
126 786944 const Vec3<T>& operator=(const Vec3<Source> &v)
127 {
128 // note: don't static_cast because that suppresses warnings
129 786964 this->mm[0] = v[0];
130 786964 this->mm[1] = v[1];
131 786964 this->mm[2] = v[2];
132
133 786962 return *this;
134 }
135
136 /// Test if "this" vector is equivalent to vector v with tolerance of eps
137
2/2
✓ Branch 0 taken 28352950 times.
✓ Branch 1 taken 30600181 times.
61580152 bool eq(const Vec3<T> &v, T eps = static_cast<T>(1.0e-7)) const
138 {
139
2/2
✓ Branch 0 taken 48 times.
✓ Branch 1 taken 18372391 times.
18748975 return isRelOrApproxEqual(this->mm[0], v.mm[0], eps, eps) &&
140
4/4
✓ Branch 0 taken 54 times.
✓ Branch 1 taken 28352896 times.
✓ Branch 2 taken 10416710 times.
✓ Branch 3 taken 36 times.
39220687 isRelOrApproxEqual(this->mm[1], v.mm[1], eps, eps) &&
141 61580152 isRelOrApproxEqual(this->mm[2], v.mm[2], eps, eps);
142 }
143
144
145 /// Negation operator, for e.g. v1 = -v2;
146
5/42
✗ Branch 0 not taken.
✓ Branch 1 taken 57910 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 7094 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 263144 times.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 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 51 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✗ Branch 68 not taken.
1076601 Vec3<T> operator-() const { return Vec3<T>(-this->mm[0], -this->mm[1], -this->mm[2]); }
147
148 /// this = v1 + v2
149 /// "this", v1 and v2 need not be distinct objects, e.g. v.add(v1,v);
150 template <typename T0, typename T1>
151 const Vec3<T>& add(const Vec3<T0> &v1, const Vec3<T1> &v2)
152 {
153 this->mm[0] = v1[0] + v2[0];
154 this->mm[1] = v1[1] + v2[1];
155 this->mm[2] = v1[2] + v2[2];
156
157 return *this;
158 }
159
160 /// this = v1 - v2
161 /// "this", v1 and v2 need not be distinct objects, e.g. v.sub(v1,v);
162 template <typename T0, typename T1>
163 const Vec3<T>& sub(const Vec3<T0> &v1, const Vec3<T1> &v2)
164 {
165 this->mm[0] = v1[0] - v2[0];
166 this->mm[1] = v1[1] - v2[1];
167 this->mm[2] = v1[2] - v2[2];
168
169 return *this;
170 }
171
172 /// this = scalar*v, v need not be a distinct object from "this",
173 /// e.g. v.scale(1.5,v1);
174 template <typename T0, typename T1>
175 const Vec3<T>& scale(T0 scale, const Vec3<T1> &v)
176 {
177 this->mm[0] = scale * v[0];
178 this->mm[1] = scale * v[1];
179 this->mm[2] = scale * v[2];
180
181 return *this;
182 }
183
184 template <typename T0, typename T1>
185 const Vec3<T> &div(T0 scale, const Vec3<T1> &v)
186 {
187 this->mm[0] = v[0] / scale;
188 this->mm[1] = v[1] / scale;
189 this->mm[2] = v[2] / scale;
190
191 return *this;
192 }
193
194 /// Dot product
195 T dot(const Vec3<T> &v) const
196 {
197 return
198 448399002 this->mm[0]*v.mm[0] +
199 448399002 this->mm[1]*v.mm[1] +
200
10/42
✓ Branch 0 taken 8703 times.
✓ Branch 1 taken 8129 times.
✓ Branch 2 taken 458 times.
✓ Branch 3 taken 3221 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 1910 times.
✓ Branch 8 taken 3001435 times.
✓ Branch 9 taken 234576 times.
✓ Branch 10 taken 26857 times.
✓ Branch 11 taken 608863 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 7 times.
✗ 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 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 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 240 not taken.
✗ Branch 241 not taken.
410976852 this->mm[2]*v.mm[2];
201 }
202
203 /// Length of the vector
204 T length() const
205 {
206 84475080 return static_cast<T>(sqrt(double(
207
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
140786237 this->mm[0]*this->mm[0] +
208 140786251 this->mm[1]*this->mm[1] +
209
63/111
✓ Branch 0 taken 59569 times.
✓ Branch 1 taken 1059982 times.
✓ Branch 2 taken 376026 times.
✓ Branch 3 taken 510504 times.
✓ Branch 4 taken 2945 times.
✓ Branch 5 taken 6597 times.
✓ Branch 6 taken 680660 times.
✓ Branch 7 taken 5006 times.
✓ Branch 8 taken 8789 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 82519 times.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 138629 times.
✓ Branch 13 taken 542517 times.
✓ Branch 14 taken 1 times.
✓ Branch 15 taken 4499456 times.
✓ Branch 16 taken 1 times.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 1 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 1 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 1 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 1 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 1 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 52 taken 1 times.
✗ Branch 53 not taken.
✓ Branch 55 taken 1 times.
✗ Branch 56 not taken.
✓ Branch 58 taken 1 times.
✗ Branch 59 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 62 not taken.
✓ Branch 64 taken 1 times.
✗ Branch 65 not taken.
✓ Branch 67 taken 1 times.
✗ Branch 68 not taken.
✓ Branch 70 taken 1 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 1 times.
✗ Branch 74 not taken.
✓ Branch 76 taken 1 times.
✗ Branch 77 not taken.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✓ Branch 85 taken 1 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.
59127067 this->mm[2]*this->mm[2])));
210 }
211
212
213 /// Squared length of the vector, much faster than length() as it
214 /// does not involve square root
215 T lengthSqr() const
216 {
217 return
218 83663202 this->mm[0]*this->mm[0] +
219 83663202 this->mm[1]*this->mm[1] +
220
14/240
✓ Branch 0 taken 35900 times.
✓ Branch 1 taken 920 times.
✓ Branch 2 taken 40094 times.
✓ Branch 3 taken 107 times.
✓ Branch 4 taken 37375 times.
✓ Branch 5 taken 75163 times.
✓ Branch 6 taken 6 times.
✓ Branch 7 taken 2212 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 37375 times.
✓ Branch 11 taken 37375 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 3 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 9051552 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✓ Branch 26 taken 2164693 times.
✓ Branch 27 taken 12609907 times.
✗ 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.
71494432 this->mm[2]*this->mm[2];
221 }
222
223 /// Return the cross product of "this" vector and v;
224 Vec3<T> cross(const Vec3<T> &v) const
225 {
226 68 return Vec3<T>(this->mm[1]*v.mm[2] - this->mm[2]*v.mm[1],
227 1520945 this->mm[2]*v.mm[0] - this->mm[0]*v.mm[2],
228
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
1520947 this->mm[0]*v.mm[1] - this->mm[1]*v.mm[0]);
229 }
230
231
232 /// this = v1 cross v2, v1 and v2 must be distinct objects than "this"
233 const Vec3<T>& cross(const Vec3<T> &v1, const Vec3<T> &v2)
234 {
235 // assert(this!=&v1);
236 // assert(this!=&v2);
237 14 this->mm[0] = v1.mm[1]*v2.mm[2] - v1.mm[2]*v2.mm[1];
238 14 this->mm[1] = v1.mm[2]*v2.mm[0] - v1.mm[0]*v2.mm[2];
239
2/2
✓ Branch 0 taken 11 times.
✓ Branch 1 taken 3 times.
14 this->mm[2] = v1.mm[0]*v2.mm[1] - v1.mm[1]*v2.mm[0];
240 return *this;
241 }
242
243 /// Multiply each element of this vector by @a scalar.
244 template <typename S>
245 const Vec3<T> &operator*=(S scalar)
246 {
247 OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN
248 896928988 const auto value0 = this->mm[0] * scalar;
249 896928988 const auto value1 = this->mm[1] * scalar;
250
2/2
✓ Branch 0 taken 1 times.
✓ Branch 1 taken 2 times.
12336619 const auto value2 = this->mm[2] * scalar;
251 OPENVDB_NO_TYPE_CONVERSION_WARNING_END
252 61669200 this->mm[0] = static_cast<T>(value0);
253 61669200 this->mm[1] = static_cast<T>(value1);
254
1/2
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
61669169 this->mm[2] = static_cast<T>(value2);
255 90657 return *this;
256 }
257
258 /// Multiply each element of this vector by the corresponding element of the given vector.
259 template <typename S>
260 const Vec3<T> &operator*=(const Vec3<S> &v1)
261 {
262 this->mm[0] *= v1[0];
263 this->mm[1] *= v1[1];
264 this->mm[2] *= v1[2];
265 return *this;
266 }
267
268 /// Divide each element of this vector by @a scalar.
269 template <typename S>
270 const Vec3<T> &operator/=(S scalar)
271 {
272 16483404 this->mm[0] /= scalar;
273 16483404 this->mm[1] /= scalar;
274
2/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1520876 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 times.
1546824 this->mm[2] /= scalar;
275 return *this;
276 }
277
278 /// Divide each element of this vector by the corresponding element of the given vector.
279 template <typename S>
280 const Vec3<T> &operator/=(const Vec3<S> &v1)
281 {
282 12 this->mm[0] /= v1[0];
283 12 this->mm[1] /= v1[1];
284 12 this->mm[2] /= v1[2];
285 2 return *this;
286 }
287
288 /// Add @a scalar to each element of this vector.
289 template <typename S>
290 const Vec3<T> &operator+=(S scalar)
291 {
292 OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN
293 543813 const auto value0 = this->mm[0] + scalar;
294 10284838 const auto value1 = this->mm[1] + scalar;
295
2/2
✓ Branch 0 taken 2211 times.
✓ Branch 1 taken 84 times.
10274838 const auto value2 = this->mm[2] + scalar;
296 OPENVDB_NO_TYPE_CONVERSION_WARNING_END
297 10281776 this->mm[0] = static_cast<T>(value0);
298 10281776 this->mm[1] = static_cast<T>(value1);
299 16462 this->mm[2] = static_cast<T>(value2);
300 16 return *this;
301 }
302
303 /// Add each element of the given vector to the corresponding element of this vector.
304 template <typename S>
305 const Vec3<T> &operator+=(const Vec3<S> &v1)
306 {
307 1356058485 this->mm[0] += v1[0];
308 1356058485 this->mm[1] += v1[1];
309
89/1237
✓ Branch 0 taken 5 times.
✓ Branch 1 taken 173499 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 1042307 times.
✓ Branch 5 taken 7 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 10342 times.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 7 times.
✓ Branch 13 taken 9 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 7 times.
✓ Branch 16 taken 10 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 9 times.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 6 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 6 times.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 15 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 15 times.
✓ Branch 32 taken 3 times.
✓ Branch 33 taken 3 times.
✓ Branch 34 taken 1654104 times.
✓ Branch 35 taken 3 times.
✗ Branch 36 not taken.
✓ Branch 37 taken 8 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 40 taken 8 times.
✓ Branch 41 taken 12068776 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 4 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 5 times.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 9 times.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✓ Branch 52 taken 2164702 times.
✓ Branch 53 taken 19300582 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1082374 times.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✓ Branch 58 taken 6 times.
✗ Branch 59 not taken.
✓ Branch 60 taken 1 times.
✓ Branch 61 taken 6 times.
✗ Branch 62 not taken.
✓ Branch 63 taken 1 times.
✓ Branch 64 taken 15 times.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✓ Branch 67 taken 15 times.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✓ Branch 70 taken 1654104 times.
✗ Branch 71 not taken.
✓ Branch 73 taken 5004 times.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 76 taken 5004 times.
✗ Branch 77 not taken.
✓ Branch 78 taken 4 times.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✓ Branch 81 taken 1 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 85 taken 4 times.
✗ Branch 86 not taken.
✓ Branch 87 taken 4 times.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✓ Branch 90 taken 4 times.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✓ Branch 93 taken 1 times.
✗ Branch 94 not taken.
✗ Branch 95 not taken.
✓ Branch 96 taken 1 times.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✓ Branch 99 taken 1 times.
✓ Branch 100 taken 3837100 times.
✗ Branch 101 not taken.
✓ Branch 102 taken 1 times.
✓ Branch 103 taken 3 times.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✓ Branch 106 taken 1 times.
✗ Branch 107 not taken.
✓ Branch 109 taken 1 times.
✗ Branch 110 not taken.
✗ Branch 112 not taken.
✓ Branch 113 taken 53 times.
✗ 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 121 not taken.
✗ Branch 122 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 133 not taken.
✗ Branch 134 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 145 not taken.
✗ Branch 146 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 157 not taken.
✗ Branch 158 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 169 not taken.
✗ Branch 170 not taken.
✗ Branch 172 not taken.
✗ Branch 173 not taken.
✓ Branch 175 taken 4 times.
✗ Branch 176 not taken.
✓ Branch 178 taken 4 times.
✗ Branch 179 not taken.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 193 not taken.
✗ Branch 194 not taken.
✗ Branch 196 not taken.
✗ Branch 197 not taken.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✓ Branch 202 taken 3837100 times.
✗ Branch 203 not taken.
✓ Branch 205 taken 3 times.
✗ Branch 206 not taken.
✗ Branch 208 not taken.
✗ Branch 209 not taken.
✗ Branch 211 not taken.
✗ Branch 212 not taken.
✗ Branch 214 not taken.
✗ Branch 215 not taken.
✗ Branch 217 not taken.
✗ Branch 218 not taken.
✗ Branch 220 not taken.
✗ Branch 221 not taken.
✗ Branch 223 not taken.
✗ Branch 224 not taken.
✗ Branch 226 not taken.
✗ Branch 227 not taken.
✓ Branch 229 taken 3827080 times.
✗ Branch 230 not taken.
✓ Branch 232 taken 4 times.
✗ Branch 233 not taken.
✓ Branch 235 taken 4 times.
✗ Branch 236 not taken.
✓ Branch 238 taken 4 times.
✗ Branch 239 not taken.
✗ Branch 241 not taken.
✗ Branch 242 not taken.
✗ Branch 244 not taken.
✗ Branch 245 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✓ Branch 253 taken 1913536 times.
✗ Branch 254 not taken.
✓ Branch 256 taken 1913537 times.
✗ Branch 257 not taken.
✓ Branch 259 taken 1913536 times.
✗ Branch 260 not taken.
✓ Branch 262 taken 20 times.
✗ Branch 263 not taken.
✓ Branch 265 taken 4 times.
✗ Branch 266 not taken.
✓ Branch 268 taken 4 times.
✗ Branch 269 not taken.
✓ Branch 271 taken 1 times.
✗ Branch 272 not taken.
✓ Branch 273 taken 1 times.
✗ Branch 274 not taken.
✗ Branch 275 not taken.
✓ Branch 276 taken 3 times.
✗ Branch 277 not taken.
✗ Branch 278 not taken.
✓ Branch 279 taken 4 times.
✗ Branch 280 not taken.
✓ Branch 281 taken 4 times.
✗ Branch 282 not taken.
✓ Branch 284 taken 3 times.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 289 not taken.
✗ Branch 290 not taken.
✗ Branch 293 not taken.
✗ Branch 294 not taken.
✗ Branch 297 not taken.
✗ Branch 298 not taken.
✗ Branch 301 not taken.
✗ Branch 302 not taken.
✗ Branch 305 not taken.
✗ Branch 306 not taken.
✗ Branch 309 not taken.
✗ Branch 310 not taken.
✗ Branch 313 not taken.
✗ Branch 314 not taken.
✗ Branch 317 not taken.
✗ Branch 318 not taken.
✗ Branch 321 not taken.
✗ Branch 322 not taken.
✗ Branch 325 not taken.
✗ Branch 326 not taken.
✗ Branch 329 not taken.
✗ Branch 330 not taken.
✗ Branch 333 not taken.
✗ Branch 334 not taken.
✗ Branch 337 not taken.
✗ Branch 338 not taken.
✗ Branch 341 not taken.
✗ Branch 342 not taken.
✗ Branch 345 not taken.
✗ Branch 346 not taken.
✗ Branch 349 not taken.
✗ Branch 350 not taken.
✗ Branch 353 not taken.
✗ Branch 354 not taken.
✗ Branch 357 not taken.
✗ Branch 358 not taken.
✗ Branch 361 not taken.
✗ Branch 362 not taken.
✗ Branch 365 not taken.
✗ Branch 366 not taken.
✗ Branch 369 not taken.
✗ Branch 370 not taken.
✗ Branch 373 not taken.
✗ Branch 374 not taken.
✗ Branch 377 not taken.
✗ Branch 378 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✗ Branch 397 not taken.
✗ Branch 398 not taken.
✗ Branch 401 not taken.
✗ Branch 402 not taken.
✗ Branch 405 not taken.
✗ Branch 406 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 413 not taken.
✗ Branch 414 not taken.
✗ Branch 417 not taken.
✗ Branch 418 not taken.
✗ Branch 421 not taken.
✗ Branch 422 not taken.
✗ Branch 425 not taken.
✗ Branch 426 not taken.
✗ Branch 429 not taken.
✗ Branch 430 not taken.
✗ Branch 433 not taken.
✗ Branch 434 not taken.
✗ Branch 437 not taken.
✗ Branch 438 not taken.
✗ Branch 441 not taken.
✗ Branch 442 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 448 not taken.
✗ Branch 449 not taken.
✗ Branch 451 not taken.
✗ Branch 452 not taken.
✗ Branch 454 not taken.
✗ Branch 455 not taken.
✗ Branch 457 not taken.
✗ Branch 458 not taken.
✗ Branch 460 not taken.
✗ Branch 461 not taken.
✗ Branch 463 not taken.
✗ Branch 464 not taken.
✗ Branch 466 not taken.
✗ Branch 467 not taken.
✗ Branch 469 not taken.
✗ Branch 470 not taken.
✗ Branch 472 not taken.
✗ Branch 473 not taken.
✗ Branch 475 not taken.
✗ Branch 476 not taken.
✗ Branch 478 not taken.
✗ Branch 479 not taken.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 484 not taken.
✗ Branch 485 not taken.
✗ Branch 487 not taken.
✗ Branch 488 not taken.
✗ Branch 490 not taken.
✗ Branch 491 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 496 not taken.
✗ Branch 497 not taken.
✗ Branch 499 not taken.
✗ Branch 500 not taken.
✗ Branch 502 not taken.
✗ Branch 503 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 508 not taken.
✗ Branch 509 not taken.
✗ Branch 511 not taken.
✗ Branch 512 not taken.
✗ Branch 514 not taken.
✗ Branch 515 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 520 not taken.
✗ Branch 521 not taken.
✗ Branch 523 not taken.
✗ Branch 524 not taken.
✗ Branch 526 not taken.
✗ Branch 527 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✓ Branch 532 taken 1 times.
✗ Branch 533 not taken.
✗ Branch 535 not taken.
✗ Branch 536 not taken.
✗ Branch 538 not taken.
✗ Branch 539 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 544 not taken.
✗ Branch 545 not taken.
✗ Branch 547 not taken.
✗ Branch 548 not taken.
✗ Branch 550 not taken.
✗ Branch 551 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 556 not taken.
✗ Branch 557 not taken.
✗ Branch 559 not taken.
✗ Branch 560 not taken.
✗ Branch 562 not taken.
✗ Branch 563 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 568 not taken.
✗ Branch 569 not taken.
✗ Branch 571 not taken.
✗ Branch 572 not taken.
✗ Branch 574 not taken.
✗ Branch 575 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 580 not taken.
✗ Branch 581 not taken.
✗ Branch 583 not taken.
✗ Branch 584 not taken.
✗ Branch 586 not taken.
✗ Branch 587 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 592 not taken.
✗ Branch 593 not taken.
✗ Branch 595 not taken.
✗ Branch 596 not taken.
✗ Branch 598 not taken.
✗ Branch 599 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 604 not taken.
✗ Branch 605 not taken.
✗ Branch 607 not taken.
✗ Branch 608 not taken.
✗ Branch 610 not taken.
✗ Branch 611 not taken.
✗ Branch 613 not taken.
✗ Branch 614 not taken.
✗ Branch 616 not taken.
✗ Branch 617 not taken.
✗ Branch 619 not taken.
✗ Branch 620 not taken.
✗ Branch 622 not taken.
✗ Branch 623 not taken.
✗ Branch 625 not taken.
✗ Branch 626 not taken.
✗ Branch 628 not taken.
✗ Branch 629 not taken.
✗ Branch 631 not taken.
✗ Branch 632 not taken.
✗ Branch 634 not taken.
✗ Branch 635 not taken.
✗ Branch 637 not taken.
✗ Branch 638 not taken.
✗ Branch 640 not taken.
✗ Branch 641 not taken.
✗ Branch 643 not taken.
✗ Branch 644 not taken.
✗ Branch 646 not taken.
✗ Branch 647 not taken.
✗ Branch 649 not taken.
✗ Branch 650 not taken.
✗ Branch 652 not taken.
✗ Branch 653 not taken.
✗ Branch 655 not taken.
✗ Branch 656 not taken.
✗ Branch 658 not taken.
✗ Branch 659 not taken.
✗ Branch 661 not taken.
✗ Branch 662 not taken.
✗ Branch 664 not taken.
✗ Branch 665 not taken.
✗ Branch 667 not taken.
✗ Branch 668 not taken.
✗ Branch 670 not taken.
✗ Branch 671 not taken.
✗ Branch 673 not taken.
✗ Branch 674 not taken.
✗ Branch 676 not taken.
✗ Branch 677 not taken.
✗ Branch 679 not taken.
✗ Branch 680 not taken.
✗ Branch 682 not taken.
✗ Branch 683 not taken.
✗ Branch 685 not taken.
✗ Branch 686 not taken.
✗ Branch 688 not taken.
✗ Branch 689 not taken.
✗ Branch 691 not taken.
✗ Branch 692 not taken.
✗ Branch 694 not taken.
✗ Branch 695 not taken.
✗ Branch 697 not taken.
✗ Branch 698 not taken.
✗ Branch 700 not taken.
✗ Branch 701 not taken.
✗ Branch 703 not taken.
✗ Branch 704 not taken.
✗ Branch 706 not taken.
✗ Branch 707 not taken.
✗ Branch 709 not taken.
✗ Branch 710 not taken.
✗ Branch 712 not taken.
✗ Branch 713 not taken.
✗ Branch 715 not taken.
✗ Branch 716 not taken.
✗ Branch 718 not taken.
✗ Branch 719 not taken.
✗ Branch 721 not taken.
✗ Branch 722 not taken.
✓ Branch 724 taken 1 times.
✗ Branch 725 not taken.
✗ Branch 727 not taken.
✗ Branch 728 not taken.
✗ Branch 730 not taken.
✗ Branch 731 not taken.
✗ Branch 733 not taken.
✗ Branch 734 not taken.
✗ Branch 736 not taken.
✗ Branch 737 not taken.
✗ Branch 739 not taken.
✗ Branch 740 not taken.
✗ Branch 742 not taken.
✗ Branch 743 not taken.
✗ Branch 745 not taken.
✗ Branch 746 not taken.
✗ Branch 748 not taken.
✗ Branch 749 not taken.
✗ Branch 751 not taken.
✗ Branch 752 not taken.
✗ Branch 754 not taken.
✗ Branch 755 not taken.
✗ Branch 757 not taken.
✗ Branch 758 not taken.
✗ Branch 760 not taken.
✗ Branch 761 not taken.
✗ Branch 763 not taken.
✗ Branch 764 not taken.
✗ Branch 766 not taken.
✗ Branch 767 not taken.
✗ Branch 769 not taken.
✗ Branch 770 not taken.
✗ Branch 772 not taken.
✗ Branch 773 not taken.
✗ Branch 775 not taken.
✗ Branch 776 not taken.
✗ Branch 778 not taken.
✗ Branch 779 not taken.
✗ Branch 781 not taken.
✗ Branch 782 not taken.
✗ Branch 784 not taken.
✗ Branch 785 not taken.
✗ Branch 787 not taken.
✗ Branch 788 not taken.
✗ Branch 790 not taken.
✗ Branch 791 not taken.
✗ Branch 793 not taken.
✗ Branch 794 not taken.
✗ Branch 796 not taken.
✗ Branch 797 not taken.
✗ Branch 799 not taken.
✗ Branch 800 not taken.
✗ Branch 802 not taken.
✗ Branch 803 not taken.
✗ Branch 805 not taken.
✗ Branch 806 not taken.
✗ Branch 808 not taken.
✗ Branch 809 not taken.
✗ Branch 811 not taken.
✗ Branch 812 not taken.
✗ Branch 814 not taken.
✗ Branch 815 not taken.
✗ Branch 817 not taken.
✗ Branch 818 not taken.
✗ Branch 820 not taken.
✗ Branch 821 not taken.
✗ Branch 823 not taken.
✗ Branch 824 not taken.
✗ Branch 826 not taken.
✗ Branch 827 not taken.
✗ Branch 829 not taken.
✗ Branch 830 not taken.
✗ Branch 832 not taken.
✗ Branch 833 not taken.
✗ Branch 835 not taken.
✗ Branch 836 not taken.
✗ Branch 838 not taken.
✗ Branch 839 not taken.
✗ Branch 841 not taken.
✗ Branch 842 not taken.
✗ Branch 844 not taken.
✗ Branch 845 not taken.
✗ Branch 847 not taken.
✗ Branch 848 not taken.
✗ Branch 850 not taken.
✗ Branch 851 not taken.
✗ Branch 853 not taken.
✗ Branch 854 not taken.
✗ Branch 856 not taken.
✗ Branch 857 not taken.
✗ Branch 859 not taken.
✗ Branch 860 not taken.
✗ Branch 862 not taken.
✗ Branch 863 not taken.
✗ Branch 865 not taken.
✗ Branch 866 not taken.
✗ Branch 868 not taken.
✗ Branch 869 not taken.
✗ Branch 871 not taken.
✗ Branch 872 not taken.
✗ Branch 874 not taken.
✗ Branch 875 not taken.
✗ Branch 877 not taken.
✗ Branch 878 not taken.
✗ Branch 880 not taken.
✗ Branch 881 not taken.
✗ Branch 883 not taken.
✗ Branch 884 not taken.
✗ Branch 886 not taken.
✗ Branch 887 not taken.
✗ Branch 889 not taken.
✗ Branch 890 not taken.
✗ Branch 892 not taken.
✗ Branch 893 not taken.
✗ Branch 895 not taken.
✗ Branch 896 not taken.
✗ Branch 898 not taken.
✗ Branch 899 not taken.
✗ Branch 901 not taken.
✗ Branch 902 not taken.
✓ Branch 904 taken 1 times.
✗ Branch 905 not taken.
✗ Branch 907 not taken.
✗ Branch 908 not taken.
✗ Branch 910 not taken.
✗ Branch 911 not taken.
✗ Branch 913 not taken.
✗ Branch 914 not taken.
✗ Branch 916 not taken.
✗ Branch 917 not taken.
✗ Branch 919 not taken.
✗ Branch 920 not taken.
✗ Branch 922 not taken.
✗ Branch 923 not taken.
✗ Branch 925 not taken.
✗ Branch 926 not taken.
✗ Branch 928 not taken.
✗ Branch 929 not taken.
✗ Branch 931 not taken.
✗ Branch 932 not taken.
✗ Branch 934 not taken.
✗ Branch 935 not taken.
✗ Branch 937 not taken.
✗ Branch 938 not taken.
✗ Branch 940 not taken.
✗ Branch 941 not taken.
✗ Branch 943 not taken.
✗ Branch 944 not taken.
✗ Branch 946 not taken.
✗ Branch 947 not taken.
✗ Branch 949 not taken.
✗ Branch 950 not taken.
✗ Branch 952 not taken.
✗ Branch 953 not taken.
✗ Branch 955 not taken.
✗ Branch 956 not taken.
✗ Branch 958 not taken.
✗ Branch 959 not taken.
✗ Branch 961 not taken.
✗ Branch 962 not taken.
✗ Branch 964 not taken.
✗ Branch 965 not taken.
✗ Branch 967 not taken.
✗ Branch 968 not taken.
✗ Branch 970 not taken.
✗ Branch 971 not taken.
✗ Branch 973 not taken.
✗ Branch 974 not taken.
✗ Branch 976 not taken.
✗ Branch 977 not taken.
✗ Branch 979 not taken.
✗ Branch 980 not taken.
✗ Branch 982 not taken.
✗ Branch 983 not taken.
✗ Branch 985 not taken.
✗ Branch 986 not taken.
✗ Branch 988 not taken.
✗ Branch 989 not taken.
✗ Branch 991 not taken.
✗ Branch 992 not taken.
✗ Branch 994 not taken.
✗ Branch 995 not taken.
✗ Branch 997 not taken.
✗ Branch 998 not taken.
✗ Branch 1000 not taken.
✗ Branch 1001 not taken.
✗ Branch 1003 not taken.
✗ Branch 1004 not taken.
✗ Branch 1006 not taken.
✗ Branch 1007 not taken.
✗ Branch 1009 not taken.
✗ Branch 1010 not taken.
✗ Branch 1012 not taken.
✗ Branch 1013 not taken.
✗ Branch 1015 not taken.
✗ Branch 1016 not taken.
✗ Branch 1018 not taken.
✗ Branch 1019 not taken.
✗ Branch 1021 not taken.
✗ Branch 1022 not taken.
✗ Branch 1024 not taken.
✗ Branch 1025 not taken.
✗ Branch 1027 not taken.
✗ Branch 1028 not taken.
✗ Branch 1030 not taken.
✗ Branch 1031 not taken.
✗ Branch 1033 not taken.
✗ Branch 1034 not taken.
✗ Branch 1036 not taken.
✗ Branch 1037 not taken.
✗ Branch 1039 not taken.
✗ Branch 1040 not taken.
✗ Branch 1042 not taken.
✗ Branch 1043 not taken.
✗ Branch 1045 not taken.
✗ Branch 1046 not taken.
✗ Branch 1048 not taken.
✗ Branch 1049 not taken.
✗ Branch 1051 not taken.
✗ Branch 1052 not taken.
✗ Branch 1054 not taken.
✗ Branch 1055 not taken.
✗ Branch 1057 not taken.
✗ Branch 1058 not taken.
✗ Branch 1060 not taken.
✗ Branch 1061 not taken.
✗ Branch 1063 not taken.
✗ Branch 1064 not taken.
✗ Branch 1066 not taken.
✗ Branch 1067 not taken.
✗ Branch 1069 not taken.
✗ Branch 1070 not taken.
✗ Branch 1072 not taken.
✗ Branch 1073 not taken.
✗ Branch 1075 not taken.
✗ Branch 1076 not taken.
✗ Branch 1078 not taken.
✗ Branch 1079 not taken.
✗ Branch 1081 not taken.
✗ Branch 1082 not taken.
✓ Branch 1084 taken 1 times.
✗ Branch 1085 not taken.
✗ Branch 1087 not taken.
✗ Branch 1088 not taken.
✗ Branch 1090 not taken.
✗ Branch 1091 not taken.
✗ Branch 1093 not taken.
✗ Branch 1094 not taken.
✗ Branch 1097 not taken.
✗ Branch 1098 not taken.
✗ Branch 1101 not taken.
✗ Branch 1102 not taken.
✗ Branch 1105 not taken.
✗ Branch 1106 not taken.
✗ Branch 1109 not taken.
✗ Branch 1110 not taken.
✗ Branch 1113 not taken.
✗ Branch 1114 not taken.
✗ Branch 1117 not taken.
✗ Branch 1118 not taken.
✗ Branch 1121 not taken.
✗ Branch 1122 not taken.
✗ Branch 1125 not taken.
✗ Branch 1126 not taken.
✗ Branch 1129 not taken.
✗ Branch 1130 not taken.
✗ Branch 1133 not taken.
✗ Branch 1134 not taken.
✗ Branch 1136 not taken.
✗ Branch 1137 not taken.
✗ Branch 1139 not taken.
✗ Branch 1140 not taken.
✗ Branch 1142 not taken.
✗ Branch 1143 not taken.
✗ Branch 1145 not taken.
✗ Branch 1146 not taken.
✗ Branch 1148 not taken.
✗ Branch 1149 not taken.
✗ Branch 1151 not taken.
✗ Branch 1152 not taken.
✗ Branch 1154 not taken.
✗ Branch 1155 not taken.
✗ Branch 1157 not taken.
✗ Branch 1158 not taken.
✗ Branch 1160 not taken.
✗ Branch 1161 not taken.
✗ Branch 1163 not taken.
✗ Branch 1164 not taken.
✗ Branch 1166 not taken.
✗ Branch 1167 not taken.
✗ Branch 1169 not taken.
✗ Branch 1170 not taken.
✗ Branch 1172 not taken.
✗ Branch 1173 not taken.
✗ Branch 1175 not taken.
✗ Branch 1176 not taken.
✗ Branch 1178 not taken.
✗ Branch 1179 not taken.
✗ Branch 1181 not taken.
✗ Branch 1182 not taken.
✗ Branch 1184 not taken.
✗ Branch 1185 not taken.
✗ Branch 1187 not taken.
✗ Branch 1188 not taken.
✗ Branch 1190 not taken.
✗ Branch 1191 not taken.
✗ Branch 1193 not taken.
✗ Branch 1194 not taken.
✗ Branch 1196 not taken.
✗ Branch 1197 not taken.
✗ Branch 1199 not taken.
✗ Branch 1200 not taken.
✗ Branch 1202 not taken.
✗ Branch 1203 not taken.
✗ Branch 1205 not taken.
✗ Branch 1206 not taken.
✗ Branch 1208 not taken.
✗ Branch 1209 not taken.
✗ Branch 1211 not taken.
✗ Branch 1212 not taken.
✗ Branch 1214 not taken.
✗ Branch 1215 not taken.
✗ Branch 1217 not taken.
✗ Branch 1218 not taken.
✗ Branch 1220 not taken.
✗ Branch 1221 not taken.
✗ Branch 1223 not taken.
✗ Branch 1224 not taken.
✗ Branch 1226 not taken.
✗ Branch 1227 not taken.
✗ Branch 1229 not taken.
✗ Branch 1230 not taken.
✗ Branch 1232 not taken.
✗ Branch 1233 not taken.
✗ Branch 1235 not taken.
✗ Branch 1236 not taken.
✗ Branch 1238 not taken.
✗ Branch 1239 not taken.
✗ Branch 1241 not taken.
✗ Branch 1242 not taken.
✗ Branch 1244 not taken.
✗ Branch 1245 not taken.
✗ Branch 1247 not taken.
✗ Branch 1248 not taken.
✗ Branch 1250 not taken.
✗ Branch 1251 not taken.
✗ Branch 1253 not taken.
✗ Branch 1254 not taken.
✗ Branch 1256 not taken.
✗ Branch 1257 not taken.
✗ Branch 1259 not taken.
✗ Branch 1260 not taken.
✗ Branch 1262 not taken.
✗ Branch 1263 not taken.
✗ Branch 1265 not taken.
✗ Branch 1266 not taken.
✗ Branch 1268 not taken.
✗ Branch 1269 not taken.
✗ Branch 1271 not taken.
✗ Branch 1272 not taken.
✗ Branch 1274 not taken.
✗ Branch 1275 not taken.
✗ Branch 1277 not taken.
✗ Branch 1278 not taken.
✗ Branch 1280 not taken.
✗ Branch 1281 not taken.
✗ Branch 1283 not taken.
✗ Branch 1284 not taken.
✗ Branch 1286 not taken.
✗ Branch 1287 not taken.
✗ Branch 1289 not taken.
✗ Branch 1290 not taken.
✗ Branch 1292 not taken.
✗ Branch 1293 not taken.
✗ Branch 1295 not taken.
✗ Branch 1296 not taken.
✗ Branch 1298 not taken.
✗ Branch 1299 not taken.
✗ Branch 1301 not taken.
✗ Branch 1302 not taken.
✓ Branch 1304 taken 3 times.
✗ Branch 1305 not taken.
✗ Branch 1307 not taken.
✗ Branch 1308 not taken.
✗ Branch 1310 not taken.
✗ Branch 1311 not taken.
✗ Branch 1313 not taken.
✗ Branch 1314 not taken.
✗ Branch 1317 not taken.
✗ Branch 1318 not taken.
✗ Branch 1321 not taken.
✗ Branch 1322 not taken.
✗ Branch 1325 not taken.
✗ Branch 1326 not taken.
✗ Branch 1329 not taken.
✗ Branch 1330 not taken.
✗ Branch 1333 not taken.
✗ Branch 1334 not taken.
✗ Branch 1337 not taken.
✗ Branch 1338 not taken.
✗ Branch 1341 not taken.
✗ Branch 1342 not taken.
✗ Branch 1345 not taken.
✗ Branch 1346 not taken.
✗ Branch 1349 not taken.
✗ Branch 1350 not taken.
✗ Branch 1353 not taken.
✗ Branch 1354 not taken.
✗ Branch 1357 not taken.
✗ Branch 1358 not taken.
✗ Branch 1361 not taken.
✗ Branch 1362 not taken.
✗ Branch 1365 not taken.
✗ Branch 1366 not taken.
✗ Branch 1369 not taken.
✗ Branch 1370 not taken.
✗ Branch 1373 not taken.
✗ Branch 1374 not taken.
✗ Branch 1377 not taken.
✗ Branch 1378 not taken.
✗ Branch 1381 not taken.
✗ Branch 1382 not taken.
✗ Branch 1385 not taken.
✗ Branch 1386 not taken.
✗ Branch 1389 not taken.
✗ Branch 1390 not taken.
✗ Branch 1393 not taken.
✗ Branch 1394 not taken.
✗ Branch 1397 not taken.
✗ Branch 1398 not taken.
✗ Branch 1401 not taken.
✗ Branch 1402 not taken.
✗ Branch 1405 not taken.
✗ Branch 1406 not taken.
✗ Branch 1409 not taken.
✗ Branch 1410 not taken.
✗ Branch 1413 not taken.
✗ Branch 1414 not taken.
✗ Branch 1417 not taken.
✗ Branch 1418 not taken.
✗ Branch 1421 not taken.
✗ Branch 1422 not taken.
✗ Branch 1425 not taken.
✗ Branch 1426 not taken.
✗ Branch 1429 not taken.
✗ Branch 1430 not taken.
✗ Branch 1433 not taken.
✗ Branch 1434 not taken.
✗ Branch 1436 not taken.
✗ Branch 1437 not taken.
✗ Branch 1439 not taken.
✗ Branch 1440 not taken.
✓ Branch 1442 taken 1 times.
✗ Branch 1443 not taken.
✗ Branch 1445 not taken.
✗ Branch 1446 not taken.
✗ Branch 1448 not taken.
✗ Branch 1449 not taken.
✗ Branch 1451 not taken.
✗ Branch 1452 not taken.
✗ Branch 1454 not taken.
✗ Branch 1455 not taken.
✗ Branch 1457 not taken.
✗ Branch 1458 not taken.
✗ Branch 1460 not taken.
✗ Branch 1461 not taken.
✗ Branch 1463 not taken.
✗ Branch 1464 not taken.
✗ Branch 1466 not taken.
✗ Branch 1467 not taken.
✗ Branch 1469 not taken.
✗ Branch 1470 not taken.
✗ Branch 1472 not taken.
✗ Branch 1473 not taken.
✗ Branch 1475 not taken.
✗ Branch 1476 not taken.
✗ Branch 1478 not taken.
✗ Branch 1479 not taken.
✗ Branch 1481 not taken.
✗ Branch 1482 not taken.
✗ Branch 1484 not taken.
✗ Branch 1485 not taken.
✗ Branch 1487 not taken.
✗ Branch 1488 not taken.
✗ Branch 1490 not taken.
✗ Branch 1491 not taken.
✗ Branch 1493 not taken.
✗ Branch 1494 not taken.
✗ Branch 1496 not taken.
✗ Branch 1497 not taken.
✗ Branch 1499 not taken.
✗ Branch 1500 not taken.
✗ Branch 1502 not taken.
✗ Branch 1503 not taken.
✗ Branch 1505 not taken.
✗ Branch 1506 not taken.
✗ Branch 1508 not taken.
✗ Branch 1509 not taken.
✗ Branch 1511 not taken.
✗ Branch 1512 not taken.
✓ Branch 1514 taken 1 times.
✗ Branch 1515 not taken.
✗ Branch 1517 not taken.
✗ Branch 1518 not taken.
✗ Branch 1520 not taken.
✗ Branch 1521 not taken.
✗ Branch 1523 not taken.
✗ Branch 1524 not taken.
✗ Branch 1526 not taken.
✗ Branch 1527 not taken.
✗ Branch 1529 not taken.
✗ Branch 1530 not taken.
✗ Branch 1532 not taken.
✗ Branch 1533 not taken.
✗ Branch 1535 not taken.
✗ Branch 1536 not taken.
✗ Branch 1538 not taken.
✗ Branch 1539 not taken.
✗ Branch 1541 not taken.
✗ Branch 1542 not taken.
✗ Branch 1544 not taken.
✗ Branch 1545 not taken.
✗ Branch 1547 not taken.
✗ Branch 1548 not taken.
✗ Branch 1550 not taken.
✗ Branch 1551 not taken.
✗ Branch 1553 not taken.
✗ Branch 1554 not taken.
✗ Branch 1556 not taken.
✗ Branch 1557 not taken.
✗ Branch 1559 not taken.
✗ Branch 1560 not taken.
✗ Branch 1562 not taken.
✗ Branch 1563 not taken.
✗ Branch 1565 not taken.
✗ Branch 1566 not taken.
✗ Branch 1568 not taken.
✗ Branch 1569 not taken.
✗ Branch 1571 not taken.
✗ Branch 1572 not taken.
✗ Branch 1574 not taken.
✗ Branch 1575 not taken.
✗ Branch 1577 not taken.
✗ Branch 1578 not taken.
✗ Branch 1580 not taken.
✗ Branch 1581 not taken.
✗ Branch 1583 not taken.
✗ Branch 1584 not taken.
✗ Branch 1586 not taken.
✗ Branch 1587 not taken.
✗ Branch 1589 not taken.
✗ Branch 1590 not taken.
✗ Branch 1592 not taken.
✗ Branch 1593 not taken.
✗ Branch 1595 not taken.
✗ Branch 1596 not taken.
✗ Branch 1598 not taken.
✗ Branch 1599 not taken.
✗ Branch 1601 not taken.
✗ Branch 1602 not taken.
✗ Branch 1604 not taken.
✗ Branch 1605 not taken.
✗ Branch 1607 not taken.
✗ Branch 1608 not taken.
✗ Branch 1610 not taken.
✗ Branch 1611 not taken.
✗ Branch 1613 not taken.
✗ Branch 1614 not taken.
✓ Branch 1616 taken 2 times.
✗ Branch 1617 not taken.
✓ Branch 1619 taken 1 times.
✗ Branch 1620 not taken.
✓ Branch 1622 taken 2 times.
✗ Branch 1623 not taken.
✗ Branch 1625 not taken.
✗ Branch 1626 not taken.
✓ Branch 1628 taken 2 times.
✗ Branch 1629 not taken.
✗ Branch 1631 not taken.
✗ Branch 1632 not taken.
✗ Branch 1635 not taken.
✗ Branch 1636 not taken.
✗ Branch 1639 not taken.
✗ Branch 1640 not taken.
✗ Branch 1643 not taken.
✗ Branch 1644 not taken.
✗ Branch 1647 not taken.
✗ Branch 1648 not taken.
✗ Branch 1651 not taken.
✗ Branch 1652 not taken.
✗ Branch 1655 not taken.
✗ Branch 1656 not taken.
✗ Branch 1659 not taken.
✗ Branch 1660 not taken.
✗ Branch 1663 not taken.
✗ Branch 1664 not taken.
✗ Branch 1667 not taken.
✗ Branch 1668 not taken.
✗ Branch 1671 not taken.
✗ Branch 1672 not taken.
✗ Branch 1675 not taken.
✗ Branch 1676 not taken.
✗ Branch 1679 not taken.
✗ Branch 1680 not taken.
✗ Branch 1683 not taken.
✗ Branch 1684 not taken.
✗ Branch 1687 not taken.
✗ Branch 1688 not taken.
✗ Branch 1691 not taken.
✗ Branch 1692 not taken.
✗ Branch 1695 not taken.
✗ Branch 1696 not taken.
✗ Branch 1699 not taken.
✗ Branch 1700 not taken.
✗ Branch 1703 not taken.
✗ Branch 1704 not taken.
✗ Branch 1707 not taken.
✗ Branch 1708 not taken.
✗ Branch 1711 not taken.
✗ Branch 1712 not taken.
✗ Branch 1715 not taken.
✗ Branch 1716 not taken.
✗ Branch 1719 not taken.
✗ Branch 1720 not taken.
✗ Branch 1723 not taken.
✗ Branch 1724 not taken.
✗ Branch 1727 not taken.
✗ Branch 1728 not taken.
✗ Branch 1731 not taken.
✗ Branch 1732 not taken.
✗ Branch 1735 not taken.
✗ Branch 1736 not taken.
✗ Branch 1739 not taken.
✗ Branch 1740 not taken.
✗ Branch 1743 not taken.
✗ Branch 1744 not taken.
✗ Branch 1747 not taken.
✗ Branch 1748 not taken.
✗ Branch 1751 not taken.
✗ Branch 1752 not taken.
✗ Branch 1755 not taken.
✗ Branch 1756 not taken.
✗ Branch 1759 not taken.
✗ Branch 1760 not taken.
✗ Branch 1763 not taken.
✗ Branch 1764 not taken.
✗ Branch 1767 not taken.
✗ Branch 1768 not taken.
✗ Branch 1771 not taken.
✗ Branch 1772 not taken.
✗ Branch 1775 not taken.
✗ Branch 1776 not taken.
✗ Branch 1779 not taken.
✗ Branch 1780 not taken.
✗ Branch 1783 not taken.
✗ Branch 1784 not taken.
✗ Branch 1787 not taken.
✗ Branch 1788 not taken.
✗ Branch 1791 not taken.
✗ Branch 1792 not taken.
✗ Branch 1795 not taken.
✗ Branch 1796 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 1811 not taken.
✗ Branch 1812 not taken.
✗ Branch 1814 not taken.
✗ Branch 1815 not taken.
✗ Branch 1817 not taken.
✗ Branch 1818 not taken.
✗ Branch 1820 not taken.
✗ Branch 1821 not taken.
✗ Branch 1823 not taken.
✗ Branch 1824 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 taken 3 times.
✗ 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 taken 3 times.
✗ Branch 1878 not taken.
✗ Branch 1880 not taken.
✗ Branch 1881 not taken.
✓ Branch 1883 taken 1 times.
✗ Branch 1884 not taken.
✓ Branch 1886 taken 1 times.
✗ Branch 1887 not taken.
✓ Branch 1889 taken 3 times.
✗ 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 1901 taken 3 times.
✗ Branch 1902 not taken.
✗ Branch 1904 not taken.
✗ Branch 1905 not taken.
82638239 this->mm[2] += v1[2];
310 257105386 return *this;
311 }
312
313 /// Subtract @a scalar from each element of this vector.
314 template <typename S>
315 const Vec3<T> &operator-=(S scalar)
316 {
317 9758225 this->mm[0] -= scalar;
318 9758225 this->mm[1] -= scalar;
319 9758225 this->mm[2] -= scalar;
320 return *this;
321 }
322
323 /// Subtract each element of the given vector from the corresponding element of this vector.
324 template <typename S>
325 const Vec3<T> &operator-=(const Vec3<S> &v1)
326 {
327
2/3
✓ Branch 0 taken 21779 times.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
1196877293 this->mm[0] -= v1[0];
328
1/2
✓ Branch 0 taken 21779 times.
✗ Branch 1 not taken.
1197057456 this->mm[1] -= v1[1];
329
29/67
✓ Branch 0 taken 12352028 times.
✓ Branch 1 taken 748280 times.
✓ Branch 2 taken 14418411 times.
✓ Branch 3 taken 12310225 times.
✓ Branch 4 taken 9297508 times.
✓ Branch 5 taken 9428011 times.
✓ Branch 6 taken 37802 times.
✓ Branch 7 taken 34998 times.
✓ Branch 8 taken 265066 times.
✓ Branch 9 taken 2 times.
✓ Branch 10 taken 4828 times.
✓ Branch 11 taken 6805 times.
✓ Branch 12 taken 3240052 times.
✓ Branch 13 taken 1681321 times.
✓ Branch 14 taken 961172 times.
✓ Branch 15 taken 927810 times.
✓ Branch 16 taken 282875 times.
✓ Branch 17 taken 36853 times.
✓ Branch 18 taken 890673 times.
✓ Branch 19 taken 1599029 times.
✓ Branch 20 taken 867654 times.
✓ Branch 21 taken 608028 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 24 taken 262144 times.
✗ 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 taken 8831 times.
✓ Branch 33 taken 286081 times.
✗ Branch 34 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✓ Branch 44 taken 3 times.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✓ Branch 66 taken 6494016 times.
✗ Branch 67 not taken.
✓ Branch 68 taken 5411680 times.
✓ Branch 69 taken 1082366 times.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
344496570 this->mm[2] -= v1[2];
330 return *this;
331 }
332
333 /// Return a reference to itself after the exponent has been
334 /// applied to all the vector components.
335 inline const Vec3<T>& exp()
336 {
337 this->mm[0] = std::exp(this->mm[0]);
338 this->mm[1] = std::exp(this->mm[1]);
339 this->mm[2] = std::exp(this->mm[2]);
340 return *this;
341 }
342
343 /// Return a reference to itself after log has been
344 /// applied to all the vector components.
345 inline const Vec3<T>& log()
346 {
347 this->mm[0] = std::log(this->mm[0]);
348 this->mm[1] = std::log(this->mm[1]);
349 this->mm[2] = std::log(this->mm[2]);
350 return *this;
351 }
352
353 /// Return the sum of all the vector components.
354 inline T sum() const
355 {
356 return this->mm[0] + this->mm[1] + this->mm[2];
357 }
358
359 /// Return the product of all the vector components.
360 inline T product() const
361 {
362
5/10
✓ 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.
88 return this->mm[0] * this->mm[1] * this->mm[2];
363 }
364
365 /// this = normalized this
366
2/2
✓ Branch 0 taken 6034565 times.
✓ Branch 1 taken 469870 times.
6767766 bool normalize(T eps = T(1.0e-7))
367 {
368 T d = length();
369
2/2
✓ Branch 0 taken 6034565 times.
✓ Branch 1 taken 469870 times.
6767766 if (isApproxEqual(d, T(0), eps)) {
370 return false;
371 }
372 6297892 *this *= (T(1) / d);
373 6297892 return true;
374 }
375
376
377 /// return normalized this, throws if null vector
378 Vec3<T> unit(T eps=0) const
379 {
380 T d;
381
6/10
✓ Branch 1 taken 18 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
8377396 return unit(eps, d);
382 }
383
384 /// return normalized this and length, throws if null vector
385 8377495 Vec3<T> unit(T eps, T& len) const
386 {
387
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 8377495 times.
8377495 len = length();
388
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 8377495 times.
8377495 if (isApproxEqual(len, T(0), eps)) {
389 OPENVDB_THROW(ArithmeticError, "Normalizing null 3-vector");
390 }
391 8377495 return *this / len;
392 }
393
394 /// return normalized this, or (1, 0, 0) if this is null vector
395 Vec3<T> unitSafe() const
396 {
397 T l2 = lengthSqr();
398 return l2 ? *this / static_cast<T>(sqrt(l2)) : Vec3<T>(1, 0 ,0);
399 }
400
401 // Number of cols, rows, elements
402 static unsigned numRows() { return 1; }
403 static unsigned numColumns() { return 3; }
404 static unsigned numElements() { return 3; }
405
406 /// Returns the scalar component of v in the direction of onto, onto need
407 /// not be unit. e.g double c = Vec3d::component(v1,v2);
408 T component(const Vec3<T> &onto, T eps = static_cast<T>(1.0e-7)) const
409 {
410 T l = onto.length();
411 if (isApproxEqual(l, T(0), eps)) return 0;
412
413 return dot(onto)*(T(1)/l);
414 }
415
416 /// Return the projection of v onto the vector, onto need not be unit
417 /// e.g. Vec3d a = vprojection(n);
418 Vec3<T> projection(const Vec3<T> &onto, T eps = static_cast<T>(1.0e-7)) const
419 {
420 T l = onto.lengthSqr();
421 if (isApproxEqual(l, T(0), eps)) return Vec3::zero();
422
423 return onto*(dot(onto)*(T(1)/l));
424 }
425
426 /// Return an arbitrary unit vector perpendicular to v
427 /// Vector this must be a unit vector
428 /// e.g. v = v.normalize(); Vec3d n = v.getArbPerpendicular();
429 Vec3<T> getArbPerpendicular() const
430 {
431 Vec3<T> u;
432 T l;
433
434 if ( fabs(this->mm[0]) >= fabs(this->mm[1]) ) {
435 // v.x or v.z is the largest magnitude component, swap them
436 l = this->mm[0]*this->mm[0] + this->mm[2]*this->mm[2];
437 l = static_cast<T>(T(1)/sqrt(double(l)));
438 u.mm[0] = -this->mm[2]*l;
439 u.mm[1] = T(0);
440 u.mm[2] = +this->mm[0]*l;
441 } else {
442 // W.y or W.z is the largest magnitude component, swap them
443 l = this->mm[1]*this->mm[1] + this->mm[2]*this->mm[2];
444 l = static_cast<T>(T(1)/sqrt(double(l)));
445 u.mm[0] = T(0);
446 u.mm[1] = +this->mm[2]*l;
447 u.mm[2] = -this->mm[1]*l;
448 }
449
450 return u;
451 }
452
453 /// Return a vector with the components of this in ascending order
454 348 Vec3<T> sorted() const
455 {
456 447 Vec3<T> r(*this);
457
3/8
✓ Branch 0 taken 261 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 4 times.
✓ Branch 7 taken 8 times.
447 if( r.mm[0] > r.mm[1] ) std::swap(r.mm[0], r.mm[1]);
458
3/8
✓ Branch 0 taken 261 times.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 2 times.
✓ Branch 7 taken 10 times.
447 if( r.mm[1] > r.mm[2] ) std::swap(r.mm[1], r.mm[2]);
459
2/8
✗ Branch 0 not taken.
✓ Branch 1 taken 261 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 12 times.
447 if( r.mm[0] > r.mm[1] ) std::swap(r.mm[0], r.mm[1]);
460 348 return r;
461 }
462
463 /// Return the vector (z, y, x)
464 Vec3<T> reversed() const
465 {
466
2/8
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 6 taken 8 times.
✓ Branch 7 taken 4 times.
12 return Vec3<T>(this->mm[2], this->mm[1], this->mm[0]);
467 }
468
469 /// Predefined constants, e.g. Vec3d v = Vec3d::xNegAxis();
470
6/12
✓ 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.
6 static Vec3<T> zero() { return Vec3<T>(0, 0, 0); }
471 static Vec3<T> ones() { return Vec3<T>(1, 1, 1); }
472 };
473
474
475 /// Equality operator, does exact floating point comparisons
476 template <typename T0, typename T1>
477
1/2
✓ Branch 0 taken 8 times.
✗ Branch 1 not taken.
8 inline bool operator==(const Vec3<T0> &v0, const Vec3<T1> &v1)
478 {
479
81/354
✓ Branch 0 taken 104263 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 40552 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 303 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 59 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 62 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 60 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 9 times.
✓ Branch 13 taken 4 times.
✓ Branch 14 taken 332 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 8074867 times.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 20 taken 55223 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 89711 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 22 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✓ Branch 34 taken 3326940 times.
✗ Branch 35 not taken.
✓ Branch 36 taken 1 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 40 taken 1 times.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✓ Branch 44 taken 720852 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 1 times.
✗ Branch 47 not taken.
✓ Branch 48 taken 22 times.
✗ 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 taken 3 times.
✗ 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 taken 4 times.
✗ Branch 69 not taken.
✓ Branch 70 taken 4 times.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✓ Branch 74 taken 1 times.
✗ 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 taken 26 times.
✗ Branch 139 not taken.
✓ Branch 140 taken 631359 times.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
✗ Branch 143 not taken.
✓ Branch 144 taken 4876209 times.
✗ Branch 145 not taken.
✓ Branch 146 taken 21139230 times.
✗ Branch 147 not taken.
✓ Branch 148 taken 709313 times.
✗ Branch 149 not taken.
✓ Branch 150 taken 4 times.
✗ Branch 151 not taken.
✓ Branch 152 taken 5695151 times.
✗ Branch 153 not taken.
✓ Branch 154 taken 19041824 times.
✗ 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 taken 8 times.
✗ Branch 169 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✓ Branch 172 taken 8 times.
✗ Branch 173 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✓ Branch 176 taken 8 times.
✗ Branch 177 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✓ Branch 180 taken 8 times.
✗ Branch 181 not taken.
✗ Branch 182 not taken.
✗ Branch 183 not taken.
✓ Branch 184 taken 8 times.
✗ Branch 185 not taken.
✗ Branch 186 not taken.
✗ Branch 187 not taken.
✓ Branch 188 taken 8 times.
✗ Branch 189 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✓ Branch 192 taken 8 times.
✗ Branch 193 not taken.
✓ Branch 194 taken 8 times.
✗ Branch 195 not taken.
✓ Branch 196 taken 8 times.
✗ Branch 197 not taken.
✓ Branch 198 taken 114 times.
✓ Branch 199 taken 14 times.
✓ Branch 200 taken 180 times.
✓ Branch 201 taken 4 times.
✓ Branch 202 taken 148 times.
✓ Branch 203 taken 4 times.
✗ Branch 204 not taken.
✗ Branch 205 not taken.
✓ Branch 206 taken 1 times.
✗ 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 taken 2 times.
✗ Branch 219 not taken.
✓ Branch 220 taken 2 times.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 223 not taken.
✓ Branch 224 taken 4684019 times.
✗ Branch 225 not taken.
✓ Branch 226 taken 4684016 times.
✗ Branch 227 not taken.
✓ Branch 228 taken 4684015 times.
✗ Branch 229 not taken.
✓ Branch 230 taken 4684015 times.
✗ Branch 231 not taken.
✓ Branch 232 taken 36882 times.
✗ Branch 233 not taken.
✓ Branch 234 taken 36882 times.
✗ Branch 235 not taken.
✓ Branch 236 taken 36891 times.
✓ Branch 237 taken 5 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 not taken.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
✗ Branch 251 not taken.
✓ Branch 252 taken 4684014 times.
✗ Branch 253 not taken.
✓ Branch 254 taken 4684014 times.
✗ Branch 255 not taken.
✓ Branch 256 taken 4684014 times.
✗ Branch 257 not taken.
✓ Branch 258 taken 4684014 times.
✗ Branch 259 not taken.
✓ Branch 260 taken 36882 times.
✗ Branch 261 not taken.
✓ Branch 262 taken 36882 times.
✗ Branch 263 not taken.
✓ Branch 264 taken 36882 times.
✗ 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 taken 4684014 times.
✗ Branch 285 not taken.
✓ Branch 286 taken 4684014 times.
✗ Branch 287 not taken.
✓ Branch 288 taken 4684014 times.
✗ Branch 289 not taken.
✓ Branch 290 taken 4684014 times.
✗ Branch 291 not taken.
✓ Branch 292 taken 36882 times.
✗ Branch 293 not taken.
✓ Branch 294 taken 36882 times.
✗ Branch 295 not taken.
✓ Branch 296 taken 36882 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 taken 4098 times.
✓ Branch 305 taken 4098 times.
✓ Branch 306 taken 1 times.
✓ Branch 307 taken 1 times.
✗ 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 taken 4098 times.
✗ Branch 317 not taken.
✓ Branch 318 taken 1 times.
✗ 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 taken 4098 times.
✗ Branch 327 not taken.
✓ Branch 328 taken 1 times.
✗ 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.
121063472 return isExactlyEqual(v0[0], v1[0]) && isExactlyEqual(v0[1], v1[1])
480
197/708
✓ Branch 0 taken 104255 times.
✓ Branch 1 taken 40012 times.
✓ Branch 2 taken 6251 times.
✓ Branch 3 taken 98012 times.
✓ Branch 4 taken 40563 times.
✓ Branch 5 taken 2 times.
✓ Branch 6 taken 40041 times.
✓ Branch 7 taken 523 times.
✓ Branch 8 taken 303 times.
✓ Branch 9 taken 2 times.
✓ Branch 10 taken 23 times.
✓ Branch 11 taken 280 times.
✓ Branch 12 taken 92 times.
✓ Branch 13 taken 3 times.
✓ Branch 14 taken 54 times.
✓ Branch 15 taken 39 times.
✓ Branch 16 taken 6 times.
✓ Branch 17 taken 27 times.
✓ Branch 18 taken 4 times.
✓ Branch 19 taken 4 times.
✓ Branch 20 taken 60 times.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 60 times.
✓ Branch 24 taken 8 times.
✓ Branch 25 taken 11 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 9 times.
✓ Branch 28 taken 332 times.
✓ Branch 29 taken 3 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 332 times.
✓ Branch 32 taken 8074867 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 8074858 times.
✓ Branch 35 taken 9 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 40 taken 55223 times.
✓ Branch 41 taken 59457 times.
✓ Branch 42 taken 55223 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 89711 times.
✓ Branch 45 taken 98303 times.
✓ Branch 46 taken 1 times.
✓ Branch 47 taken 89710 times.
✓ Branch 48 taken 1 times.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✓ Branch 51 taken 1 times.
✓ Branch 52 taken 22 times.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 22 times.
✓ Branch 56 taken 1 times.
✓ Branch 57 taken 1 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 1 times.
✗ 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 taken 3326941 times.
✓ Branch 69 taken 1595620 times.
✓ Branch 70 taken 3326939 times.
✓ Branch 71 taken 2 times.
✗ 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 1 times.
✗ Branch 81 not taken.
✓ Branch 82 taken 1 times.
✗ Branch 83 not taken.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 87 not taken.
✓ Branch 88 taken 720852 times.
✗ Branch 89 not taken.
✗ Branch 90 not taken.
✓ Branch 91 taken 720852 times.
✓ Branch 92 taken 1 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 1 times.
✗ Branch 95 not taken.
✓ Branch 96 taken 22 times.
✗ Branch 97 not taken.
✗ Branch 98 not taken.
✓ Branch 99 taken 22 times.
✗ 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 taken 2 times.
✓ Branch 117 taken 3 times.
✓ Branch 118 taken 1 times.
✓ Branch 119 taken 2 times.
✗ 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 3 times.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✗ Branch 136 not taken.
✓ Branch 137 taken 4 times.
✗ Branch 138 not taken.
✓ Branch 139 taken 4 times.
✓ Branch 140 taken 1 times.
✓ Branch 141 taken 5 times.
✓ Branch 142 taken 1 times.
✓ Branch 143 taken 3 times.
✗ Branch 144 not taken.
✗ Branch 145 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✓ Branch 148 taken 1 times.
✓ Branch 149 taken 1 times.
✗ Branch 150 not taken.
✓ Branch 151 taken 1 times.
✗ 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 taken 26 times.
✓ Branch 277 taken 1 times.
✗ Branch 278 not taken.
✓ Branch 279 taken 26 times.
✓ Branch 280 taken 631359 times.
✓ Branch 281 taken 8 times.
✗ Branch 282 not taken.
✓ Branch 283 taken 631359 times.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✓ Branch 288 taken 4876209 times.
✓ Branch 289 taken 8 times.
✗ Branch 290 not taken.
✓ Branch 291 taken 4876209 times.
✓ Branch 292 taken 21139230 times.
✓ Branch 293 taken 41 times.
✗ Branch 294 not taken.
✓ Branch 295 taken 21139230 times.
✓ Branch 296 taken 709313 times.
✓ Branch 297 taken 8 times.
✗ Branch 298 not taken.
✓ Branch 299 taken 709313 times.
✓ Branch 300 taken 3 times.
✓ Branch 301 taken 4 times.
✗ Branch 302 not taken.
✓ Branch 303 taken 4 times.
✓ Branch 304 taken 5695151 times.
✓ Branch 305 taken 8 times.
✗ Branch 306 not taken.
✓ Branch 307 taken 5695151 times.
✓ Branch 308 taken 19041824 times.
✓ Branch 309 taken 24 times.
✗ Branch 310 not taken.
✓ Branch 311 taken 19041824 times.
✗ 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 taken 8 times.
✓ Branch 338 taken 8 times.
✗ 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 taken 8 times.
✓ Branch 346 taken 8 times.
✗ 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 taken 8 times.
✓ Branch 354 taken 8 times.
✗ 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 taken 8 times.
✓ 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 taken 8 times.
✗ 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 taken 8 times.
✓ Branch 378 taken 8 times.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 381 not taken.
✗ Branch 382 not taken.
✗ Branch 383 not taken.
✓ Branch 384 taken 8 times.
✗ Branch 385 not taken.
✗ Branch 386 not taken.
✓ Branch 387 taken 8 times.
✓ Branch 388 taken 8 times.
✗ Branch 389 not taken.
✗ Branch 390 not taken.
✓ Branch 391 taken 8 times.
✓ Branch 392 taken 8 times.
✗ Branch 393 not taken.
✗ Branch 394 not taken.
✓ Branch 395 taken 8 times.
✓ Branch 396 taken 144 times.
✓ Branch 397 taken 120 times.
✗ Branch 398 not taken.
✓ Branch 399 taken 114 times.
✓ Branch 400 taken 200 times.
✓ Branch 401 taken 176 times.
✓ Branch 402 taken 4 times.
✓ Branch 403 taken 176 times.
✓ Branch 404 taken 182 times.
✓ Branch 405 taken 144 times.
✓ Branch 406 taken 2 times.
✓ Branch 407 taken 146 times.
✗ Branch 408 not taken.
✗ Branch 409 not taken.
✗ Branch 410 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✓ Branch 413 taken 1 times.
✗ Branch 414 not taken.
✓ Branch 415 taken 1 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 taken 2 times.
✗ Branch 438 not taken.
✓ Branch 439 taken 2 times.
✗ Branch 440 not taken.
✓ Branch 441 taken 2 times.
✓ Branch 442 taken 1 times.
✓ Branch 443 taken 1 times.
✗ Branch 444 not taken.
✗ Branch 445 not taken.
✗ Branch 446 not taken.
✗ Branch 447 not taken.
✓ Branch 448 taken 4684019 times.
✗ Branch 449 not taken.
✓ Branch 450 taken 4684017 times.
✓ Branch 451 taken 2 times.
✓ Branch 452 taken 4684016 times.
✗ Branch 453 not taken.
✓ Branch 454 taken 4684014 times.
✓ Branch 455 taken 2 times.
✓ Branch 456 taken 4684015 times.
✗ Branch 457 not taken.
✓ Branch 458 taken 4684014 times.
✓ Branch 459 taken 1 times.
✓ Branch 460 taken 4684015 times.
✗ Branch 461 not taken.
✓ Branch 462 taken 4684014 times.
✓ Branch 463 taken 1 times.
✓ Branch 464 taken 36882 times.
✗ Branch 465 not taken.
✓ Branch 466 taken 36882 times.
✗ Branch 467 not taken.
✓ Branch 468 taken 36882 times.
✗ Branch 469 not taken.
✓ Branch 470 taken 36882 times.
✗ Branch 471 not taken.
✓ Branch 472 taken 36884 times.
✓ Branch 473 taken 14 times.
✗ Branch 474 not taken.
✓ Branch 475 taken 36891 times.
✗ 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 taken 4684014 times.
✗ Branch 505 not taken.
✓ Branch 506 taken 4684014 times.
✗ Branch 507 not taken.
✓ Branch 508 taken 4684014 times.
✗ Branch 509 not taken.
✓ Branch 510 taken 4684014 times.
✗ Branch 511 not taken.
✓ Branch 512 taken 4684014 times.
✗ Branch 513 not taken.
✓ Branch 514 taken 4684014 times.
✗ Branch 515 not taken.
✓ Branch 516 taken 4684014 times.
✗ Branch 517 not taken.
✓ Branch 518 taken 4684014 times.
✗ Branch 519 not taken.
✓ Branch 520 taken 36882 times.
✗ Branch 521 not taken.
✓ Branch 522 taken 36882 times.
✗ Branch 523 not taken.
✓ Branch 524 taken 36882 times.
✗ Branch 525 not taken.
✓ Branch 526 taken 36882 times.
✗ Branch 527 not taken.
✓ Branch 528 taken 36882 times.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✓ Branch 531 taken 36882 times.
✗ 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 4684014 times.
✗ Branch 569 not taken.
✓ Branch 570 taken 4684014 times.
✗ Branch 571 not taken.
✓ Branch 572 taken 4684014 times.
✗ Branch 573 not taken.
✓ Branch 574 taken 4684014 times.
✗ Branch 575 not taken.
✓ Branch 576 taken 4684014 times.
✗ Branch 577 not taken.
✓ Branch 578 taken 4684014 times.
✗ Branch 579 not taken.
✓ Branch 580 taken 4684014 times.
✗ Branch 581 not taken.
✓ Branch 582 taken 4684014 times.
✗ Branch 583 not taken.
✓ Branch 584 taken 36882 times.
✗ Branch 585 not taken.
✓ Branch 586 taken 36882 times.
✗ Branch 587 not taken.
✓ Branch 588 taken 36882 times.
✗ Branch 589 not taken.
✓ Branch 590 taken 36882 times.
✗ Branch 591 not taken.
✓ Branch 592 taken 36882 times.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✓ Branch 595 taken 36882 times.
✗ 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 taken 8196 times.
✓ Branch 609 taken 28686 times.
✗ Branch 610 not taken.
✓ Branch 611 taken 4098 times.
✓ Branch 612 taken 2 times.
✓ Branch 613 taken 7 times.
✗ Branch 614 not taken.
✓ Branch 615 taken 1 times.
✗ 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 taken 4098 times.
✓ Branch 633 taken 32784 times.
✗ Branch 634 not taken.
✓ Branch 635 taken 4098 times.
✓ Branch 636 taken 1 times.
✓ Branch 637 taken 8 times.
✗ Branch 638 not taken.
✓ Branch 639 taken 1 times.
✗ 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 taken 4098 times.
✓ Branch 653 taken 32784 times.
✗ Branch 654 not taken.
✓ Branch 655 taken 4098 times.
✓ Branch 656 taken 1 times.
✓ Branch 657 taken 8 times.
✗ Branch 658 not taken.
✓ Branch 659 taken 1 times.
✗ 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.
201855003 && isExactlyEqual(v0[2], v1[2]);
481 }
482
483 /// Inequality operator, does exact floating point comparisons
484 template <typename T0, typename T1>
485 inline bool operator!=(const Vec3<T0> &v0, const Vec3<T1> &v1) { return !(v0==v1); }
486
487 /// Multiply each element of the given vector by @a scalar and return the result.
488 template <typename S, typename T>
489 inline Vec3<typename promote<S, T>::type> operator*(S scalar, const Vec3<T> &v) { return v*scalar; }
490
491 /// Multiply each element of the given vector by @a scalar and return the result.
492 template <typename S, typename T>
493 inline Vec3<typename promote<S, T>::type> operator*(const Vec3<T> &v, S scalar)
494 {
495
19/20
✓ Branch 0 taken 282898 times.
✓ Branch 1 taken 95577 times.
✓ Branch 2 taken 4 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 7 times.
✓ Branch 5 taken 4 times.
✓ Branch 6 taken 4 times.
✓ Branch 7 taken 7 times.
✓ Branch 8 taken 4 times.
✓ Branch 9 taken 4 times.
✓ Branch 10 taken 6 times.
✓ Branch 11 taken 4 times.
✓ Branch 12 taken 4 times.
✓ Branch 13 taken 6 times.
✓ Branch 14 taken 4 times.
✓ Branch 15 taken 4 times.
✓ Branch 16 taken 6 times.
✓ Branch 17 taken 4 times.
✓ Branch 19 taken 1 times.
✗ Branch 20 not taken.
2601306 Vec3<typename promote<S, T>::type> result(v);
496 result *= scalar;
497
2/3
✓ Branch 0 taken 104976 times.
✓ Branch 1 taken 105808 times.
✗ Branch 2 not taken.
21924758 return result;
498 }
499
500 /// Multiply corresponding elements of @a v0 and @a v1 and return the result.
501 template <typename T0, typename T1>
502 inline Vec3<typename promote<T0, T1>::type> operator*(const Vec3<T0> &v0, const Vec3<T1> &v1)
503 {
504
6/32
✓ Branch 0 taken 74743 times.
✓ Branch 1 taken 10 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 11 times.
✓ Branch 6 taken 9 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 5 times.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
407187303 Vec3<typename promote<T0, T1>::type> result(v0[0] * v1[0], v0[1] * v1[1], v0[2] * v1[2]);
505
3/4
✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✓ Branch 2 taken 10 times.
✓ Branch 3 taken 12068766 times.
12143545 return result;
506 }
507
508
509 /// Divide @a scalar by each element of the given vector and return the result.
510 template <typename S, typename T>
511 inline Vec3<typename promote<S, T>::type> operator/(S scalar, const Vec3<T> &v)
512 {
513
21/29
✓ Branch 0 taken 2 times.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 1 times.
✓ Branch 3 taken 2 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 7 taken 6 times.
✓ Branch 8 taken 1 times.
✓ Branch 9 taken 1 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✓ Branch 12 taken 1 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 times.
✓ Branch 15 taken 1 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 4 times.
✓ Branch 18 taken 1 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 1 times.
✓ Branch 21 taken 1 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 1 times.
✓ Branch 24 taken 1 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 1 times.
✓ Branch 27 taken 2130942 times.
✗ Branch 28 not taken.
2157086 return Vec3<typename promote<S, T>::type>(scalar/v[0], scalar/v[1], scalar/v[2]);
514 }
515
516 /// Divide each element of the given vector by @a scalar and return the result.
517 template <typename S, typename T>
518 inline Vec3<typename promote<S, T>::type> operator/(const Vec3<T> &v, S scalar)
519 {
520 13789177 Vec3<typename promote<S, T>::type> result(v);
521 result /= scalar;
522
2/4
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
7 return result;
523 }
524
525 /// Divide corresponding elements of @a v0 and @a v1 and return the result.
526 template <typename T0, typename T1>
527 inline Vec3<typename promote<T0, T1>::type> operator/(const Vec3<T0> &v0, const Vec3<T1> &v1)
528 {
529 1698293 Vec3<typename promote<T0, T1>::type> result(v0[0] / v1[0], v0[1] / v1[1], v0[2] / v1[2]);
530
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
74769 return result;
531 }
532
533 /// Add corresponding elements of @a v0 and @a v1 and return the result.
534 template <typename T0, typename T1>
535 inline Vec3<typename promote<T0, T1>::type> operator+(const Vec3<T0> &v0, const Vec3<T1> &v1)
536 {
537
15/128
✗ Branch 0 not taken.
✓ Branch 1 taken 14223 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1052293 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 12388 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 19 times.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 6 times.
✗ 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 taken 2 times.
✗ 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 37 not taken.
✗ Branch 38 not taken.
✗ Branch 40 not taken.
✗ Branch 41 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 taken 12 times.
✗ Branch 55 not taken.
✗ Branch 56 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 79 not taken.
✗ Branch 80 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 taken 6 times.
✗ Branch 95 not taken.
✗ Branch 96 not taken.
✗ Branch 98 not taken.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✗ Branch 109 not taken.
✗ Branch 111 not taken.
✗ Branch 112 not taken.
✗ Branch 114 not taken.
✗ Branch 115 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 124 not taken.
✗ Branch 125 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 130 not taken.
✗ Branch 131 not taken.
✓ Branch 132 taken 17 times.
✓ Branch 133 taken 8658730 times.
✓ Branch 135 taken 6494016 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 6494016 times.
✗ Branch 139 not taken.
✓ Branch 141 taken 1 times.
✗ Branch 142 not taken.
✓ Branch 144 taken 1 times.
✗ Branch 145 not taken.
✓ Branch 147 taken 1 times.
✗ Branch 148 not taken.
✗ Branch 153 not taken.
✗ Branch 154 not taken.
30329227 Vec3<typename promote<T0, T1>::type> result(v0);
538 result += v1;
539
5/8
✓ Branch 0 taken 74743 times.
✓ Branch 1 taken 9 times.
✓ Branch 2 taken 19 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 12 taken 4 times.
✗ Branch 13 not taken.
25942707 return result;
540 }
541
542 /// Add @a scalar to each element of the given vector and return the result.
543 template <typename S, typename T>
544 inline Vec3<typename promote<S, T>::type> operator+(const Vec3<T> &v, S scalar)
545 {
546
19/184
✓ Branch 0 taken 262208 times.
✓ Branch 1 taken 2 times.
✓ Branch 2 taken 8 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 66 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 8 times.
✗ Branch 7 not taken.
✓ Branch 8 taken 64 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 8 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 64 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 8 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 64 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 8 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 64 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 8 times.
✗ Branch 23 not taken.
✓ Branch 24 taken 64 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 8 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 120 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 16 times.
✗ Branch 31 not taken.
✓ Branch 32 taken 64 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 4 times.
✗ 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.
279358 Vec3<typename promote<S, T>::type> result(v);
547 result += scalar;
548
15/30
✓ Branch 1 taken 262144 times.
✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✗ Branch 6 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✓ Branch 14 taken 1 times.
✗ Branch 15 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
✓ Branch 26 taken 1 times.
✗ Branch 27 not taken.
✓ Branch 29 taken 1 times.
✗ Branch 30 not taken.
✓ Branch 32 taken 1 times.
✗ Branch 33 not taken.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✓ Branch 38 taken 1 times.
✗ Branch 39 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
262170 return result;
549 }
550
551 /// Subtract corresponding elements of @a v0 and @a v1 and return the result.
552 template <typename T0, typename T1>
553 inline Vec3<typename promote<T0, T1>::type> operator-(const Vec3<T0> &v0, const Vec3<T1> &v1)
554 {
555
43/161
✓ Branch 0 taken 5658677 times.
✓ Branch 1 taken 483307 times.
✓ Branch 2 taken 8374824 times.
✓ Branch 3 taken 42771202 times.
✓ Branch 4 taken 26508592 times.
✓ Branch 5 taken 13100725 times.
✓ Branch 6 taken 1433233 times.
✓ Branch 7 taken 8466072 times.
✓ Branch 8 taken 262145 times.
✓ Branch 9 taken 2934 times.
✓ Branch 10 taken 17 times.
✓ Branch 11 taken 4827 times.
✓ Branch 12 taken 2354531 times.
✓ Branch 13 taken 1129225 times.
✓ Branch 14 taken 2416425 times.
✓ Branch 15 taken 907717 times.
✓ Branch 16 taken 267149 times.
✓ Branch 17 taken 1910 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 82518 times.
✓ Branch 20 taken 863559 times.
✓ Branch 21 taken 607550 times.
✓ Branch 22 taken 20093 times.
✓ Branch 23 taken 20731 times.
✓ Branch 24 taken 298997 times.
✓ Branch 25 taken 890673 times.
✓ Branch 26 taken 1599023 times.
✓ Branch 27 taken 4095 times.
✓ Branch 28 taken 11425 times.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✓ Branch 32 taken 90422 times.
✓ Branch 33 taken 20170 times.
✓ Branch 35 taken 110592 times.
✗ Branch 36 not taken.
✓ Branch 38 taken 110592 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 8831 times.
✓ Branch 41 taken 286081 times.
✗ Branch 42 not taken.
✗ Branch 44 not taken.
✗ Branch 45 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✓ Branch 50 taken 3 times.
✗ 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 60 not taken.
✓ Branch 61 taken 1 times.
✗ Branch 71 not taken.
✗ Branch 72 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✗ Branch 91 not taken.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 96 not taken.
✗ Branch 97 not taken.
✗ Branch 99 not taken.
✗ Branch 100 not taken.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✓ Branch 105 taken 6 times.
✗ 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 115 not taken.
✗ Branch 116 not taken.
✗ Branch 118 not taken.
✗ Branch 119 not taken.
✗ Branch 121 not taken.
✗ Branch 122 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 129 not taken.
✗ Branch 130 not taken.
✗ Branch 132 not taken.
✗ Branch 133 not taken.
✗ Branch 135 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 143 not taken.
✗ Branch 144 not taken.
✗ Branch 146 not taken.
✗ Branch 147 not taken.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 157 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✓ Branch 160 taken 3 times.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 165 not taken.
✗ Branch 166 not taken.
✗ Branch 168 not taken.
✗ Branch 169 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 181 not taken.
✗ Branch 182 not taken.
✗ Branch 184 not taken.
✗ Branch 185 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
✗ Branch 190 not taken.
✗ Branch 191 not taken.
✗ Branch 192 not taken.
✗ Branch 193 not taken.
✗ Branch 195 not taken.
✗ Branch 196 not taken.
✗ Branch 198 not taken.
✗ Branch 199 not taken.
✗ Branch 201 not taken.
✗ Branch 202 not taken.
✗ Branch 203 not taken.
✗ Branch 204 not taken.
✓ Branch 206 taken 6494016 times.
✗ Branch 207 not taken.
✓ Branch 209 taken 6494016 times.
✗ Branch 210 not taken.
✓ Branch 212 taken 6494016 times.
✗ Branch 213 not taken.
✓ Branch 214 taken 5411680 times.
✓ Branch 215 taken 1082366 times.
✗ Branch 229 not taken.
✗ Branch 230 not taken.
✗ Branch 233 not taken.
✗ Branch 234 not taken.
✗ Branch 284 not taken.
✗ Branch 285 not taken.
837396855 Vec3<typename promote<T0, T1>::type> result(v0);
556 result -= v1;
557
1/2
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
79564430 return result;
558 }
559
560 /// Subtract @a scalar from each element of the given vector and return the result.
561 template <typename S, typename T>
562 inline Vec3<typename promote<S, T>::type> operator-(const Vec3<T> &v, S scalar)
563 {
564
11/22
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
✓ Branch 19 taken 8 times.
✗ Branch 20 not taken.
✓ Branch 22 taken 8 times.
✗ Branch 23 not taken.
✓ Branch 25 taken 8 times.
✗ Branch 26 not taken.
✓ Branch 28 taken 8 times.
✗ Branch 29 not taken.
✓ Branch 31 taken 8 times.
✗ Branch 32 not taken.
✓ Branch 34 taken 8 times.
✗ Branch 35 not taken.
✓ Branch 37 taken 8 times.
✗ Branch 38 not taken.
✓ Branch 40 taken 8 times.
✗ Branch 41 not taken.
✓ Branch 43 taken 8 times.
✗ Branch 44 not taken.
9758225 Vec3<typename promote<S, T>::type> result(v);
565 result -= scalar;
566 return result;
567 }
568
569 /// Angle between two vectors, the result is between [0, pi],
570 /// e.g. double a = Vec3d::angle(v1,v2);
571 template <typename T>
572 inline T angle(const Vec3<T> &v1, const Vec3<T> &v2)
573 {
574 Vec3<T> c = v1.cross(v2);
575 return static_cast<T>(atan2(c.length(), v1.dot(v2)));
576 }
577
578 template <typename T>
579 inline bool
580 isApproxEqual(const Vec3<T>& a, const Vec3<T>& b)
581 {
582
33/144
✓ Branch 0 taken 3 times.
✓ Branch 1 taken 15181437 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 14078654 times.
✓ Branch 6 taken 14078652 times.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 14078652 times.
✓ Branch 9 taken 2 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 5 times.
✗ Branch 12 not taken.
✓ Branch 13 taken 5 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 2 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 1 times.
✗ Branch 18 not taken.
✓ Branch 19 taken 2 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 2 times.
✗ Branch 22 not taken.
✓ Branch 23 taken 2 times.
✗ Branch 24 not taken.
✓ Branch 25 taken 2 times.
✗ Branch 26 not taken.
✓ Branch 27 taken 2 times.
✗ Branch 28 not taken.
✓ Branch 29 taken 2 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2 times.
✗ Branch 32 not taken.
✓ Branch 33 taken 2 times.
✗ Branch 34 not taken.
✓ Branch 35 taken 5 times.
✓ Branch 36 taken 4 times.
✓ Branch 37 taken 294833 times.
✓ Branch 38 taken 4 times.
✓ Branch 39 taken 294833 times.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 1 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 1 times.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 times.
✗ Branch 50 not taken.
✓ Branch 51 taken 1 times.
✗ Branch 52 not taken.
✓ Branch 53 taken 1 times.
✗ Branch 54 not taken.
✓ Branch 55 taken 1 times.
✗ 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.
15771163 return a.eq(b);
583 }
584 template <typename T>
585 inline bool
586 isApproxEqual(const Vec3<T>& a, const Vec3<T>& b, const Vec3<T>& eps)
587 {
588
16/48
✓ Branch 0 taken 20957 times.
✓ Branch 1 taken 50 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 75 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 4276 times.
✓ Branch 8 taken 1968759 times.
✓ Branch 9 taken 8 times.
✓ Branch 10 taken 137 times.
✗ Branch 11 not taken.
✓ Branch 12 taken 36859 times.
✗ Branch 13 not taken.
✓ Branch 14 taken 36859 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 36986 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 3 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 4 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 3 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 28 taken 3326941 times.
✓ Branch 29 taken 3904 times.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✓ Branch 34 taken 2 times.
✗ 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.
5435823 return isApproxEqual(a.x(), b.x(), eps.x()) &&
589
37/96
✓ Branch 0 taken 21007 times.
✓ Branch 1 taken 9326 times.
✓ Branch 2 taken 20951 times.
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 75 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 75 times.
✓ Branch 12 taken 4276 times.
✓ Branch 13 taken 1909260 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 1968767 times.
✗ Branch 17 not taken.
✓ Branch 18 taken 55223 times.
✓ Branch 19 taken 1913536 times.
✓ Branch 20 taken 137 times.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 times.
✓ Branch 23 taken 136 times.
✓ Branch 24 taken 36859 times.
✗ Branch 25 not taken.
✓ Branch 26 taken 36855 times.
✓ Branch 27 taken 4 times.
✓ Branch 28 taken 36859 times.
✗ Branch 29 not taken.
✓ Branch 30 taken 36855 times.
✓ Branch 31 taken 4 times.
✓ Branch 32 taken 36986 times.
✗ Branch 33 not taken.
✓ Branch 34 taken 36855 times.
✓ Branch 35 taken 131 times.
✓ Branch 36 taken 3 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✓ Branch 39 taken 3 times.
✓ Branch 40 taken 4 times.
✓ Branch 41 taken 8192 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 4 times.
✓ Branch 44 taken 3 times.
✓ Branch 45 taken 65536 times.
✗ Branch 46 not taken.
✓ Branch 47 taken 3 times.
✗ 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 taken 3330845 times.
✓ Branch 57 taken 1 times.
✓ Branch 58 taken 3326941 times.
✗ 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 taken 2 times.
✓ Branch 69 taken 1021 times.
✓ Branch 70 taken 2 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 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.
12856744 isApproxEqual(a.y(), b.y(), eps.y()) &&
590 isApproxEqual(a.z(), b.z(), eps.z());
591 }
592
593 template<typename T>
594 inline Vec3<T>
595 Abs(const Vec3<T>& v)
596 {
597 7 return Vec3<T>(Abs(v[0]), Abs(v[1]), Abs(v[2]));
598 }
599
600 /// Orthonormalize vectors v1, v2 and v3 and store back the resulting
601 /// basis e.g. Vec3d::orthonormalize(v1,v2,v3);
602 template <typename T>
603 inline void orthonormalize(Vec3<T> &v1, Vec3<T> &v2, Vec3<T> &v3)
604 {
605 // If the input vectors are v0, v1, and v2, then the Gram-Schmidt
606 // orthonormalization produces vectors u0, u1, and u2 as follows,
607 //
608 // u0 = v0/|v0|
609 // u1 = (v1-(u0*v1)u0)/|v1-(u0*v1)u0|
610 // u2 = (v2-(u0*v2)u0-(u1*v2)u1)/|v2-(u0*v2)u0-(u1*v2)u1|
611 //
612 // where |A| indicates length of vector A and A*B indicates dot
613 // product of vectors A and B.
614
615 // compute u0
616 v1.normalize();
617
618 // compute u1
619 T d0 = v1.dot(v2);
620 v2 -= v1*d0;
621 v2.normalize();
622
623 // compute u2
624 T d1 = v2.dot(v3);
625 d0 = v1.dot(v3);
626 v3 -= v1*d0 + v2*d1;
627 v3.normalize();
628 }
629
630 /// @remark We are switching to a more explicit name because the semantics
631 /// are different from std::min/max. In that case, the function returns a
632 /// reference to one of the objects based on a comparator. Here, we must
633 /// fabricate a new object which might not match either of the inputs.
634
635 /// Return component-wise minimum of the two vectors.
636 template <typename T>
637 2241586 inline Vec3<T> minComponent(const Vec3<T> &v1, const Vec3<T> &v2)
638 {
639 return Vec3<T>(
640 4483172 std::min(v1.x(), v2.x()),
641 4483172 std::min(v1.y(), v2.y()),
642
6/6
✓ Branch 0 taken 3238 times.
✓ Branch 1 taken 1130204 times.
✓ Branch 2 taken 2487 times.
✓ Branch 3 taken 1130955 times.
✓ Branch 4 taken 3061 times.
✓ Branch 5 taken 1130381 times.
2251960 std::min(v1.z(), v2.z()));
643 }
644
645 /// Return component-wise maximum of the two vectors.
646 template <typename T>
647 1133442 inline Vec3<T> maxComponent(const Vec3<T> &v1, const Vec3<T> &v2)
648 {
649 return Vec3<T>(
650 2266884 std::max(v1.x(), v2.x()),
651 2266884 std::max(v1.y(), v2.y()),
652
6/6
✓ Branch 0 taken 3274 times.
✓ Branch 1 taken 21448 times.
✓ Branch 2 taken 4635 times.
✓ Branch 3 taken 20087 times.
✓ Branch 4 taken 3595 times.
✓ Branch 5 taken 21127 times.
1744178 std::max(v1.z(), v2.z()));
653 }
654
655 /// @brief Return a vector with the exponent applied to each of
656 /// the components of the input vector.
657 template <typename T>
658 inline Vec3<T> Exp(Vec3<T> v) { return v.exp(); }
659
660 /// @brief Return a vector with log applied to each of
661 /// the components of the input vector.
662 template <typename T>
663 inline Vec3<T> Log(Vec3<T> v) { return v.log(); }
664
665 using Vec3i = Vec3<int32_t>;
666 using Vec3ui = Vec3<uint32_t>;
667 using Vec3s = Vec3<float>;
668 using Vec3d = Vec3<double>;
669
670 #if OPENVDB_ABI_VERSION_NUMBER >= 8
671 OPENVDB_IS_POD(Vec3i)
672 OPENVDB_IS_POD(Vec3ui)
673 OPENVDB_IS_POD(Vec3s)
674 OPENVDB_IS_POD(Vec3d)
675 #endif
676
677 } // namespace math
678 } // namespace OPENVDB_VERSION_NAME
679 } // namespace openvdb
680
681 #endif // OPENVDB_MATH_VEC3_HAS_BEEN_INCLUDED
682