Index: trunk/Ohana/src/opihi/include/data.h
===================================================================
--- trunk/Ohana/src/opihi/include/data.h	(revision 41341)
+++ trunk/Ohana/src/opihi/include/data.h	(revision 41891)
@@ -71,4 +71,15 @@
   float **dNabla_w; // a matrix of Nabla_w values for each layer
 } Nnet;
+
+// a single chebyshev associates a name with the scaling
+// relationship and maybe other stuff
+typedef struct {
+  char *name;
+  opihi_flt scale[2];
+  opihi_flt zero[2];
+  int   order;
+  int   dimen;
+  opihi_flt *A;
+} ChebyshevType;
 
 void InitData (void);
@@ -294,3 +305,20 @@
 int nnet_apply (int argc, char **argv);
 
+/*** Chebyshev functions (chebyshev.c, chebyshev_commands.c) ***/
+
+void InitChebyshevs ();
+void FreeChebyshevs ();
+void FreeChebyshev (ChebyshevType *chebyshev);
+ChebyshevType *FindChebyshev (char *name);
+ChebyshevType *CreateChebyshev (char *name);
+int DeleteChebyshev (ChebyshevType *chebyshev);
+void ListChebyshevs ();
+int ChebyshevSetScale (ChebyshevType *cheb, Vector *vec, int dir);
+Vector *ChebyshevNormVector (ChebyshevType *cheb, Vector *vec, int dir);
+Vector *ChebyshevPolyVector (Vector *Ti, Vector *vec, int order);
+int ChebyshevPolyFit1D (ChebyshevType *cheb, Vector *vec, Vector **poly);
+int ChebyshevPolyApplyFit1D (ChebyshevType *cheb, Vector *vec, Vector **poly);
+int ChebyshevPolyFit2D (ChebyshevType *cheb, Vector *vec, Vector **xPoly, Vector **yPoly);
+int ChebyshevPolyApplyFit2D (ChebyshevType *cheb, Vector *vec, Vector **xPoly, Vector **yPoly);
+
 # endif
