#include <vector.hpp>
Definition at line 534 of file vector.hpp.
Definition at line 542 of file vector.hpp.
References ASSERT, and mmx::is_a_scalar().
00542 { 00543 ASSERT (!is_a_scalar (v), "non-scalar vector expected"); 00544 return as<generic> (v[i]); }
Definition at line 548 of file vector.hpp.
References mmx::is(), and Vector.
00548 { 00549 // FIXME: what to do with the format? 00550 if (!is<vector<generic> > (v)) return Vector (as<C> (v)); 00551 else return as<Vector > (as<vector<generic> > (v)); }
Definition at line 545 of file vector.hpp.
References mmx::is_a_scalar().
00545 { 00546 if (is_a_scalar (v)) return as<generic> (v.scalar ()); 00547 return as<generic> (as<vector<generic> > (v)); }
static generic full_type_name | ( | ) | [inline, static] |
Definition at line 537 of file vector.hpp.
References mmx::C, Full_type_name, and mmx::gen().
00537 { 00538 return gen ("Vector", Full_type_name (C)); }
Definition at line 560 of file vector.hpp.
References mmx::C, Format, n, and Vector.
00560 { 00561 Format fm= binary_read<Format > (in); 00562 bool sc= binary_read<bool> (in); 00563 if (sc) return Vector (binary_read<C> (in)); 00564 else { 00565 nat n= binary_read<nat> (in); 00566 nat l= aligned_size<C,V> (n); 00567 C* r= mmx_new<C> (l); 00568 for (nat i=0; i<n; i++) 00569 r[i]= binary_read<C> (in); 00570 return Vector (r, n, l, fm); } }
static string short_type_name | ( | ) | [inline, static] |
Definition at line 535 of file vector.hpp.
References mmx::C, and Short_type_name.
00535 { 00536 return "V" * Short_type_name (C); }
Definition at line 539 of file vector.hpp.
References mmx::is_a_scalar(), and mmx::N().
00539 { 00540 if (is_a_scalar (v)) return 0; 00541 else return N(v); }
Definition at line 552 of file vector.hpp.
References mmx::CF(), mmx::is_a_scalar(), and mmx::N().
00552 { 00553 binary_write<Format > (out, CF (v)); 00554 binary_write<bool> (out, is_a_scalar (v)); 00555 if (is_a_scalar (v)) binary_write<C> (out, v.scalar ()); 00556 else { 00557 binary_write<nat> (out, N(v)); 00558 for (nat i=0; i<N(v); i++) 00559 binary_write<C> (out, v[i]); } }