MCPcopy Create free account
hub / github.com/donkeyteethUX/iced_plot / transform_value

Method transform_value

src/transform.rs:47–73  ·  view source on GitHub ↗
(&self, value: f64)

Source from the content-addressed store, hash-verified

45 }
46
47 fn transform_value(&self, value: f64) -> Option<f64> {
48 match self {
49 Self::Identity => value.is_finite().then_some(value),
50 Self::Affine { scale, translate } => {
51 if !(value.is_finite() && scale.is_finite() && translate.is_finite()) {
52 return None;
53 }
54 let out = value.mul_add(*scale, *translate);
55 out.is_finite().then_some(out)
56 }
57 Self::Log { base } => {
58 if !(value.is_finite() && value > 0.0 && valid_log_base(*base)) {
59 return None;
60 }
61 let out = value.log(*base);
62 out.is_finite().then_some(out)
63 }
64 Self::Exp { base } => {
65 if !(value.is_finite() && valid_log_base(*base)) {
66 return None;
67 }
68 let out = base.powf(value);
69 (out.is_finite() && out > 0.0).then_some(out)
70 }
71 Self::Then(first, second) => second.transform_value(first.transform_value(value)?),
72 }
73 }
74
75 fn inverted(&self) -> Option<Self> {
76 match self {

Calls 2

valid_log_baseFunction · 0.85
logMethod · 0.80