1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//! # Frequency response plots
//!
//! [Bode plot](bode/index.html)
//!
//! [Polar plot](polar/index.html)
//!
//! [Root locus](root_locus/index.html)
//!
//! Plots are implemented as iterators.

pub mod bode;
pub mod polar;
pub mod root_locus;

use num_complex::Complex;

/// Determine how the transfer function is evaluated in plots.
pub trait Plotter<T> {
    /// Evaluate the transfer function at the given value.
    ///
    /// # Arguments
    ///
    /// * `x` - value at which the function is evaluated
    fn eval_point(&self, x: T) -> Complex<T>;
}