Index: trunk/psphot/src/psphot.h
===================================================================
--- trunk/psphot/src/psphot.h	(revision 4954)
+++ trunk/psphot/src/psphot.h	(revision 4977)
@@ -3,5 +3,10 @@
 # include <unistd.h>   // for unlink
 # include <pslib.h>
+# include "psLibUtils.h"
 # include "pmObjects_EAM.h"
+# include "psModulesUtils.h"
+# include "pmPSF.h"
+# include "pmPSFtry.h"
+# include "pmModelGroup.h"
 
 typedef struct {
@@ -11,34 +16,4 @@
     psMetadata *header;
 } psImageData;
-
-// data to test a given PSF model type
-typedef struct {
-    pmModelType modelType;
-    pmPSF      *psf;
-    psArray    *sources;      // pointers to the original sources
-    psArray    *modelFLT;     // model fits, floating parameters 
-    psArray    *modelPSF;     // model fits, PSF parameters
-    psVector   *mask;
-    psVector   *metric;
-    psVector   *fitMag;
-    float       ApResid;
-    float       dApResid;
-    float       skyBias;
-} pmPSF_Test;
-
-// structure to carry a dynamic string
-typedef struct {
-    int NLINE;
-    int Nline;
-    char *line;
-} psLine;
-
-enum {
-    PSPHOT_MASK_INVALID   = 0x01,
-    PSPHOT_MASK_SATURATED = 0x02,
-    PSPHOT_MASK_MARKED    = 0x08,
-} MaskValues;
-
-# define psMemCopy(A)(psMemIncrRefCounter((A)))
 
 // top-level psphot functions
@@ -56,16 +31,9 @@
 bool         psphotSubtractPSF (pmSource *source);
 int 	     psphotSortBySN (const void **a, const void **b);
+int          psphotSaveImage (psMetadata *header, psImage *image, char *filename);
+bool 	     psphotDefinePixels (pmSource *mySource, const psImageData *imdata, psF32 x, psF32 y, psF32 Radius);
 
 // psImageData functions
 psImageData *psImageDataAlloc (psImage *image, psImage *noise, psImage *mask, psMetadata *header);
-
-// psf utilities
-pmPSF       *pmPSFAlloc (pmModelType type);
-pmPSF_Test  *pmPSF_TestAlloc (psArray *stars, char *modelName);
-pmPSF_Test  *pmPSF_TestModel (psArray *sources, char *modelName, float radius);
-bool	     pmPSFFromModels (pmPSF *psf, psArray *models, psVector *mask);
-pmModel	    *pmModelFromPSF (pmModel *model, pmPSF *psf);
-bool	     pmSourcePhotometry (float *fitMag, float *obsMag, pmModel *model, psImage *image, psImage *mask);
-bool	     pmPSFMetricModel (pmPSF_Test *test, float RADIUS);
 
 // output functions
@@ -81,74 +49,2 @@
 bool 	     pmModelWriteFLTs (psArray *sources, char *filename);
 bool 	     pmModelWriteNULLs (psArray *sources, char *filename);
-
-// psModule extra utilities
-bool 	     pmSourceDefinePixels(pmSource *mySource, const psImageData *imdata, psF32 x, psF32 y, psF32 Radius);
-bool 	     pmSourceLocalSky_EAM (pmSource *source, psStatsOptions statsOptions, psF32 Radius);
-bool 	     pmSourceFitModel_EAM(pmSource *source, pmModel *model, const bool PSF);
-bool 	     pmSourceMoments_EAM(pmSource *source, psF32 radius);
-bool 	     pmModelFitStatus (pmModel *model);
-int	     pmSourceDophotType (pmSource *source);
-
-// minimize 
-psBool 	     p_psMinLM_GuessABP_EAM (psImage  *Alpha, psVector *Beta, psVector *Params, const psImage  *alpha, const psVector *beta, const psVector *params, const psVector *paramMask, const psVector *beta_lim, const psVector *params_min, const psVector *params_max, psF64 lambda);
-psBool 	     psMinimizeLMChi2_EAM(psMinimization *min, psImage *covar, psVector *params, const psVector *paramMask, const psArray *x, const psVector *y, const psVector *yErr, psMinimizeLMChi2Func func);
-psF64        p_psMinLM_dLinear (const psVector *Beta, const psVector *beta, psF64 lambda);
-
-// psLib extra utilities
-bool 	     psTimerStart (char *name);
-void 	     psTimerFree ();
-bool 	     psTimerClear (char *name);
-psF64 	     psTimerMark (char *name);
-psS32 	     psLogArguments (int *argc, char **argv);
-psS32 	     psTraceArguments (int *argc, char **argv);
-int	     psArgumentGet (int argc, char **argv, char *arg);
-int	     psArgumentRemove (int N, int *argc, char **argv);
-psF32        pmConfigLookupF32 (bool *status, psMetadata *config, psMetadata *header, char *name);
-psVector    *psVectorCreate (double lower, double upper, double delta, psElemType type);
-psVector    *psGetRowVectorFromImage(psImage *image, psU32 row);
-int          psImageCountPixelMask (psImage *mask, psU8 value);
-
-// basic image functions
-bool         psImageInit (psImage *image,...);
-void	     psImageSmooth_EAM (psImage *image, float sigma, float Nsigma);
-int          psphotSaveImage (psMetadata *header, psImage *image, char *filename);
-
-// psLine functions
-psLine      *psLineAlloc (int Nline);
-bool	     psLineInit (psLine *line);
-bool	     psLineAdd (psLine *line, char *format, ...);
-
-// polynomial functions
-psF64	        Polynomial2DEval(const psPolynomial2D* myPoly, psF64 x, psF64 y);
-psImage	       *psBuildSums2D(psImage* sums,psF64 x,psF64 y,psS32 nXterm, psS32 nYterm);
-psPolynomial2D *VectorFitPolynomial2DOrd_EAM(psPolynomial2D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr);
-psPolynomial2D *Polynomial2DAlloc(psS32 nXorder, psS32 nYorder, psPolynomialType type);
-void	        psPolynomial2DDump (psPolynomial2D *poly);
-psPolynomial2D *RobustFit2D_nomask(psPolynomial2D* poly, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr);
-psPolynomial2D *RobustFit2D(psPolynomial2D* poly, psVector* mask, const psVector* x, const psVector* y, const psVector* z, const psVector* zErr);
-psVector       *Polynomial2DEvalVector(const psPolynomial2D *myPoly, const psVector *x,const psVector *y);
-
-psVector       *psBuildSums1D(psVector* sums, psF64 x,psS32 nTerm);
-void	        psPolynomial1DDump (psPolynomial1D *poly);
-psF64		Polynomial1DEval_EAM(psF64 x, const psPolynomial1D* myPoly);
-psVector       *Polynomial1DEvalVector_EAM(const psPolynomial1D *myPoly, const psVector *x);
-psPolynomial1D *Polynomial1DAlloc(psS32 nOrder, psPolynomialType type);
-psPolynomial1D *VectorFitPolynomial1DOrd_EAM(psPolynomial1D* myPoly, psVector* mask, const psVector* x, const psVector* y, const psVector* yErr);
-
-// XXX EAM : bug : missing from psLib/*.h
-bool psMinimizeGaussNewtonDelta (psVector *delta,
-                                 const psVector *params,
-                                 const psVector *paramMask,
-                                 const psArray  *x,
-                                 const psVector *y,
-                                 const psVector *yErr,
-                                 psMinimizeLMChi2Func func);
-
-// not included in the .h file?
-bool p_psVectorPrint (
-    int fd,                            ///< output file descriptor
-    psVector *a,                       ///< vector to print
-    char *name                         ///< name of vector (for title)
-);
-
-bool p_psVectorPrintRow (int fd, psVector *a, char *name);
