src/generic.cpp File Reference

#include <basix/compound.hpp>
#include <basix/evaluator.hpp>
#include <basix/vector.hpp>
#include <basix/tuple.hpp>
#include <basix/mmx_syntax.hpp>
#include <basix/memoize.hpp>
#include <basix/string.hpp>
#include <basix/table.hpp>
#include <basix/routine.hpp>

Go to the source code of this file.

Namespaces

Defines

Functions

Variables


Define Documentation

#define ACC_BINARY ( code,
x1,
x2   ) 
Value:
if (same_type (x1, x2)) {                               \
    routine* r= x1->acc_apply (code);                   \
    if (r != NULL && !is_nil (*r))                      \
      return (*r) (x1, x2);                             \
  }                                                     \
  else {                                                \
    routine* cv= x1->acc_construct (x2->acc_id ());     \
    if (cv != NULL && !is_nil (*cv)) {                  \
      routine* r= x1->acc_apply (code);                 \
      if (r != NULL && !is_nil (*r))                    \
        return (*r) (x1, (*cv) (x2));                   \
    }                                                   \
    cv= x2->acc_construct (x1->acc_id ());              \
    if (cv != NULL && !is_nil (*cv)) {                  \
      routine* r= x2->acc_apply (code);                 \
      if (r != NULL && !is_nil (*r))                    \
        return (*r) ((*cv) (x1), x2);                   \
    }                                                   \
  }

Definition at line 300 of file generic.cpp.

Referenced by mmx::atan2(), mmx::hypot(), mmx::operator*(), mmx::operator+(), mmx::operator-(), mmx::operator/(), and mmx::pow().

#define ACC_BINARY_SCALAR ( code,
x1,
x2   ) 
Value:
routine* r= x1->acc_apply (code);                       \
  if (r != NULL && !is_nil (*r)) return (*r) (x1, x2);

Definition at line 342 of file generic.cpp.

Referenced by mmx::derive(), and mmx::integrate().

#define ACC_TEST ( code,
x1,
x2   ) 
Value:
if (same_type (x1, x2)) {                               \
    routine* r= x1->acc_apply (code);                   \
    if (r != NULL && !is_nil (*r))                      \
      return as_bool ((*r) (x1, x2));                   \
  }                                                     \
  else {                                                \
    routine* cv= x1->acc_construct (x2->acc_id ());     \
    if (cv != NULL && !is_nil (*cv)) {                  \
      routine* r= x1->acc_apply (code);                 \
      if (r != NULL && !is_nil (*r))                    \
        return as_bool ((*r) (x1, (*cv) (x2)));         \
    }                                                   \
    cv= x2->acc_construct (x1->acc_id ());              \
    if (cv != NULL && !is_nil (*cv)) {                  \
      routine* r= x2->acc_apply (code);                 \
      if (r != NULL && !is_nil (*r))                    \
        return as_bool ((*r) ((*cv) (x1), x2));         \
    }                                                   \
  }

Definition at line 321 of file generic.cpp.

Referenced by mmx::operator<(), mmx::operator<=(), mmx::operator>(), and mmx::operator>=().

#define ACC_UNARY ( code,
x1   ) 
Value:
routine* r= x1->acc_apply (code);                       \
  if (r != NULL && !is_nil (*r)) return (*r) (x1);

Definition at line 296 of file generic.cpp.

Referenced by mmx::acos(), mmx::acosh(), mmx::asin(), mmx::asinh(), mmx::atan(), mmx::atanh(), mmx::cos(), mmx::cosh(), mmx::derive(), mmx::exp(), mmx::integrate(), mmx::invert(), mmx::log(), mmx::operator-(), mmx::sin(), mmx::sinh(), mmx::sqrt(), mmx::square(), mmx::tan(), and mmx::tanh().


Generated on 6 Dec 2012 for basix by  doxygen 1.6.1