Multiscale Universal Interface  2.0
A Concurrent Framework for Coupling Heterogeneous Solvers
point.h File Reference

Container structure for a point data type, including specialism and manipulation. More...

#include <array>
#include <cmath>
#include <cassert>
Include dependency graph for point.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mui::same_type< T1, T2 >
 
struct  mui::same_type< T, T >
 
struct  mui::vexpr< VEX, SCALAR, D >
 
struct  mui::point< SCALAR, D >
 
struct  mui::vexpr_add< E1, E2, SCALAR, D >
 
struct  mui::vexpr_sub< E1, E2, SCALAR, D >
 
struct  mui::vexpr_neg< E, SCALAR, D >
 
struct  mui::vexpr_mul< E1, E2, SCALAR, D >
 
struct  mui::vexpr_scale< E, SCALAR, D >
 
struct  mui::vexpr_div< E1, E2, SCALAR, D >
 
struct  mui::vexpr_rscale< E, SCALAR, D >
 
struct  mui::vexpr_rcp< E, SCALAR, D >
 
struct  mui::vexpr_scale_rcp< E, SCALAR, D >
 
struct  mui::vexpr_apply1< E, OP, SCALAR, D >
 
struct  mui::vexpr_apply2< E1, E2, OP, SCALAR, D >
 

Namespaces

 mui
 

Typedefs

using mui::ulong = unsigned long
 

Functions

template<class E1 , class E2 , typename SCALAR , uint D>
vexpr_add< E1, E2, SCALAR, D > mui::operator+ (vexpr< E1, SCALAR, D > const &u, vexpr< E2, SCALAR, D > const &v)
 
template<class E1 , class E2 , typename SCALAR , uint D>
vexpr_sub< E1, E2, SCALAR, D > mui::operator- (vexpr< E1, SCALAR, D > const &u, vexpr< E2, SCALAR, D > const &v)
 
template<class E , typename SCALAR , uint D>
vexpr_neg< E, SCALAR, D > mui::operator- (vexpr< E, SCALAR, D > const &u)
 
template<class E1 , class E2 , typename SCALAR , uint D>
vexpr_mul< E1, E2, SCALAR, D > mui::operator* (vexpr< E1, SCALAR, D > const &u, vexpr< E2, SCALAR, D > const &v)
 
template<class E , typename SCALAR , uint D>
vexpr_scale< E, SCALAR, D > mui::operator* (vexpr< E, SCALAR, D > const &u, SCALAR const a)
 
template<class E , typename SCALAR , uint D>
vexpr_scale< E, SCALAR, D > mui::operator* (SCALAR const a, vexpr< E, SCALAR, D > const &u)
 
template<class E , typename SCALAR , uint D>
vexpr_scale< E, SCALAR, D > mui::operator/ (vexpr< E, SCALAR, D > const &u, SCALAR const a)
 
template<class E1 , class E2 , typename SCALAR , uint D>
vexpr_div< E1, E2, SCALAR, D > mui::operator/ (vexpr< E1, SCALAR, D > const &u, vexpr< E2, SCALAR, D > const &v)
 
template<class E , typename SCALAR , uint D>
vexpr_scale_rcp< E, SCALAR, D > mui::operator/ (SCALAR const a, vexpr< E, SCALAR, D > const &u)
 
template<class E1 , class E2 , typename SCALAR >
point< SCALAR, 3U > mui::cross (vexpr< E1, SCALAR, 3U > const &u, vexpr< E2, SCALAR, 3U > const &v)
 
template<class E , class OP , typename SCALAR , uint D>
SCALAR mui::reduce (vexpr< E, SCALAR, D > const &u, OP const &op)
 
template<class E , typename SCALAR , uint D>
SCALAR mui::max (vexpr< E, SCALAR, D > const &u)
 
template<class E , typename SCALAR , uint D>
SCALAR mui::min (vexpr< E, SCALAR, D > const &u)
 
template<class E , typename SCALAR , uint D>
SCALAR mui::sum (vexpr< E, SCALAR, D > const &u)
 
template<class E , typename SCALAR , uint D>
SCALAR mui::mean (vexpr< E, SCALAR, D > const &u)
 
template<class E1 , class E2 , typename SCALAR , uint D>
SCALAR mui::dot (vexpr< E1, SCALAR, D > const &u, vexpr< E2, SCALAR, D > const &v)
 
template<class E , typename SCALAR , uint D>
SCALAR mui::normsq (vexpr< E, SCALAR, D > const &u)
 
template<class E , typename SCALAR , uint D>
SCALAR mui::norm (vexpr< E, SCALAR, D > const &u)
 
template<class E , class OP , typename SCALAR , uint D>
vexpr_apply1< E, OP, SCALAR, D > mui::apply (vexpr< E, SCALAR, D > const &u, OP const &op)
 
template<class E1 , class E2 , class OP , typename SCALAR , uint D>
vexpr_apply2< E1, E2, OP, SCALAR, D > mui::apply (vexpr< E1, SCALAR, D > const &u, vexpr< E2, SCALAR, D > const &v, OP const &op)
 

Detailed Description

Container structure for a point data type, including specialism and manipulation.

Author
Y. H. Tang
Date
14 March 2014
See also
http://en.wikipedia.org/wiki/Expression_templates
http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern