opensrdk_symbolic_computation/expression/transcendental_expression/
assign.rs1use 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}