#include <FunctionTree.h>
Klasa reprezentuje węzeł drzewa funkcji, w którym może się znajdować wartość liczbowa, nazwa zmiennej w postaci ciągu znaków, funkcja jedno- bądź dwuargumentowa.
Argumentami dla funkcji (operatorów) są lewy i prawy węzeł potomny (lub poddrzewo).
Typy publiczne | |
typedef double(* | UnaryOperator )(double) |
Operator (bądź funkcja) jednoargumentowy. | |
typedef double(* | BinaryOperator )(double, double) |
Operator (bądź funkcja) dwuargumentowy. | |
Metody publiczne | |
FunctionTree (double value) | |
Konstruktor węzła z wartościa liczbową. | |
FunctionTree (const wxString &variableName) | |
Konstruktor węzła z nazwą zmiennej. | |
FunctionTree (unsigned variableIndex) | |
Konstruktor węzła z indeksem zmiennej. | |
FunctionTree (const UnaryOperator unaryOperator, std::auto_ptr< const FunctionTree > apOperand) | |
Konstruktor węzła z funkcją/operatorem unarną. | |
FunctionTree (const BinaryOperator binaryOperator, std::auto_ptr< const FunctionTree > apLeftOperand, std::auto_ptr< const FunctionTree > apRightOperand) | |
Konstruktor węzła z funkcją/operatorem binarną. | |
FunctionTree (const FunctionTree &from) | |
Konstruktor kopiujący. | |
~FunctionTree (void) | |
Destruktor. | |
FunctionTree & | operator= (const FunctionTree &from) |
Operator przypisania. | |
double | Evaluate (const ColumnVector &point, const VariableNames &variables) const |
Oblicza wartość funkcji w punkcie. | |
std::auto_ptr< const FunctionTree > | Optimize (const VariableNames &variables) const |
Przetwarza drzewo w celu optymalizacji obliczania wartości. | |
void | SetArgument (std::auto_ptr< const FunctionTree > apArgument) |
Ustawia lewe poddrzewo. | |
bool | ContainsUnknown (const VariableNames &variables) const |
Sprawdza, czy drzewo funkcji zawiera zmienne nie znajdujące się w variables . | |
VariableNames | PresentVariables () const |
Znajduje wszystkie zmienne występujące w drzewie funkcji. | |
Komponenty | |
union | Data |
Typ dla danych w węźle. |
|
Oblicza wartość funkcji w punkcie.
Obiekt
|
|
Operator przypisania.
|
|
Przetwarza drzewo w celu optymalizacji obliczania wartości. W obecnej chwili zamienia jedynie nazwy zmiennych na ich bezpośrednie indeksy.
|
|
Ustawia lewe poddrzewo. (lewe poddrzewo wykorzystywane jest jako argument funkcji jednoargumentowych) Do budowy drzewa funkcji należy stosować w pierwszej kolejności konstruktory! |