using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AutoDiff
{
///
/// Visitor for terms that has no result from its computations.
///
public interface ITermVisitor
{
///
/// Performs an action for a constant term.
///
/// The input term.
void Visit(Constant constant);
///
/// Performs an action for a zero term.
///
/// The input term.
void Visit(Zero zero);
///
/// Performs an action for a constant power term.
///
/// The input term.
void Visit(ConstPower power);
///
/// Performs an action for a power term.
///
/// The input term.
void Visit(TermPower power);
///
/// Performs an action for a product term.
///
/// The input term.
void Visit(Product product);
///
/// Performs an action for a sum term.
///
/// The input term.
void Visit(Sum sum);
///
/// Performs an action for a variable term.
///
/// The input term.
void Visit(Variable variable);
///
/// Performs an action for a logarithm term.
///
/// The input term.
void Visit(Log log);
///
/// Performs an action for an exponential function term.
///
/// The input term.
void Visit(Exp exp);
///
/// Performs an action for an unary function.
///
/// The unary function
void Visit(UnaryFunc func);
///
/// Performs an action for a binary function.
///
/// The binary function
void Visit(BinaryFunc func);
///
/// Performs an action for a n-ary function.
///
/// The n-ary function
void Visit(NaryFunc func);
}
}