| 1417 | |
| 1418 | template <typename SparseIndexType> |
| 1419 | inline bool SparseTensorEqualsImplDispatch(const SparseTensorImpl<SparseIndexType>& left, |
| 1420 | const SparseTensor& right, |
| 1421 | const EqualOptions& opts) { |
| 1422 | switch (right.format_id()) { |
| 1423 | case SparseTensorFormat::COO: { |
| 1424 | const auto& right_coo = |
| 1425 | checked_cast<const SparseTensorImpl<SparseCOOIndex>&>(right); |
| 1426 | return SparseTensorEqualsImpl<SparseIndexType, SparseCOOIndex>::Compare( |
| 1427 | left, right_coo, opts); |
| 1428 | } |
| 1429 | |
| 1430 | case SparseTensorFormat::CSR: { |
| 1431 | const auto& right_csr = |
| 1432 | checked_cast<const SparseTensorImpl<SparseCSRIndex>&>(right); |
| 1433 | return SparseTensorEqualsImpl<SparseIndexType, SparseCSRIndex>::Compare( |
| 1434 | left, right_csr, opts); |
| 1435 | } |
| 1436 | |
| 1437 | case SparseTensorFormat::CSC: { |
| 1438 | const auto& right_csc = |
| 1439 | checked_cast<const SparseTensorImpl<SparseCSCIndex>&>(right); |
| 1440 | return SparseTensorEqualsImpl<SparseIndexType, SparseCSCIndex>::Compare( |
| 1441 | left, right_csc, opts); |
| 1442 | } |
| 1443 | |
| 1444 | case SparseTensorFormat::CSF: { |
| 1445 | const auto& right_csf = |
| 1446 | checked_cast<const SparseTensorImpl<SparseCSFIndex>&>(right); |
| 1447 | return SparseTensorEqualsImpl<SparseIndexType, SparseCSFIndex>::Compare( |
| 1448 | left, right_csf, opts); |
| 1449 | } |
| 1450 | |
| 1451 | default: |
| 1452 | return false; |
| 1453 | } |
| 1454 | } |
| 1455 | |
| 1456 | } // namespace |
| 1457 |
no test coverage detected