ATLAS Offline Software
Loading...
Searching...
No Matches
RungeKuttaUtils.cxx File Reference

Go to the source code of this file.

Functions

ATH_FLATTEN AmgSymMatrix (5) Trk

Function Documentation

◆ AmgSymMatrix()

ATH_FLATTEN AmgSymMatrix ( 5 )

Definition at line 1391 of file RungeKuttaUtils.cxx.

1394{
1395 AmgSymMatrix(5) nM;
1396 AmgSymMatrix(5)& m = nM;
1397
1398 Eigen::Map<const AmgVector(5)> JacMap0(&J[0], 5, 1);
1399 const AmgVector(5) a1 = M * JacMap0; //(5x5 * 5x1)
1400 m(0, 0) = a1.dot(JacMap0); // dot product
1401
1402 Eigen::Map<const AmgVector(5)> JacMap5(&J[5]);
1403 const AmgVector(5) a2 = M * JacMap5;
1404 m(1, 0) = a2.dot(JacMap0);
1405 m(1, 1) = a2.dot(JacMap5);
1406 m(0, 1) = m(1, 0);
1407
1408 Eigen::Map<const AmgVector(5)> JacMap10(&J[10], 5, 1);
1409 const AmgVector(5) a3 = M * JacMap10;
1410 m(2, 0) = a3.dot(JacMap0);
1411 m(2, 1) = a3.dot(JacMap5);
1412 m(2, 2) = a3.dot(JacMap10);
1413 m(0, 2) = m(2, 0);
1414 m(1, 2) = m(2, 1);
1415
1416 Eigen::Map<const AmgVector(5)> JacMap15(&J[15], 5, 1);
1417 const AmgVector(5) a4 = M * JacMap15;
1418 m(3, 0) = a4.dot(JacMap0);
1419 m(3, 1) = a4.dot(JacMap5);
1420 m(3, 2) = a4.dot(JacMap10);
1421 m(3, 3) = a4.dot(JacMap15);
1422 m(0, 3) = m(3, 0);
1423 m(1, 3) = m(3, 1);
1424 m(2, 3) = m(3, 2);
1425
1426 const AmgVector(5) a5 = M.row(4) * J[20];
1427 m(4, 0) = a5.dot(JacMap0);
1428 m(4, 1) = a5.dot(JacMap5);
1429 m(4, 2) = a5.dot(JacMap10);
1430 m(4, 3) = a5.dot(JacMap15);
1431 m(4, 4) = a5[4] * J[20];
1432 m(0, 4) = m(4, 0);
1433 m(1, 4) = m(4, 1);
1434 m(2, 4) = m(4, 2);
1435 m(3, 4) = m(4, 3);
1436
1437 return nM;
1438}
#define AmgSymMatrix(dim)
#define AmgVector(rows)
Definition dot.py:1