Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: edoars
  • License: apache-2.0
  • Language: Rust
  • Default Branch: main
  • Size: 905 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 2
Created about 4 years ago · Last pushed about 4 years ago
Metadata Files
Readme License Citation

README.md

Condition number of cyclotomic Vandermonde matrices

DOI

Rust library associated to the article DSS21.

Provides an efficient function to compute the condition number of V_n, the Vandermonde matrix associated with the nth cyclotomic polynomial. The condition number is computed via the trace of the matrix H_n, as shown in DSS20.

Contributors are: - Antonio J. Di Scala - Carlo Sanna - Edoardo Signorini

Installation

This crate can link with three LAPACK implementation. Default is Intel MKL. For more information on the supported features see ndarray_linalg.

To install clone the repository and build with cargo (release mode is recommended):

sh cargo build --release

Usage

The library has a command line interface, which can be called via cargo run. There are two main commands get andtable, visible via the --help option:

```sh $ cargo run --release -- --help cyclovander_cli 1.0.0

USAGE: cyclovander_cli [FLAGS]

FLAGS: -h, --help Prints help information -t, --trace Compute trace instead of condition number -V, --version Prints version information

SUBCOMMANDS: get Output for integer n help Prints this message or the help of the given subcommand(s) table Generate table from file ```

Both commands have a global option --trace, which determines the computation of the trace of H_n rather than the condition number of V_n. The latter is calculated by default.

Get

The get command returns the conditioning number of V_n where n is a user-specified parameter:

sh $ cargo run --release -- get 105 159.5422022090528

Or, with the --trace option, the trace of H_n:

sh $ cargo run --release -- --trace get 105 1160

Table

The table command takes as input a text file where a decimal integer must be present in each line, such as data/sq_100.txt which contains the first 100 squarefree integers:

3 5 6 7 10 11 ...

Returns the table that has as columns the input integer n and the condition number of V_n

sh $ cargo run --release -- table data/sq_100.txt n Cond(V_n) 3 2.309401076758503 5 5.059644256269407 6 2.309401076758503 7 7.855844048495725 10 5.059644256269407 11 13.48399724926484 ...

Or, with the --trace option, the table that has as columns the input integer n and the trace of H_n:

sh $ cargo run --release -- --trace table data/sq_100.txt n Tr(H_n) 3 4 5 8 6 8 7 12 10 16 11 20 ...

The table command can be used with the--threads option to use multiple threads and parallelize the computation.

Reproducibility of results

The graph in the article shows the conditioning number of the first 10000 squarefree integers. The graph is generated via the sage script graph.sage prendendo in input la tabella generata con il comando table.

In particular, the graph can be reproduced as follows:

  1. Generate a file with the first 10000 squarefree integers (e.g. using table.sage) or use data/sq_10000.txt.
  2. Use the table command with the above file to get the table with conditioning numbers. The same table is available in data/res_10000.csv.
  3. Use the sage script to generate the graph.

sh $ graph.sage data.csv output.png

Condition number of the first 10000 squarefree integers

Owner

  • Name: Edoardo Signorini
  • Login: edoars
  • Kind: user
  • Location: Italy
  • Company: Telsy

Cryptographer and PhD student at Telsy and PoliTO

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Signorini
    given-names: Edoardo
    orcid: https://orcid.org/0000-0002-1224-6732
title: "Condition number of cyclotomic Vandermonde matrices"
version: 1.0
doi: 10.5281/zenodo.5833812
date-released: 2022-01-10

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

Cargo.lock cargo
  • 181 dependencies
Cargo.toml cargo
  • criterion 0.3.5 development
  • pprof 0.5.0 development
  • ndarray 0.15.2
  • ndarray-linalg 0.14.1
  • num 0.4.0
  • red_primality 0.2.0
cli/Cargo.toml cargo