Changeset 6461f57 for GenericIO.h
- Timestamp:
- 06/15/18 15:18:49 (6 years ago)
- Branches:
- master, pympi
- Children:
- 2c47b73
- Parents:
- d6628a6
- git-author:
- Hal Finkel <hfinkel@…> (06/15/18 15:18:49)
- git-committer:
- Hal Finkel <hfinkel@…> (06/15/18 15:18:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GenericIO.h
r5d57155 r6461f57 192 192 193 193 public: 194 struct LossyCompressionInfo { 195 enum LCMode { 196 LCModeNone, 197 LCModeAbs, 198 LCModeRel, 199 LCModeAbsAndRel, 200 LCModeAbsOrRel, 201 LCModePSNR 202 }; 203 204 LCMode Mode; 205 double AbsErrThreshold; 206 double RelErrThreshold; 207 double PSNRThreshold; 208 209 LossyCompressionInfo() 210 : Mode(LCModeNone), AbsErrThreshold(0.0), 211 RelErrThreshold(0.0), PSNRThreshold(0.0) {} 212 }; 213 194 214 class Variable { 195 215 private: … … 232 252 public: 233 253 template <typename T> 234 Variable(const std::string &N, T* D, unsigned Flags = 0) 254 Variable(const std::string &N, T* D, unsigned Flags = 0, 255 const LossyCompressionInfo &LCI = LossyCompressionInfo()) 235 256 : Name(N), Data((void *) D), HasExtraSpace(Flags & VarHasExtraSpace), 236 257 IsPhysCoordX(Flags & VarIsPhysCoordX), 237 258 IsPhysCoordY(Flags & VarIsPhysCoordY), 238 259 IsPhysCoordZ(Flags & VarIsPhysCoordZ), 239 MaybePhysGhost(Flags & VarMaybePhysGhost) { 260 MaybePhysGhost(Flags & VarMaybePhysGhost), 261 LCI(LCI) { 240 262 deduceTypeInfo(D); 241 263 } … … 243 265 template <typename T> 244 266 Variable(const std::string &N, std::size_t NumElements, T* D, 245 unsigned Flags = 0) 267 unsigned Flags = 0, 268 const LossyCompressionInfo &LCI = LossyCompressionInfo()) 246 269 : Name(N), Data((void *) D), HasExtraSpace(Flags & VarHasExtraSpace), 247 270 IsPhysCoordX(Flags & VarIsPhysCoordX), 248 271 IsPhysCoordY(Flags & VarIsPhysCoordY), 249 272 IsPhysCoordZ(Flags & VarIsPhysCoordZ), 250 MaybePhysGhost(Flags & VarMaybePhysGhost) { 273 MaybePhysGhost(Flags & VarMaybePhysGhost), 274 LCI(LCI) { 251 275 deduceTypeInfoFromElement(D); 252 276 Size = ElementSize*NumElements; 253 277 } 254 278 255 Variable(const VariableInfo &VI, void *D, unsigned Flags = 0) 279 Variable(const VariableInfo &VI, void *D, unsigned Flags = 0, 280 const LossyCompressionInfo &LCI = LossyCompressionInfo()) 256 281 : Name(VI.Name), Size(VI.Size), IsFloat(VI.IsFloat), 257 282 IsSigned(VI.IsSigned), Data(D), … … 261 286 IsPhysCoordZ((Flags & VarIsPhysCoordZ) || VI.IsPhysCoordZ), 262 287 MaybePhysGhost((Flags & VarMaybePhysGhost) || VI.MaybePhysGhost), 263 ElementSize(VI.ElementSize) {}288 ElementSize(VI.ElementSize), LCI(LCI) {} 264 289 265 290 std::string Name; … … 272 297 bool MaybePhysGhost; 273 298 std::size_t ElementSize; 299 300 LossyCompressionInfo LCI; 274 301 }; 275 302 … … 341 368 template <typename T> 342 369 void addVariable(const std::string &Name, T *Data, 343 unsigned Flags = 0) { 344 Vars.push_back(Variable(Name, Data, Flags)); 370 unsigned Flags = 0, 371 const LossyCompressionInfo &LCI = LossyCompressionInfo()) { 372 Vars.push_back(Variable(Name, Data, Flags, LCI)); 345 373 } 346 374 347 375 template <typename T, typename A> 348 376 void addVariable(const std::string &Name, std::vector<T, A> &Data, 349 unsigned Flags = 0) { 377 unsigned Flags = 0, 378 const LossyCompressionInfo &LCI = LossyCompressionInfo()) { 350 379 T *D = Data.empty() ? 0 : &Data[0]; 351 addVariable(Name, D, Flags );380 addVariable(Name, D, Flags, LCI); 352 381 } 353 382 354 383 void addVariable(const VariableInfo &VI, void *Data, 355 unsigned Flags = 0) { 356 Vars.push_back(Variable(VI, Data, Flags)); 384 unsigned Flags = 0, 385 const LossyCompressionInfo &LCI = LossyCompressionInfo()) { 386 Vars.push_back(Variable(VI, Data, Flags, LCI)); 357 387 } 358 388 359 389 template <typename T> 360 390 void addScalarizedVariable(const std::string &Name, T *Data, 361 std::size_t NumElements, unsigned Flags = 0) { 362 Vars.push_back(Variable(Name, NumElements, Data, Flags)); 391 std::size_t NumElements, unsigned Flags = 0, 392 const LossyCompressionInfo &LCI = LossyCompressionInfo()) { 393 Vars.push_back(Variable(Name, NumElements, Data, Flags, LCI)); 363 394 } 364 395 365 396 template <typename T, typename A> 366 397 void addScalarizedVariable(const std::string &Name, std::vector<T, A> &Data, 367 std::size_t NumElements, unsigned Flags = 0) { 398 std::size_t NumElements, unsigned Flags = 0, 399 const LossyCompressionInfo &LCI = LossyCompressionInfo()) { 368 400 T *D = Data.empty() ? 0 : &Data[0]; 369 addScalarizedVariable(Name, D, NumElements, Flags );401 addScalarizedVariable(Name, D, NumElements, Flags, LCI); 370 402 } 371 403
Note: See TracChangeset
for help on using the changeset viewer.