$extrastylesheet
libMesh::Utility::do_pow< N, T > Struct Template Reference

#include <utility.h>

List of all members.

Static Public Member Functions

static T apply (const T &x)

Detailed Description

template<int N, typename T>
struct libMesh::Utility::do_pow< N, T >

An efficient template instantiation for raising to an arbitrary integer power.

Definition at line 153 of file utility.h.


Member Function Documentation

template<int N, typename T >
static T libMesh::Utility::do_pow< N, T >::apply ( const T &  x) [inline, static]

Definition at line 154 of file utility.h.

References libMesh::libmesh_assert().

Referenced by libMesh::Utility::pow().

  {
    libmesh_assert(N>1);

    if (N%2) // odd exponent
      return x * do_pow<N-1,T>::apply(x);

    const T xNover2 = do_pow<N/2,T>::apply(x);

    return xNover2*xNover2;
  }

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