Changeset 3620 in Sophya


Ignore:
Timestamp:
May 6, 2009, 5:36:40 PM (16 years ago)
Author:
ansari
Message:

les includes dSFMT.h ... mis ds le fichier randfmt.cc uniquement, declaration d'un pointeur dsfmt_t au lieu de la structure - Reza 06/06/2009

Location:
trunk/SophyaLib/BaseTools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/BaseTools/randfmt.cc

    r3615 r3620  
    33
    44#include "randfmt.h"
     5#include "dsfmtflags.h"
     6#include "dSFMT.h"
    57
    68namespace SOPHYA {
     
    1416FMTRandGen::FMTRandGen(uint_4 seed)
    1517{
    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);
    1721}
    1822
    1923FMTRandGen::~FMTRandGen()
    2024{
     25// Ne pas oublier de faire le delete
     26  delete dsfmt_ptr_;
    2127}
    2228
     
    2834void FMTRandGen::SetSeed(uint_4 seed)
    2935{
    30   dsfmt_init_gen_rand(&dsfmt_,seed);
     36  dsfmt_init_gen_rand(dsfmt_ptr_,seed);
    3137}
    3238
     
    3844  for(int i=0;i<key_length;i++) init_key[i] = seed[i];
    3945
    40   dsfmt_init_by_array(&dsfmt_,init_key,key_length);
     46  dsfmt_init_by_array(dsfmt_ptr_,init_key,key_length);
    4147
    4248  delete [] init_key;
     
    4551r_8 FMTRandGen::Next()
    4652{
    47   return dsfmt_genrand_close_open(&dsfmt_);
     53  return dsfmt_genrand_close_open(dsfmt_ptr_);
    4854}
    4955
     
    7379    throw NullPtrError("ObjFileIO<FMTRandGen>::WriteSelf() dobj=NULL");
    7480  s.Put((uint_4)DSFMT_MEXP);
    75   s.Put(dobj->dsfmt_.idx);
     81  s.Put(dobj->dsfmt_ptr_->idx);
    7682  for(int i=0;i<DSFMT_N+1;i++) {
    7783    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];
    7985      s.PutU8(v);
    8086    }
     
    9298    throw SzMismatchError("ObjFileIO<FMTRandGen>::WriteSelf() wrong DSFMT_MEXP");
    9399  if(dobj == NULL) dobj = new FMTRandGen();
    94   s.Get(dobj->dsfmt_.idx);
     100  s.Get(dobj->dsfmt_ptr_->idx);
    95101  for(int i=0;i<DSFMT_N+1;i++) {
    96102    for(int j=0;j<2;j++) {
    97103      uint_8 v;
    98104      s.Get(v);
    99       dobj->dsfmt_.status[i].u[j] = v;
     105      dobj->dsfmt_ptr_->status[i].u[j] = v;
    100106    }
    101107  }
  • trunk/SophyaLib/BaseTools/randfmt.h

    r3615 r3620  
    1212#include "objfio.h"
    1313
    14 #include "dsfmtflags.h"
    15 #include "dSFMT.h"
    1614#include "randinterf.h"
    1715
    1816#include <vector>
     17
     18//--- Declaration de la struct definie ds dSFMT.h - inclus uniquement dans le .cc 
     19struct DSFMT_T ;
     20typedef struct DSFMT_T dsfmt_t;
     21//-------------------
    1922
    2023namespace SOPHYA {
     
    3639 protected:
    3740  virtual r_8 Next();
    38   dsfmt_t dsfmt_;
     41  dsfmt_t* dsfmt_ptr_;   // Pointeur car dsfmt_t pas encore defini
    3942
    4043};
Note: See TracChangeset for help on using the changeset viewer.