Index: /trunk/psLib/src/dataManip/Makefile
===================================================================
--- /trunk/psLib/src/dataManip/Makefile	(revision 736)
+++ /trunk/psLib/src/dataManip/Makefile	(revision 737)
@@ -6,5 +6,5 @@
 include ../Makefile.Globals
 CFLAGS := $(CFLAGS_RELOC) -I. -I../sysUtils -I../collections -I..
-SRC_OBJS = psStats.o psFunctions.o
+SRC_OBJS = psStats.o psFunctions.o psMinimize.o
 
 all: $(TARGET_STATIC)
Index: /trunk/psLib/src/dataManip/psMinimize.c
===================================================================
--- /trunk/psLib/src/dataManip/psMinimize.c	(revision 737)
+++ /trunk/psLib/src/dataManip/psMinimize.c	(revision 737)
@@ -0,0 +1,49 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <float.h>
+#include <math.h>
+
+#include "psMemory.h"
+#include "psVector.h"
+#include "psTrace.h"
+#include "psError.h"
+#include "psAbort.h"
+#include "psFunctions.h"
+#include "psSort.h"
+
+#include "float.h"
+#include <math.h>
+
+/******************************************************************************
+    This routine must minimize an arbotrary function.
+ *****************************************************************************/
+psVector *
+psMinimize(float (*myFunction)(const psVector *restrict),
+           psVector *restrict initialGuess,
+           psVector *restrict paramMask)
+{
+    return(NULL);
+}
+
+psVector *
+psMinimizeChi2(float (*evalModel)(const psVector *restrict,
+                                  const psVector *restrict),
+               const psVector *restrict domain,
+               const psVector *restrict data,
+               const psVector *restrict errors,
+               psVector *restrict initialGuess,
+               const psVector *restrict paramMask)
+{
+    return(NULL);
+}
+
+psPolynomial1D *
+psGetArrayPolynomial(psPolynomial1D myPoly,
+                     const psVector *restrict x,
+                     const psVector *restrict y,
+                     const psVector *restrict yErr)
+{
+    return(NULL);
+}
Index: /trunk/psLib/src/dataManip/psMinimize.h
===================================================================
--- /trunk/psLib/src/dataManip/psMinimize.h	(revision 737)
+++ /trunk/psLib/src/dataManip/psMinimize.h	(revision 737)
@@ -0,0 +1,43 @@
+#if !defined(PS_MINIMIZE_H)
+#define PS_MINIMIZE_H
+
+/** \file psMinimize.h
+ *  \brief minimization operations
+ *  \ingroup MathGroup
+ */
+
+/** Functions **************************************************************/
+/** \addtogroup MathGroup Math Utilities
+ *  \{
+ */
+
+/** Minimize a particular non-linear function */
+psFloatArray *
+psMinimize(float (*myFunction)(const psFloatArray *restrict), ///< Function to minimize
+           psFloatArray *restrict initialGuess, ///< Initial guess
+           psIntArray *restrict paramMask //!< 1 = fit for parameter, 0 = hold parameter constant
+          );
+
+
+/** Minimize chi^2 for input data */
+psFloatArray *
+psMinimizeChi2(float (*evalModel)(const psFloatArray *restrict,
+                                  const psFloatArray *restrict), ///< Model to fit; (domain and params)
+               const psFloatArray *restrict domain, ///< The domain values for the corresponding measurements
+               const psFloatArray *restrict data, ///< Data to fit
+               const psFloatArray *restrict errors, ///< Errors in the data
+               psFloatArray *restrict initialGuess, ///< Initial guess
+               const psIntArray *restrict paramMask ///< 1 = fit for parameter, 0 = hold parameter constant
+              );
+
+/** Derive a polynomial fit by chi^2 minimisation --- can be done analytically */
+psPolynomial1D *
+psGetArrayPolynomial(psPolynomial1D myPoly, ///< Polynomial to fit
+                     const psFloatArray *restrict x, ///< Ordinates (or NULL to just use the indices)
+                     const psFloatArray *restrict y, ///< Coordinates
+                     const psFloatArray *restrict yErr ///< Errors in coordinates, or NULL
+                    );
+
+/* \} */ // End of MathGroup Functions
+
+#endif
Index: /trunk/psLib/src/math/psMinimize.c
===================================================================
--- /trunk/psLib/src/math/psMinimize.c	(revision 737)
+++ /trunk/psLib/src/math/psMinimize.c	(revision 737)
@@ -0,0 +1,49 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <float.h>
+#include <math.h>
+
+#include "psMemory.h"
+#include "psVector.h"
+#include "psTrace.h"
+#include "psError.h"
+#include "psAbort.h"
+#include "psFunctions.h"
+#include "psSort.h"
+
+#include "float.h"
+#include <math.h>
+
+/******************************************************************************
+    This routine must minimize an arbotrary function.
+ *****************************************************************************/
+psVector *
+psMinimize(float (*myFunction)(const psVector *restrict),
+           psVector *restrict initialGuess,
+           psVector *restrict paramMask)
+{
+    return(NULL);
+}
+
+psVector *
+psMinimizeChi2(float (*evalModel)(const psVector *restrict,
+                                  const psVector *restrict),
+               const psVector *restrict domain,
+               const psVector *restrict data,
+               const psVector *restrict errors,
+               psVector *restrict initialGuess,
+               const psVector *restrict paramMask)
+{
+    return(NULL);
+}
+
+psPolynomial1D *
+psGetArrayPolynomial(psPolynomial1D myPoly,
+                     const psVector *restrict x,
+                     const psVector *restrict y,
+                     const psVector *restrict yErr)
+{
+    return(NULL);
+}
Index: /trunk/psLib/src/math/psMinimize.h
===================================================================
--- /trunk/psLib/src/math/psMinimize.h	(revision 737)
+++ /trunk/psLib/src/math/psMinimize.h	(revision 737)
@@ -0,0 +1,43 @@
+#if !defined(PS_MINIMIZE_H)
+#define PS_MINIMIZE_H
+
+/** \file psMinimize.h
+ *  \brief minimization operations
+ *  \ingroup MathGroup
+ */
+
+/** Functions **************************************************************/
+/** \addtogroup MathGroup Math Utilities
+ *  \{
+ */
+
+/** Minimize a particular non-linear function */
+psFloatArray *
+psMinimize(float (*myFunction)(const psFloatArray *restrict), ///< Function to minimize
+           psFloatArray *restrict initialGuess, ///< Initial guess
+           psIntArray *restrict paramMask //!< 1 = fit for parameter, 0 = hold parameter constant
+          );
+
+
+/** Minimize chi^2 for input data */
+psFloatArray *
+psMinimizeChi2(float (*evalModel)(const psFloatArray *restrict,
+                                  const psFloatArray *restrict), ///< Model to fit; (domain and params)
+               const psFloatArray *restrict domain, ///< The domain values for the corresponding measurements
+               const psFloatArray *restrict data, ///< Data to fit
+               const psFloatArray *restrict errors, ///< Errors in the data
+               psFloatArray *restrict initialGuess, ///< Initial guess
+               const psIntArray *restrict paramMask ///< 1 = fit for parameter, 0 = hold parameter constant
+              );
+
+/** Derive a polynomial fit by chi^2 minimisation --- can be done analytically */
+psPolynomial1D *
+psGetArrayPolynomial(psPolynomial1D myPoly, ///< Polynomial to fit
+                     const psFloatArray *restrict x, ///< Ordinates (or NULL to just use the indices)
+                     const psFloatArray *restrict y, ///< Coordinates
+                     const psFloatArray *restrict yErr ///< Errors in coordinates, or NULL
+                    );
+
+/* \} */ // End of MathGroup Functions
+
+#endif
