Пример #1
0
Vector<T> CDFTools<T>::percentile(
  const vector<const Vector<T>*>& x,
  const Vector<T>& xEvals,
  const float percent) const
{
  Matrix<T> matrix;
  Vectorf percents( 1 );
  percents[0] = percent;
  matrix = percentiles( x, xEvals, percents );
  return matrix[0];
/*  const int numSamples = x.size();
  const int numEvals = xEvals.getSize();
  Matrix<T> matrix( numEvals, numSamples );
  Vector<T> y( numEvals );

  for (int i = 0; i < numSamples; i++)
  {
    matrix.setColumn( i, cdf(*x[i],xEvals) );
  }

  for (int j = 0; j < numEvals; j++)
  {
    matrix[j].sort();
    y[j] = matrix[j].percentile( percent );
  }

  return y;*/
}
Пример #2
0
u8 Skill::Primary::LevelUp(u8 race, u8 level)
{
    Rand::Queue percents(MAXPRIMARYSKILL);

    const skillstats_t* ptr = GetSkillStats(race);
    if(ptr)
    {
	if(ptr->over_level > level)
	{
	    percents.Push(ATTACK, ptr->mature_primary_under.attack);
	    percents.Push(DEFENSE, ptr->mature_primary_under.defense);
	    percents.Push(POWER, ptr->mature_primary_under.power);
	    percents.Push(KNOWLEDGE, ptr->mature_primary_under.knowledge);
	}
	else
	{
	    percents.Push(ATTACK, ptr->mature_primary_over.attack);
	    percents.Push(DEFENSE, ptr->mature_primary_over.defense);
	    percents.Push(POWER, ptr->mature_primary_over.power);
	    percents.Push(KNOWLEDGE, ptr->mature_primary_over.knowledge);
	}
    }

    u8 result = percents.Size() ? percents.Get() : UNKNOWN;

    switch(result)
    {
	case ATTACK:	++attack; break;
	case DEFENSE:	++defense; break;
	case POWER:	++power; break;
	case KNOWLEDGE:	++knowledge; break;
	default: break;
    }

    return result;
}