gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
bezierCoeff Class Reference

#include <bezierBasis.h>

Collaboration diagram for bezierCoeff:

Public Member Functions

 bezierCoeff ()
 
 bezierCoeff (const bezierCoeff &other, bool swap=false)
 
 bezierCoeff (const FuncSpaceData fsData, const fullVector< double > &orderedLagCoeff, int numOfPool=-1)
 
 bezierCoeff (const FuncSpaceData fsData, const fullMatrix< double > &orderedLagCoeff, int numOfPool=-1)
 
 ~bezierCoeff ()
 
void updateDataPtr (long diff)
 
int getPolynomialOrder () const
 
int getNumCoeff () const
 
int getNumColumns () const
 
int getNumCornerCoeff () const
 
int getIdxCornerCoeff (int i) const
 
double getCornerCoeff (int k) const
 
double getCornerCoeff (int k, int j) const
 
void getCornerCoeffs (fullVector< double > &) const
 
void getCornerCoeffs (fullMatrix< double > &) const
 
double * getDataPtr ()
 
const bezierBasisgetBezierBasis () const
 
void setMatrixAsProxy (fullMatrix< double > &m) const
 
void setVectorAsProxy (fullVector< double > &v) const
 
void subdivide (std::vector< bezierCoeff * > &subCoeff) const
 
double operator() (int i) const
 
double operator() (int i, int j) const
 
double & operator() (int i)
 
double & operator() (int i, int j)
 

Static Public Member Functions

static void usePools (std::size_t size0, std::size_t size1)
 
static void releasePools ()
 

Private Types

enum  SubdivisionTet {
  subdivU, subdivV, subdivW, node0CrossEdge12,
  node3CrossEdge12, node1CrossEdge03, node2CrossEdge03
}
 

Private Member Functions

void _computeCoefficients (const double *lagCoeffData)
 

Static Private Member Functions

static void _subdivideTet (SubdivisionTet which, int n, bezierCoeff &coeff)
 
static void _subdivide (fullMatrix< double > &coeff, int npts, int start)
 
static void _subdivide (fullMatrix< double > &coeff, int npts, int start, int inc)
 
static void _subdivideTriangle (const bezierCoeff &coeff, int start, std::vector< bezierCoeff * > &subCoeff)
 
static void _subdivideTetrahedron (const bezierCoeff &coeff, std::vector< bezierCoeff * > &vSubCoeff)
 
static void _subdivideQuadrangle (const bezierCoeff &coeff, std::vector< bezierCoeff * > &subCoeff)
 
static void _subdivideHexahedron (const bezierCoeff &coeff, std::vector< bezierCoeff * > &subCoeff)
 
static void _subdividePrism (const bezierCoeff &coeff, std::vector< bezierCoeff * > &subCoeff)
 
static void _subdividePyramid (const bezierCoeff &coeff, std::vector< bezierCoeff * > &subCoeff)
 
static void _copy (const bezierCoeff &from, int start, int num, bezierCoeff &to)
 
static void _copyLine (const fullMatrix< double > &allSub, int n, int starti, bezierCoeff &sub)
 
static void _copyQuad (const fullMatrix< double > &allSub, int n, int starti, int startj, bezierCoeff &sub)
 
static void _copyHex (const fullMatrix< double > &allSub, int n, int starti, int startj, int startk, bezierCoeff &sub)
 
static void _copyPyr (const fullMatrix< double > &allSub, int nij, int nk, int starti, int startj, int startk, bezierCoeff &sub)
 
static int _ij2Index (int i, int j, int n)
 
static int _ijk2Index (int i, int j, int k, int n)
 

Private Attributes

int _numPool
 
FuncSpaceData _funcSpaceData
 
const bezierBasis_basis
 
int _r
 
int _c
 
double * _data
 
bool _ownData
 

Static Private Attributes

static bezierCoeffMemoryPool_pool0 = nullptr
 
static bezierCoeffMemoryPool_pool1 = nullptr
 
static fullMatrix< double > _sub = fullMatrix<double>()
 

Detailed Description

Definition at line 127 of file bezierBasis.h.

Member Enumeration Documentation

◆ SubdivisionTet

Enumerator
subdivU 
subdivV 
subdivW 
node0CrossEdge12 
node3CrossEdge12 
node1CrossEdge03 
node2CrossEdge03 

Definition at line 204 of file bezierBasis.h.

Constructor & Destructor Documentation

◆ bezierCoeff() [1/4]

bezierCoeff::bezierCoeff ( )
inline

Definition at line 145 of file bezierBasis.h.

◆ bezierCoeff() [2/4]

bezierCoeff::bezierCoeff ( const bezierCoeff other,
bool  swap = false 
)

Definition at line 696 of file bezierBasis.cpp.

Here is the call graph for this function:

◆ bezierCoeff() [3/4]

bezierCoeff::bezierCoeff ( const FuncSpaceData  fsData,
const fullVector< double > &  orderedLagCoeff,
int  numOfPool = -1 
)

Definition at line 656 of file bezierBasis.cpp.

Here is the call graph for this function:

◆ bezierCoeff() [4/4]

bezierCoeff::bezierCoeff ( const FuncSpaceData  fsData,
const fullMatrix< double > &  orderedLagCoeff,
int  numOfPool = -1 
)

Definition at line 616 of file bezierBasis.cpp.

Here is the call graph for this function:

◆ ~bezierCoeff()

bezierCoeff::~bezierCoeff ( )

Definition at line 723 of file bezierBasis.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ _computeCoefficients()

void bezierCoeff::_computeCoefficients ( const double *  lagCoeffData)
private

Definition at line 738 of file bezierBasis.cpp.

Referenced by bezierCoeff().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _copy()

void bezierCoeff::_copy ( const bezierCoeff from,
int  start,
int  num,
bezierCoeff to 
)
staticprivate

Definition at line 1389 of file bezierBasis.cpp.

Referenced by _subdivideTetrahedron(), and _subdivideTriangle().

Here is the caller graph for this function:

◆ _copyHex()

void bezierCoeff::_copyHex ( const fullMatrix< double > &  allSub,
int  n,
int  starti,
int  startj,
int  startk,
bezierCoeff sub 
)
staticprivate

Definition at line 1421 of file bezierBasis.cpp.

Referenced by _subdivideHexahedron().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _copyLine()

void bezierCoeff::_copyLine ( const fullMatrix< double > &  allSub,
int  n,
int  starti,
bezierCoeff sub 
)
staticprivate

Definition at line 1398 of file bezierBasis.cpp.

Referenced by _subdividePrism().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _copyPyr()

void bezierCoeff::_copyPyr ( const fullMatrix< double > &  allSub,
int  nij,
int  nk,
int  starti,
int  startj,
int  startk,
bezierCoeff sub 
)
staticprivate

Definition at line 1437 of file bezierBasis.cpp.

Referenced by _subdividePyramid().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _copyQuad()

void bezierCoeff::_copyQuad ( const fullMatrix< double > &  allSub,
int  n,
int  starti,
int  startj,
bezierCoeff sub 
)
staticprivate

Definition at line 1407 of file bezierBasis.cpp.

Referenced by _subdivideQuadrangle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _ij2Index()

static int bezierCoeff::_ij2Index ( int  i,
int  j,
int  n 
)
inlinestaticprivate

Definition at line 240 of file bezierBasis.h.

Referenced by _subdivideTriangle().

Here is the caller graph for this function:

◆ _ijk2Index()

static int bezierCoeff::_ijk2Index ( int  i,
int  j,
int  k,
int  n 
)
inlinestaticprivate

Definition at line 244 of file bezierBasis.h.

Referenced by _subdivideTet().

Here is the caller graph for this function:

◆ _subdivide() [1/2]

void bezierCoeff::_subdivide ( fullMatrix< double > &  coeff,
int  npts,
int  start 
)
staticprivate

Definition at line 973 of file bezierBasis.cpp.

Referenced by _subdivideHexahedron(), _subdividePrism(), _subdividePyramid(), and _subdivideQuadrangle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _subdivide() [2/2]

void bezierCoeff::_subdivide ( fullMatrix< double > &  coeff,
int  npts,
int  start,
int  inc 
)
staticprivate

Definition at line 986 of file bezierBasis.cpp.

Here is the call graph for this function:

◆ _subdivideHexahedron()

void bezierCoeff::_subdivideHexahedron ( const bezierCoeff coeff,
std::vector< bezierCoeff * > &  subCoeff 
)
staticprivate

Definition at line 1272 of file bezierBasis.cpp.

Referenced by subdivide().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _subdividePrism()

void bezierCoeff::_subdividePrism ( const bezierCoeff coeff,
std::vector< bezierCoeff * > &  subCoeff 
)
staticprivate

Definition at line 1308 of file bezierBasis.cpp.

Referenced by subdivide().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _subdividePyramid()

void bezierCoeff::_subdividePyramid ( const bezierCoeff coeff,
std::vector< bezierCoeff * > &  subCoeff 
)
staticprivate

Definition at line 1344 of file bezierBasis.cpp.

Referenced by subdivide().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _subdivideQuadrangle()

void bezierCoeff::_subdivideQuadrangle ( const bezierCoeff coeff,
std::vector< bezierCoeff * > &  subCoeff 
)
staticprivate

Definition at line 1249 of file bezierBasis.cpp.

Referenced by subdivide().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _subdivideTet()

void bezierCoeff::_subdivideTet ( SubdivisionTet  which,
int  n,
bezierCoeff coeff 
)
staticprivate

Definition at line 1086 of file bezierBasis.cpp.

Referenced by _subdivideTetrahedron().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _subdivideTetrahedron()

void bezierCoeff::_subdivideTetrahedron ( const bezierCoeff coeff,
std::vector< bezierCoeff * > &  vSubCoeff 
)
staticprivate

Definition at line 1206 of file bezierBasis.cpp.

Referenced by subdivide().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _subdivideTriangle()

void bezierCoeff::_subdivideTriangle ( const bezierCoeff coeff,
int  start,
std::vector< bezierCoeff * > &  subCoeff 
)
staticprivate

Definition at line 1001 of file bezierBasis.cpp.

Referenced by _subdividePrism(), and subdivide().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getBezierBasis()

const bezierBasis* bezierCoeff::getBezierBasis ( ) const
inline

Definition at line 184 of file bezierBasis.h.

Referenced by jacobianBasedQuality::_coeffDataIGE::_computeLowerBound(), and jacobianBasedQuality::_coeffDataICN::_computeLowerBound().

Here is the caller graph for this function:

◆ getCornerCoeff() [1/2]

double bezierCoeff::getCornerCoeff ( int  k) const
inline

Definition at line 173 of file bezierBasis.h.

Referenced by jacobianBasedQuality::_coeffDataJac::_coeffDataJac(), and getCornerCoeffs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getCornerCoeff() [2/2]

double bezierCoeff::getCornerCoeff ( int  k,
int  j 
) const
inline

Definition at line 177 of file bezierBasis.h.

Here is the call graph for this function:

◆ getCornerCoeffs() [1/2]

void bezierCoeff::getCornerCoeffs ( fullMatrix< double > &  m) const

Definition at line 928 of file bezierBasis.cpp.

Here is the call graph for this function:

◆ getCornerCoeffs() [2/2]

void bezierCoeff::getCornerCoeffs ( fullVector< double > &  v) const

Definition at line 921 of file bezierBasis.cpp.

Referenced by jacobianBasedQuality::_coeffDataIGE::_computeAtCorner(), and jacobianBasedQuality::_coeffDataICN::_computeAtCorner().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDataPtr()

double* bezierCoeff::getDataPtr ( )
inline

Definition at line 183 of file bezierBasis.h.

Referenced by MElement::idealJacRange(), and MElement::scaledJacRange().

Here is the caller graph for this function:

◆ getIdxCornerCoeff()

int bezierCoeff::getIdxCornerCoeff ( int  i) const

Definition at line 846 of file bezierBasis.cpp.

Referenced by getCornerCoeff(), and getCornerCoeffs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getNumCoeff()

int bezierCoeff::getNumCoeff ( ) const
inline

Definition at line 169 of file bezierBasis.h.

Referenced by jacobianBasedQuality::_coeffDataJac::_coeffDataJac(), MElement::idealJacRange(), MElementBB(), and MElement::scaledJacRange().

Here is the caller graph for this function:

◆ getNumColumns()

int bezierCoeff::getNumColumns ( ) const
inline

Definition at line 170 of file bezierBasis.h.

Referenced by _subdivideTet().

Here is the caller graph for this function:

◆ getNumCornerCoeff()

int bezierCoeff::getNumCornerCoeff ( ) const
inline

Definition at line 171 of file bezierBasis.h.

Referenced by jacobianBasedQuality::_coeffDataJac::_coeffDataJac(), and getCornerCoeffs().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPolynomialOrder()

int bezierCoeff::getPolynomialOrder ( ) const
inline

Definition at line 165 of file bezierBasis.h.

Referenced by _subdivideHexahedron(), _subdividePrism(), _subdivideQuadrangle(), _subdivideTetrahedron(), and _subdivideTriangle().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator()() [1/4]

double& bezierCoeff::operator() ( int  i)
inline

Definition at line 200 of file bezierBasis.h.

◆ operator()() [2/4]

double bezierCoeff::operator() ( int  i) const
inline

Definition at line 197 of file bezierBasis.h.

◆ operator()() [3/4]

double& bezierCoeff::operator() ( int  i,
int  j 
)
inline

Definition at line 201 of file bezierBasis.h.

◆ operator()() [4/4]

double bezierCoeff::operator() ( int  i,
int  j 
) const
inline

Definition at line 198 of file bezierBasis.h.

◆ releasePools()

void bezierCoeff::releasePools ( )
static

Definition at line 830 of file bezierBasis.cpp.

◆ setMatrixAsProxy()

void bezierCoeff::setMatrixAsProxy ( fullMatrix< double > &  m) const
inline

Definition at line 186 of file bezierBasis.h.

Referenced by jacobianBasedQuality::_coeffDataIGE::_computeLowerBound(), and jacobianBasedQuality::_coeffDataICN::_computeLowerBound().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setVectorAsProxy()

void bezierCoeff::setVectorAsProxy ( fullVector< double > &  v) const
inline

Definition at line 190 of file bezierBasis.h.

Referenced by jacobianBasedQuality::_coeffDataIGE::_computeLowerBound(), and jacobianBasedQuality::_coeffDataICN::_computeLowerBound().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ subdivide()

void bezierCoeff::subdivide ( std::vector< bezierCoeff * > &  subCoeff) const

Definition at line 938 of file bezierBasis.cpp.

Referenced by jacobianBasedQuality::_coeffDataJac::getSubCoeff(), jacobianBasedQuality::_coeffDataIGE::getSubCoeff(), and jacobianBasedQuality::_coeffDataICN::getSubCoeff().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateDataPtr()

void bezierCoeff::updateDataPtr ( long  diff)

Definition at line 838 of file bezierBasis.cpp.

Here is the call graph for this function:

◆ usePools()

void bezierCoeff::usePools ( std::size_t  size0,
std::size_t  size1 
)
static

Definition at line 818 of file bezierBasis.cpp.

Referenced by jacobianBasedQuality::minICNMeasure(), jacobianBasedQuality::minIGEMeasure(), and jacobianBasedQuality::minMaxJacobianDeterminant().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ _basis

const bezierBasis* bezierCoeff::_basis
private

◆ _c

◆ _data

◆ _funcSpaceData

FuncSpaceData bezierCoeff::_funcSpaceData
private

◆ _numPool

int bezierCoeff::_numPool
private

Definition at line 129 of file bezierBasis.h.

Referenced by bezierCoeff(), and ~bezierCoeff().

◆ _ownData

bool bezierCoeff::_ownData
private

Definition at line 134 of file bezierBasis.h.

Referenced by bezierCoeff(), updateDataPtr(), and ~bezierCoeff().

◆ _pool0

bezierCoeffMemoryPool * bezierCoeff::_pool0 = nullptr
staticprivate

Definition at line 136 of file bezierBasis.h.

Referenced by bezierCoeff(), releasePools(), usePools(), and ~bezierCoeff().

◆ _pool1

bezierCoeffMemoryPool * bezierCoeff::_pool1 = nullptr
staticprivate

Definition at line 137 of file bezierBasis.h.

Referenced by bezierCoeff(), releasePools(), usePools(), and ~bezierCoeff().

◆ _r

◆ _sub

fullMatrix< double > bezierCoeff::_sub = fullMatrix<double>()
staticprivate

The documentation for this class was generated from the following files: