+
+#ifdef HAVE_MPI
+ MPI::Datatype getMPIDataType (void) const
+ { return MPI::DOUBLE; }
+#endif
+ private:
+ F64Image (const F64Image& rhs); //copy constructor
+ F64Image& operator= (const F64Image& rhs); // assignment operator
+};
+
+#undef IMAGEFILE_64_BITS
+#ifdef IMAGEFILE_64_BITS
+typedef F64Image ImageFileBase;
+typedef kfloat64 ImageFileValue;
+typedef kfloat64* ImageFileColumn;
+typedef kfloat64** ImageFileArray;
+#else
+typedef F32Image ImageFileBase;
+typedef kfloat32 ImageFileValue;
+typedef kfloat32* ImageFileColumn;
+typedef kfloat32** ImageFileArray;
+#endif
+
+
+class ImageFile : public ImageFileBase
+{
+ public:
+ ImageFile (const char* const fname, unsigned int nx, unsigned int ny)
+ : ImageFileBase (fname, nx, ny)
+ {}
+
+ ImageFile (unsigned int nx, unsigned int ny)
+ : ImageFileBase (nx, ny)
+ {}
+
+ ImageFile (const char* const fname)
+ : ImageFileBase (fname)
+ {}
+
+ void filterResponse (const char* const domainName, double bw, const char* const filterName, double filt_param);
+
+ void statistics (double& min, double& max, double& mean, double& mode, double& median, double& stddev) const;
+
+ void printStatistics (ostream& os) const;
+
+ bool comparativeStatistics (const ImageFile& imComp, double& d, double& r, double& e) const;
+
+ bool printComparativeStatistics (const ImageFile& imComp, ostream& os) const;
+
+ int display (void);
+
+ int displayScaling (const int scaleFactor, ImageFileValue pmin, ImageFileValue pmax);
+