Skip to content
Snippets Groups Projects
Forked from Dragoon / Komodo
78 commits behind the upstream repository.
  • STEVAN Antoine's avatar
    bb626120
    split `examples/` into `benchmarks/` and `bins/` (dragoon/komodo!117) · bb626120
    STEVAN Antoine authored
    ## new structure for the repository
    - benchmarks are in `./benchmarks/` and can be run with either `cargo run --package benchmarks --bin <bench>` or the commands in `./benchmarks/README.md`
    ```
    ├── Cargo.toml
    ├── README.md
    └── src
        └── bin
            ├── commit.rs
            ├── fec.rs
            ├── linalg.rs
            ├── operations
            │   ├── curve_group.rs
            │   └── field.rs
            ├── recoding.rs
            ├── setup.rs
            └── setup_size.rs
    ```
    
    - examples are now in `./bins/` as standalone binaries and can be run either with `cargo run --package <pkg>` or with the help of the `cargo bin` command from `.nushell/cargo.nu`
    ```
    ├── curves
    │   ├── Cargo.toml
    │   ├── README.md
    │   └── src
    │       └── main.rs
    ├── inbreeding
    │   ├── build.nu
    │   ├── Cargo.toml
    │   ├── consts.nu
    │   ├── mod.nu
    │   ├── plot.nu
    │   ├── README.md
    │   ├── run.nu
    │   └── src
    │       ├── environment.rs
    │       ├── main.rs
    │       └── strategy.rs
    ├── rank
    │   ├── Cargo.toml
    │   └── src
    │       └── main.rs
    └── rng
        ├── Cargo.toml
        └── src
            └── main.rs
    ```
    
    - Nushell modules are now located in `./.nushell/`
    
    ## changelog
    apart from the changes to the general structure of the repo:
    - `binary.nu` -> `.nushell/binary.nu`
    - new `cargo bin` command from `.nushell/cargo.nu`
    - `error throw` is now defined in `.nushell/error.nu`
    - main TOML has been greatly simplified because the dependencies of "examples" have been moved to the associated crates
    - the rest is basically the same but in the new structure
    bb626120
    History
    split `examples/` into `benchmarks/` and `bins/` (dragoon/komodo!117)
    STEVAN Antoine authored
    ## new structure for the repository
    - benchmarks are in `./benchmarks/` and can be run with either `cargo run --package benchmarks --bin <bench>` or the commands in `./benchmarks/README.md`
    ```
    ├── Cargo.toml
    ├── README.md
    └── src
        └── bin
            ├── commit.rs
            ├── fec.rs
            ├── linalg.rs
            ├── operations
            │   ├── curve_group.rs
            │   └── field.rs
            ├── recoding.rs
            ├── setup.rs
            └── setup_size.rs
    ```
    
    - examples are now in `./bins/` as standalone binaries and can be run either with `cargo run --package <pkg>` or with the help of the `cargo bin` command from `.nushell/cargo.nu`
    ```
    ├── curves
    │   ├── Cargo.toml
    │   ├── README.md
    │   └── src
    │       └── main.rs
    ├── inbreeding
    │   ├── build.nu
    │   ├── Cargo.toml
    │   ├── consts.nu
    │   ├── mod.nu
    │   ├── plot.nu
    │   ├── README.md
    │   ├── run.nu
    │   └── src
    │       ├── environment.rs
    │       ├── main.rs
    │       └── strategy.rs
    ├── rank
    │   ├── Cargo.toml
    │   └── src
    │       └── main.rs
    └── rng
        ├── Cargo.toml
        └── src
            └── main.rs
    ```
    
    - Nushell modules are now located in `./.nushell/`
    
    ## changelog
    apart from the changes to the general structure of the repo:
    - `binary.nu` -> `.nushell/binary.nu`
    - new `cargo bin` command from `.nushell/cargo.nu`
    - `error throw` is now defined in `.nushell/error.nu`
    - main TOML has been greatly simplified because the dependencies of "examples" have been moved to the associated crates
    - the rest is basically the same but in the new structure
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
plot.nu 1.05 KiB
use ../../../.nushell/math.nu *
use ../../../.nushell/fs.nu check-file
use ../../../.nushell/plot.nu [ into-axis-options, COMMON_OPTIONS, gplt ]

export def main [data: path, --save: path] {
    check-file $data --span (metadata $data).span

    let graphs = open $data
        | where name !~ '^SEC'
        | ns-to-ms $.times
        | compute-stats $.times
        | insert degree { get label | parse "degree {d}" | into record | get d | into int }
        | rename --column { degree: "x", mean: "y", stddev: "e" }
        | select name x y e
        | group-by name --to-table
        | reject items.name
        | rename --column { group: "name", items: "points" }
        | sort-by name

    let options = [
        # --title "time to create trusted setups for certain curves"
        --x-label "degree"
        --y-label "time (in ms)"
        ...($graphs.points | flatten | into-axis-options -x "plain" -y "duration")
        ...$COMMON_OPTIONS
        (if $save != null { [ --save $save ] })
    ]

    gplt plot ($graphs | to json) ...($options | flatten | compact)
}