| 1573 | |
| 1574 | template <class Float> |
| 1575 | void ComputeDiagonalAddQ(size_t ncam, const Float* qw, Float* d, |
| 1576 | const Float* sj = NULL) { |
| 1577 | if (sj) { |
| 1578 | for (size_t i = 0; i < ncam; ++i, qw += 2, d += 8, sj += 8) { |
| 1579 | if (qw[0] == 0) continue; |
| 1580 | Float j1 = qw[0] * sj[0]; |
| 1581 | Float j2 = qw[1] * sj[7]; |
| 1582 | d[0] += (j1 * j1 * 2.0f); |
| 1583 | d[7] += (j2 * j2 * 2.0f); |
| 1584 | } |
| 1585 | } else { |
| 1586 | for (size_t i = 0; i < ncam; ++i, qw += 2, d += 8) { |
| 1587 | if (qw[0] == 0) continue; |
| 1588 | d[0] += (qw[0] * qw[0] * 2.0f); |
| 1589 | d[7] += (qw[1] * qw[1] * 2.0f); |
| 1590 | } |
| 1591 | } |
| 1592 | } |
| 1593 | |
| 1594 | /////////////////////////////////////// |
| 1595 | template <class Float> |
no outgoing calls
no test coverage detected