Jdi na navigaci předmětu

1. Porovnání (Interpolace)

Porovnání jednotlivých řešení po měkkém deadline prvního úkolu. Nejprve drobná příprava notebooku a dat.

using CSV, DataFrames
"""

    record_rank!(data_frame, column)

Pomocná hodnotící funkce přidělující body do sloupce `score` tabulky
`data_frame` podle pořadí ve sloupci `column` (seřazeném).

"""
function record_rank!(data_frame::DataFrame, column::Symbol)
    rank = 1
    value = first(data_frame[!, column])

    for row in eachrow(data_frame)
        if ismissing(row[column])
            row[:score] += 42
            continue
        elseif ismissing(value)
            value = row[column]
        elseif row[column] != value
            value = row[column]
            rank += 1
        end

        row[:score] += rank
    end
end;

Načtení dat: odfiltrování nefunkčních odevzdání, smazání username, případných chybových výpisů a přidání "skórovacího" sloupce. Dále výpis základních statistik datasetu.

df = CSV.read("benchmark01.csv", DataFrame)
df[!, "score"] .= 0
filter!(row -> row.status == "ok", df) 
select!(df, Not(:username, :error))
describe(df)
23×7 DataFrame
Rowvariablemeanminmedianmaxnmissingeltype
SymbolUnion…AnyUnion…AnyInt64Type
1nickAldarin StříbrnýŠedomír Poutník0DataString
2src_code134.97475131.02810Union{Missing, Int64}
3src_comment62.3158951.52470Union{Missing, Int64}
4constructor_check1.0true1.0true0Union{Missing, Bool}
5evaluation_check1.0true1.0true0Union{Missing, Bool}
6unsorted_check1.0true1.0true0Union{Missing, Bool}
7bench_constructor_order_1_t241305.0309.0753.18239e5403241.00Union{Missing, Float64}
8bench_constructor_order_1_m5.32797e53600637080.09871120Union{Missing, Int64}
9bench_constructor_order_1_c1.0true1.0true0Union{Missing, Bool}
10bench_constructor_order_3_t1.10917e61670.21.19828e61.5358e60Union{Missing, Float64}
11bench_constructor_order_3_m2.40212e670962.53034e638607840Union{Missing, Int64}
12bench_constructor_order_3_c1.0true1.0true0Union{Missing, Bool}
13bench_constructor_order_5_t2.40596e623274.02.5522e63.37662e60Union{Missing, Float64}
14bench_constructor_order_5_m5.38125e6479925.67316e686288240Union{Missing, Int64}
15bench_constructor_order_5_c1.0true1.0true0Union{Missing, Bool}
16bench_evaluation_order_3_t3501.292246.443631.817419.00Union{Missing, Float64}
17bench_evaluation_order_3_m4863.1624002400.0208000Union{Missing, Int64}
18bench_evaluation_order_3_c1.0true1.0true0Union{Missing, Bool}
19bench_evaluation_order_5_t52462.224717.046057.01.0874e50Union{Missing, Float64}
20bench_evaluation_order_5_m84584.43129685104.01877120Union{Missing, Int64}
21bench_evaluation_order_5_c1.0true1.0true0Union{Missing, Bool}
22statusokok0DataString
23score0.000.000Int64

Dále mezi hodnocené zařazuji i své odevzdání (nick kalvotom), kód vygenerovaný pomocí ChatGPT 6 (nick chatgpt) a Claude Opus 5.5. Kontrola splnění základních testů.

show(df[!, [:nick, :constructor_check, :evaluation_check, :unsorted_check]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     constructor_check  evaluation_check  unsorted_check 
     │ DataStri…                Bool?              Bool?             Bool?          
─────┼──────────────────────────────────────────────────────────────────────────────
   1 │ Torgun Dubový                         true              true            true
   2 │ Šedomír Poutník                       true              true            true
   3 │ Elfrid Měsíční                        true              true            true
   4 │ Kilgar Zlatovous                      true              true            true
   5 │ Semínek Zahradník                     true              true            true
   6 │ Hnědoslav z Lesa                      true              true            true
   7 │ Bunkin z Kopce                        true              true            true
   8 │ Myrtila Houbařka                      true              true            true
   9 │ Starý Hřibal                          true              true            true
  10 │ Elowen Hvězdná                        true              true            true
  11 │ Hargrim Kovář                         true              true            true
  12 │ Bodlák Norovský                       true              true            true
  13 │ Pírko z Pahorku                       true              true            true
  14 │ Sylvána Rosná                         true              true            true
  15 │ Bertolf z Horního Brodu               true              true            true
  16 │ Kořínek Lesní                         true              true            true
  17 │ Brunhart Železný                      true              true            true
  18 │ Měsíčka Medová                        true              true            true
  19 │ Kouzlík Modrý                         true              true            true
  20 │ Tasilo Podlesný                       true              true            true
  21 │ Tilka z Vrbiny                        true              true            true
  22 │ Bertram Brodský                       true              true            true
  23 │ Aldarin Stříbrný                      true              true            true
  24 │ Eldra Lucerna                         true              true            true
  25 │ Kvítka Lipová                         true              true            true
  26 │ Grondal Skalní                        true              true            true
  27 │ Břečťanka Záhorská                    true              true            true
  28 │ Kordel Hůrecký                        true              true            true
  29 │ Svitomil Svícník                      true              true            true
  30 │ Calien Jasná                          true              true            true
  31 │ Bardur Kamenovous                     true              true            true
  32 │ Baltazar Vousatý                      true              true            true
  33 │ Hildora Kovadlinka                    true              true            true
  34 │ Lupínka Zahradní                      true              true            true
  35 │ Tarbin Čajovník                       true              true            true
  36 │ kalvotom                              true              true            true
  37 │ Claude Opus 5.5                       true              true            true
  38 │ ChatGPT                               true              true            true

Parametry kódu

Počet řádek kódu. Čím méně, tím lépe, což ale vždy neplatí, že. Měření pomocí nástroje cloc.

sort!(df, :src_code)
record_rank!(df, :src_code)
show(df[!,[:nick, :src_code, :score]], allrows=true)
38×3 DataFrame
 Row │ nick                     src_code  score 
     │ DataStri…                Int64?    Int64 
─────┼──────────────────────────────────────────
   1 │ Calien Jasná                   75      1
   2 │ Kilgar Zlatovous               89      2
   3 │ Tilka z Vrbiny                 94      3
   4 │ Brunhart Železný               99      4
   5 │ ChatGPT                        99      4
   6 │ Bunkin z Kopce                102      5
   7 │ Kvítka Lipová                 102      5
   8 │ Hargrim Kovář                 103      6
   9 │ Tarbin Čajovník               103      6
  10 │ Sylvána Rosná                 104      7
  11 │ Tasilo Podlesný               109      8
  12 │ Bardur Kamenovous             110      9
  13 │ Aldarin Stříbrný              111     10
  14 │ Grondal Skalní                111     10
  15 │ Semínek Zahradník             113     11
  16 │ Šedomír Poutník               115     12
  17 │ Hnědoslav z Lesa              117     13
  18 │ Bodlák Norovský               129     14
  19 │ Starý Hřibal                  131     15
  20 │ Elowen Hvězdná                131     15
  21 │ Pírko z Pahorku               133     16
  22 │ kalvotom                      133     16
  23 │ Myrtila Houbařka              135     17
  24 │ Lupínka Zahradní              137     18
  25 │ Svitomil Svícník              138     19
  26 │ Břečťanka Záhorská            139     20
  27 │ Torgun Dubový                 142     21
  28 │ Elfrid Měsíční                142     21
  29 │ Bertram Brodský               143     22
  30 │ Eldra Lucerna                 143     22
  31 │ Hildora Kovadlinka            151     23
  32 │ Měsíčka Medová                152     24
  33 │ Kořínek Lesní                 154     25
  34 │ Kouzlík Modrý                 163     26
  35 │ Baltazar Vousatý              175     27
  36 │ Bertolf z Horního Brodu       245     28
  37 │ Claude Opus 5.5               276     29
  38 │ Kordel Hůrecký                281     30

Počet řádek komentářů (včetně docstringů). Zde naopak čím více, tím lépe.

sort!(df, :src_comment, rev=true)
record_rank!(df, :src_comment)
show(df[!,[:nick, :src_comment, :score]], allrows=true)
38×3 DataFrame
 Row │ nick                     src_comment  score 
     │ DataStri…                Int64?       Int64 
─────┼─────────────────────────────────────────────
   1 │ Bertolf z Horního Brodu          247     29
   2 │ Claude Opus 5.5                  160     31
   3 │ Břečťanka Záhorská               126     23
   4 │ Kvítka Lipová                    112      9
   5 │ Měsíčka Medová                   106     29
   6 │ Bertram Brodský                  104     28
   7 │ Kordel Hůrecký                    84     37
   8 │ Sylvána Rosná                     82     15
   9 │ Kouzlík Modrý                     81     35
  10 │ Bardur Kamenovous                 76     19
  11 │ Kořínek Lesní                     75     36
  12 │ Aldarin Stříbrný                  67     22
  13 │ Starý Hřibal                      65     28
  14 │ Lupínka Zahradní                  65     31
  15 │ Bodlák Norovský                   64     28
  16 │ Grondal Skalní                    62     25
  17 │ Pírko z Pahorku                   62     31
  18 │ kalvotom                          55     32
  19 │ Semínek Zahradník                 52     28
  20 │ Calien Jasná                      51     19
  21 │ Tasilo Podlesný                   50     27
  22 │ Eldra Lucerna                     50     41
  23 │ Elowen Hvězdná                    49     35
  24 │ Hildora Kovadlinka                48     44
  25 │ Baltazar Vousatý                  47     49
  26 │ Kilgar Zlatovous                  38     25
  27 │ Elfrid Měsíční                    35     45
  28 │ Hnědoslav z Lesa                  34     38
  29 │ Hargrim Kovář                     32     32
  30 │ ChatGPT                           31     31
  31 │ Šedomír Poutník                   27     40
  32 │ Brunhart Železný                  26     33
  33 │ Torgun Dubový                     25     51
  34 │ Myrtila Houbařka                  24     48
  35 │ Svitomil Svícník                  20     51
  36 │ Tarbin Čajovník                   17     39
  37 │ Bunkin z Kopce                    10     39
  38 │ Tilka z Vrbiny                     9     38

Float64: Konstruktor

Měření konstruktoru typicky obsahujícího kontroly a výpočet soustavy. Testujeme interpolaci řádu 11, 33 a 55.

Řád 11, rychlost relativně k nejrychlejšímu (_t) a kontrola úspěšnosti (_c).

column_symbol = :bench_constructor_order_1_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_1_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_constructor_order_1_t  score  bench_constructor_order_1_c 
     │ DataStri…                Float64                      Int64  Union{Missing, Bool}        
─────┼──────────────────────────────────────────────────────────────────────────────────────────
   1 │ Claude Opus 5.5                              1.0         32                         true
   2 │ Bertolf z Horního Brodu                      1.4255      31                         true
   3 │ Hnědoslav z Lesa                             1.79279     41                         true
   4 │ kalvotom                                    13.8787      36                         true
   5 │ Svitomil Svícník                            63.5023      56                         true
   6 │ Tilka z Vrbiny                              76.4377      44                         true
   7 │ ChatGPT                                     77.6671      38                         true
   8 │ Tarbin Čajovník                             79.094       47                         true
   9 │ Grondal Skalní                              79.2574      34                         true
  10 │ Bertram Brodský                            315.599       38                         true
  11 │ Kilgar Zlatovous                           389.704       36                         true
  12 │ Bunkin z Kopce                            1004.44        51                         true
  13 │ Šedomír Poutník                           1004.81        53                         true
  14 │ Aldarin Stříbrný                          1014.42        36                         true
  15 │ Sylvána Rosná                             1015.93        30                         true
  16 │ Myrtila Houbařka                          1021.32        64                         true
  17 │ Eldra Lucerna                             1021.81        58                         true
  18 │ Semínek Zahradník                         1023.88        46                         true
  19 │ Kvítka Lipová                             1028.8         28                         true
  20 │ Starý Hřibal                              1030.5         48                         true
  21 │ Brunhart Železný                          1031.63        54                         true
  22 │ Kouzlík Modrý                             1034.32        57                         true
  23 │ Torgun Dubový                             1034.47        74                         true
  24 │ Tasilo Podlesný                           1035.57        51                         true
  25 │ Elowen Hvězdná                            1036.01        60                         true
  26 │ Kořínek Lesní                             1041.44        62                         true
  27 │ Hargrim Kovář                             1042.78        59                         true
  28 │ Bodlák Norovský                           1043.42        56                         true
  29 │ Měsíčka Medová                            1043.43        58                         true
  30 │ Pírko z Pahorku                           1043.8         61                         true
  31 │ Břečťanka Záhorská                        1063.35        54                         true
  32 │ Lupínka Zahradní                          1074.03        63                         true
  33 │ Elfrid Měsíční                            1075.91        78                         true
  34 │ Kordel Hůrecký                            1103.35        71                         true
  35 │ Baltazar Vousatý                          1122.12        84                         true
  36 │ Hildora Kovadlinka                        1126.09        80                         true
  37 │ Calien Jasná                              1146.14        56                         true
  38 │ Bardur Kamenovous                         1304.67        57                         true

A pak paměť ve stejném experimentu, čím méně, tím lépe.

column_symbol = :bench_constructor_order_1_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_1_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_constructor_order_1_m  score  bench_constructor_order_1_c 
     │ DataStri…                Float64                      Int64  Union{Missing, Bool}        
─────┼──────────────────────────────────────────────────────────────────────────────────────────
   1 │ Claude Opus 5.5                              1.0         33                         true
   2 │ Bertolf z Horního Brodu                      1.25778     33                         true
   3 │ Hnědoslav z Lesa                             1.25778     43                         true
   4 │ kalvotom                                     1.4         39                         true
   5 │ Svitomil Svícník                            88.8689      60                         true
   6 │ Grondal Skalní                              88.8822      39                         true
   7 │ Tilka z Vrbiny                              90.1         50                         true
   8 │ Tarbin Čajovník                             90.1311      54                         true
   9 │ ChatGPT                                     91.52        46                         true
  10 │ Bertram Brodský                             93.3489      47                         true
  11 │ Kilgar Zlatovous                           158.236       46                         true
  12 │ Baltazar Vousatý                           176.227       95                         true
  13 │ Sylvána Rosná                              176.484       42                         true
  14 │ Lupínka Zahradní                           176.484       75                         true
  15 │ Břečťanka Záhorská                         176.493       67                         true
  16 │ Brunhart Železný                           176.498       68                         true
  17 │ Elowen Hvězdná                             176.693       75                         true
  18 │ Kordel Hůrecký                             176.742       87                         true
  19 │ Hildora Kovadlinka                         176.964       97                         true
  20 │ Semínek Zahradník                          176.969       64                         true
  21 │ Pírko z Pahorku                            177.484       80                         true
  22 │ Hargrim Kovář                              177.9         79                         true
  23 │ Aldarin Stříbrný                           177.956       57                         true
  24 │ Šedomír Poutník                            178.367       75                         true
  25 │ Eldra Lucerna                              178.367       80                         true
  26 │ Myrtila Houbařka                           178.42        87                         true
  27 │ Tasilo Podlesný                            178.5         75                         true
  28 │ Torgun Dubový                              178.562       99                         true
  29 │ Starý Hřibal                               179.551       74                         true
  30 │ Kouzlík Modrý                              180.627       84                         true
  31 │ Bunkin z Kopce                             180.898       79                         true
  32 │ Kvítka Lipová                              180.898       56                         true
  33 │ Kořínek Lesní                              180.898       90                         true
  34 │ Calien Jasná                               180.911       85                         true
  35 │ Bodlák Norovský                            181.107       86                         true
  36 │ Elfrid Měsíční                             181.871      109                         true
  37 │ Měsíčka Medová                             181.898       90                         true
  38 │ Bardur Kamenovous                          274.198       90                         true

Řád 33, rychlost relativně k nejrychlejšímu (_t) a kontrola úspěšnosti (_c).

column_symbol = :bench_constructor_order_3_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_3_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_constructor_order_3_t  score  bench_constructor_order_3_c 
     │ DataStri…                Float64                      Int64  Union{Missing, Bool}        
─────┼──────────────────────────────────────────────────────────────────────────────────────────
   1 │ Claude Opus 5.5                              1.0         34                         true
   2 │ Bertolf z Horního Brodu                      1.40103     35                         true
   3 │ Bertram Brodský                            166.09        50                         true
   4 │ Kilgar Zlatovous                           286.807       50                         true
   5 │ Elfrid Měsíční                             649.382      114                         true
   6 │ Hnědoslav z Lesa                           665.153       49                         true
   7 │ Šedomír Poutník                            667.858       82                         true
   8 │ Lupínka Zahradní                           683.496       83                         true
   9 │ Semínek Zahradník                          687.986       73                         true
  10 │ Torgun Dubový                              694.48       109                         true
  11 │ Bunkin z Kopce                             697.215       90                         true
  12 │ Kouzlík Modrý                              698.208       96                         true
  13 │ Brunhart Železný                           700.887       81                         true
  14 │ Aldarin Stříbrný                           711.168       71                         true
  15 │ Myrtila Houbařka                           711.732      102                         true
  16 │ Pírko z Pahorku                            712.337       96                         true
  17 │ Tilka z Vrbiny                             716.339       67                         true
  18 │ Starý Hřibal                               716.591       92                         true
  19 │ Hargrim Kovář                              716.597       98                         true
  20 │ Eldra Lucerna                              718.294      100                         true
  21 │ Elowen Hvězdná                             718.343       96                         true
  22 │ Kořínek Lesní                              721.173      112                         true
  23 │ Tasilo Podlesný                            722.187       98                         true
  24 │ Grondal Skalní                             725.456       63                         true
  25 │ Sylvána Rosná                              725.936       67                         true
  26 │ Měsíčka Medová                             728.819      116                         true
  27 │ Kvítka Lipová                              729.695       83                         true
  28 │ Bodlák Norovský                            733.537      114                         true
  29 │ Břečťanka Záhorská                         740.288       96                         true
  30 │ Svitomil Svícník                           743.975       90                         true
  31 │ Tarbin Čajovník                            748.018       85                         true
  32 │ Baltazar Vousatý                           749.697      127                         true
  33 │ ChatGPT                                    750.174       79                         true
  34 │ Hildora Kovadlinka                         752.061      131                         true
  35 │ kalvotom                                   756.44        74                         true
  36 │ Calien Jasná                               763.524      121                         true
  37 │ Bardur Kamenovous                          903.616      127                         true
  38 │ Kordel Hůrecký                             919.531      125                         true

A pak paměť ve stejném experimentu, čím méně, tím lépe.

column_symbol = :bench_constructor_order_3_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_3_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_constructor_order_3_m  score  bench_constructor_order_3_c 
     │ DataStri…                Float64                      Int64  Union{Missing, Bool}        
─────┼──────────────────────────────────────────────────────────────────────────────────────────
   1 │ Claude Opus 5.5                              1.0         35                         true
   2 │ Bertolf z Horního Brodu                      2.19955     37                         true
   3 │ Bertram Brodský                            112.478       53                         true
   4 │ Kilgar Zlatovous                           266.556       54                         true
   5 │ Lupínka Zahradní                           355.406       88                         true
   6 │ Svitomil Svícník                           355.406       95                         true
   7 │ Břečťanka Záhorská                         355.41       102                         true
   8 │ Brunhart Železný                           355.413       88                         true
   9 │ Grondal Skalní                             355.413       70                         true
  10 │ Elowen Hvězdná                             355.738      104                         true
  11 │ Semínek Zahradník                          355.869       82                         true
  12 │ Hildora Kovadlinka                         355.876      141                         true
  13 │ kalvotom                                   355.941       85                         true
  14 │ Hargrim Kovář                              356.124      110                         true
  15 │ Pírko z Pahorku                            356.149      109                         true
  16 │ Tilka z Vrbiny                             356.266       81                         true
  17 │ Tarbin Čajovník                            356.282      100                         true
  18 │ Myrtila Houbařka                           356.397      118                         true
  19 │ Šedomír Poutník                            356.587       99                         true
  20 │ Eldra Lucerna                              356.587      117                         true
  21 │ Tasilo Podlesný                            356.655      116                         true
  22 │ Starý Hřibal                               356.962      111                         true
  23 │ ChatGPT                                    356.986       99                         true
  24 │ Baltazar Vousatý                           357.954      148                         true
  25 │ Aldarin Stříbrný                           359.293       93                         true
  26 │ Kouzlík Modrý                              360.632      119                         true
  27 │ Sylvána Rosná                              360.736       91                         true
  28 │ Torgun Dubový                              363.316      134                         true
  29 │ Bunkin z Kopce                             363.422      116                         true
  30 │ Kořínek Lesní                              363.422      138                         true
  31 │ Měsíčka Medová                             364.165      143                         true
  32 │ Kvítka Lipová                              366.073      111                         true
  33 │ Calien Jasná                               366.08       150                         true
  34 │ Bodlák Norovský                            366.188      144                         true
  35 │ Hnědoslav z Lesa                           366.53        80                         true
  36 │ Elfrid Měsíční                             368.157      146                         true
  37 │ Kordel Hůrecký                             445.913      158                         true
  38 │ Bardur Kamenovous                          544.079      161                         true

Řád 55, rychlost relativně k nejrychlejšímu (_t) a kontrola úspěšnosti (_c).

column_symbol = :bench_constructor_order_3_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_3_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_constructor_order_3_t  score  bench_constructor_order_3_c 
     │ DataStri…                Float64                      Int64  Union{Missing, Bool}        
─────┼──────────────────────────────────────────────────────────────────────────────────────────
   1 │ Claude Opus 5.5                              1.0         36                         true
   2 │ Bertolf z Horního Brodu                      1.40103     39                         true
   3 │ Bertram Brodský                            166.09        56                         true
   4 │ Kilgar Zlatovous                           286.807       58                         true
   5 │ Elfrid Měsíční                             649.382      151                         true
   6 │ Hnědoslav z Lesa                           665.153       86                         true
   7 │ Šedomír Poutník                            667.858      106                         true
   8 │ Lupínka Zahradní                           683.496       96                         true
   9 │ Semínek Zahradník                          687.986       91                         true
  10 │ Torgun Dubový                              694.48       144                         true
  11 │ Bunkin z Kopce                             697.215      127                         true
  12 │ Kouzlík Modrý                              698.208      131                         true
  13 │ Brunhart Železný                           700.887      101                         true
  14 │ Aldarin Stříbrný                           711.168      107                         true
  15 │ Myrtila Houbařka                           711.732      133                         true
  16 │ Pírko z Pahorku                            712.337      125                         true
  17 │ Tilka z Vrbiny                             716.339       98                         true
  18 │ Starý Hřibal                               716.591      129                         true
  19 │ Hargrim Kovář                              716.597      129                         true
  20 │ Eldra Lucerna                              718.294      137                         true
  21 │ Elowen Hvězdná                             718.343      125                         true
  22 │ Kořínek Lesní                              721.173      160                         true
  23 │ Tasilo Podlesný                            722.187      139                         true
  24 │ Grondal Skalní                             725.456       94                         true
  25 │ Sylvána Rosná                              725.936      116                         true
  26 │ Měsíčka Medová                             728.819      169                         true
  27 │ Kvítka Lipová                              729.695      138                         true
  28 │ Bodlák Norovský                            733.537      172                         true
  29 │ Břečťanka Záhorská                         740.288      131                         true
  30 │ Svitomil Svícník                           743.975      125                         true
  31 │ Tarbin Čajovník                            748.018      131                         true
  32 │ Baltazar Vousatý                           749.697      180                         true
  33 │ ChatGPT                                    750.174      132                         true
  34 │ Hildora Kovadlinka                         752.061      175                         true
  35 │ kalvotom                                   756.44       120                         true
  36 │ Calien Jasná                               763.524      186                         true
  37 │ Bardur Kamenovous                          903.616      198                         true
  38 │ Kordel Hůrecký                             919.531      196                         true

A pak paměť ve stejném experimentu, čím méně, tím lépe.

column_symbol = :bench_constructor_order_5_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_constructor_order_5_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_constructor_order_5_m  score  bench_constructor_order_5_c 
     │ DataStri…                Float64                      Int64  Union{Missing, Bool}        
─────┼──────────────────────────────────────────────────────────────────────────────────────────
   1 │ Bertolf z Horního Brodu                      1.0         40                         true
   2 │ Claude Opus 5.5                              1.92932     38                         true
   3 │ Bertram Brodský                             28.3724      59                         true
   4 │ Kilgar Zlatovous                            81.4154      62                         true
   5 │ Lupínka Zahradní                           118.003      101                         true
   6 │ Svitomil Svícník                           118.003      130                         true
   7 │ Břečťanka Záhorská                         118.003      137                         true
   8 │ Brunhart Železný                           118.004      108                         true
   9 │ Grondal Skalní                             118.004      101                         true
  10 │ Elowen Hvězdná                             118.085      133                         true
  11 │ Semínek Zahradník                          118.104      100                         true
  12 │ Hildora Kovadlinka                         118.105      185                         true
  13 │ Hargrim Kovář                              118.109      140                         true
  14 │ kalvotom                                   118.115      132                         true
  15 │ Pírko z Pahorku                            118.146      138                         true
  16 │ Myrtila Houbařka                           118.15       147                         true
  17 │ Tilka z Vrbiny                             118.164      113                         true
  18 │ Tarbin Čajovník                            118.166      147                         true
  19 │ Šedomír Poutník                            118.211      123                         true
  20 │ Eldra Lucerna                              118.211      154                         true
  21 │ Tasilo Podlesný                            118.221      157                         true
  22 │ Starý Hřibal                               118.233      148                         true
  23 │ ChatGPT                                    118.27       152                         true
  24 │ Baltazar Vousatý                           118.907      201                         true
  25 │ Aldarin Stříbrný                           119.173      129                         true
  26 │ Kouzlík Modrý                              119.369      154                         true
  27 │ Sylvána Rosná                              119.841      140                         true
  28 │ Bunkin z Kopce                             120.305      152                         true
  29 │ Kořínek Lesní                              120.305      185                         true
  30 │ Měsíčka Medová                             120.448      195                         true
  31 │ Torgun Dubový                              121.123      171                         true
  32 │ Kvítka Lipová                              121.219      166                         true
  33 │ Calien Jasná                               121.22       215                         true
  34 │ Bodlák Norovský                            121.237      202                         true
  35 │ Hnědoslav z Lesa                           121.32       117                         true
  36 │ Elfrid Měsíční                             121.764      183                         true
  37 │ Kordel Hůrecký                             157.816      229                         true
  38 │ Bardur Kamenovous                          179.797      232                         true

Float64: Vyhodnocování řád 33

Vyhodnocování funkční hodnoty po vytvoření objektu, v několika bodech. Stupeň polynomů nejvýše 33.

column_symbol = :bench_evaluation_order_3_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_3_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_evaluation_order_3_t  score  bench_evaluation_order_3_c 
     │ DataStri…                Float64                     Int64  Union{Missing, Bool}       
─────┼────────────────────────────────────────────────────────────────────────────────────────
   1 │ kalvotom                                    1.0        133                        true
   2 │ Lupínka Zahradní                            1.00445    103                        true
   3 │ Svitomil Svícník                            1.00594    133                        true
   4 │ Claude Opus 5.5                             1.0094      42                        true
   5 │ Elfrid Měsíční                              1.01736    188                        true
   6 │ Kvítka Lipová                               1.01983    172                        true
   7 │ Grondal Skalní                              1.04412    108                        true
   8 │ Torgun Dubový                               1.05703    179                        true
   9 │ Myrtila Houbařka                            1.05901    156                        true
  10 │ Starý Hřibal                                1.15763    158                        true
  11 │ Měsíčka Medová                              1.17841    206                        true
  12 │ Tasilo Podlesný                             1.21209    169                        true
  13 │ Šedomír Poutník                             1.22099    136                        true
  14 │ Eldra Lucerna                               1.23489    168                        true
  15 │ Calien Jasná                                1.26763    230                        true
  16 │ Kouzlík Modrý                               1.40711    170                        true
  17 │ Bertolf z Horního Brodu                     1.42665     57                        true
  18 │ Bunkin z Kopce                              1.50243    170                        true
  19 │ Kořínek Lesní                               1.60554    204                        true
  20 │ Tilka z Vrbiny                              1.62785    133                        true
  21 │ Bertram Brodský                             1.63119     80                        true
  22 │ Tarbin Čajovník                             1.6446     169                        true
  23 │ ChatGPT                                     1.64738    175                        true
  24 │ Brunhart Železný                            1.65573    132                        true
  25 │ Hargrim Kovář                               1.65962    165                        true
  26 │ Kilgar Zlatovous                            1.6624      88                        true
  27 │ Sylvána Rosná                               1.71093    167                        true
  28 │ Hildora Kovadlinka                          1.75666    213                        true
  29 │ Hnědoslav z Lesa                            1.75883    146                        true
  30 │ Elowen Hvězdná                              1.77169    163                        true
  31 │ Semínek Zahradník                           1.78677    131                        true
  32 │ Aldarin Stříbrný                            1.79172    161                        true
  33 │ Pírko z Pahorku                             1.79901    171                        true
  34 │ Baltazar Vousatý                            1.97258    235                        true
  35 │ Břečťanka Záhorská                          2.01553    172                        true
  36 │ Bardur Kamenovous                           2.72423    268                        true
  37 │ Kordel Hůrecký                              2.87663    266                        true
  38 │ Bodlák Norovský                             3.30255    240                        true

A pak paměť, čím méně, tím lépe.

column_symbol = :bench_evaluation_order_3_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_3_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_evaluation_order_3_m  score  bench_evaluation_order_3_c 
     │ DataStri…                Float64                     Int64  Union{Missing, Bool}       
─────┼────────────────────────────────────────────────────────────────────────────────────────
   1 │ kalvotom                                    1.0        134                        true
   2 │ Lupínka Zahradní                            1.0        104                        true
   3 │ Svitomil Svícník                            1.0        134                        true
   4 │ Claude Opus 5.5                             1.0         43                        true
   5 │ Elfrid Měsíční                              1.0        189                        true
   6 │ Kvítka Lipová                               1.0        173                        true
   7 │ Grondal Skalní                              1.0        109                        true
   8 │ Torgun Dubový                               1.0        180                        true
   9 │ Myrtila Houbařka                            1.0        157                        true
  10 │ Starý Hřibal                                1.0        159                        true
  11 │ Měsíčka Medová                              1.0        207                        true
  12 │ Tasilo Podlesný                             1.0        170                        true
  13 │ Šedomír Poutník                             1.0        137                        true
  14 │ Eldra Lucerna                               1.0        169                        true
  15 │ Kouzlík Modrý                               1.0        171                        true
  16 │ Bunkin z Kopce                              1.0        171                        true
  17 │ Kořínek Lesní                               1.0        205                        true
  18 │ Elowen Hvězdná                              1.0        164                        true
  19 │ Semínek Zahradník                           1.0        132                        true
  20 │ Aldarin Stříbrný                            1.0        162                        true
  21 │ Pírko z Pahorku                             1.0        172                        true
  22 │ Bertolf z Horního Brodu                     2.33333     59                        true
  23 │ Bertram Brodský                             2.33333     82                        true
  24 │ Sylvána Rosná                               2.33333    169                        true
  25 │ Baltazar Vousatý                            2.33333    237                        true
  26 │ Tilka z Vrbiny                              2.66667    136                        true
  27 │ Tarbin Čajovník                             2.66667    172                        true
  28 │ ChatGPT                                     2.66667    178                        true
  29 │ Brunhart Železný                            2.66667    135                        true
  30 │ Kilgar Zlatovous                            2.66667     91                        true
  31 │ Břečťanka Záhorská                          2.66667    175                        true
  32 │ Calien Jasná                                3.0        234                        true
  33 │ Hargrim Kovář                               3.0        169                        true
  34 │ Hildora Kovadlinka                          3.0        217                        true
  35 │ Hnědoslav z Lesa                            3.0        150                        true
  36 │ Kordel Hůrecký                              4.0        271                        true
  37 │ Bardur Kamenovous                           6.0        274                        true
  38 │ Bodlák Norovský                             8.66667    247                        true

BigFloat: Vyhodnocování řád 55

Vyhodnocování funkční hodnoty po vytvoření objektu, v několika bodech. Stupeň polynomů nejvýše 55, datový typ BigFloat.

column_symbol = :bench_evaluation_order_5_t
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_5_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_evaluation_order_5_t  score  bench_evaluation_order_5_c 
     │ DataStri…                Float64                     Int64  Union{Missing, Bool}       
─────┼────────────────────────────────────────────────────────────────────────────────────────
   1 │ Kvítka Lipová                               1.0        174                        true
   2 │ Claude Opus 5.5                             1.04216     45                        true
   3 │ kalvotom                                    1.064      137                        true
   4 │ Calien Jasná                                1.07153    238                        true
   5 │ Hargrim Kovář                               1.08391    174                        true
   6 │ Bertram Brodský                             1.10333     88                        true
   7 │ Svitomil Svícník                            1.12404    141                        true
   8 │ Grondal Skalní                              1.12522    117                        true
   9 │ Brunhart Železný                            1.15277    144                        true
  10 │ Torgun Dubový                               1.26872    190                        true
  11 │ Lupínka Zahradní                            1.2894     115                        true
  12 │ Hnědoslav z Lesa                            1.35587    162                        true
  13 │ Elfrid Měsíční                              1.38387    202                        true
  14 │ Tarbin Čajovník                             1.38751    186                        true
  15 │ Kilgar Zlatovous                            1.45297    106                        true
  16 │ Bertolf z Horního Brodu                     1.56463     75                        true
  17 │ Bunkin z Kopce                              1.62261    188                        true
  18 │ ChatGPT                                     1.68216    196                        true
  19 │ Tilka z Vrbiny                              1.74989    155                        true
  20 │ Myrtila Houbařka                            1.97686    177                        true
  21 │ Starý Hřibal                                2.53866    180                        true
  22 │ Šedomír Poutník                             2.56746    159                        true
  23 │ Měsíčka Medová                              2.58529    230                        true
  24 │ Tasilo Podlesný                             2.58895    194                        true
  25 │ Eldra Lucerna                               2.608      194                        true
  26 │ Sylvána Rosná                               2.61488    195                        true
  27 │ Hildora Kovadlinka                          2.63313    244                        true
  28 │ Baltazar Vousatý                            2.77052    265                        true
  29 │ Aldarin Stříbrný                            2.86337    191                        true
  30 │ Bardur Kamenovous                           2.87511    304                        true
  31 │ Pírko z Pahorku                             2.91401    203                        true
  32 │ Elowen Hvězdná                              2.94585    196                        true
  33 │ Kořínek Lesní                               2.96917    238                        true
  34 │ Kordel Hůrecký                              3.15277    305                        true
  35 │ Kouzlík Modrý                               3.34935    206                        true
  36 │ Semínek Zahradník                           3.43126    168                        true
  37 │ Bodlák Norovský                             4.34693    284                        true
  38 │ Břečťanka Záhorská                          4.39942    213                        true

A pak paměť, čím méně, tím lépe.

column_symbol = :bench_evaluation_order_5_m
sort!(df, column_symbol)
df[!, column_symbol] /= df[1, column_symbol]
record_rank!(df, column_symbol)
show(df[!,[:nick, column_symbol, :score, :bench_evaluation_order_5_c]], allrows=true, allcols=true)
38×4 DataFrame
 Row │ nick                     bench_evaluation_order_5_m  score  bench_evaluation_order_5_c 
     │ DataStri…                Float64                     Int64  Union{Missing, Bool}       
─────┼────────────────────────────────────────────────────────────────────────────────────────
   1 │ Kvítka Lipová                               1.0        175                        true
   2 │ Bertram Brodský                             1.10276     90                        true
   3 │ Claude Opus 5.5                             1.15337     48                        true
   4 │ Hargrim Kovář                               1.15389    178                        true
   5 │ Calien Jasná                                1.17894    243                        true
   6 │ Kilgar Zlatovous                            1.43456    112                        true
   7 │ Bertolf z Horního Brodu                     1.56237     82                        true
   8 │ kalvotom                                    1.76687    145                        true
   9 │ Brunhart Železný                            1.89519    153                        true
  10 │ Svitomil Svícník                            1.92025    151                        true
  11 │ Grondal Skalní                              1.92025    127                        true
  12 │ Elfrid Měsíční                              2.04806    213                        true
  13 │ Torgun Dubový                               2.22699    202                        true
  14 │ Lupínka Zahradní                            2.22699    127                        true
  15 │ Bunkin z Kopce                              2.22699    200                        true
  16 │ ChatGPT                                     2.35532    209                        true
  17 │ Tilka z Vrbiny                              2.35532    168                        true
  18 │ Hnědoslav z Lesa                            2.38088    176                        true
  19 │ Tarbin Čajovník                             2.50869    201                        true
  20 │ Bardur Kamenovous                           2.92996    320                        true
  21 │ Myrtila Houbařka                            3.30061    194                        true
  22 │ Starý Hřibal                                3.41564    198                        true
  23 │ Šedomír Poutník                             3.41564    177                        true
  24 │ Měsíčka Medová                              3.41564    248                        true
  25 │ Tasilo Podlesný                             3.41564    212                        true
  26 │ Eldra Lucerna                               3.41564    212                        true
  27 │ Aldarin Stříbrný                            3.41564    209                        true
  28 │ Pírko z Pahorku                             3.41564    221                        true
  29 │ Elowen Hvězdná                              3.41564    214                        true
  30 │ Kořínek Lesní                               3.41564    256                        true
  31 │ Kouzlík Modrý                               3.41564    224                        true
  32 │ Semínek Zahradník                           3.41564    186                        true
  33 │ Sylvána Rosná                               3.51789    214                        true
  34 │ Baltazar Vousatý                            3.5184     285                        true
  35 │ Hildora Kovadlinka                          3.59458    265                        true
  36 │ Kordel Hůrecký                              3.62065    327                        true
  37 │ Bodlák Norovský                             4.23364    307                        true
  38 │ Břečťanka Záhorská                          5.99796    237                        true

Závěrečná tabulka

Zaznamenávali jsme v každé kategorii (sdílené) pořadí. Čím nižší hodnota, tím lepší výsledek.

sort!(df, :score)
show(df[!,[:nick, :score]], allrows=true)
38×2 DataFrame
 Row │ nick                     score 
     │ DataStri…                Int64 
─────┼────────────────────────────────
   1 │ Claude Opus 5.5             48
   2 │ Bertolf z Horního Brodu     82
   3 │ Bertram Brodský             90
   4 │ Kilgar Zlatovous           112
   5 │ Grondal Skalní             127
   6 │ Lupínka Zahradní           127
   7 │ kalvotom                   145
   8 │ Svitomil Svícník           151
   9 │ Brunhart Železný           153
  10 │ Tilka z Vrbiny             168
  11 │ Kvítka Lipová              175
  12 │ Hnědoslav z Lesa           176
  13 │ Šedomír Poutník            177
  14 │ Hargrim Kovář              178
  15 │ Semínek Zahradník          186
  16 │ Myrtila Houbařka           194
  17 │ Starý Hřibal               198
  18 │ Bunkin z Kopce             200
  19 │ Tarbin Čajovník            201
  20 │ Torgun Dubový              202
  21 │ ChatGPT                    209
  22 │ Aldarin Stříbrný           209
  23 │ Tasilo Podlesný            212
  24 │ Eldra Lucerna              212
  25 │ Elfrid Měsíční             213
  26 │ Elowen Hvězdná             214
  27 │ Sylvána Rosná              214
  28 │ Pírko z Pahorku            221
  29 │ Kouzlík Modrý              224
  30 │ Břečťanka Záhorská         237
  31 │ Calien Jasná               243
  32 │ Měsíčka Medová             248
  33 │ Kořínek Lesní              256
  34 │ Hildora Kovadlinka         265
  35 │ Baltazar Vousatý           285
  36 │ Bodlák Norovský            307
  37 │ Bardur Kamenovous          320
  38 │ Kordel Hůrecký             327