Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

AIntersection Class Reference

#include <AIntersection.h>

Inheritance diagram for AIntersection:

Inheritance graph
[legend]
Collaboration diagram for AIntersection:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 AIntersection (Implicit *f, Implicit *g, int cont=2)
 Constructor.

int rf_sign ()
double h (double f, double g)
 Evaluates the R-function on the two function values.

double hf (double f, double g)
 Evaluates the partial derivative with respect to f on the two function values.

double hg (double f, double g)
 Evaluates the partial derivative with respect to g on the two function values.

double hff (double f, double g)
 Evaluates the 2nd partial derivative with respect to f and f on the two function values.

double hgg (double f, double g)
 Return the 2nd partial derivative with respect to g and g on the two function values.

double hfg (double f, double g)
 Evaluate the 2nd partial derivative with respect to f and g on the two function values.

Intervald h (Intervald f, Intervald g)
Intervald hf (Intervald f, Intervald g)
Intervald hg (Intervald f, Intervald g)
Intervald hff (Intervald f, Intervald g)
Intervald hgg (Intervald f, Intervald g)
Intervald hfg (Intervald f, Intervald g)

Constructor & Destructor Documentation

AIntersection::AIntersection Implicit f,
Implicit g,
int  cont = 2
 

Constructor.

Definition at line 11 of file AIntersection.cpp.

References RFunction::m_cont, BinaryOp::m_f, BinaryOp::m_g, Blend::m_r1, and Blend::m_r2.


Member Function Documentation

Intervald AIntersection::h Intervald  f,
Intervald  g
[virtual]
 

Reimplemented from RFunction.

Definition at line 29 of file AIntersection.cpp.

References RFunction::h(), Intervald, Blend::m_r1, Blend::m_r2, and Interval< Type >::squared().

double AIntersection::h double  f,
double  g
[virtual]
 

Evaluates the R-function on the two function values.

Parameters:
f The value of f.
g The value of g.
Returns:
(f + g + m_sign*(sqrt(f^2+g^2)))*(f^2+g^2)^(m_cont/2).

Reimplemented from RFunction.

Definition at line 20 of file AIntersection.cpp.

References RFunction::h(), Blend::m_r1, and Blend::m_r2.

Intervald AIntersection::hf Intervald  f,
Intervald  g
[virtual]
 

Reimplemented from RFunction.

Definition at line 51 of file AIntersection.cpp.

References RFunction::hf(), Intervald, Blend::m_r1, Blend::m_r2, and Interval< Type >::squared().

double AIntersection::hf double  f,
double  g
[virtual]
 

Evaluates the partial derivative with respect to f on the two function values.

h = (f + g + m_sign*(sqrt(f^2+g^2)))*(f^2+g^2)^(m_cont/2). hf = (f^2+g^2)^(m_cont/2)*d(f + g + m_sign*(sqrt(f^2+g^2)))/df + (f + g + m_sign*(sqrt(f^2+g^2)))*d(f^2+g^2)^(m_cont/2)/df = (f^2+g^2)^(m_cont/2)*(1 + m_sign*f/sqrt(f^2+g^2)) + (f + g + m_sign*(sqrt(f^2+g^2)))*m_cont*f*(f^2+g^2)^(m_cont/2 - 1).

Parameters:
f The value of f.
g The value of g.
Returns:
hf.
Note:
Appears to work fine when tested with particles.

Reimplemented from RFunction.

Definition at line 43 of file AIntersection.cpp.

References RFunction::hf(), Blend::m_r1, and Blend::m_r2.

Intervald AIntersection::hff Intervald  f,
Intervald  g
[virtual]
 

Reimplemented from RFunction.

Definition at line 91 of file AIntersection.cpp.

References RFunction::hff(), Intervald, Blend::m_r1, Blend::m_r2, and Interval< Type >::squared().

double AIntersection::hff double  f,
double  g
[virtual]
 

Evaluates the 2nd partial derivative with respect to f and f on the two function values.

fg = sqrt(f^2 + g^2) dfg/df = f/fg hf = fg^m_cont*(1 + m_sign*f/fg) + (f + g + m_sign*fg)*m_cont*f*fg^(m_cont - 2) = fg^m_cont + m_sign*f*fg^(m_cont-1) + (f + g + m_sign*fg)*m_cont*f*fg^(m_cont - 2) hff = m_cont*fg^(m_cont-1)*dfg/df + m_sign*f*(m_cont-1)*fg^(m_cont-2)*dfg/df + m_sign*fg^(m_cont-1) + (1 + m_sign*dfg/df)*m_cont*f*fg^(m_cont - 2) + (f + g + m_sign*fg)*m_cont*(f*(m_cont - 2)*fg^(m_cont - 3)*dfg/df + fg^(m_cont - 2)) = m_cont*f*fg^(m_cont-2) + m_sign*(m_cont-1)*f^2*fg^(m_cont-3) + m_sign*fg^(m_cont-1) + m_cont*f*fg^(m_cont - 2) + m_cont*m_sign*f^2*fg^(m_cont - 3) + m_cont*(f + g + m_sign*fg)*((m_cont - 2)*f^2*fg^(m_cont - 4) + fg^(m_cont - 2))

Parameters:
f The value of f.
g The value of g.
Returns:
hff.
Note:
Needs to be tested.

Reimplemented from RFunction.

Definition at line 83 of file AIntersection.cpp.

References RFunction::hff(), Blend::m_r1, and Blend::m_r2.

Intervald AIntersection::hfg Intervald  f,
Intervald  g
[virtual]
 

Reimplemented from RFunction.

Definition at line 129 of file AIntersection.cpp.

References RFunction::hfg(), Intervald, Blend::m_r1, and Blend::m_r2.

double AIntersection::hfg double  f,
double  g
[virtual]
 

Evaluate the 2nd partial derivative with respect to f and g on the two function values.

fg = sqrt(f^2 + g^2) dfg/dg = g/fg hf = fg^m_cont*(1 + m_sign*f/fg) + (f + g + m_sign*fg)*m_cont*f*fg^(m_cont - 2) = fg^m_cont + m_sign*f*fg^(m_cont-1) + (f + g + m_sign*fg)*m_cont*f*fg^(m_cont - 2) hfg = m_cont*fg^(m_cont-1)*dfg/dg + m_sign*f*(m_cont-1)*fg^(m_cont-2)*dfg/dg + m_sign*fg^(m_cont-1) + (1 + m_sign*dfg/dg)*m_cont*f*fg^(m_cont - 2) + (f + g + m_sign*fg)*m_cont*(f*(m_cont - 2)*fg^(m_cont - 3)*dfg/dg + fg^(m_cont - 2)) = m_cont*g*fg^(m_cont-2) + m_sign*(m_cont-1)*f*g*fg^(m_cont-3) + m_sign*fg^(m_cont-1) + m_cont*f*fg^(m_cont - 2) + m_cont*m_sign*f*g*fg^(m_cont - 3) + m_cont*(f + g + m_sign*fg)*((m_cont - 2)*f*g*fg^(m_cont - 4) + fg^(m_cont - 2))

Parameters:
f The value of f.
g The value of g.
Returns:
hfg.
Note:
Needs to be tested.

Reimplemented from RFunction.

Definition at line 121 of file AIntersection.cpp.

References RFunction::hfg(), Blend::m_r1, and Blend::m_r2.

Intervald AIntersection::hg Intervald  f,
Intervald  g
[virtual]
 

Reimplemented from RFunction.

Definition at line 71 of file AIntersection.cpp.

References RFunction::hg(), Intervald, Blend::m_r1, Blend::m_r2, and Interval< Type >::squared().

double AIntersection::hg double  f,
double  g
[virtual]
 

Evaluates the partial derivative with respect to g on the two function values.

h = (f + g + m_sign*(sqrt(f^2+g^2)))*(f^2+g^2)^(m_cont/2). hg = (f^2+g^2)^(m_cont/2)*d(f + g + m_sign*(sqrt(f^2+g^2)))/dg + (f + g + m_sign*(sqrt(f^2+g^2)))*d(f^2+g^2)^(m_cont/2)/dg = (f^2+g^2)^(m_cont/2)*(1 + m_sign*g/sqrt(f^2+g^2)) + (f + g + m_sign*(sqrt(f^2+g^2)))*m_cont*g*(f^2+g^2)^(m_cont/2 - 1).

Parameters:
f The value of f.
g The value of g.
Returns:
hg.
Note:
Appears to work fine when tested with particles.

Reimplemented from RFunction.

Definition at line 63 of file AIntersection.cpp.

References RFunction::hg(), Blend::m_r1, and Blend::m_r2.

Intervald AIntersection::hgg Intervald  f,
Intervald  g
[virtual]
 

Reimplemented from RFunction.

Definition at line 110 of file AIntersection.cpp.

References RFunction::hgg(), Intervald, Blend::m_r1, Blend::m_r2, and Interval< Type >::squared().

double AIntersection::hgg double  f,
double  g
[virtual]
 

Return the 2nd partial derivative with respect to g and g on the two function values.

fg = sqrt(f^2 + g^2) dfg/dg = g/fg hg = fg^m_cont*(1 + m_sign*g/fg) + (f + g + m_sign*fg)*m_cont*g*fg^(m_cont - 2) = fg^m_cont + m_sign*g*fg^(m_cont-1) + (f + g + m_sign*fg)*m_cont*g*fg^(m_cont - 2) hgg = m_cont*fg^(m_cont-1)*dfg/dg + m_sign*g*(m_cont-1)*fg^(m_cont-2)*dfg/dg + m_sign*fg^(m_cont-1) + (1 + m_sign*dfg/dg)*m_cont*g*fg^(m_cont - 2) + (f + g + m_sign*fg)*m_cont*(g*(m_cont - 2)*fg^(m_cont - 3)*dfg/dg + fg^(m_cont - 2)) = m_cont*g*fg^(m_cont-2) + m_sign*(m_cont-1)*g^2*fg^(m_cont-3) + m_sign*fg^(m_cont-1) + m_cont*g*fg^(m_cont - 2) + m_cont*m_sign*g^2*fg^(m_cont - 3) + m_cont*(f + g + m_sign*fg)*((m_cont - 2)*g^2*fg^(m_cont - 4) + fg^(m_cont - 2))

Parameters:
f The value of f.
g The value of g.
Returns:
hgg.
Note:
Needs to be tested.

Reimplemented from RFunction.

Definition at line 102 of file AIntersection.cpp.

References RFunction::hgg(), Blend::m_r1, and Blend::m_r2.

int AIntersection::rf_sign  )  [inline]
 

Definition at line 20 of file AIntersection.h.


The documentation for this class was generated from the following files:
Generated on Mon Jun 28 15:01:59 2004 for Advanced Surface Library by doxygen 1.3.4