/*************************************************************************** * Copyright (C) 2008 by Douglas Castro,,, * * douglas@douglas-laptop * * * ***************************************************************************/ #ifndef DEFINICOES_H #define DEFINICOES_H #include #include #include typedef struct Reg { struct Reg *esq; double fval; /* Valor da funcão no ponto. */ struct Reg *dir; } Reg; typedef struct Arv { struct Arv *esq; double fval; /* Valor da funcão no ponto. */ struct Arv *pai; int ind; struct Arv *dir; } Arv; /** Se p!=NULL o valor fv e definido pela arvore, caso contrario e interpolado */ typedef struct VReg { Reg *p; double fv; } VReg; /** * Tipo de uma funcao a ser aproximada. */ typedef double Funcao(double x, double y); // /** // * Tipo de uma funcao que interpola uma funcao em {x}, dados quatro pontos do gr�fico. // */ // typedef double Interpolador(double x0, double fx0, double x1, double fx1, double x2, double fx2, double x3, double fx3, double x); /** * Tipo de funcao que, dadas as médias em cada célula de um grupo de 3 células adjacentes de mesmo nível, * prevê a média no filho {esq} (esquerdo/inferior) da célula central * @param x0 [in] media na célula inferior/esquerda do grupo * @param x1 [in] media na célula do meio * @param x2 [in] media na célula superior/direita */ typedef double Preditor( double x0, double x1, double x2 ); /** * Tipo de funcao que calcula a quadratura gaussiana (regra de 20 pontos) num certo dominio */ typedef double Quadratura(double xmin, double xmax, double ymin, double ymax, Funcao *f); #endif