binary_routine_rep< D, S1, S2 > Class Template Reference

#include <routine.hpp>

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

List of all members.

Public Member Functions

Public Attributes


Detailed Description

template<typename D, typename S1, typename S2>
class mmx::binary_routine_rep< D, S1, S2 >

Definition at line 223 of file routine.hpp.


Constructor & Destructor Documentation

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

Definition at line 227 of file routine.hpp.

00227                                                               :
00228     routine_rep (name), fun (fun2) {}
  generic apply (const generic& x1, const generic& x2) const {


Member Function Documentation

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 233 of file routine.hpp.

References mmx::apply(), ASSERT, and mmx::N().

00233                                                  {
00234     ASSERT (N(v) == 2, "two arguments expected");
00235     return apply (v[0], v[1]);
00236   }

generic apply ( const generic x1,
const generic x2 
) const [inline, virtual]

Reimplemented from routine_rep.

Definition at line 229 of file routine.hpp.

00229                                                              {
00230     return make_abstract<D> (fun (make_concrete<S1> (x1),
00231                                   make_concrete<S2> (x2)));
00232   }

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 237 of file routine.hpp.

00237                                  {
00238     return vec<nat> (type_information<D>::id,
00239                      type_information<S1>::id,
00240                      type_information<S2>::id);
00241   }


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