pub struct Gaussian { /* private fields */ }Implementations§
Source§impl Gaussian
impl Gaussian
Sourcepub fn new(mean: f64, variance: f64) -> Self
pub fn new(mean: f64, variance: f64) -> Self
Examples found in repository?
examples/function_approximation.rs (line 27)
11fn main() {
12 let x1 = 0.0;
13 let x2 = 0.25;
14 let x3 = 0.5;
15 let x4 = 0.75;
16 let x5 = 1.0;
17 let original_function = |x| x * (1.0 - x);
18 let y15 = original_function(x1);
19 let y24 = original_function(x2);
20 let y3 = original_function(x3);
21
22 let mut fis = TSKFIS::new(SNorms::Max, TNorms::Min, TSKDefuzzifiers::Mean);
23
24 let mut x: InputVariable = InputVariable::new("X".to_string(), (0.0, 1.0));
25 x.add_membership(MembershipFunction::new(
26 "x1".to_string(),
27 MFKind::Gaussian(Gaussian::new(x1, 0.09)),
28 ));
29 x.add_membership(MembershipFunction::new(
30 "x2".to_string(),
31 MFKind::Gaussian(Gaussian::new(x2, 0.09)),
32 ));
33 x.add_membership(MembershipFunction::new(
34 "x3".to_string(),
35 MFKind::Gaussian(Gaussian::new(x3, 0.09)),
36 ));
37 x.add_membership(MembershipFunction::new(
38 "x4".to_string(),
39 MFKind::Gaussian(Gaussian::new(x4, 0.09)),
40 ));
41 x.add_membership(MembershipFunction::new(
42 "x5".to_string(),
43 MFKind::Gaussian(Gaussian::new(x5, 0.09)),
44 ));
45 fis.add_input(x);
46
47 let mut y: TSKOutputVariable = TSKOutputVariable::new("Y".to_string());
48 y.add_constant_membership(y15);
49 y.add_constant_membership(y24);
50 y.add_constant_membership(y3);
51
52 fis.add_output(y);
53
54 fis.add_rule(Rule::new_and(vec![0, 0], 1.0));
55 fis.add_rule(Rule::new_and(vec![1, 1], 1.0));
56 fis.add_rule(Rule::new_and(vec![2, 2], 1.0));
57 fis.add_rule(Rule::new_and(vec![3, 1], 1.0));
58 fis.add_rule(Rule::new_and(vec![4, 0], 1.0));
59
60 let out: Vec<f64> = fis.compute_outputs(vec![0.6]);
61 println!("{:?}", out);
62}Trait Implementations§
Auto Trait Implementations§
impl Freeze for Gaussian
impl RefUnwindSafe for Gaussian
impl Send for Gaussian
impl Sync for Gaussian
impl Unpin for Gaussian
impl UnwindSafe for Gaussian
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more