DGtal  1.1.0
SimpleIncremental2x2DetComputer.h
1 
17 #pragma once
18 
31 #if defined(SimpleIncremental2x2DetComputer_RECURSES)
32 #error Recursive header files inclusion detected in SimpleIncremental2x2DetComputer.h
33 #else // defined(SimpleIncremental2x2DetComputer_RECURSES)
34 
35 #define SimpleIncremental2x2DetComputer_RECURSES
36 
37 #if !defined SimpleIncremental2x2DetComputer_h
38 
39 #define SimpleIncremental2x2DetComputer_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 
46 #include "DGtal/kernel/NumberTraits.h"
47 #include "DGtal/kernel/CEuclideanRing.h"
49 
50 namespace DGtal
51 {
52 
54  // template class SimpleIncremental2x2DetComputer
92  template <typename TArgumentInteger, typename TResultInteger = TArgumentInteger>
94  {
95  // ----------------------- Types ----------------------------------------
96  public:
100  typedef TArgumentInteger ArgumentInteger;
110 
114  typedef TResultInteger ResultInteger;
116 
125 
126  // ----------------------- Standard services ------------------------------
127  public:
128 
133 
139 
146 
151 
152  // ----------------------- Interface --------------------------------------
153  public:
154 
161  void init(const ArgumentInteger& aA, const ArgumentInteger& aB);
162 
172 
183  const ArgumentInteger& aX, const ArgumentInteger& aY);
184 
185 
190  void selfDisplay ( std::ostream & out ) const;
191 
196  bool isValid() const;
197 
198  // ------------------------- Private Datas --------------------------------
199  private:
213  mutable ResultInteger myAY;
217  mutable ResultInteger myBX;
226  mutable ResultInteger myX;
231  mutable ResultInteger myY;
236  mutable ResultInteger myDX;
241  mutable ResultInteger myDY;
254 
256  // ------------------------- Hidden services ------------------------------
257  protected:
258 
259 
260  // ------------------------- Internals ------------------------------------
261  private:
262 
268  void partialComputation() const;
269 
270  }; // end of class SimpleIncremental2x2DetComputer
271 
272 
279  template <typename TI, typename TO>
280  std::ostream&
281  operator<< ( std::ostream & out, const SimpleIncremental2x2DetComputer<TI,TO> & object );
282 
283 } // namespace DGtal
284 
285 
287 // Includes inline functions.
288 #include "DGtal/geometry/tools/determinant/SimpleIncremental2x2DetComputer.ih"
289 
290 // //
292 
293 #endif // !defined SimpleIncremental2x2DetComputer_h
294 
295 #undef SimpleIncremental2x2DetComputer_RECURSES
296 #endif // else defined(SimpleIncremental2x2DetComputer_RECURSES)
DGtal::SimpleIncremental2x2DetComputer::Integer
ArgumentInteger Integer
Definition: SimpleIncremental2x2DetComputer.h:105
DGtal::SimpleIncremental2x2DetComputer::SimpleIncremental2x2DetComputer
SimpleIncremental2x2DetComputer()
DGtal::SimpleIncremental2x2DetComputer::selfDisplay
void selfDisplay(std::ostream &out) const
DGtal::SimpleIncremental2x2DetComputer
Aim: Small class useful to compute, in an incremental way, the determinant of a 2x2 matrix from its f...
Definition: SimpleIncremental2x2DetComputer.h:94
DGtal::SimpleIncremental2x2DetComputer::~SimpleIncremental2x2DetComputer
~SimpleIncremental2x2DetComputer()
DGtal::SimpleIncremental2x2DetComputer::Value
ResultInteger Value
Definition: SimpleIncremental2x2DetComputer.h:120
DGtal::SimpleIncremental2x2DetComputer::operator()
ResultInteger operator()(const ArgumentInteger &aX, const ArgumentInteger &aY) const
DGtal::SimpleIncremental2x2DetComputer::myDet
ResultInteger myDet
Definition: SimpleIncremental2x2DetComputer.h:221
DGtal::SimpleIncremental2x2DetComputer::myDX
ResultInteger myDX
Definition: SimpleIncremental2x2DetComputer.h:236
DGtal::SimpleIncremental2x2DetComputer::myY
ResultInteger myY
Definition: SimpleIncremental2x2DetComputer.h:231
DGtal::SimpleIncremental2x2DetComputer::myBX
ResultInteger myBX
Definition: SimpleIncremental2x2DetComputer.h:217
DGtal::SimpleIncremental2x2DetComputer::argument_type
ArgumentInteger argument_type
Definition: SimpleIncremental2x2DetComputer.h:109
DGtal::SimpleIncremental2x2DetComputer::myAY
ResultInteger myAY
Definition: SimpleIncremental2x2DetComputer.h:213
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition: ClosedIntegerHalfPlane.h:49
DGtal::SimpleIncremental2x2DetComputer::myDDet
ResultInteger myDDet
Definition: SimpleIncremental2x2DetComputer.h:253
DGtal::SimpleIncremental2x2DetComputer::myX
ResultInteger myX
Definition: SimpleIncremental2x2DetComputer.h:226
DGtal::SimpleIncremental2x2DetComputer::ArgumentInteger
TArgumentInteger ArgumentInteger
Definition: SimpleIncremental2x2DetComputer.h:100
DGtal::SimpleIncremental2x2DetComputer::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CEuclideanRing< ArgumentInteger >))
DGtal::concepts::CEuclideanRing
Aim: Defines the mathematical concept equivalent to a unitary commutative ring with a division operat...
Definition: CEuclideanRing.h:88
DGtal::SimpleIncremental2x2DetComputer::myA
ResultInteger myA
Definition: SimpleIncremental2x2DetComputer.h:204
DGtal::operator<<
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
DGtal::SimpleIncremental2x2DetComputer::isValid
bool isValid() const
DGtal::SimpleIncremental2x2DetComputer::ResultInteger
TResultInteger ResultInteger
Definition: SimpleIncremental2x2DetComputer.h:114
DGtal::SimpleIncremental2x2DetComputer::myADY
ResultInteger myADY
Definition: SimpleIncremental2x2DetComputer.h:245
DGtal::SimpleIncremental2x2DetComputer::init
void init(const ArgumentInteger &aA, const ArgumentInteger &aB)
DGtal::SimpleIncremental2x2DetComputer::myZero
const ResultInteger myZero
Definition: SimpleIncremental2x2DetComputer.h:255
DGtal::SimpleIncremental2x2DetComputer::myDY
ResultInteger myDY
Definition: SimpleIncremental2x2DetComputer.h:241
DGtal::SimpleIncremental2x2DetComputer::myBDX
ResultInteger myBDX
Definition: SimpleIncremental2x2DetComputer.h:249
DGtal::SimpleIncremental2x2DetComputer::operator()
ResultInteger operator()(const ArgumentInteger &aA, const ArgumentInteger &aB, const ArgumentInteger &aX, const ArgumentInteger &aY)
DGtal::SimpleIncremental2x2DetComputer::SimpleIncremental2x2DetComputer
SimpleIncremental2x2DetComputer(const SimpleIncremental2x2DetComputer &other)
DGtal::SimpleIncremental2x2DetComputer::operator=
SimpleIncremental2x2DetComputer & operator=(const SimpleIncremental2x2DetComputer &other)
DGtal::SimpleIncremental2x2DetComputer::partialComputation
void partialComputation() const
DGtal::SimpleIncremental2x2DetComputer::myB
ResultInteger myB
Definition: SimpleIncremental2x2DetComputer.h:209
DGtal::SimpleIncremental2x2DetComputer::result_type
ResultInteger result_type
Definition: SimpleIncremental2x2DetComputer.h:124