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; }
////////////////////////////////////////////////////////////////////////////// // 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¬oriety //-------------------------------------------------- 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 }