novifinancial / curve25519-dalek-fiat
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:
    • 24,561 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,675 duplicated lines
  • 1,024 duplicates
system6% (1,675 lines)
Duplication per Extension
rs6% (1,675 lines)
Duplication per Component (primary)
src/backend/serial/u646% (565 lines)
src/backend/serial/u328% (436 lines)
src6% (190 lines)
src/backend/vector/scalar_mul48% (134 lines)
src/backend/serial/scalar_mul45% (134 lines)
src/backend/vector/ifma4% (121 lines)
src/backend/vector/avx21% (66 lines)
src/backend/serial/fiat20% (29 lines)
ROOT0% (0 lines)
benches0% (0 lines)
src/backend0% (0 lines)
src/backend/vector0% (0 lines)
src/backend/serial0% (0 lines)
src/backend/serial/curve_models0% (0 lines)

Duplication Between Components (50+ lines)

G src/backend/serial/scalar_mul src/backend/serial/scalar_mul src/backend/vector/scalar_mul src/backend/vector/scalar_mul src/backend/serial/scalar_mul--src/backend/vector/scalar_mul 268 src src src/backend/serial/scalar_mul--src 79 src/backend/vector/scalar_mul--src 81 src/backend/vector/avx2 src/backend/vector/avx2 src/backend/vector/ifma src/backend/vector/ifma src/backend/vector/avx2--src/backend/vector/ifma 145 src/backend/serial/u32 src/backend/serial/u32 src/backend/serial/u64 src/backend/serial/u64 src/backend/serial/u32--src/backend/serial/u64 92 src/backend/serial/fiat src/backend/serial/fiat src/backend/serial/fiat--src/backend/serial/u64 58

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 1,024 duplicates...
Size#FoldersFilesLinesCode
29 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
161:199 (31%)
123:161 (29%)
view
27 x 2 src/backend/serial/u64
src/backend/serial/u64
451:477 (<1%)
6338:6364 (<1%)
view
27 x 2 src/backend/serial/u64
src/backend/serial/u64
359:385 (<1%)
6292:6318 (<1%)
view
27 x 2 src/backend/serial/u64
src/backend/serial/u64
405:431 (<1%)
6315:6341 (<1%)
view
25 x 2 src/backend/serial/u64
src/backend/serial/u64
315:339 (<1%)
6271:6295 (<1%)
view
23 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
44:71 (32%)
43:70 (34%)
view
19 x 2 src/backend/vector/avx2
src/backend/vector/ifma
285:315 (14%)
189:219 (16%)
view
18 x 2 src/backend/serial/u32
src/backend/serial/u32
310:327 (<1%)
3920:3937 (<1%)
view
18 x 2 src/backend/serial/u32
src/backend/serial/u32
282:299 (<1%)
3906:3923 (<1%)
view
18 x 2 src/backend/serial/u32
src/backend/serial/u32
254:271 (<1%)
3892:3909 (<1%)
view
16 x 2 src/backend/serial/u32
src/backend/serial/u32
228:243 (<1%)
3880:3895 (<1%)
view
13 x 2 src
src
717:730 (1%)
942:955 (2%)
view
13 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
76:96 (14%)
37:53 (13%)
view
12 x 2 src/backend/serial/u64
src/backend/serial/u64
242:253 (<1%)
278:289 (<1%)
view
12 x 2 src/backend/serial/scalar_mul
src
48:59 (17%)
942:953 (2%)
view
12 x 2 src/backend/serial/scalar_mul
src
48:59 (17%)
717:728 (1%)
view
12 x 2 src/backend/serial/u64
src/backend/serial/u64
187:198 (<1%)
259:270 (<1%)
view
12 x 2 src/backend/vector/scalar_mul
src
47:58 (17%)
717:728 (1%)
view
12 x 2 src/backend/serial/u64
src/backend/serial/u64
170:181 (<1%)
206:217 (<1%)
view
12 x 2 src/backend/vector/scalar_mul
src
47:58 (17%)
942:953 (2%)
view
11 x 2 src
src
133:153 (1%)
192:211 (2%)
view
11 x 2 src/backend/vector/scalar_mul
src
47:57 (16%)
352:362 (12%)
view
11 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
22:107 (16%)
23:44 (18%)
view
11 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
20:72 (11%)
19:35 (11%)
view
11 x 2 src/backend/serial/scalar_mul
src
48:58 (15%)
352:362 (12%)
view
11 x 2 src
src
717:727 (1%)
352:362 (12%)
view
11 x 2 src
src
942:952 (2%)
352:362 (12%)
view
10 x 2 src/backend/serial/u64
src/backend/serial/u64
216:225 (<1%)
252:261 (<1%)
view
10 x 2 src/backend/serial/u64
src/backend/serial/u64
223:232 (<1%)
295:304 (<1%)
view
10 x 2 src/backend/serial/u64
src/backend/serial/u64
180:189 (<1%)
288:297 (<1%)
view
9 x 2 src/backend/serial/u32
src/backend/serial/u64
216:228 (<1%)
303:315 (<1%)
view
9 x 2 src/backend/serial/u32
src/backend/serial/u64
18:51 (2%)
14:40 (3%)
view
9 x 2 src/backend/serial/u32
src/backend/serial/u32
176:184 (<1%)
200:208 (<1%)
view
9 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
32:42 (12%)
31:41 (13%)
view
9 x 2 src/backend/serial/u32
src/backend/serial/u32
139:147 (<1%)
187:195 (<1%)
view
9 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
17:29 (27%)
17:29 (28%)
view
9 x 2 src/backend/serial/u32
src/backend/serial/u32
128:136 (<1%)
152:160 (<1%)
view
8 x 2 src/backend/vector/ifma
src/backend/vector/ifma
265:272 (1%)
492:499 (1%)
view
8 x 2 src/backend/serial/fiat
src/backend/serial/u32
14:23 (5%)
18:27 (2%)
view
8 x 2 src/backend/vector/avx2
src/backend/vector/ifma
89:103 (6%)
62:75 (7%)
view
8 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
19:28 (11%)
17:27 (11%)
view
8 x 2 src/backend/serial/fiat
src/backend/serial/u64
14:23 (5%)
14:23 (3%)
view
8 x 2 src
src
231:243 (1%)
348:360 (1%)
view
8 x 2 src/backend/vector/avx2
src/backend/vector/ifma
204:217 (6%)
154:167 (7%)
view
8 x 2 src/backend/serial/fiat
src/backend/serial/u64
45:58 (5%)
43:56 (3%)
view
8 x 2 src
src
217:229 (1%)
334:346 (1%)
view
8 x 2 src
src
348:360 (1%)
394:406 (<1%)
view
8 x 2 src/backend/serial/scalar_mul
src/backend/vector/scalar_mul
19:30 (100%)
11:22 (100%)
view
8 x 2 src
src
231:243 (1%)
394:406 (<1%)
view
8 x 2 src/backend/serial/u32
src/backend/serial/u64
211:218 (2%)
199:206 (2%)
view
Duplicated Units
The list of top 6 duplicated units.
See data for all 6 unit duplicates...
Size#FoldersFilesLinesCode
22 x 2 src/backend/vector/scalar_mul
src/backend/serial/scalar_mul
134:163 
172:201 
view
10 x 2 src/backend/vector/scalar_mul
src/backend/serial/scalar_mul
34:45 
35:46 
view
8 x 3 src
src
src
394:403 
231:240 
348:357 
view
8 x 2 src
src
217:226 
334:343 
view
7 x 2 src/backend/vector/avx2
src/backend/vector/ifma
302:311 
206:215 
view
6 x 2 src/backend/vector/avx2
src/backend/vector/ifma
291:298 
195:202 
view