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