use crate::Number;
use super::Term;
pub struct ScalarTerm<T: Number>
{
term: Box<dyn Term<T> + Send + Sync>,
scale: T
}
impl<T: Number> ScalarTerm<T>
{
pub fn new(term: Box<dyn Term<T> + Send + Sync>, scale: T) -> ScalarTerm<T>
{
return ScalarTerm { term, scale };
}
}
impl<T: Number> Term<T> for ScalarTerm<T>
{
fn evaluate(&self, t: T) -> T
{
return self.scale * self.term.evaluate(t);
}
}