28 #ifndef FILE_MATRIX_HEADER
29 #define FILE_MATRIX_HEADER
37 template<
typename Treal,
typename TMatrixType>
51 template<
typename Treal,
typename TMatrixType>
57 template<
typename Treal,
typename TMatrixType>
70 template<
typename Treal,
typename TMatrixType>
75 FileName =
new char[strlen(fileName)+1];
76 strcpy(FileName, fileName);
79 throw "Error in FileMatrix::AssignFileName: fileName == NULL";
82 template<
typename Treal,
typename TMatrixType>
88 M.write_to_buffer_count(noOfBytes);
89 Treal* buffer = (
ergo_real*)
new char[noOfBytes];
90 M.write_to_buffer(buffer, noOfBytes);
91 FILE* f = fopen(FileName,
"wb");
93 throw "error in FileMatrix::WriteToFile, in fopen";
94 if(fwrite(buffer,
sizeof(
char), noOfBytes, f) != (
unsigned int)noOfBytes)
95 throw "error in FileMatrix::WriteToFile, in fwrite";
103 template<
typename Treal,
typename TMatrixType>
109 FILE* f = fopen(FileName,
"rb");
111 throw "error in FileMatrix::ReadFromFile, in fopen";
113 fseek(f, 0L, SEEK_END);
114 int fileSize = ftell(f);
115 fseek(f, 0L, SEEK_SET);
117 throw "error in FileMatrix::ReadFromFile, (fileSize <= 0)";
119 char* buffer =
new char[fileSize];
121 if(fread(buffer,
sizeof(
char), fileSize, f) != (
unsigned int)fileSize)
122 throw "error in FileMatrix::ReadFromFile, in fread";
126 M.read_from_buffer(buffer, fileSize);