Ejemplo n.º 1
0
Archivo: ex1.cpp Proyecto: yijay/TMB
Type objective_function<Type>::operator()()
{
 DATA_FACTOR(Sex);
 DATA_VECTOR(Age);
 DATA_VECTOR(Length);
 int n = Length.size();

 // These are the parameters (three are vectors; one is a scalar)
 PARAMETER_VECTOR(Linf);
 PARAMETER_VECTOR(Kappa);
 PARAMETER_VECTOR(t0);
 PARAMETER(LogSigma);
 Type Sigma = exp(LogSigma);
 vector<Type> LengthPred(n);

 // Provide the standard error of Sigma
 ADREPORT(Sigma);

 // Predictions and likelihoods
 for(int i=0;i<n;i++){
  Type Temp = Kappa(Sex(i))*(Age(i)-t0(Sex(i)));
  LengthPred(i) = Linf(Sex(i))*(1.0-exp(-Temp));
  }
 Type nll = -sum(dnorm(Length,LengthPred,Sigma,true));

 // Prediction for sex 1 and age 10
 Type Temp = Kappa(0)*(Type(10)-t0(0));
 Type PredLen10 = Linf(0)*(1.0-exp(-Temp));
 ADREPORT(PredLen10);

 // Predicted growth curve
 matrix<Type>LenPred(2,50);
 for (int Isex=0;Isex<2;Isex++)
  for (int Iage=1;Iage<=50;Iage++)
   {
   Temp = Kappa(Isex)*(Iage*1.0-t0(Isex));
   LenPred(Isex,Iage-1) = Linf(Isex)*(1.0-exp(-Temp));
   }
 REPORT(LenPred);

 return nll;
}
Ejemplo n.º 2
0
//////////////////////////////////////////////////////////////////////////////
// read data from socket input stream
//////////////////////////////////////////////////////////////////////////////
void PCVampireInfo2::read (SocketInputStream & iStream ) 
	throw(ProtocolException , Error )
{
	__BEGIN_TRY

	//--------------------------------------------------
	// read object id
	//--------------------------------------------------
	iStream.read(m_ObjectID);

	//--------------------------------------------------
	// read vampire name
	//--------------------------------------------------
	BYTE szName;

	iStream.read(szName);

	if (szName == 0 )
		throw InvalidProtocolException("szName == 0");

	if (szName > 20 )
		throw InvalidProtocolException("too long name length");

	iStream.read(m_Name , szName);

	//--------------------------------------------------
	// read Level
	//--------------------------------------------------
	iStream.read(m_Level);

	//--------------------------------------------------
	// read sex
	//--------------------------------------------------
	BYTE sex;
	iStream.read(sex);
	m_Sex = Sex(sex);

	//--------------------------------------------------
	// read colors
	//--------------------------------------------------
	iStream.read(m_BatColor);
	iStream.read(m_SkinColor);
	iStream.read(m_MasterEffectColor);

    //--------------------------------------------------
	// read Alignment
	//--------------------------------------------------
	iStream.read(m_Alignment);
    //--------------------------------------------------
	// read attributes
	//--------------------------------------------------
	iStream.read(m_STR[ATTR_CURRENT]);
	iStream.read(m_STR[ATTR_MAX]);
	iStream.read(m_STR[ATTR_BASIC]);
	iStream.read(m_DEX[ATTR_CURRENT]);
	iStream.read(m_DEX[ATTR_MAX]);
	iStream.read(m_DEX[ATTR_BASIC]);
	iStream.read(m_INT[ATTR_CURRENT]);
	iStream.read(m_INT[ATTR_MAX]);
	iStream.read(m_INT[ATTR_BASIC]);

	//--------------------------------------------------
	// read hp
	//--------------------------------------------------
	iStream.read(m_HP[ATTR_CURRENT]);
	iStream.read(m_HP[ATTR_MAX]);
	
	//--------------------------------------------------
	// read misc
	//--------------------------------------------------
	iStream.read(m_Rank);
	iStream.read(m_RankExp);

	iStream.read(m_Exp);
	iStream.read(m_Gold);


	//--------------------------------------------------
	// read fame&notoriety 
	//--------------------------------------------------
	iStream.read(m_Fame);

	//--------------------------------------------------
	// read sight
	//--------------------------------------------------
	iStream.read(m_Sight);

	//--------------------------------------------------
	// read sight
	//--------------------------------------------------
	iStream.read(m_Bonus);

	//--------------------------------------------------
	// read HotKey
	//--------------------------------------------------
	for(int i = 0 ; i < 8 ; i++ ) {
		iStream.read(m_HotKey[i]);
	}

	// 은도금 데미쥐
	iStream.read(m_SilverDamage);

	// 권한
	iStream.read(m_Competence);

	// 길드 아이디
	iStream.read(m_GuildID);

	BYTE szGuildName;

	iStream.read(szGuildName);

	if (szGuildName > 30 )
		throw InvalidProtocolException("too long szGuildName size");

	if (szGuildName != 0 )
		iStream.read(m_GuildName, szGuildName);

	iStream.read(m_GuildMemberRank);
	iStream.read(m_UnionID);
	iStream.read(m_AdvancementLevel);
	iStream.read(m_AdvancementGoalExp);
	
	__END_CATCH
}