opensrdk_symbolic_computation/expression/transcendental_expression/
assign.rs

1use crate::{ConstantValue, Expression, TranscendentalExpression};
2use std::collections::HashMap;
3
4impl TranscendentalExpression {
5    pub fn assign(self, variables: &HashMap<&str, ConstantValue>) -> Expression {
6        match self {
7            TranscendentalExpression::Abs(arg) => arg.assign(variables).abs(),
8            TranscendentalExpression::Pow(base, exponent) => {
9                base.assign(variables).pow(exponent.assign(variables))
10            }
11            TranscendentalExpression::Exp(arg) => arg.assign(variables).exp(),
12            TranscendentalExpression::Log(base, antilogarithm) => {
13                base.assign(variables).log(antilogarithm.assign(variables))
14            }
15            TranscendentalExpression::Ln(arg) => arg.assign(variables).ln(),
16            TranscendentalExpression::Sin(arg) => arg.assign(variables).sin(),
17            TranscendentalExpression::Cos(arg) => arg.assign(variables).cos(),
18            TranscendentalExpression::Tan(arg) => arg.assign(variables).tan(),
19        }
20    }
21}