Array2dFile (const char* const filename, unsigned int nx, unsigned int ny);
~Array2dFile ();
- virtual unsigned int getNumLabels (void) const
- { return num_labels; }
+ unsigned int getNumLabels (void) const
+ { return num_labels; }
bool labelRead (Array2dFileLabel& label, unsigned int label_num);
- bool labelAdd (const char* const label_str, double calc_time=0.);
+ void labelAdd (const Array2dFileLabel& label);
- bool labelAdd (int type, const char* const label_str, double calc_time=0.);
+ void labelAdd (const char* const label_str, double calc_time=0.);
+
+ void labelAdd (int type, const char* const label_str, double calc_time=0.);
void fileClose (void);
}
lseek (file_id, headersize, SEEK_SET);
- for (int ix = 0; ix < nx; ix++)
+ for (unsigned int ix = 0; ix < nx; ix++)
{
write (file_id, array->array_data[ix], ny * pixel_size);
}
template<class T>
-bool
+void
Array2dFile<T>::labelAdd (const char* const lstr, double calc_time=0.)
{
labelAdd (Array2dFileLabel::L_HISTORY, lstr, calc_time);
}
template<class T>
-bool
+void
Array2dFile<T>::labelAdd (int type, const char* const lstr, double calc_time=0.)
{
Array2dFileLabel label (type, lstr, calc_time);
+ labelAdd (label);
+}
+
+template<class T>
+void
+Array2dFile<T>::labelAdd (const Array2dFileLabel& label)
+{
labelSeek (num_labels);
write_nint16 (&label.label_type, file_id);
#endif
+#ifdef MPI_CT
+#include <mpi.h>
+#endif
class F32Image
{
public:
- Array2dFile<kfloat32> idf;
+ Array2dFile<kfloat32> adf;
- F32Image (const char* const fname, unsigned int nx, unsigned int ny) : idf (fname, nx, ny)
+ F32Image (const char* const fname, unsigned int nx, unsigned int ny) : adf (fname, nx, ny)
{
- idf.pixel_type = Array2dFile<kfloat32>::FLOAT32;
+ adf.pixel_type = Array2dFile<kfloat32>::FLOAT32;
}
- F32Image (unsigned int nx, unsigned int ny) : idf (nx, ny)
+ F32Image (unsigned int nx, unsigned int ny) : adf (nx, ny)
{
- idf.pixel_type = Array2dFile<kfloat32>::FLOAT32;
+ adf.pixel_type = Array2dFile<kfloat32>::FLOAT32;
}
- F32Image (const char* const fname) : idf (fname)
+ F32Image (const char* const fname) : adf (fname)
{
- idf.pixel_type = Array2dFile<kfloat32>::FLOAT32;
+ adf.pixel_type = Array2dFile<kfloat32>::FLOAT32;
}
+
+#ifdef MPI_CT
+ MPI_Datatype getMPIDataType (void) const
+ { return MPI_FLOAT; }
+#endif
};
class F64Image
{
public:
- Array2dFile<kfloat64> idf;
+ Array2dFile<kfloat64> adf;
+
+#ifdef MPI_CT
+ MPI_Datatype getMPIDataType (void) const
+ { return MPI_DOUBLE; }
+#endif
- F64Image (const char* const fname, unsigned int nx, unsigned int ny) : idf (fname, nx, ny)
+ F64Image (const char* const fname, unsigned int nx, unsigned int ny) : adf (fname, nx, ny)
{
- idf.pixel_type = Array2dFile<kfloat64>::FLOAT64;
+ adf.pixel_type = Array2dFile<kfloat64>::FLOAT64;
}
- F64Image (unsigned int nx, unsigned int ny) : idf (nx, ny)
+ F64Image (unsigned int nx, unsigned int ny) : adf (nx, ny)
{
- idf.pixel_type = Array2dFile<kfloat64>::FLOAT64;
+ adf.pixel_type = Array2dFile<kfloat64>::FLOAT64;
}
- F64Image (const char* const fname) : idf (fname)
+ F64Image (const char* const fname) : adf (fname)
{
- idf.pixel_type = Array2dFile<kfloat64>::FLOAT64;
+ adf.pixel_type = Array2dFile<kfloat64>::FLOAT64;
}
};
-typedef F64Image ImageFile;
+typedef F64Image ImageFile;
+typedef kfloat64 ImageFileValue;
+typedef kfloat64* ImageFileColumn;
+typedef kfloat64** ImageFileArray;
+