23 std::ostream & operator<<(std::ostream & os, const std::vector<C> & V)
28 template<
class C,
class S>
struct Seq;
31 template<
class C,
class R,
class X,
class S>
33 template<
class C,
class R,
class S>
58 template <
class C,
class R=std::vector<C> >
62 R &
rep() {
return (*data);}
63 const R &
rep()
const {
return (*data);}
75 Seq(
const R & r):data(r){}
77 Seq(size_type s, value_type* t) {
rep()=R(t,t+s);}
78 Seq(iterator
b,iterator e) {
rep()=R(b,e);}
79 Seq(size_type m,
const char * str);
83 Seq(
const self_t & r): data(r.data) {}
84 template<
class X,
class S>
89 const_iterator
begin()
const {
return rep().begin();}
90 const_iterator
end()
const {
return rep().end();}
92 reverse_iterator
rend() {
return rep().rend();}
93 const_reverse_iterator
rbegin()
const {
return rep().rbegin();}
94 const_reverse_iterator
rend ()
const {
return rep().rbegin();}
99 template<
class X,
class S>
121 for (size_type i=0;i< this->
size();++i) {
122 if ( this->
rep()[i]== x)
130 for (size_type i=0;i< this->
size();++i)
131 if ( this->
rep()[i]== x)
144 return *std::min_element( this->
rep().
begin(), this->
rep().
end());
148 return *std::max_element( this->
rep().
begin(), this->
rep().
end());
151 template<
class Compare>
156 template<
class Compare>
158 return *std::min_element( this->
rep().
begin(), this->
rep().
end(),comp);
161 template<
class Compare>
163 return *std::max_element( this->
rep().
begin(), this->
rep().
end(),comp);
179 self_t
operator,(
const self_t & x)
const;
186 for(const_iterator it=s.
begin(); it!=s.
end();++it)
196 template<
class C,
class R>
inline
199 template<
class C,
class R>
201 template<
class C,
class R>
204 template<
class C,
class R>
207 unsigned i, h= 214365, n= v.
size();
209 h= (h<<1) ^ (h<<5) ^ (h>>27) ^
hash(v[i]);
212 template<
class C,
class R>
215 template<
class C,
class R>
219 template<
class C,
class R>
228 template<
class C,
class R>
236 template<
class C,
class R>
inline
243 template <
class C,
class R>
245 {
return a.
rep()==b.
rep();}
246 template <
class C,
class R>
254 template<
class C,
class R>
255 std::ostream & operator<<(std::ostream & os, const Seq<C,R> & s)
259 for( ;it!= s.end();++it) os <<
", "<<*it;
269 template<
class C,
class R>
inline
276 for(size_type i=0; i< s; ++i) is >> V[i];
280 template<
class C,
class R>
290 template<
class C,
class R>
309 template<
class C,
class R>
319 template<
class C,
class R>
331 template<
class C,
class R,
class S>
339 template<
class C,
class R,
class X,
class S>
353 template <
class C,
class R>
366 if (shift && Ask ==
BLIST) {
369 else if (Ask ==
ELIST) {
389 mutable typename T::const_iterator
i, e ;
391 return (!brk++ && i != e) ;
395 template <
typename T>
400 template <
typename T>
410 # define MMX_FOREACH(variable, container) \
411 if(0) {} else for (const MmxForeachContainerBase & _container_ = mmxForeachContainerNew(container); \
412 mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->condition(); \
413 ++mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->i) \
414 for (variable = *mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->i; \
415 mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->brk; \
416 --mmxForeachContainer(&_container_, true ? 0 : mmxForeachpointer(container))->brk)
421 # define foreach MMX_FOREACH
425 #endif // MMX_SEQ_HPP
iterator end()
Definition: Seq.hpp:88
bool operator==(const extended< NT > &lhs, const extended< NT > &rhs)
Definition: extended.hpp:88
C max()
Definition: Seq.hpp:147
const_reverse_iterator rend() const
Definition: Seq.hpp:94
size_type search(const C &x)
Definition: Seq.hpp:120
Sequence of terms with reference counter.
Definition: Seq.hpp:28
bool eq(const Seq< C, R > &v1, const Seq< C, R > &v2)
Definition: Seq.hpp:200
self_t & operator=(const self_t &V)
Definition: Seq.hpp:98
void resize(size_type i)
Definition: Seq.hpp:169
~Seq()
Definition: Seq.hpp:191
const C & b
Definition: Interval_glue.hpp:25
const C & read(const Seq< C, R > &m, unsigned i)
Definition: Seq.hpp:197
void shift(IntervalData< RT, Poly > &ID, const RT &a)
Definition: contfrac_intervaldata.hpp:257
C min()
Definition: Seq.hpp:143
self_t & operator=(const Seq< X, S > &V)
Definition: Seq.hpp:100
self_t operator<<(const self_t &s)
Definition: Seq.hpp:184
char * yylval
Definition: parser.hpp:31
Seq()
Definition: Seq.hpp:74
R::iterator iterator
Definition: Seq.hpp:68
const_reverse_iterator rbegin() const
Definition: Seq.hpp:93
Seq(const Seq< X, S > &P)
Definition: Seq.hpp:85
self_t & erase(size_type i)
Definition: Seq.hpp:112
bool member(const C &x)
Definition: Seq.hpp:129
void sort()
Definition: Seq.hpp:136
self_t & push_back(const C &x)
Definition: Seq.hpp:110
MmxForeachContainer(const T &t)
Definition: Seq.hpp:386
const_iterator begin() const
Definition: Seq.hpp:89
iterator begin()
Definition: Seq.hpp:87
void insert(const size_type &i, const C &c)
Definition: Seq.hpp:140
extended< NT > operator/(const extended< NT > &lhs, const extended< NT > &rhs)
Definition: extended.hpp:111
self_t & clear()
Definition: Seq.hpp:117
value_type & operator[](size_type i)
Definition: Seq.hpp:106
T * mmxForeachpointer(const T &)
Definition: Seq.hpp:396
void reverse(V &v, int n)
Definition: array.hpp:115
Seq(const R &r)
Definition: Seq.hpp:75
Seq(size_type s)
Definition: Seq.hpp:76
char * synaps_inputlim
Definition: parser.hpp:37
TMPL unsigned hash(const Monomial &v)
Definition: monomial_glue.hpp:26
void mul(Interval< C, r > &a, const C &x)
Definition: Interval_fcts.hpp:259
const MmxForeachContainer< T > * mmxForeachContainer(const MmxForeachContainerBase *base, const T *)
Definition: Seq.hpp:406
extended< NT > operator+(const extended< NT > &lhs, const extended< NT > &rhs)
Definition: extended.hpp:122
Definition: shared_object.hpp:64
Seq(size_type s, value_type *t)
Definition: Seq.hpp:77
Seq(iterator b, iterator e)
Definition: Seq.hpp:78
const value_type & front() const
Definition: Seq.hpp:109
char * synaps_input
Definition: parser.hpp:34
size_type size() const
Definition: Seq.hpp:166
#define ELIST
Definition: parser.hpp:24
C value_t
Definition: Seq.hpp:67
Seq< C, R >::const_iterator iterate(const Seq< C, R > &m)
Definition: Seq.hpp:216
R::reverse_iterator reverse_iterator
Definition: Seq.hpp:70
void assign(double &r, const scalar< MPF > &z)
Definition: scalar_floating.hpp:537
C min(Compare comp)
Definition: Seq.hpp:157
R::const_reverse_iterator const_reverse_iterator
Definition: Seq.hpp:71
Definition: polynomial.hpp:37
char * synaps_inputptr
Definition: monomial.hpp:310
bool neq(const Seq< C, R > &v1, const Seq< C, R > &v2)
Definition: Seq.hpp:202
C back() const
Definition: Seq.hpp:171
C max(Compare comp)
Definition: Seq.hpp:162
void sort(Compare comp)
Definition: Seq.hpp:152
T::const_iterator i
Definition: Seq.hpp:389
const_iterator end() const
Definition: Seq.hpp:90
bool condition() const
Definition: Seq.hpp:390
R & rep()
Definition: Seq.hpp:62
reverse_iterator rbegin()
Definition: Seq.hpp:91
std::istream & operator>>(std::istream &is, scalar< MPF > &b)
Definition: scalar_floating.hpp:453
const C & c
Definition: Interval_glue.hpp:45
double C
Definition: solver_mv_fatarcs.cpp:16
R::const_iterator const_iterator
Definition: Seq.hpp:69
const R & rep() const
Definition: Seq.hpp:63
bool operator!=(const extended< NT > &lhs, const extended< NT > &rhs)
Definition: extended.hpp:95
#define BLIST
Definition: parser.hpp:23
Seq(const self_t &r)
Definition: Seq.hpp:83
reverse_iterator rend()
Definition: Seq.hpp:92
void assign(A &a, const B &b)
Generic definition of the assignement function.
Definition: assign.hpp:97
self_t operator,(const self_t &x) const
Concatenate two sequences.
C value_type
Definition: Seq.hpp:66
int brk
Definition: Seq.hpp:388
TMPL unsigned soft_hash(const Monomial &m)
Definition: monomial_glue.hpp:33
shared_object< R > data
Definition: Seq.hpp:61
R::size_type size_type
Definition: Seq.hpp:65
Seq< C, R > adds(Seq< C, R > a, const Seq< C, R > &b)
Definition: Seq.hpp:291
bool empty() const
Definition: Seq.hpp:168
void reverse()
Reverse list.
Definition: Seq.hpp:175
MmxForeachContainer< T > mmxForeachContainerNew(const T &t)
Definition: Seq.hpp:402
OS & print(OS &os, const R &v)
Output function for general vectors: [v1, v2, ...].
Definition: array.hpp:39
self_t reversed() const
Definition: Seq.hpp:176
void pop_back()
Definition: Seq.hpp:172
#define assert(expr, msg)
Definition: shared_object.hpp:57
Seq< C, R > self_t
Definition: Seq.hpp:72