include.xgens.creating.m
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:1k
源码类别:

信息检索与抽取

开发平台:

Unix_Linux

  1. // include.xgens.creating.m
  2. // 
  3. // 
  4. // Common code for split generators
  5. // Random version 0.8
  6. // 
  7. // CREATING
  8. -allocVectors { // called from -initState
  9.    int arrSize;
  10.    if (vGenArr != NULL) {
  11.    // de-allocate first
  12.    [[self getZone] free: vGenArr];
  13.    }
  14.    arrSize = numGenerators*sizeof(struct vGenStruct);
  15.    vGenArr = [[self getZone] alloc: arrSize];
  16.    if (vGenArr == NULL)
  17.      [InvalidCombination raiseEvent:
  18.      "%s: Error allocating state vectors!n", genName];
  19.    memset(vGenArr,0,arrSize); // zero the memory
  20.    // NOTE: if arrSize > LONG_MAX we dump core here!
  21.   return self;
  22. }
  23. -createEnd {
  24. // This test will disallow the use of [aGenerator create: aZone]
  25. // (user must call createBegin, setStateFromSeed, createEnd):
  26.   if (numGenerators == 0)
  27.   [InvalidCombination raiseEvent:
  28.   "%s not Initialized with A,v,w parameters!n", genName];
  29.  
  30.   if (vGenArr[0].Ig[0] == 0)
  31.   [InvalidCombination raiseEvent:
  32.   "%s not Initialized with Seeds!n", genName];
  33.   return [super createEnd];
  34. }
  35. // include.xgens.creating.m