22 #ifndef __HERMES_COMMON_TUPLE_H
23 #define __HERMES_COMMON_TUPLE_H
49 vector(
int size) { this->reserve(size); };
54 vector(
const T& a,
const T& b) { this->reserve(2); this->push_back(a); this->push_back(b); };
56 vector(
const T& a,
const T& b,
const T& c) { this->reserve(3); this->push_back(a); this->push_back(b); this->push_back(c); };
58 vector(
const T& a,
const T& b,
const T& c,
const T& d) { this->reserve(4); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); };
60 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e) { this->reserve(5); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); };
62 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f) { this->reserve(6); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); };
64 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g) { this->reserve(7); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); };
66 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h) { this->reserve(8); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); };
68 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h,
const T& i) { this->reserve(9); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); this->push_back(i); };
70 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h,
const T& i,
const T& j) { this->reserve(10); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); this->push_back(i); this->push_back(j); };
72 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h,
const T& i,
const T& j,
const T& k) { this->reserve(11); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); this->push_back(i); this->push_back(j); this->push_back(k);};
74 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h,
const T& i,
const T& j,
const T& k,
const T& l) { this->reserve(12); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); this->push_back(i); this->push_back(j); this->push_back(k); this->push_back(l);};
76 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h,
const T& i,
const T& j,
const T& k,
const T& l,
const T& m) { this->reserve(13); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); this->push_back(i); this->push_back(j); this->push_back(k); this->push_back(l); this->push_back(m);};
78 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h,
const T& i,
const T& j,
const T& k,
const T& l,
const T& m,
const T& n) { this->reserve(14); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); this->push_back(i); this->push_back(j); this->push_back(k); this->push_back(l); this->push_back(m); this->push_back(n);};
80 vector(
const T& a,
const T& b,
const T& c,
const T& d,
const T& e,
const T& f,
const T& g,
const T& h,
const T& i,
const T& j,
const T& k,
const T& l,
const T& m,
const T& n,
const T& o) { this->reserve(15); this->push_back(a); this->push_back(b); this->push_back(c); this->push_back(d); this->push_back(e); this->push_back(f); this->push_back(g); this->push_back(h); this->push_back(i); this->push_back(j); this->push_back(k); this->push_back(l); this->push_back(m); this->push_back(n); this->push_back(o);};
83 int find_index_slow(
const T& x) {
84 for (
int i=0; i < this->size(); i++) {
96 if(
typeid((*
this)[0]) !=
typeid(m))
99 for (
unsigned int i=1; i < this->size(); i++)
100 if((
int)(*this)[i] > m)
107 if(this->size() == 0)
110 if(
typeid((*
this)[0]) !=
typeid(m))
113 for (
unsigned int i=1; i < this->size(); i++)
114 if((
int)(*this)[i] < m)
121 int find_index(
int x,
bool throw_exception=
true) {
122 if(this->size() == 0) {
123 if(throw_exception) {
129 if(
typeid((*
this)[0]) !=
typeid(idx))
132 if(this->_permut.size() == 0) {
134 this->_min = this->min();
135 this->_max = this->max();
136 for (
int i=0; i < (int)this->_max+1; i++) this->_permut.push_back(-1);
137 for (
unsigned int i=0; i < this->size(); i++) this->_permut[(
int)(*this)[i]] = i;
139 if(((
int)this->_min <= x) && (x <= (int)this->_max))
140 idx = this->_permut[x];
154 for (
int i=0; i < this->size(); i++) printf(
"%d ", (*
this)[i]);
159 std::vector<int> _permut;