Changeset 3620 in Sophya
- Timestamp:
- May 6, 2009, 5:36:40 PM (16 years ago)
- Location:
- trunk/SophyaLib/BaseTools
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/BaseTools/randfmt.cc
r3615 r3620 3 3 4 4 #include "randfmt.h" 5 #include "dsfmtflags.h" 6 #include "dSFMT.h" 5 7 6 8 namespace SOPHYA { … … 14 16 FMTRandGen::FMTRandGen(uint_4 seed) 15 17 { 16 dsfmt_init_gen_rand(&dsfmt_,seed); 18 // On est oblige de faire new car la structure ds_fmt_t pas defini ds randfmt.h 19 dsfmt_ptr_ = new dsfmt_t; 20 dsfmt_init_gen_rand(dsfmt_ptr_,seed); 17 21 } 18 22 19 23 FMTRandGen::~FMTRandGen() 20 24 { 25 // Ne pas oublier de faire le delete 26 delete dsfmt_ptr_; 21 27 } 22 28 … … 28 34 void FMTRandGen::SetSeed(uint_4 seed) 29 35 { 30 dsfmt_init_gen_rand( &dsfmt_,seed);36 dsfmt_init_gen_rand(dsfmt_ptr_,seed); 31 37 } 32 38 … … 38 44 for(int i=0;i<key_length;i++) init_key[i] = seed[i]; 39 45 40 dsfmt_init_by_array( &dsfmt_,init_key,key_length);46 dsfmt_init_by_array(dsfmt_ptr_,init_key,key_length); 41 47 42 48 delete [] init_key; … … 45 51 r_8 FMTRandGen::Next() 46 52 { 47 return dsfmt_genrand_close_open( &dsfmt_);53 return dsfmt_genrand_close_open(dsfmt_ptr_); 48 54 } 49 55 … … 73 79 throw NullPtrError("ObjFileIO<FMTRandGen>::WriteSelf() dobj=NULL"); 74 80 s.Put((uint_4)DSFMT_MEXP); 75 s.Put(dobj->dsfmt_ .idx);81 s.Put(dobj->dsfmt_ptr_->idx); 76 82 for(int i=0;i<DSFMT_N+1;i++) { 77 83 for(int j=0;j<2;j++) { 78 uint_8 v = dobj->dsfmt_ .status[i].u[j];84 uint_8 v = dobj->dsfmt_ptr_->status[i].u[j]; 79 85 s.PutU8(v); 80 86 } … … 92 98 throw SzMismatchError("ObjFileIO<FMTRandGen>::WriteSelf() wrong DSFMT_MEXP"); 93 99 if(dobj == NULL) dobj = new FMTRandGen(); 94 s.Get(dobj->dsfmt_ .idx);100 s.Get(dobj->dsfmt_ptr_->idx); 95 101 for(int i=0;i<DSFMT_N+1;i++) { 96 102 for(int j=0;j<2;j++) { 97 103 uint_8 v; 98 104 s.Get(v); 99 dobj->dsfmt_ .status[i].u[j] = v;105 dobj->dsfmt_ptr_->status[i].u[j] = v; 100 106 } 101 107 } -
trunk/SophyaLib/BaseTools/randfmt.h
r3615 r3620 12 12 #include "objfio.h" 13 13 14 #include "dsfmtflags.h"15 #include "dSFMT.h"16 14 #include "randinterf.h" 17 15 18 16 #include <vector> 17 18 //--- Declaration de la struct definie ds dSFMT.h - inclus uniquement dans le .cc 19 struct DSFMT_T ; 20 typedef struct DSFMT_T dsfmt_t; 21 //------------------- 19 22 20 23 namespace SOPHYA { … … 36 39 protected: 37 40 virtual r_8 Next(); 38 dsfmt_t dsfmt_;41 dsfmt_t* dsfmt_ptr_; // Pointeur car dsfmt_t pas encore defini 39 42 40 43 };
Note:
See TracChangeset
for help on using the changeset viewer.