The Vish Visualization Shell 0.3
Vish
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  Chunk
 A class which handles a chunk of memory. More...
class  Column
 A column vector. More...
class  complex
 STL class. 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  map
 STL class. More...
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  Ref
 Pointer to a refcountable object which automatically initializes the pointer with constructing an object. 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  string
 STL class. More...
class  StrongPtr
 A reference counting pointer class which keeps objects alive as long as strong pointers to these objects exist. More...
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...
class  TypedChunkBase
 The abstract base class for chunks that have a certain type. 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
 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  unit
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.
using NullPtr
 A type indicating an invalid pointer, similar to the NULL pointer in C, but type-safe.
typedef int OperatorID_t
 The type identifying an Operator.
template<class Object, class ObjectBase = typename Object::reference_domain_t>
using RefPtr
 Convenience template typedef to use RefPtr instead of StrongPtr.
template<class Object, class ObjectBase = typename Object::reference_domain_t>
using RefPtr
 Convenience template typedef to use RefPtr instead of StrongPtr.
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< tvector3 > VectorNode
 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<int R, int C, class value>
Column< R, value > operator* (const Matrix< R, C, value > &A, const Column< C, value > &V)
 Multiply r (rows) by c (columns) matrix A on the left by column vector V of dimension c on the right to produce a (column) vector C output of dimension r.
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< BivectorNode > operator^ (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$.
template<int N, class value>
void UnsortedEigenVectors (LowerTriangular< N, value > &A, Quadratic< N, value > &RRmatrix, Row< N, value > &E, double precision=1E-10)
 Eigenvalues and eigenvectors of a real symmetric matrix.
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::complex

class Eagle::complex

STL class.

◆ 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:

VariableNode< double > ScalarVariableNode
A node that references some variable which will be set by the Context of the Evaluator.
Definition Node.hpp:16
StrongPtr< Object, ObjectBase > RefPtr
Convenience template typedef to use RefPtr instead of StrongPtr.
Definition RefPtr.hpp:776

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

typedef TypedNode<tvector3> Eagle::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);
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()

◆ 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 ( T 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 \‍]