flickers

Crates.ioflickers
lib.rsflickers
version0.1.0
created_at2025-08-24 08:55:10.269776+00
updated_at2025-08-24 08:55:10.269776+00
descriptionA crate for calculating Allan-like deviations and other time and frequency stability statistics functions.
homepagehttps://github.com/oreillepale/flickers
repositoryhttps://github.com/oreillepale/flickers
max_upload_size
id1808185
size37,664
Etienne Batori (OreillePale)

documentation

https://docs.rs/flickers

README

Readme

Motivation

What is this crate

This rust crate contains functions to calculate time and frequency stability statistics such that Allan-like deviations.

For the moment only the Allan and Overlapping Allan deviations are available but I intend to add all the deviations that can be found in stable32, allantools or sigmatheta.

The goal is to unit test everything with stable32.

Why another library for time statistics

I have two objectives:

  1. Learn rust to the point I am confident I can publicly realease some code for others to use.
  2. The aformentionned other libraries all lack something I intend to fix with my crate (speed, completeness, python wrapper).

Examples

Deviation calculation

Here is an example on how to calculate the Overlapping Allan deviation. For the moment the package only accepts phase as input.

use flickers::{*};

fn main(){
    // generate phase data
    let phases = test_suite::generate_phase();

    let result = DevComputer::default()
        .with_phases(&phases)
        .with_tau0(1.)
        .with_afs(Afs::Decade)
        .with_noise_id(NoiseId::Default)
        .compute();

    println!("{:?}",result);
}

What's next

Features

  • code and publish a python wrapper
  • add all other deviations (MDev,TDev,Hdev,OHdev,MTIE,Theo1,TheoBr)
  • implement KLTS and KLTG method for calculating Three-Corner-Hat error bars. This can be only found in sigmathea for the moment and there is not python equivalent.
  • add noise generation functions
  • add Deviation fitting

Code

  • add error handling
  • add parallel mode for slow functions
  • add optionnal Serde for DevResult

Documentation and comments

My primarly source is the Handbook of Frequency Stability Analysis By W.J. Riley and the application notes found on Stable32's website. For the moment all the unit tests are compared to the values found in the former, especially Table 32.

The only deviation (yet) is the calculation of the error bars. It appears that Stable32's code contains a typo when calculating the inverse $\chi_2$ cumulative distribution which is fixed in the current code.

Commit count: 12

cargo fmt