00001 #ifndef MILLE_H
00002 #define MILLE_H
00003
00004 #include <fstream>
00005
00026 class Mille
00027 {
00028 public:
00029 Mille(const char *outFileName, bool asBinary = true, bool writeZero = false);
00030 ~Mille();
00031
00032 void mille(int NLC, const float *derLc, int NGL, const float *derGl,
00033 const int *label, float rMeas, float sigma);
00034 void special(int nSpecial, const float *floatings, const int *integers);
00035 void kill();
00036 void end();
00037
00038 private:
00039 void newSet();
00040 bool checkBufferSize(int nLocal, int nGlobal);
00041
00042 std::ofstream myOutFile;
00043 bool myAsBinary;
00044 bool myWriteZero;
00045
00046 enum {myBufferSize = 5000};
00047 int myBufferInt[myBufferSize];
00048 float myBufferFloat[myBufferSize];
00049 int myBufferPos;
00050 bool myHasSpecial;
00051
00052 enum {myMaxLabel = (0xFFFFFFFF - (1 << 31))};
00053 };
00054 #endif