Skip to main content

feature_vector

Macro feature_vector 

Source
macro_rules! feature_vector {
    (@default $default:expr) => { ... };
    (@default) => { ... };
    (
        $(#[$meta:meta])*
        $vis:vis struct $name:ident {
            $( $field:ident $( = $default:expr )? ),+ $(,)?
        }
    ) => { ... };
}
Expand description

Generates a named feature vector struct where every field is f64.

The struct converts to &[f64] at zero cost via repr(C) pointer cast, for passing to adaptive filters (LmsFilterF64, RlsFilterF64), classifiers (LogisticRegressionF64, OnlineKMeansF64), and optimizers (AdamF64, AdaGradF64) from the nexus-stats-regression crate.

All fields are pub and f64. Construct via struct literal or new() (which applies defaults). Mutate fields directly.

ยงExample

use nexus_stats_core::feature_vector;

feature_vector! {
    pub struct MarketFeatures {
        autocorrelation,
        spread = 1.0,
        imbalance,
    }
}

let f = MarketFeatures { autocorrelation: 0.3, spread: 1.5, imbalance: -0.2 };
assert_eq!(f.as_slice(), &[0.3, 1.5, -0.2]);
assert_eq!(MarketFeatures::DIMENSIONS, 3);