本文整理汇总了C++中Floats::push_back方法的典型用法代码示例。如果您正苦于以下问题:C++ Floats::push_back方法的具体用法?C++ Floats::push_back怎么用?C++ Floats::push_back使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Floats
的用法示例。
在下文中一共展示了Floats::push_back方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setup_coarse_secondary_structure_residue
SecondaryStructureResidue setup_coarse_secondary_structure_residue(
const Particles &ssr_ps, Model *mdl,
bool winner_takes_all_per_res) {
Floats scores;
scores.push_back(0.0);
scores.push_back(0.0);
scores.push_back(0.0);
int count = 0;
for (Particles::const_iterator p = ssr_ps.begin(); p != ssr_ps.end();
++p) {
IMP_USAGE_CHECK(SecondaryStructureResidue::get_is_setup(*p),
"all particles must be SecondaryStructureResidues");
SecondaryStructureResidue ssr(*p);
Floats tmp_scores;
tmp_scores.push_back(ssr.get_prob_helix());
tmp_scores.push_back(ssr.get_prob_strand());
tmp_scores.push_back(ssr.get_prob_coil());
int max_i = 0;
Float max = 0.0;
for (int i = 0; i < 3; i++) {
if (tmp_scores[i] > max) {
max = tmp_scores[i];
max_i = i;
}
if (!winner_takes_all_per_res) scores[i] += tmp_scores[i];
}
if (winner_takes_all_per_res) scores[max_i] += 1.0;
count++;
}
IMP_NEW(Particle, coarse_p, (mdl));
SecondaryStructureResidue ssres = SecondaryStructureResidue::setup_particle(
coarse_p, scores[0] / count, scores[1] / count, scores[2] / count);
return ssres;
}
示例2: do_propose
core::MonteCarloMoverResult WeightMover::do_propose() {
IMP_OBJECT_LOG;
// store the old weights in case of reject
oldweights_ = w_.get_weights();
// Draw weights from a uniform distribution of variables that sum to one
// taken from http://stats.stackexchange.com/questions/14059/
// generate-uniformly-distributed-weights-that-sum-to-unity
// get the old x
Floats x;
x.push_back(oldweights_[0]);
for (unsigned i = 1; i < oldweights_.get_dimension() - 1; ++i) {
x.push_back(oldweights_[i] + x[i - 1]);
}
// zero vector in D dimension
algebra::VectorKD zero = algebra::get_zero_vector_kd(x.size());
// generate random perturbation of old components
algebra::VectorKD dX =
algebra::get_random_vector_in(algebra::SphereKD(zero, radius_));
// add perturbation to x and apply reflective boundaries
for (unsigned i = 0; i < x.size(); ++i) {
if (x[i] + dX[i] > 1.0)
x[i] = 2.0 - x[i] - dX[i];
else if (x[i] + dX[i] < 0.0)
x[i] = -x[i] - dX[i];
else
x[i] += dX[i];
}
// sort the new x here
std::sort(x.begin(), x.end(), std::less<double>());
// get the new weights
algebra::VectorKD newweights =
algebra::get_zero_vector_kd(oldweights_.get_dimension());
newweights[0] = x[0];
for (unsigned i = 1; i < newweights.get_dimension() - 1; ++i) {
newweights[i] = x[i] - x[i - 1];
}
newweights[newweights.get_dimension() - 1] = 1.0 - x[x.size() - 1];
// set the new weights
w_.set_weights(newweights);
return core::MonteCarloMoverResult(
ParticleIndexes(1, w_.get_particle()->get_index()), 1.0);
}
示例3: get_nonmarginal_elements
Floats CrossLinkData::get_nonmarginal_elements(double sigmai,
Floats dists) const {
Floats probs;
if (bias_) {
for (unsigned n = 0; n < dists.size(); n++) {
probs.push_back(get_biased_element(dists[n], sigmai));
}
}
if (!bias_) {
for (unsigned n = 0; n < dists.size(); n++) {
probs.push_back(get_unbiased_element(dists[n], sigmai));
}
}
return probs;
}
示例4: get_posterior_covariance_derivative
Floats GaussianProcessInterpolation::get_posterior_covariance_derivative(
Floats x, bool) const {
IMP_Eigen::VectorXd mat(get_posterior_covariance_derivative(x));
Floats tmp;
for (unsigned j = 0; j < mat.rows(); j++) tmp.push_back(mat(j));
return tmp;
}
示例5:
TEST(Neighbors,CoverTreeDistanceNeighbors)
{
typedef std::vector<float> Floats;
const int N = 100;
const int k = 10;
Floats floats;
for (int i=0;i<N;i++)
floats.push_back(float(i));
float_distance_callback fdc;
tapkee::tapkee_internal::Neighbors neighbors =
tapkee::tapkee_internal::find_neighbors(tapkee::CoverTree, floats.begin(), floats.end(),
tapkee::tapkee_internal::PlainDistance<Floats::iterator,float_distance_callback>(fdc), k, true);
for (int i=0;i<N;i++)
{
// total number of found neighbors is k
ASSERT_EQ(neighbors[i].size(),k);
std::set<float> neighbors_set;
for (int j=0;j<k;j++)
neighbors_set.insert(neighbors[i][j]);
// there are no repeated values
ASSERT_EQ(neighbors_set.size(),k);
// the vector is not a neighbor of itself
ASSERT_EQ(neighbors_set.find(floats[i]),neighbors_set.end());
// check neighbors
int k_left = std::min(i,k/2);
int k_right = std::min(N-i-1,k/2);
for (int j=0; j<k_left; j++)
ASSERT_NE(neighbors_set.find(floats[i-j-1]),neighbors_set.end());
for (int j=0; j<k_right; j++)
ASSERT_NE(neighbors_set.find(floats[i+j+1]),neighbors_set.end());
}
}
示例6: get_omegas
Floats CysteineCrossLinkData::get_omegas(Floats fmods, double omega0) const {
Floats omegas;
for (unsigned n = 0; n < fmods.size(); ++n) {
double cumul = 0;
double cumul2 = 0;
for (unsigned j = 1; j < omega_grid_.size(); ++j) {
double omj = omega_grid_[j];
double omjm1 = omega_grid_[j - 1];
double dom = omj - omjm1;
double priorj = get_omega_prior(omj, omega0);
double priorjm1 = get_omega_prior(omjm1, omega0);
double pj = get_element(fexp_, fmods[n], omj) * priorj;
double pjm1 = get_element(fexp_, fmods[n], omjm1) * priorjm1;
double pj2 = get_element(fexp_, fmods[n], omj) * priorj * omj;
double pjm12 = get_element(fexp_, fmods[n], omjm1) * priorjm1 * omjm1;
cumul += (pj + pjm1) / 2.0 * dom;
cumul2 += (pj2 + pjm12) / 2.0 * dom;
}
omegas.push_back(cumul2 / cumul);
}
return omegas;
}
示例7: evaluate_derivative_FX
Floats FStudentT::evaluate_derivative_FX(const Floats FXs) const {
Floats dervs;
double c = (N_ + nu_) / IMP::square(sigma_) / (nu_ + t2_);
for (unsigned int i = 0; i < FXs.size(); i++) {
dervs.push_back(c * (FXs[i] - FM_));
}
return dervs;
}
示例8: create_temperatures
Floats ReplicaExchange::create_temperatures(double tmin,double tmax,int nrep)
{
Floats temp;
double tfact=exp(log(tmax/tmin)/double(nrep-1));
for(int i=0;i<nrep;++i) {
temp.push_back(tmin*pow(tfact,i));
}
return temp;
}
示例9: get_hessian
FloatsList GaussianProcessInterpolationRestraint::get_hessian(bool) const {
IMP_Eigen::MatrixXd tmp(get_hessian());
FloatsList ret;
for (unsigned i = 0; i < tmp.rows(); ++i) {
Floats buf;
for (unsigned j = 0; j < tmp.cols(); ++j) buf.push_back(tmp(i, j));
ret.push_back(buf);
}
return ret;
}
示例10: get_marginal_elements
Floats CrossLinkData::get_marginal_elements(double sigma, Floats dists) const {
Floats probs;
unsigned is = get_closest(sigma_grid_, sigma);
for (unsigned n = 0; n < dists.size(); n++) {
unsigned id = get_closest(dist_grid_, dists[n]);
probs.push_back(grid_[is][id]);
}
return probs;
}
示例11: get_data_variance
FloatsList GaussianProcessInterpolation::get_data_variance() const {
FloatsList ret;
IMP_Eigen::MatrixXd S(get_S());
for (unsigned i = 0; i < M_; i++) {
Floats val;
for (unsigned j = 0; j < M_; j++) val.push_back(S(i, j));
ret.push_back(val);
}
return ret;
}
示例12: get_nonmarginal_elements
Floats CysteineCrossLinkData::get_nonmarginal_elements(double fexp,
Floats fmods,
double omega) const {
Floats probs;
for (unsigned n = 0; n < fmods.size(); n++) {
probs.push_back(get_element(fexp, fmods[n], omega));
}
return probs;
}
示例13: Object
IMPISD_BEGIN_NAMESPACE
CysteineCrossLinkData::CysteineCrossLinkData(double fexp, Floats fmod_grid,
Floats omega_grid,
Floats omega0_grid, int prior_type)
: Object("Data Structure for CysteineCrossLinkRestraint %1%") {
prior_type_ = prior_type;
// fexp is the experimental frequency
// fmod is the model frequency
// omega0 is the typical value for omega, i.e., the experimental uncertainty
// this constructor calculates the marginal likelihood using a
// truncated gaussian function
// to account for outliers
// Store omega0 grid
omega0_grid_ = omega0_grid;
// Store the fmod grid
fmod_grid_ = fmod_grid;
// Store omega grid
omega_grid_ = omega_grid;
fexp_ = fexp;
for (unsigned k = 0; k < omega0_grid_.size(); ++k) {
double omega0 = omega0_grid_[k];
Floats grid;
for (unsigned i = 0; i < fmod_grid_.size(); ++i) {
double fmod = fmod_grid_[i];
double cumul = 0;
for (unsigned j = 1; j < omega_grid_.size(); ++j) {
double omj = omega_grid_[j];
double omjm1 = omega_grid_[j - 1];
double dom = omj - omjm1;
double priorj = get_omega_prior(omj, omega0);
double priorjm1 = get_omega_prior(omjm1, omega0);
double pj = get_element(fexp_, fmod, omj) * priorj;
double pjm1 = get_element(fexp_, fmod, omjm1) * priorjm1;
cumul += (pj + pjm1) / 2.0 * dom;
}
grid.push_back(cumul);
}
grid_.push_back(grid);
}
}
示例14: get_posterior_covariance_hessian
FloatsList GaussianProcessInterpolation::get_posterior_covariance_hessian(
Floats x, bool) const {
IMP_Eigen::MatrixXd mat(get_posterior_covariance_hessian(x));
FloatsList ret;
for (unsigned j = 0; j < mat.rows(); j++) {
Floats tmp;
for (unsigned i = 0; i < mat.cols(); i++) tmp.push_back(mat(i, j));
ret.push_back(tmp);
}
return ret;
}
示例15: get_marginal_elements
Floats CysteineCrossLinkData::get_marginal_elements(Floats fmods,
double omega0) const {
Floats probs;
unsigned is = get_closest(omega0_grid_, omega0);
for (unsigned n = 0; n < fmods.size(); n++) {
unsigned id = get_closest(fmod_grid_, fmods[n]);
probs.push_back(grid_[is][id]);
}
return probs;
}