opensrdk_symbolic_computation/expression/transcendental_expression/
variable.rs1use crate::TranscendentalExpression;
2use std::collections::HashSet;
3
4impl TranscendentalExpression {
5 pub fn variable_ids(&self) -> HashSet<&str> {
6 match self {
7 TranscendentalExpression::Abs(arg) => arg.variable_ids(),
8 TranscendentalExpression::Pow(base, exponential) => base
9 .variable_ids()
10 .into_iter()
11 .chain(exponential.variable_ids().into_iter())
12 .collect(),
13 TranscendentalExpression::Exp(arg) => arg.variable_ids(),
14 TranscendentalExpression::Log(l, antilogarithm) => l
15 .variable_ids()
16 .into_iter()
17 .chain(antilogarithm.variable_ids().into_iter())
18 .collect(),
19 TranscendentalExpression::Ln(arg) => arg.variable_ids(),
20 TranscendentalExpression::Sin(arg) => arg.variable_ids(),
21 TranscendentalExpression::Cos(arg) => arg.variable_ids(),
22 TranscendentalExpression::Tan(arg) => arg.variable_ids(),
23 }
24 }
25}