/** @(#) functionnd/functionnd_1d.h */ #ifndef FUNCTIONND_1D_H #define FUNCTIONND_1D_H //---------------------------------------------------------------------------- #include "../matrixdouble/vectordouble.h" #include "../mathpos/mathpos.h" //MACHEPS #include <iostream> #include <stdexcept> // runtime_exception using namespace std; /** * Interfaz de funciones de varias dimensiones a una dimension. R^n -> R. * @author Omar Posada Villarreal * @version 1.0, 12/03/2002 */ class FunctionND_1D { public: // Constructor predeterminado // Destructor predeterminado /** Interfaz para evaluar funcion en n dimensiones. * Logica uno. * Uso: * inicio de ejemplo /** Evalua una funcion R^n -> R. class Function1 : public FunctionND_1D { public: // No se checa las dimensiones de xc y Fc. double evaluate(VectorDouble &xc) { xc.setLogic(1); // Funcion del usuario return 2.0*pow(xc[1]+xc[2], 2.0) + pow(xc[1]-xc[2], 2.0)- 8.0; } }; // No olvidar ";" * fin de ejemplo * @param xc Punto donde se evaluara. * @return Evaluacion de la funcion. f(x1, x2, ..., xn). * @see Algoritmo FN pagina 296. */ virtual double evaluate(VectorDouble &xc) = 0; private: }; //---------------------------------------------------------------------------- #endif // Fin------------------------------------------------------------------------