urdf_traverser::EigenTransform urdf_traverser::getTransform(const urdf::Pose& p) { urdf::Vector3 _jtr = p.position; Eigen::Vector3d jtr(_jtr.x, _jtr.y, _jtr.z); urdf::Rotation _jrot = p.rotation; Eigen::Quaterniond jrot(_jrot.w, _jrot.x, _jrot.y, _jrot.z); jrot.normalize(); EigenTransform tr; tr.setIdentity(); tr = tr.translate(jtr); tr = tr.rotate(jrot); return tr; }
int main () { vector<double> v(10, 0.0); list<double> L; for (int i = 0; i < 10; i++) { L.push_back(100 - i * i); v.push_back(10-i); } vectorIterator<double> itr(v); for (itr.init(); ! itr; itr++) cout << itr( ) << ' '; cout << '\n'; double total = 0; for (itr.init(); ! itr; itr++) total += itr (); cout << "total is " << total << '\n'; vectorIterator<double> jtr(v); sort1(itr, jtr); for (itr.init(); ! itr; itr++) cout << itr( ) << ' '; cout << '\n'; itr.sort(itr, jtr); for (itr.init(); ! itr; itr++) cout << itr( ) << ' '; cout << '\n'; listIterator<double> lt1(L); for (lt1.init(); ! lt1; lt1++) cout << lt1( ) << ' '; cout << '\n'; total = 0; for (lt1.init(); ! lt1; lt1++) total += lt1 (); cout << "total is " << total << '\n'; listIterator<double> jt1(L); sort1(lt1, jt1); for (lt1.init(); ! lt1; lt1++) cout << lt1( ) << ' '; cout << '\n'; lt1.sort(lt1, jt1); for (lt1.init(); ! lt1; lt1++) cout << lt1( ) << ' '; cout << '\n'; cout << "\nMY STUFF BEGINS HERE!\n"; cout << "VECTOR ITERATOR:\n" << itr; cout << "LIST ITERATOR:\n" << lt1; return 1; }
void SigmoidNetwork::Init(clrandom & r) { // initialize weights using random number generator r. // hidden units. { float range = 1.0/sqrt(NInputs+1.0); vectorIterator<vector<float> *> itr(hidden); for(itr.init(); ! itr; ++itr) { vectorIterator<float> jtr(*itr()); for(jtr.init(); ! jtr; ++jtr) { jtr = r.between(-range, range); } } } // for output weights, the fan-in changes { float range = 1.0/sqrt(NHidden+1.0); vectorIterator<vector<float> *> itr(outputs); for(itr.init(); ! itr; ++itr) { vector<float> & w = *itr(); int j; float sum = 0.0; // for(j = 0; j < NHidden; j++) { w[j] = r.between(-range, range); sum += w[j]; } // set the bias unit. We assume that on the average, half of // the inputs will be on. So we set the bias weight to be -sum/2 w[NHidden] = -sum/2.0; } } }
void RetrogradeCommand::modifySegment() { std::vector<Event *> toErase; std::vector<Event *> toInsert; timeT a0 = m_selection->getStartTime(); timeT a1 = m_selection->getEndTime(); EventSelection::eventcontainer::iterator i; bool useNotationTimings = false; for (i = m_selection->getSegmentEvents().begin(); i != m_selection->getSegmentEvents().end(); ++i) { RG_DEBUG << "RetrogradeCommand::modifySegment: event at " << (*i)->getAbsoluteTime() << " type " << (*i)->getType(); if ((*i)->isa(Note::EventRestType)) continue; toErase.push_back(*i); timeT newTime = a0 + a1 - (*i)->getDuration() - (useNotationTimings ? (*i)->getNotationAbsoluteTime() : (*i)->getAbsoluteTime()); Event *e; if (useNotationTimings) { e = new Event(**i, newTime, (*i)->getDuration(), (*i)->getSubOrdering(), newTime, (*i)->getNotationDuration()); } else { e = new Event(**i, newTime); } toInsert.push_back(e); } Segment &segment(m_selection->getSegment()); for (size_t j = 0; j < toErase.size(); ++j) { Segment::iterator jtr(segment.findSingle(toErase[j])); if (jtr != segment.end()) { RG_DEBUG << "found event " << j; segment.erase(jtr); } else { RG_DEBUG << "failed to find event " << j; } } for (size_t j = 0; j < toInsert.size(); ++j) { Segment::iterator jtr = segment.end(); // somewhat like the NoteOverlay part of PasteEventsCommand::modifySegment /* nah -- let's do a de-counterpoint afterwards perhaps if (m_useNotationTimings && toInsert[j]->isa(Note::EventType)) { long pitch = 0; Accidental explicitAccidental = NoAccidental; toInsert[j]->get<String>(ACCIDENTAL, explicitAccidental); if (toInsert[j]->get<Int>(PITCH, pitch)) { jtr = SegmentNotationHelper(segment).insertNote (toInsert[j]->getAbsoluteTime(), Note::getNearestNote(toInsert[j]->getDuration()), pitch, explicitAccidental); delete toInsert[j]; toInsert[j] = *jtr; } } else { */ jtr = segment.insert(toInsert[j]); // } // insert new event back into selection m_selection->addEvent(toInsert[j]); // if (jtr != segment.end()) m_lastInsertedEvent = toInsert[j]; } segment.normalizeRests(a0, a1); }