[package] name = "pcw_regrs" version = "1.9.0" edition = "2021" publish = true # prevent accidental publishing authors = [ "Stefan Volz ", "Martin Storath", ] description = "Fast, optimal, extensible and cross-validated heterogeneous piecewise polynomial regression for timeseries." repository = "https://github.com/SV-97/pcw-regrs" license = "MIT OR Apache-2.0" keywords = ["regression", "piecewise", "polynomial"] categories = [ "mathematics", "algorithms", "science", "simulation", "science::neuroscience", ] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [profile.release] lto = true # enable full link time optimization codegen-units = 1 # build on one core to maximize possible optimizations debug = true # write debug symbols into output binary opt-level = 3 # enable all optimizations # overflow-checks = false # Disable integer overflow checks. [dependencies] derive-new = "0.6.0" ndarray = { version = "0.15.6", features = ["serde"] } ordered-float = { version = "4.1.1", features = ["serde"] } pcw_fn = { version = "0.2.1", features = ["serde"] } thiserror = "1.0.40" polyfit-residuals = { version = "0.6.1", features = ["parallel_rayon"] } num-traits = "0.2.15" itertools = "0.12.0" serde = { version = "1.0.152", features = ["derive"], optional = true } rayon = { version = "1.7.0", optional = true } maybe-debug = "0.1.0" rtrb = { version = "0.2.3", optional = true } indoc = "2.0.3" [dev-dependencies] maybe-debug = "0.1.0" criterion = "0.5.1" rand = "0.8.5" rand_distr = "0.4.3" ndarray-rand = "0.14.0" [features] default = ["serde", "dofs-sub-one", "parallel_rayon"] serde = ["dep:serde"] nightly-only = ["polyfit-residuals/nightly-only"] parallel_rayon = ["dep:rayon", "polyfit-residuals/parallel_rayon"] # If this feature is enabled then a segment of n data points is allowed no more than n-1 dofs # rather than the n dofs we usually allow. This behaviour corresponds to the preconditions of # the uniqueness proof and makes intuitive sense when considering the locality of each point: # by not going up to full interpolation any point necessarily influences the full model whereas # interpolation would allow it to influence only a single segment. dofs-sub-one = [] [[bench]] name = "ose" harness = false