awslabs / homomorphic-implementors-toolkit
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 6% duplication:
    • 3,455 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 216 duplicated lines
  • 21 duplicates
system6% (216 lines)
Duplication per Extension
h16% (144 lines)
cpp2% (54 lines)
proto25% (18 lines)
Duplication per Component (primary)
src/hit/api/evaluator12% (130 lines)
src/hit/api/linearalgebra4% (68 lines)
protobuf25% (18 lines)
cmake0% (0 lines)
cmake/modules0% (0 lines)
src/hit/api0% (0 lines)
src/hit0% (0 lines)
scripts/codebuild0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 21 duplicates...
Size#FoldersFilesLinesCode
19 x 2 src/hit/api/evaluator
src/hit/api/evaluator
debug.h
homomorphic.h
56:91 (42%)
66:101 (33%)
view
18 x 2 src/hit/api/evaluator
src/hit/api/evaluator
homomorphic.h
scaleestimator.h
64:97 (32%)
48:81 (43%)
view
17 x 2 src/hit/api/evaluator
src/hit/api/evaluator
debug.h
scaleestimator.h
56:87 (37%)
50:81 (41%)
view
17 x 2 src/hit/api/evaluator
src/hit/api/evaluator
homomorphic.h
opcount.h
68:99 (30%)
30:61 (32%)
view
17 x 2 src/hit/api/evaluator
src/hit/api/evaluator
debug.h
opcount.h
58:89 (37%)
30:61 (32%)
view
16 x 2 src/hit/api/evaluator
src/hit/api/evaluator
opcount.h
plaintext.h
27:55 (30%)
34:62 (47%)
view
16 x 2 src/hit/api/evaluator
src/hit/api/evaluator
opcount.h
scaleestimator.h
30:59 (30%)
52:81 (39%)
view
14 x 2 src/hit/api/evaluator
src/hit/api/evaluator
homomorphic.h
plaintext.h
68:93 (25%)
37:62 (41%)
view
14 x 2 src/hit/api/evaluator
src/hit/api/evaluator
debug.h
plaintext.h
58:83 (31%)
37:62 (41%)
view
14 x 2 src/hit/api/evaluator
src/hit/api/evaluator
plaintext.h
scaleestimator.h
37:62 (41%)
52:77 (34%)
view
13 x 2 src/hit/api/evaluator
src/hit/api/evaluator
explicitdepthfinder.h
implicitdepthfinder.h
43:64 (59%)
42:63 (59%)
view
10 x 2 src/hit/api/linearalgebra
src/hit/api/linearalgebra
encryptedcolvector.h
encryptedrowvector.h
60:79 (29%)
76:95 (29%)
view
9 x 2 src/hit/api/linearalgebra
src/hit/api/linearalgebra
encryptedcolvector.cpp
encryptedrowvector.cpp
93:108 (8%)
86:101 (8%)
view
6 x 2 protobuf
protobuf
proto
encrypted_col_vector.proto
encrypted_row_vector.proto
1:8 (54%)
1:8 (54%)
view
6 x 2 src/hit/api/linearalgebra
src/hit/api/linearalgebra
linearalgebra.cpp
linearalgebra.cpp
292:299 (<1%)
340:347 (<1%)
view
6 x 2 src/hit/api/linearalgebra
src/hit/api/linearalgebra
encryptedcolvector.h
encryptedmatrix.h
61:74 (17%)
72:84 (16%)
view
6 x 2 src/hit/api/linearalgebra
src/hit/api/linearalgebra
linearalgebra.cpp
linearalgebra.cpp
120:127 (<1%)
168:175 (<1%)
view
6 x 2 protobuf
protobuf
proto
encrypted_matrix.proto
encrypted_row_vector.proto
1:8 (50%)
1:8 (54%)
view
6 x 2 src/hit/api/evaluator
src/hit/api/evaluator
homomorphic.cpp
scaleestimator.cpp
172:180 (3%)
61:69 (4%)
view
6 x 2 src/hit/api/linearalgebra
src/hit/api/linearalgebra
encryptedmatrix.h
encryptedrowvector.h
72:84 (16%)
77:90 (17%)
view