/// <inheritdoc/> public override ExpNode Execute(SineOperNode node) { if (node.IsConstantBy(_variable)) { return(QuickOpers.MakeNumericalNode(0)); } // Apply chain rule var coefficient = node.Child.Clone().Execute(this); // Apply table var sinFunc = SineTable(node); return(QuickOpers.Multiply(coefficient, sinFunc)); }
/// <inheritdoc/> public override ExpNode Execute(SineOperNode node) { if (node.IsConstantBy(_variable)) { return(ConstantRule(node)); } Differentiator diff = new(_variable); // Apply ChainRule var coefficient = node.Child.Execute(diff); // Apply table var sinFunc = SineTable(node); return(QuickOpers.Multiply(QuickOpers.Reciprical(coefficient), sinFunc)); }