nCenterFocus::fast_Frommer< TFrommerDefs, variant > Class Template Reference
[Frommer Algorithm]

besserer test wäre frommer je mit doitOld und doitNew aufzurufen und dann die Matrizen A und B zu vergleichen. More...

#include <fast_frommer.h>

Collaboration diagram for nCenterFocus::fast_Frommer< TFrommerDefs, variant >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef TFrommerDefs::RingType TRing
typedef TFrommerDefs::RingType RingType
typedef TFrommerDefs::PolynomXYType TPolynomXY
typedef TFrommerDefs::TMatrixXYType TMatrixXYType
typedef
TFrommerDefs::TMatrixXY_0Type 
TMatrixXY_0Type
typedef
TFrommerDefs::TMatrixXYPairType 
TMatrixXYPairType
typedef
TFrommerDefs::PolynomXYPairType 
TPolynomXYPair

Public Member Functions

void setName (std::string name)
 fast_Frommer (short m, const TRing *rr)
virtual ~fast_Frommer ()
void printStageTimings (std::ostream &os) const
template<class TemplateMatrix >
void outputMatrix (TemplateMatrix *mat) const
 for debugging:
template<int tHowManyTimes>
void doitx (short howManyFocalValues)
template<int tHowManyTimes>
void doitxNew (short howManyFocalValues)
 Computes first 'howManyFocalValues' focal values. Set references to polynoms minusp and q first, if not done already (setPolynoms)! / TODO: doit2 /.
template<int tHowManyTimes>
void doitxOld (short howManyFocalValues)
setup

void setPolynoms (const TPolynomXY *const minuspp, const TPolynomXY *const qq)
 minuspp: negative p polynom, qq: q polynom
start algorithm

void doit (short bComputeAllFocalValues, int jacobian=false)
 computes either all focal values (=maxFocalValuesToCompute) or (first vanished +1) if bComputeAllFocalValues is false.
void doitNew (short bComputeAllFocalValues, int jacobian)
 starts the fast_Frommer algorithm. Set references to polynoms minusp and q first, if not done already ! if bComputeAllFocalValues is false, algorithms halts on first nonzero focal value
void doitOld (short bComputeAllFocalValues, int jacobian)
template<int >
void doitx (short howManyFocalValues)
 computes only 'howManyFocalValues' focal values!
template<int >
void doitxNew (short howManyFocalValues)
 Computes first 'howManyFocalValues' focal values. Set references to polynoms minusp and q first, if not done already (setPolynoms)! / TODO: doit2 /.
template<int >
void doitxOld (short howManyFocalValues)
get

const TRinggetRing () const
const TRinggetRingRef () const
result access

TRing::ElementType & getFocalValue (int pos) const
 get the i-th focal value, (i=pos and smallest i is 1)
void getComputedFocalValues (vector< typename TRing::ElementType > &computedFV) const
short getSuccessiveVanishedFocalValuesCount () const
 get the count number of the first vanished focal values
short getComputedFocalValuesNum () const
short getMaxFocalValuesToCompute () const

Public Attributes

TRing::ElementType * computedFocalValues
 size: (maxFocalValuesToCompute + 1)

Protected Member Functions

safety

void wellDefined ()
Debug IO

template<class TemplateMatrix >
void outputMatrix (TemplateMatrix *mat) const
 for debugging:
void outputMatrices () const
 for debugging:
frommer

void compute_dyA_and_dxA ()
 computes dyA, dxA, for A- monoms with degree = currentDegree -1 , see http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node7.html#fast_Frommer_verfahren and http://www.old.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/MagnoX, ableitung(
void perform_the_A_Step ()
 the A-Step in Frommer algorithm,
see http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node12.html
void perform_the_even_A_Step ()
 the even A-Step in Frommer algorithm,
see http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node14.html
void perform_the_odd_A_Step ()
 the A-Step in Frommer algorithm,
see http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node13.html
void perform_generic_C_Step ()
void perform_C_Step ()
 C-Step
see http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node11.html.
void perform_fast_C_Step ()
void perform_first_C_Step ()
void perform_C_StepDeg3 ()
void perform_inner_C_Step (register typename TRing::ElementType *const b0, register const typename TRing::ElementType *const p0, register const typename TRing::ElementType *const q0, register const typename TRing::ElementType *const da0, short _n)
 the nongeneric inner_C_Step
void perform_fast_inner_C_Step (register typename TMatrixXY_0Type::CoefficientType &b0, register const typename TRing::ElementType &p0, register const typename TRing::ElementType &q0, register const typename TRing::ElementType &da0, short _n)

Private Attributes

std::string name_m
const TRing *const ring1
 The Ring.
const RingType::FieldType & field_ref_m
const short maxFocalValuesToCompute
const short maxDegree
TPolynomXY const * q
 Pointer af ein Q-Polynom.
TPolynomXY const * minusp
 Pointer auf das negierte p-Polynom im Frommer-Algorithmus.
TPolynomXYPair pq
 hier habe ich testweise p und q in einer Datenstruktur zusammengefasst
TMatrixXYType *const A
TMatrixXYPairType *const dA
 contains (dxA, dyA)-pairs!
TMatrixXYType *const B
TMatrixXY_0Type *const B0
const TRing::ScalarType *const a_table
 Hilfsvariable fuer den A-Schritt, siehe createLowATable().
short int currentDegree
short int lastDegree
short currFocalValuePos

init



void init ()
 initialise matrices A, B, dxA and dyA
static const TRing::ScalarType
*const 
createLowATable (int maxDegree, const TRing *_ring)
 berechnet eine Hilfsvariable fuer den geraden A-Schritt,
siehe klein 'a' in http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node14.html

Detailed Description

template<class TFrommerDefs, int variant>
class nCenterFocus::fast_Frommer< TFrommerDefs, variant >

Implemets the Frommer algorithm. The code is more or less optimized, therefore see nCenterFocus::Frommer for human readable implementation.

Precondition:
works only with special design of the classes i_matrixpair and TPolynom. For detail see 'perform_C_Step' and 'perform_inner_C_Step()'. Data structure is accessed directly (breaking OOD-principles) This precondition is checked only in Debug-Mode (compile with DEBUG=YES ).
Todo:
eventuell die Pointer auf die Polynome p und Q immer zu Beginn uebergeben -so hat man zum einen nicht mehr das PRoblem mit setPolynoms, und zum anderen kann so der Grad der Polynome nicht plötztlich verändert werden!
Todo:
Mehrere frommer-Varianten implementieren. - teilweise Umgesetzt
Todo:
die asserts in perform_C_Step in TESTS umwandeln.
Todo:
sollte ein Polynom mit dem Ring templatisiert sein , und der Ring enthält dann den Elementtyp ? Normalerweise ja.. noch ausstehend.

Definition at line 57 of file fast_frommer.h.


Member Typedef Documentation

template<class TFrommerDefs , int variant>
typedef TFrommerDefs::RingType nCenterFocus::fast_Frommer< TFrommerDefs, variant >::RingType

Definition at line 63 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
typedef TFrommerDefs::TMatrixXY_0Type nCenterFocus::fast_Frommer< TFrommerDefs, variant >::TMatrixXY_0Type

Definition at line 68 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
typedef TFrommerDefs::TMatrixXYPairType nCenterFocus::fast_Frommer< TFrommerDefs, variant >::TMatrixXYPairType

Definition at line 70 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
typedef TFrommerDefs::TMatrixXYType nCenterFocus::fast_Frommer< TFrommerDefs, variant >::TMatrixXYType

Definition at line 67 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
typedef TFrommerDefs::PolynomXYType nCenterFocus::fast_Frommer< TFrommerDefs, variant >::TPolynomXY

Definition at line 65 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
typedef TFrommerDefs::PolynomXYPairType nCenterFocus::fast_Frommer< TFrommerDefs, variant >::TPolynomXYPair

Definition at line 72 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
typedef TFrommerDefs::RingType nCenterFocus::fast_Frommer< TFrommerDefs, variant >::TRing

Definition at line 61 of file fast_frommer.h.


Constructor & Destructor Documentation

template<class TFrommerDefs , int variant>
nCenterFocus::fast_Frommer< TFrommerDefs, variant >::fast_Frommer ( short  m,
const TRing rr 
) [inline]

Definition at line 39 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
nCenterFocus::fast_Frommer< TFrommerDefs, variant >::~fast_Frommer (  )  [inline, virtual]

Definition at line 139 of file fast_frommer.h.


Member Function Documentation

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::compute_dyA_and_dxA (  )  [inline, protected]

bildet dyA, dxA fuer Monome vom Grad 'currenDegree-1' siehe http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node7.html#fast_Frommer_verfahren

Dabei ist (dxA, dyA) in dA abgelegt.

Todo:
Optimierung in der inneren Schleife lassen sich zwei weitere Additionen eliminieren
Precondition:
Achtung, funktioniert nur bei einem bestimmten Design von dA. Dies wird, soweit ich weiss, im Konstruktor von fast_Frommer überprüft.

Definition at line 293 of file fast_frommer.h.

Referenced by nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxNew(), and nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxOld().

template<class TFrommerDefs , int variant>
const TFrommerDefs::RingType::ScalarType *const nCenterFocus::fast_Frommer< TFrommerDefs, variant >::createLowATable ( int  maxDegree,
const TRing ring1 
) [inline, static, protected]

Berechnet eine Hilfsvariable fuer den geraden A-Schritt, welche wiederverwendet werden kann.
Siehe http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node14.html

Todo:
Aufbau von local_a_table genau beschreiben!

Definition at line 168 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doit ( short  bComputeAllFocalValues,
int  jacobian = false 
) [inline]

Definition at line 1590 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitNew ( short  bComputeAllFocalValues,
int  jacobian 
) [inline]
Precondition:
vor dem Start muessen die richtigen Polynome ueber setPolynoms() gesetzt werden. init() wird in setPolynoms() aufgerufen
Note:
Optimierung komischer Effekt: wird hier ein weiterer Funktionsparameter hinzugefügt, so läuft das Programm 3x so lange!

Definition at line 1621 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitOld ( short  bComputeAllFocalValues,
int  jacobian 
) [inline]

Definition at line 1828 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
template<int tHowManyTimes>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitx ( short  howManyFocalValues  )  [inline]
template<class TFrommerDefs , int variant>
template<int tHowManyTimes>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitx ( short  howManyFocalValues  )  [inline]

Definition at line 1318 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
template<int tHowManyTimes>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxNew ( short  howManyFocalValues  )  [inline]
template<class TFrommerDefs , int variant>
template<int tHowManyTimes>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxNew ( short  howManyFocalValues  )  [inline]
Todo:
Test implementieren, welcher nachweist das perform_first_C_Step und perform_c_step in der ersten Stufe und perform_fast_C_Step immer äquivalent sind für epsPrecision=0

Definition at line 1342 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
template<int tHowManyTimes>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxOld ( short  howManyFocalValues  )  [inline]
template<class TFrommerDefs , int variant>
template<int tHowManyTimes>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxOld ( short  howManyFocalValues  )  [inline]

Definition at line 1510 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::getComputedFocalValues ( vector< typename TRing::ElementType > &  computedFV  )  const
template<class TFrommerDefs , int variant>
short nCenterFocus::fast_Frommer< TFrommerDefs, variant >::getComputedFocalValuesNum (  )  const [inline]
template<class TFrommerDefs , int variant>
TFrommerDefs::RingType::ElementType & nCenterFocus::fast_Frommer< TFrommerDefs, variant >::getFocalValue ( int  pos  )  const [inline]

liefert die i-te Strudelgroesse, falls diese berechnet wurde, i=pos startet bei 1.

Note:
die Anzahl der berechneten Strudelgroessen ist currFocalValuePos-1
Todo:
code ist doppelt vorhanden...

Definition at line 1957 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
short nCenterFocus::fast_Frommer< TFrommerDefs, variant >::getMaxFocalValuesToCompute (  )  const [inline]
template<class TFrommerDefs , int variant>
const TFrommerDefs::RingType * nCenterFocus::fast_Frommer< TFrommerDefs, variant >::getRing (  )  const [inline]

Definition at line 23 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
const TFrommerDefs::RingType & nCenterFocus::fast_Frommer< TFrommerDefs, variant >::getRingRef (  )  const [inline]

Definition at line 29 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
short nCenterFocus::fast_Frommer< TFrommerDefs, variant >::getSuccessiveVanishedFocalValuesCount (  )  const [inline]

Definition at line 1984 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::init (  )  [inline, protected]
template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::outputMatrices (  )  const [inline, protected]
template<class TFrommerDefs , int variant>
template<class TemplateMatrix >
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::outputMatrix ( TemplateMatrix *  mat  )  const [inline]

Definition at line 1288 of file fast_frommer.cpp.

template<class TFrommerDefs , int variant>
template<class TemplateMatrix >
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::outputMatrix ( TemplateMatrix *  mat  )  const [inline, protected]
template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_C_Step (  )  [inline, protected]

der C-Schritt, siehe http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node11.html

Todo:
optimierung perform_C_Step mit degree parametrisieren - spart switch case! - bringt nur 5 Prozent

Definition at line 479 of file fast_frommer.h.

Referenced by nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxNew(), and nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxOld().

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_C_StepDeg3 (  )  [inline, protected]
template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_fast_C_Step (  )  [inline, protected]
Todo:
frommer mit degree beim Erzeugen parametrisieren und

Definition at line 906 of file fast_frommer.h.

Referenced by nCenterFocus::fast_Frommer< TFrommerDefs, variant >::doitxNew().

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_fast_inner_C_Step ( register typename TMatrixXY_0Type::CoefficientType &  b0,
register const typename TRing::ElementType &  minusp0,
register const typename TRing::ElementType &  q0,
register const typename TRing::ElementType &  da0,
short  _n 
) [inline, protected]
Todo:
Optimierung: damit hier sse-Register genutzt werden können, muss man wieder getrennte dXA und dyA einsetzen.

Definition at line 414 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_first_C_Step (  )  [inline, protected]
template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_generic_C_Step (  )  [inline, protected]
Todo:
Test fuer die Allgemeine Implementierung fehlte - Fehler wurde nur gefunden, weil case2 rausgenommen wurde.

Definition at line 642 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_inner_C_Step ( register typename TRing::ElementType *const   b0,
register const typename TRing::ElementType *const   minusp0,
register const typename TRing::ElementType *const   q0,
register const typename TRing::ElementType *const   da0,
short  _n 
) [inline, protected]

die 'normale' perform_inner_C_Step-Version. Der C-Schritt aus dem fast_Frommer-Algorithmus wurde in eine aeussere Schleife (ueber die Polynomkoeffizienten) und eine innere Schleife (uber die in einen Schritt betroffenen B-Matrix-Eintraege) aufteilt. Die innere Schleife wurde optimiert.

Weitere Optimierungsmoeglichkeit: die Addition in b = b + p(j,l)*dya bzw. in b = b + q(j,l)*dxa nicht im std::endlichen Koerper, sondern in Z durchfuehren, und erst vor dem Verlassen der aeusseren C-Schritt-Schleife

fuer jeden betroffenen B-Eintrag plus einen schreibenden Tabellenzugriff. Bei Polynomen dritten Grades hat man in einem C-Schritt etwa 9 Durchgaenge durch einen betroffenen B-Eintrag. (haengt auch vom aktuellen_grad ab) Mir ist vorerst nicht ersichtlich, das die eben beschriebene Veraenderung fuer Polynome niedrigen Grades eine Beschleunigung bringen.

Todo:
optimierung Verbesserungsidee: Die Multiplikation durchführen, aber die Addition nur mitm Integar ud Konvertierung nur einmalig zum Schluss! beim nxnxn bringt das eine Verbesserung !!! desweiteren könnte man bei eps=0 die Multiplikation auf der CPU über die Addition der Exponenten bilden !

// todo, da q0 zuletzt benutxy wird, qo evtl an den anfang (vor b0) packen?

Definition at line 339 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_the_A_Step (  )  [inline, protected]
template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_the_even_A_Step (  )  [inline, protected]

der A-Schritt des Frommer-Algorithmus.
siehe http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node14.html

Todo:

Optimierung: man könnte sich die Inversion von p_a_table_loc[] sparen, wenn man dafür eine Tabelle anlegt. andererseits muss man dann einen Zeiger mehr mit sich rumschleppen und das könnte wieder Performance kosten.

Optimierung: eventuell wäre es doch schlauer, als Körperoperation sub und div zuzulassen und hier auch zu verwenden, da je nach Implementation add (a,addinv(b)) evtl langsamer als sub (a,b) ist.

Definition at line 1179 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::perform_the_odd_A_Step (  )  [inline, protected]

der A-Schritt des Frommer-Algorithmus.
siehe http://www.uni-bayreuth.de/departments/math/org/mathe6/publ/da/hoehn/node13.html

Note:
ist langsamer als die alte Variante mit den 'getCoeffRef

Definition at line 1094 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::printStageTimings ( std::ostream &  os  )  const [inline]

Definition at line 1998 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::setName ( std::string  name  )  [inline]
template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::setPolynoms ( const TPolynomXY *const   minuspp,
const TPolynomXY *const   qq 
) [inline]

initializes minusp , q

die vom fast_Frommer-Algoritmus zu Untersuchenden Funktionen werden als Parameter uebergeben. Das Q-Polynom wird unveraendert beibehalten, und das p-Polynom wird als bereits negiert erwartet und deshalb ebenfalls unveraendert beibehalten.

Parameters:
qq q polynom
minuspp negative p polynom

Definition at line 256 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
void nCenterFocus::fast_Frommer< TFrommerDefs, variant >::wellDefined (  )  [inline, protected]

Test, ob der Polynomtyp TPolynomXY fuer diese Frommer-Implementierung geeignet ist.

Test, ob der Matrixtyp TMatrixXYType (A,B) fuer diese Frommer-Implementierung geeignet ist.

Test, ob der Matrixtyp TMatrixXYPairType (dA) fuer diese Frommer-Implementierung geeignet ist.

Definition at line 79 of file fast_frommer.h.


Member Data Documentation

template<class TFrommerDefs , int variant>
TMatrixXYType* const nCenterFocus::fast_Frommer< TFrommerDefs, variant >::A [private]
template<class TFrommerDefs , int variant>
const TRing::ScalarType* const nCenterFocus::fast_Frommer< TFrommerDefs, variant >::a_table [private]

Definition at line 134 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
TMatrixXYType* const nCenterFocus::fast_Frommer< TFrommerDefs, variant >::B [private]
template<class TFrommerDefs , int variant>
TMatrixXY_0Type* const nCenterFocus::fast_Frommer< TFrommerDefs, variant >::B0 [private]

Definition at line 131 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
TRing::ElementType* nCenterFocus::fast_Frommer< TFrommerDefs, variant >::computedFocalValues
template<class TFrommerDefs , int variant>
short int nCenterFocus::fast_Frommer< TFrommerDefs, variant >::currentDegree [private]
template<class TFrommerDefs , int variant>
short nCenterFocus::fast_Frommer< TFrommerDefs, variant >::currFocalValuePos [private]
template<class TFrommerDefs , int variant>
TMatrixXYPairType* const nCenterFocus::fast_Frommer< TFrommerDefs, variant >::dA [private]

Definition at line 125 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
const RingType::FieldType& nCenterFocus::fast_Frommer< TFrommerDefs, variant >::field_ref_m [private]

Definition at line 101 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
short int nCenterFocus::fast_Frommer< TFrommerDefs, variant >::lastDegree [private]
template<class TFrommerDefs , int variant>
const short nCenterFocus::fast_Frommer< TFrommerDefs, variant >::maxDegree [private]

Definition at line 105 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
const short nCenterFocus::fast_Frommer< TFrommerDefs, variant >::maxFocalValuesToCompute [private]
template<class TFrommerDefs , int variant>
TPolynomXY const* nCenterFocus::fast_Frommer< TFrommerDefs, variant >::minusp [private]

Definition at line 114 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
std::string nCenterFocus::fast_Frommer< TFrommerDefs, variant >::name_m [private]
template<class TFrommerDefs , int variant>
TPolynomXYPair nCenterFocus::fast_Frommer< TFrommerDefs, variant >::pq [private]

Definition at line 118 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
TPolynomXY const* nCenterFocus::fast_Frommer< TFrommerDefs, variant >::q [private]

Definition at line 111 of file fast_frommer.h.

template<class TFrommerDefs , int variant>
const TRing* const nCenterFocus::fast_Frommer< TFrommerDefs, variant >::ring1 [private]
Note:
Speicheranforderungen und Initialisierungen sind extrem teuer, deswegen
1. merke bei einem Algorithmusdurchgang den maximal augetretenen Grad,
2. führe bei einem neuen Durchgang keine neue Speicherreservierung durch, 3. sondern inialisiere nur den verwendeten Speicherbereich neu, siehe init()

Definition at line 99 of file fast_frommer.h.


The documentation for this class was generated from the following files:
Generated on Tue Nov 23 13:10:53 2010 for centerfocus by  doxygen 1.6.3