binary_helper< vector< C, V > > Struct Template Reference

#include <vector.hpp>

List of all members.

Static Public Member Functions


Detailed Description

template<typename C, typename V>
struct mmx::binary_helper< vector< C, V > >

Definition at line 534 of file vector.hpp.


Member Function Documentation

static generic access ( const vector< C, V > &  v,
nat  i 
) [inline, static]

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]); }

static vector<C,V> assemble ( const generic v  )  [inline, static]

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)); }

static generic disassemble ( const vector< C, V > &  v  )  [inline, static]

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)); }

static vector<C,V> read ( const port in  )  [inline, static]

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); }

static nat size ( const vector< C, V > &  v  )  [inline, static]

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); }

static void write ( const port out,
const vector< C, V > &  v 
) [inline, static]

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]); } }


The documentation for this struct was generated from the following file:

Generated on 6 Dec 2012 for basix by  doxygen 1.6.1