ternary_routine_rep< D, S1, S2, S3 > Class Template Reference

#include <routine.hpp>

Inheritance diagram for ternary_routine_rep< D, S1, S2, S3 >:
routine_rep rep_struct

List of all members.

Public Member Functions

Public Attributes


Detailed Description

template<typename D, typename S1, typename S2, typename S3>
class mmx::ternary_routine_rep< D, S1, S2, S3 >

Definition at line 272 of file routine.hpp.


Constructor & Destructor Documentation

ternary_routine_rep ( const generic name,
function_type  fun2 
) [inline]

Definition at line 276 of file routine.hpp.

00276                                                                :
00277     routine_rep (name), fun (fun2) {}
  generic apply (const vector<generic>& v) const {


Member Function Documentation

generic apply ( const generic g1,
const generic g2 
) const [virtual, inherited]

Reimplemented in binary_routine_rep< D, S1, S2 >, binary_routine_rep< void, S1, S2 >, composed_routine_rep, change_signature_routine_rep, and integrate_routine_rep.

Definition at line 47 of file routine.cpp.

References routine_rep::apply().

00047                                                               {
00048   return apply (vec<generic> (g1, g2));
00049 }

generic apply ( const generic g1  )  const [virtual, inherited]

Reimplemented in unary_routine_rep< D, S1 >, unary_routine_rep< void, S1 >, identity_routine_rep, composed_routine_rep, change_signature_routine_rep, and integrate_routine_rep.

Definition at line 42 of file routine.cpp.

References routine_rep::apply().

00042                                            {
00043   return apply (vec<generic> (g1));
00044 }

generic apply (  )  const [virtual, inherited]

Reimplemented in nullary_routine_rep< void >, change_signature_routine_rep, and integrate_routine_rep.

Definition at line 37 of file routine.cpp.

Referenced by routine_rep::apply().

00037                           {
00038   return apply (vec<generic> ());
00039 }

generic apply ( const vector< generic > &  v  )  const [inline, virtual]

Reimplemented from routine_rep.

Definition at line 278 of file routine.hpp.

References ASSERT, and mmx::N().

00278                                                  {
00279     ASSERT (N(v) == 3, "three arguments expected");
00280     return make_abstract<D> (fun (make_concrete<S1> (v[0]),
00281                                   make_concrete<S2> (v[1]),
00282                                   make_concrete<S3> (v[2])));
00283   }

routine clone (  )  const [virtual, inherited]

Definition at line 91 of file routine.cpp.

References ERROR.

00091                           {
00092   ERROR ("not implemented (clone)");
00093   return routine (this, true);
00094 }

generic function_body (  )  const [virtual, inherited]

Definition at line 81 of file routine.cpp.

00081                                   {
00082   return "native";
00083 }

generic function_type (  )  const [virtual, inherited]

Definition at line 86 of file routine.cpp.

References mmx::gen(), mmx::GEN_FUNCTION_TYPE, routine_rep::signature(), and mmx::type_name().

00086                                   {
00087   return gen (GEN_FUNCTION_TYPE, type_name (signature ()));
00088 }

bool is_overloaded (  )  const [virtual, inherited]

Definition at line 71 of file routine.cpp.

00071                                   {
00072   return false;
00073 }

vector< routine > meanings (  )  const [virtual, inherited]

Definition at line 76 of file routine.cpp.

References ERROR.

00076                              {
00077   ERROR ("not implemented (meanings)");
00078 }

void overload ( const routine fun  )  const [virtual, inherited]

Definition at line 66 of file routine.cpp.

References ERROR.

00066                                                {
00067   ERROR ("not implemented (overload)");
00068 }

vector<nat> signature (  )  const [inline, virtual]

Reimplemented from routine_rep.

Definition at line 284 of file routine.hpp.

00284                                  {
00285     return vec<nat> (type_information<D>::id,
00286                      type_information<S1>::id,
00287                      type_information<S2>::id,
00288                      type_information<S3>::id);
00289   }


Member Data Documentation

generic name [inherited]

Definition at line 64 of file routine.hpp.

Referenced by routine_rep::apply().

MMX_ALLOCATORS int ref_count [inherited]

Definition at line 164 of file basix.hpp.


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

Generated on 6 Dec 2012 for basix by  doxygen 1.6.1