Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef MODEL_H_
00009 #define MODEL_H_
00010
00011 #include "MapDepthMatrix.h"
00012 #include "FITSParameters.h"
00013 #include "BaseDirectory.h"
00014
00018 typedef struct {
00019 MAP_DEPTH_MATRIX w;
00020 MAP_DEPTH_MATRIX q;
00021 MAP_DEPTH_MATRIX AvgKern;
00022 MAP_DEPTH_MATRIX noise;
00023 MAP_DEPTH_MATRIX dTilde;
00024 MAP_DEPTH_MATRIX bFull;
00025 MATRIX kxGridValues;
00026 MATRIX kyGridValues;
00027 BOOLEAN kxkyDone;
00028 MATRIX lambdaGridValues;
00029
00030 BOOLEAN convergence;
00031
00032 BOOLEAN xt;
00033
00034 MATRIX bVECTORS;
00035 MATRIX A1d;
00036 MATRIX Cov1d;
00037
00038 double mu;
00039 double sigma;
00040 double nu;
00041 FITSParameters parms;
00042 } Model;
00043
00044 void initializeModel(Model *model, int X, int Y, int M, int Z);
00045
00046 void initializeOutputModel(Model *model, MAP_DEPTH_MATRIX kernelTdm);
00047
00048 void initializeForwardOutputModel(Model *model, MAP_DEPTH_MATRIX kernelTdm);
00049
00050 void setParameters(Model *model, double mu, double sigma);
00051
00052 void setParameters2(Model *model, double *values, int nValues);
00053
00054 void clearParameters(Model *model);
00055
00056 void saveW(Model *model, MATRIX w, int kx, int ky);
00057
00058 void saveB(Model *model, MATRIX b, int nStep);
00059
00060 void saveGridValues(Model *m, int r, int c, double kx, double ky, double lambda);
00061
00062 void calculateQ(Model *model, MAP_DEPTH_MATRIX tau);
00063
00064 void calculateDerivedValues(Model *model, MAP_DEPTH_MATRIX K, MAP_DEPTH_MATRIX tau, MAP_DEPTH_MATRIX Lambda,
00065 BOOLEAN DValueShift);
00066
00067 void writeQ(Model *model, BaseDirectory *baseName);
00068
00069 void writeW(Model *model, BaseDirectory *baseName);
00070
00071 void writeAvgKern(Model *model, BaseDirectory *baseName);
00072
00073 void writeBVectors1d(Model *model, BaseDirectory *baseName);
00074
00075 void writeAVectors1d(Model *model, BaseDirectory *baseName, double lambda);
00076
00077 void writeCovVectors1d(Model *model, BaseDirectory *baseName, double lambda);
00078
00079 void writeNoise(Model *model, BaseDirectory *baseName);
00080
00081 void writeDTildaValues3d(Model *model, BaseDirectory *baseName, BOOLEAN useFT);
00082
00083 void writeAvgKernValues3d(Model *model, BaseDirectory *baseName);
00084
00085 void writeGridValues3d(Model *model, BaseDirectory *baseName);
00086
00087 void writeBVectors3d(Model *model, BaseDirectory *baseName);
00088
00089 void freeModel(Model *model);
00090
00091 #endif