The Vish Visualization Shell 0.3
Vish
Namespaces | Classes | Typedefs | Functions
Eagle Namespace Reference

Gather general basic mathematic functions which are not available in cmath here. More...

Namespaces

namespace  PhysicalSpace
 Geometric algebra of the physical 3D-space, by which we mean the Clifford algebara over Euclidean, three-dimensional space.
 
namespace  Plane
 Geometric algebra of the plane, by which we mean the Clifford algebra over Euclidean, two-dimensional space.
 
namespace  STA
 Geometric algebra of spacetime, a.k.a.
 

Classes

struct  AnalyticFunctionBase
 Abstract base class for analytic functions, coordinate-independent. More...
 
class  AntiSymmetric
 
struct  AnyType
 
struct  Assert
 
struct  Assert< true >
 
struct  Assertion
 
struct  Assertion< true >
 
class  Assignment
 Convenience class to allow using the comma operator for assigning a sequence of elements to a given array-like class. More...
 
struct  BinaryOperatorFunctor
 
struct  BinaryOperatorNode
 Template node class to perform binary operations on evaluate-able nodes. More...
 
class  BoundingBall
 Bounding container implemented by a ball. More...
 
class  BoundingBox
 A coordinate-parallel bounding box in three dimensions. More...
 
class  CameraPath
 A camera path with movements, motions and various constraints. More...
 
struct  Cartesian3D
 
class  Christoffel
 Christoffel symbols. More...
 
class  Column
 A column vector. More...
 
class  ConstantNode
 A node that constructs a type from a constant value. More...
 
struct  ConstantVectorNode
 A node that implements a constant vector value. More...
 
class  ConstructorNode
 A node that constructs a vectorial type from three scalar values. More...
 
class  Context
 A set of variable names, with indices associated to each type. More...
 
struct  ContraVariant
 
struct  ContravariantIndexingScheme
 Indices are all upper indices, e.g. More...
 
struct  CoordinateInfo
 
struct  CoordinateInfo< void >
 
struct  CoVariant
 
struct  CovariantIndexingScheme
 Indices are all lower indices, e.g. More...
 
struct  DegeneratedMatrix
 
struct  DerivationTrait
 Template type trait class to compute analytical derivates. More...
 
struct  DerivationTrait< BinaryOperatorFunctor< NodeType, NodeType, NodeType, '+'> >
 Computes (u+v),x which is u,x+v,x. More...
 
struct  DerivationTrait< BinaryOperatorFunctor< NodeType, NodeType, NodeType, '-'> >
 Computes (u-v),x which is u,x-v,x. More...
 
struct  DerivationTrait< BinaryOperatorFunctor< ScalarNode, ScalarNode, ScalarNode, ' *'> >
 Computes (ab),x which is a,x b + a b,y. More...
 
struct  DerivationTrait< BinaryOperatorFunctor< ScalarNode, ScalarNode, ScalarNode, '+'> >
 Computes (a+b),x which is a,x+b,y. More...
 
struct  DerivationTrait< BinaryOperatorFunctor< ScalarNode, ScalarNode, ScalarNode, '-'> >
 Computes (a-b),x which is a,x-b,y. More...
 
struct  DerivationTrait< BinaryOperatorFunctor< ScalarNode, ScalarNode, ScalarNode, '/'> >
 Computes (a/b),x which is (a,x b - a b,y) / b^2. More...
 
struct  DerivationTrait< LocationComponent< Component > >
 Computes (v[i]),x. More...
 
struct  DerivationTrait< ScalarCube >
 Computes (y^3),x which is 3 y^2 y,x. More...
 
struct  DerivationTrait< ScalarPlusBivector >
 Computes (a+U),x which is a,x+U,v. More...
 
struct  DerivationTrait< ScalarSquare >
 Computes (y^2),x which is 2 y y,x. More...
 
struct  DerivationTrait< ScalarTimesVector >
 Computes (a*v),x which is a,x * v + a * v,x. More...
 
struct  DerivationTrait< UnaryMinus< NodeType > >
 Computes (-v),x which is -(v,x) More...
 
struct  DerivationTrait< VectorDotProduct >
 Computes (uv),x which is u,x * v + u * v,x. More...
 
struct  DerivationTrait< VectorSquare >
 Computes (v^2),x which is 2 v v,x. More...
 
struct  DerivationTrait< VectorTimesScalar >
 Computes (a*v),x which is a,x * v + a * v,x. More...
 
struct  DerivationTrait< VectorWedgeVector >
 Computes $(u\wedge v),x$ which is $(u,x)\wedge v + u\wedge(v,x)$. More...
 
struct  Determinantor
 The determinantor recursively computes the determinant of a matrix. More...
 
struct  Determinantor< 1 >
 The trivial determinant of a 1x1 matrix. More...
 
struct  Determinantor< 2 >
 The simple determinant of a 2x2 matrix. More...
 
struct  Determinantor< 3 >
 
struct  Determinantor< 4 >
 
struct  DomainFunctions
 
struct  DomainFunctions< RGB, DomainVector >
 
struct  DomainFunctions< RGBA, DomainVector >
 
class  DomainVector
 A vector type that is bound to a certain domain, inheriting all vector space properties, but provides type-safety to only operate within the same domain. More...
 
class  DomainVector< ScalarType[N], Domain, ScalarType >
 
struct  ElementOfFunctor
 
struct  EvaluationContext
 Class providing numerical values from some context ID for the evaluation of function trees. More...
 
class  Evaluator
 Abstract base class providing numerical values from some context ID for the evaluation of function trees. More...
 
class  Eye
 
struct  FA_CONVERT
 
class  FixedArray
 A FixedArray is a simple copy-by-value array providing random access to its elements. More...
 
struct  FixedArrayFlattener
 A template metaprogram class (type trait) to compute the flattened version of a FixedArray. More...
 
struct  FixedArrayFlattener< FixedArray< FixedArray< T, M >, N > >
 
struct  FixedArrayFlattener< FixedArray< T, N > >
 
struct  FixedArrayType
 
struct  FixedArrayType< ElementType, 1 >
 
class  GaussSolver
 
struct  GE
 
struct  GetFixedArrayType
 A template metaprogram class to compute the an fixed array type of an homogeneous type. More...
 
struct  GT
 
class  Head
 Properties of a camera floating around in space, or, alternatively, an eagle's eye. More...
 
class  Interpol
 Interpolation of certain values. More...
 
struct  InversionOperation
 
struct  IVec4Packed
 
struct  KDInterface
 
class  KDTree
 A multidimensional KDTree data structure rewritten from c-code by John Tsiombikas (http://code.google.com/p/kdtree/). More...
 
struct  KDTreeCallBackFunctor
 
struct  KDTreeResult
 
struct  KDTreeResult< std::list< T > >
 
struct  KDTreeResult< std::map< double, T > >
 
struct  KDTreeResult< std::multimap< double, T > >
 
struct  KDTreeResult< std::set< T > >
 
struct  KDTreeResult< std::vector< T > >
 
struct  KeyValue
 Entry in interpolation table with some flags. More...
 
struct  LE
 
struct  LeibnitzRule
 Implements the Leibnitz rule for derivatives for binary operators o: [A o B ],x = [A,x o B + [A o B,x]. More...
 
struct  LocationComponent
 Extracts a component of a location. More...
 
class  LowerTriangular
 A symmetric matrix stored in lower triangular form. More...
 
struct  LT
 
class  Matrix
 Simple matrix class for performing fast operations on matrices of sizes known at compile-time. More...
 
struct  MetaInfo
 
struct  MetaInfo< bivector3 >
 
struct  MetaInfo< bivector3f >
 
struct  MetaInfo< Christoffel< N, Scalar_t > >
 
struct  MetaInfo< ColorSpace::RGBA::tvector >
 
struct  MetaInfo< Column< N, Scalar_t > >
 
struct  MetaInfo< Coordinates< Cartesian3D, double >::bivector >
 
struct  MetaInfo< Coordinates< Cartesian3D, double >::covector >
 
struct  MetaInfo< Coordinates< Cartesian3D, double >::point >
 
struct  MetaInfo< Coordinates< Cartesian3D, double >::vector >
 
struct  MetaInfo< covector3f >
 
struct  MetaInfo< DomainVector< Vector< ValueType, 3 >, RGB > >
 
struct  MetaInfo< DomainVector< Vector< ValueType, 4 >, RGBA > >
 
struct  MetaInfo< DomainVector< VectorType, Domain, scalar_t > >
 
struct  MetaInfo< FixedArray< T, N > >
 Implement the meta-information on fixed arrays. More...
 
struct  MetaInfo< LowerTriangular< N, Scalar_t > >
 
struct  MetaInfo< Matrix< R, C, Value > >
 
struct  MetaInfo< metric33 >
 
struct  MetaInfo< point3 >
 
struct  MetaInfo< point3f >
 
struct  MetaInfo< Row< N, Scalar_t > >
 
struct  MetaInfo< trivector3 >
 
struct  MetaInfo< tvector3 >
 
struct  MetaInfo< vector3f >
 
struct  MetaInfo< Vector< T, N > >
 
struct  MetaInfo< void >
 
struct  MetaInfoElementIndex
 For multidimensional types T of rank MetaInfo<T>::RANK, this class provides a mapping from index space to memory space. More...
 
struct  MetaInfoElementIndex< Christoffel< N, Scalar_t > >
 
struct  MetaInfoElementIndex< LowerTriangular< N, Scalar_t > >
 
struct  MetaInfoElementIndex< Matrix< R, C, Value > >
 
struct  MetaInfoIO
 Helper class which is provides some textual output for MetaInfo types. More...
 
struct  MetaInfoIO< MetaInfo< T > >
 
struct  MetaInfoNonTensor
 
struct  MetaInfoNonTensor< Christoffel< N, Scalar_t > >
 
class  MultiRange
 
class  MultiVector
 
struct  MyDataHolder
 
struct  Node
 Abstract base class for evaluation of arbitrary functions that have been parsed from some input. More...
 
struct  NotElementOfFunctor
 
class  OcTree
 
struct  OneNode
 A scalar node that always returns one. More...
 
struct  Operator
 An type-only template used as argument on computational constructors. More...
 
struct  Operator<' *','~'>
 Multiply with transpose. More...
 
struct  Operator<' *'>
 
struct  Operator<'&'>
 
struct  Operator<'+','='>
 
struct  Operator<'+'>
 
struct  Operator<'-'>
 
struct  Operator<'/'>
 
struct  Operator<'='>
 
struct  Operator<'~'>
 Transpose. More...
 
struct  OperatorBase
 
class  ParserContext
 Internal class for communicating with the Bison/Yacc Parser and Flexical Stanza Generator. More...
 
class  Quadratic
 An n x n matrix (i.e., a vector of length n*n), stored row-wise: that is, A(i,j) = A[ij], where ij = i*n + j. More...
 
class  QuadTree
 
struct  Raster
 Class for computing triangle strips on a uniform 2D distribution of points within a plane. More...
 
struct  RGB
 
struct  RGBA
 
class  rgba_float_t
 
class  Row
 A row vector,. More...
 
struct  ScalarCube
 Compute $x^3$. More...
 
struct  ScalarPlusBivector
 A node operator implementing creation of rotor from scalar and bivector. More...
 
struct  ScalarSquare
 
struct  ScalarTimesVector
 A node implementing scalar times vector multiplication. More...
 
struct  Spherical3D
 
class  SubMatrix
 SubMatrix is a Matrix with row R and column C deleted. More...
 
class  SubQuadratic
 
struct  SumDerivation
 Implements the derivation of a sum [A + B ],x = A,x + B,x. More...
 
class  Tensor3
 
struct  TensorBase
 Tensor experiments. More...
 
struct  TernaryOperatorNode
 Template node class to perform ternary operations on evaluate-able nodes. More...
 
class  Torsion
 Torsion Tensor. More...
 
class  TransposeOperation
 
struct  TriangleStrip
 Class to compute a contiguous triangle strip for a two-dimensional set of points. More...
 
struct  TypedNode
 Templatized trait class for Nodes that yield a specific return type. More...
 
struct  TypeIndexingScheme
 
struct  TypeIndexingScheme< bivector3 >
 
struct  TypeIndexingScheme< bivector3f >
 
struct  TypeIndexingScheme< ColorSpace::RGBA::tvector >
 
struct  TypeIndexingScheme< covector3 >
 
struct  TypeIndexingScheme< covector3f >
 
struct  TypeIndexingScheme< trivector3 >
 
struct  TypeIndexingScheme< tvector3 >
 
struct  TypeIndexingScheme< vector3f >
 
struct  TypeIndexingScheme< Vector< T, N > >
 
struct  UIVec4Packed
 
struct  UnaryMinus
 
struct  UnaryOperatorNode
 Template node class to perform unary operations on evaluate-able nodes. More...
 
struct  unit
 
struct  Unit
 http://en.wikipedia.org/wiki/Fundamental_unit In the SI system there are 7 fundamental units: kilogram, meter, candela, second, ampere, kelvin, and mole. More...
 
struct  VariableNode
 A node that references some variable which will be set by the Context of the Evaluator. More...
 
struct  Vec3Pack32bit
 Generic unpacking from 32-bit integer with bits per channel given explicitly. More...
 
struct  Vec3Pack64bit
 Generic unpacking from 64-bit integer with bits per channel given explicitly. More...
 
struct  Vec3Pack_10_11_11
 
union  Vec3Packed
 
struct  Vec3Packed.packed
 
class  Vector
 A Vector is an fixed-size array (see class FixedArray) with vector space operations, i.e. More...
 
struct  VectorDotProduct
 Dot product between tangential vectors. More...
 
struct  VectorizationTrait
 A trait class to specify which vectorizations are possible. More...
 
struct  VectorSquare
 Computes v^2 for vector v. More...
 
struct  VectorTimesScalar
 A node implementing vector times scalar multiplication. More...
 
struct  VectorWedgeVector
 A node operator implementing creation of a bivector from two vectors. More...
 
class  ViewPoints
 A set of priority-weighted view points, used to recommend view points for objects. More...
 
struct  YlmCoefficients
 
struct  ZeroNode
 A scalar node that always returns zero. More...
 

Typedefs

typedef unsigned short color16_t
 Type for 16-bit colors.
 
typedef unsigned char color8_t
 Type for 8-bit colors.
 
typedef ConstantNode< ScalarNodeConstantScalarNode
 A scalar-valued node that yields a constant value, independent from the evaluation context.
 
typedef int OperatorID_t
 The type identifying an Operator.
 
typedef DomainVector< Vector< color16_t, 3 >, RGBrgb16_t
 16 bit RGB colors
 
using rgb_half_t = DomainVector< Vector< half, 3 >, RGB >
 16 bit floating point RGB colors
 
typedef DomainVector< Vector< color8_t, 3 >, RGBrgb_t
 8 bit RGB colors
 
typedef DomainVector< Vector< color16_t, 4 >, RGBArgba16_t
 16 bit RGB colors with alpha channel
 
using rgba_half_t = DomainVector< Vector< half, 4 >, RGBA >
 16 bit floating point RGBA colors with alpha channel
 
typedef DomainVector< Vector< color8_t, 4 >, RGBArgba_t
 8 bit RGB colors with alpha channel
 
typedef TypedNode< double > ScalarNode
 Base class for evaluation of a scalar function that has been parsed from some input.
 
typedef VariableNode< double > ScalarVariableNode
 A node that references some variable which will be set by the Context of the Evaluator.
 
typedef ConstructorNode< VectorNodeVectorConstructorNode
 A node that constructs a vector from three scalar values.
 
typedef TypedNode< tvector3VectorNode
 Base class for evaluation of a vector-valued function that has been parsed from some input.
 
Arguments for computational constructors
typedef Operator<'+'> Add
 Addition.
 
typedef Operator<'-'> Sub
 Subtraction.
 
typedef Operator<' *'> Mult
 Multiplication.
 
typedef Operator<'/'> Div
 Division.
 
typedef Operator<'~'> Conj
 Conjugate.
 
typedef Operator<','> Deriv
 Derivative.
 
typedef Operator<'&'> BinaryAnd
 Bit operations.
 

Functions

MemCore::RefPtr< MemCore::Chunk< Eagle::point3f > > computeNumericalShift (const MemCore::RefPtr< MemCore::TypedChunk< Eagle::point3 > > &RawData, const FixedArray< double, 3 > &TranslationVector)
 Compute a shifted, single-precision version of the given data chunk of double-precision point coordinates.
 
RefPtr< ScalarNodecube (const RefPtr< ScalarNode > &x)
 Compute $x^3$.
 
template<class value >
value Det (const Quadratic< 1, value > &M)
 Determinant of 1x1 matrix (trivial)
 
template<class value >
value Det (const Quadratic< 2, value > &M)
 Determinant of 2x2 matrix (easy)
 
template<class value >
value Det (const Quadratic< 3, value > &M)
 Determinant of 3x3 matrix (straightforward)
 
template<class value >
value Det (const Quadratic< 4, value > &M)
 Determinant of 4x4 matrix (effortsome) http://www.cvl.iis.u-tokyo.ac.jp/~miyazaki/tech/teche23.html.
 
double faculty (unsigned long n)
 Division of two faculties, i.e. n!/m!
 
double faculty_div (unsigned long n, unsigned long m)
 Division of two faculties, i.e. n!/m!
 
template<dimension_t C, class Value >
const Column< C, Value > & InterpretAsColumn (const Row< C, Value > &A)
 Explicit treatment of a row as column, pure type conversion, readonly.
 
template<dimension_t C, class Value >
Column< C, Value > & InterpretAsColumn (Row< C, Value > &A)
 Explicit treatment of a row as column, pure type conversion.
 
bool IntervalOverlap (double a0, double a1, double b0, double b1)
 Check whether two intervals [a0,a1] and [b0,b1] overlap.
 
bool IntervalOverlap (std::array< double, 2 > a, std::array< double, 2 > b)
 Check whether two intervals a=[a0,a1] and b=[b0,b1] overlap.
 
template<class IntType >
IntType intPow (IntType n)
 Compute n^n of unsigned.
 
template<class IntType >
IntType intPow (IntType n, IntType m)
 Compute n^m of ints.
 
template<class IntType >
IntType intPowRecursive (IntType n, IntType m, IntType c)
 A helper function for a recursive implementation of pow of int.
 
constexpr bool isEqual (double A, double B, double precision=1E-10)
 Compare two doubles with limited precision.
 
template<dimension_t M, dimension_t R, dimension_t C, class ValueA , class ValueB >
constexpr auto Matrix_mult (const Matrix< R, M, ValueA > &A, const Matrix< M, C, ValueB > &B)
 Matrix product, version as function.
 
int minus_exponential (int m)
 Return $(-1)^m$.
 
double norm (const PhysicalSpace::bivector &v)
 The norm of a bivector.
 
double norm (const PhysicalSpace::tvector &v)
 Compute the Euclidan norm of a vector.
 
double norm2 (const PhysicalSpace::bivector &v)
 Compute the squared norm of a bivector, which is the area spun by the plane.
 
double norm2 (const PhysicalSpace::tvector &v)
 Compute the squared norm of a vector v, i.e. v.v.
 
parzival_API RefPtr< NodeOne ()
 A node that is always one (type OneNode).
 
template<dimension_t C, class Value >
Column< C, Value > operator* (const Column< C, Value > &A, double V)
 Multiply column vector by double.
 
template<dimension_t C, class Value >
Row< C, Value > operator* (const Row< C, Value > &A, const double &V)
 Multiply row vector by double.
 
template<int N, class Value >
Value operator* (const Row< N, Value > &l, const Column< N, Value > &r)
 Contraction operation: multiply row by column.
 
parzival_API MemCore::RefPtr< BivectorNodeoperator^ (const MemCore::RefPtr< VectorNode > &, const MemCore::RefPtr< VectorNode > &)
 Wedge product of two 3-vectors, yielding a bivector.
 
template<int N, class value >
Quadratic< N, value > operator~ (Quadratic< N, value > Q)
 Return the transposed n x n square matrix.
 
template<class ResultType >
MemCore::RefPtr< typename ResultType::TypedNode_t > * RefNode (ResultType *N)
 ingroup parzival Create a new reference pointer appropriate for the class given.
 
template<typename T >
sinc (T x)
 The sinc(x) function, save for x=0, and numerically stable around x=0.
 
RefPtr< ScalarNodesquare (const RefPtr< ScalarNode > &x)
 Compute $x^2$.
 
parzival_API RefPtr< NodeZero ()
 A node that is always zero (type ZeroNode).
 
<A HREF="http://www.astro.virginia.edu/~eww6n/math/LegendrePolynomial.html">Legendre polynom</A> of order l,m
double P0 (double x)
 $P_{0,0}(x)$
 
double P1 (double x)
 $P_{1,0}(x)$
 
double Pn (int n, double x)
 $P_{n,0}(x)$
 
double Plm (int l, int m, double x)
 $P_{l,m}(x)$
 
double Laguerre (int k, double x)
 http://en.wikipedia.org/wiki/Laguerre_polynomials
 
double eagle_API Re_Ylm (int l, int m, double costheta, double phi)
 Real part of spherical harmonics $Y_{lm}$.
 
double eagle_API Im_Ylm (int l, int m, double costheta, double phi)
 Imaginary part of spherical harmonics $Y_{lm}$.
 
std::complex< double > eagle_API Ylm (int l, int m, double costheta, double phi)
 Spherical harmonics, complex return value.
 
std::complex< double > eagle_API Ylm_sincos (int l, int m, double costheta, double sin_mphi, double cos_mphi)
 Spherical harmonics, complex return value with precomputed $ sin(m phi), cos(m phi)$.
 
double eagle_API abs2_Ylm (int l, int m, double costheta, double phi)
 $|Ylm|^2$ - square of norm of complex spherical harmonic
 
int lm_to_A (int l, int m)
 Computation of linear index from (l,m) pair.
 
void A_to_lm (int A, int &l, int &m)
 Computation of (l,m) pair from linear index.
 

Detailed Description

Gather general basic mathematic functions which are not available in cmath here.

The "Eagle" namespace contains classes that implement vector and geometric algebra as well as interpolation procedures that ultimately allow the construction of camera paths.

Meta-template math functions go to meta/Math.hpp

The naming of the namespace is inspired by the sharp eye of the eagle, that requires description by the mathematics of geometric algebra. A camera path's purpose is a smooth flight through a virtual scene, like an eagle smoothly flies through a real scene.


Class Documentation

◆ Eagle::AnyType

struct Eagle::AnyType

◆ Eagle::Assert

struct Eagle::Assert
template<bool>
struct Eagle::Assert< bool >

◆ Eagle::Assert< true >

struct Eagle::Assert< true >

◆ Eagle::Assertion

struct Eagle::Assertion
template<bool>
struct Eagle::Assertion< bool >

◆ Eagle::Assertion< true >

struct Eagle::Assertion< true >

◆ Eagle::DerivationTrait

struct Eagle::DerivationTrait
template<class BinaryFunctor>
struct Eagle::DerivationTrait< BinaryFunctor >

Template type trait class to compute analytical derivates.

For binary operators as template argument, they will have

typedef typename BinaryFunctor::LeftNode_t LeftNode_t;
typedef typename BinaryFunctor::RightNode_t RightNode_t;

and the function to be implemented is:

A reference counting pointer class which keeps objects alive as long as strong pointers to these obje...
Definition RefPtr.hpp:405
A node that references some variable which will be set by the Context of the Evaluator.
Definition TypedNode.hpp:108

For unary operators:

typedef typename Functor::SourceNode_t Source_t;

◆ Eagle::FA_CONVERT

struct Eagle::FA_CONVERT

◆ Eagle::IVec4Packed

struct Eagle::IVec4Packed

◆ Eagle::KDTreeResult

struct Eagle::KDTreeResult
template<class Container>
struct Eagle::KDTreeResult< Container >

◆ Eagle::Operator

struct Eagle::Operator
template<OperatorID_t CompType, OperatorID_t bop = 0>
struct Eagle::Operator< CompType, bop >

An type-only template used as argument on computational constructors.

Parameters
CompTypeA free parameter to select the operation, such as '+', '*', '-' etc.

◆ Eagle::TransposeOperation

class Eagle::TransposeOperation

◆ Eagle::UIVec4Packed

struct Eagle::UIVec4Packed

◆ Eagle::Vec3Packed.packed

struct Eagle::Vec3Packed.packed

Typedef Documentation

◆ OperatorID_t

typedef int Eagle::OperatorID_t

The type identifying an Operator.

See class Operator for usage.

◆ ScalarNode

typedef TypedNode<double> Eagle::ScalarNode

Base class for evaluation of a scalar function that has been parsed from some input.

RefPtr<ScalarNode> MyNode = ...;
double value = MyNode->eval(EV);
Class providing numerical values from some context ID for the evaluation of function trees.
Definition EvaluationContext.hpp:19

◆ VectorNode

Base class for evaluation of a vector-valued function that has been parsed from some input.

using namespace Eagle;
RefPtr<VectorNode> MyNode = ...;
PhysicalSpace::tvector value = MyNode->eval(EV);
3-dimensional vector.
Definition elementary/eagle/PhysicalSpace.hpp:170
Gather general basic mathematic functions which are not available in cmath here.
Definition Context.cpp:7

Function Documentation

◆ A_to_lm()

void Eagle::A_to_lm ( int  A,
int &  l,
int &  m 
)
inline

Computation of (l,m) pair from linear index.

\[ l = \sqrt{ A_{lm} } \]

\[ m = A_{lm} - l^2 - l \]

◆ IntervalOverlap() [1/2]

bool Eagle::IntervalOverlap ( double  a0,
double  a1,
double  b0,
double  b1 
)
inline

Check whether two intervals [a0,a1] and [b0,b1] overlap.

Source and explanation: https://fgiesen.wordpress.com/2011/10/16/checking-for-interval-overlap/

Referenced by IntervalOverlap().

◆ IntervalOverlap() [2/2]

bool Eagle::IntervalOverlap ( std::array< double, 2 >  a,
std::array< double, 2 >  b 
)
inline

Check whether two intervals a=[a0,a1] and b=[b0,b1] overlap.

Source and explanation: https://fgiesen.wordpress.com/2011/10/16/checking-for-interval-overlap/

References IntervalOverlap().

◆ lm_to_A()

int Eagle::lm_to_A ( int  l,
int  m 
)
inline

Computation of linear index from (l,m) pair.

\[ A_{lm} = l^2 + l + m \]

◆ norm()

double Eagle::norm ( const PhysicalSpace::tvector v)
inline

◆ operator*()

template<int N, class Value >
Value Eagle::operator* ( const Row< N, Value > &  l,
const Column< N, Value > &  r 
)
inline

Contraction operation: multiply row by column.

Note that the reverse operation, ie. multiplying a column by a row, is the tensor product and yields a $n\times n$ matrix.

◆ RefNode()

template<class ResultType >
MemCore::RefPtr< typename ResultType::TypedNode_t > * Eagle::RefNode ( ResultType *  N)

ingroup parzival Create a new reference pointer appropriate for the class given.

This is a convenience function for the Quest parser, since that one can only deal with native C pointers in the main union data type. It is not supposed to be used anywhere else than in this specific context.

◆ sinc()

template<typename T >
T Eagle::sinc ( x)
inline

The sinc(x) function, save for x=0, and numerically stable around x=0.

When the sine function is written as a taylor series,

\[ sin(x) = x - x^3/3! + x^5/5! - x^7/7! \]

we get the sinc(x) function as

\[
sin(x)/x = 1 - x^2/(2*3) + x^4/(2*3*4*5) - \cdots
         = 1 - x^2 [ 1   - x^2 / 20 ] / 6 \]