DGtal  1.5.beta
LinearAlgebra.h
1 
17 #pragma once
18 
31 #if defined(LinearAlgebra_RECURSES)
32 #error Recursive header files inclusion detected in LinearAlgebra.h
33 #else // defined(LinearAlgebra_RECURSES)
35 #define LinearAlgebra_RECURSES
36 
37 #if !defined LinearAlgebra_h
39 #define LinearAlgebra_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/kernel/CSpace.h"
46 #include "DGtal/base/ConceptUtils.h"
47 #include <boost/type_traits.hpp>
49 
50 namespace DGtal
51 {
52 
54  // template class LinearAlgebra
60  template <typename Space>
62  {
63  // ----------------------- Standard services ------------------------------
64 
66 
67  typedef typename Space::Integer Integer;
68  typedef typename Space::Point Point;
69  typedef typename Space::Vector Vector;
70  static const typename Space::Dimension dimension;
71 
72  static Integer determinant(const Point &a, const Point &b);
73 
74  // ----------------------- Standard services ------------------------------
75 
81  void selfDisplay(std::ostream &out) const;
82 
86  static bool isValid();
87 
88 
89  }; // end of class LinearAlgebra
90 
91 } // namespace DGtal
92 
93 
95 // Includes inline functions.
96 #include "DGtal/kernel/LinearAlgebra.ih"
97 
98 // //
100 
101 #endif // !defined LinearAlgebra_h
102 
103 #undef LinearAlgebra_RECURSES
104 #endif // else defined(LinearAlgebra_RECURSES)
TInteger Integer
Arithmetic ring induced by (+,-,*) and Integer numbers.
Definition: SpaceND.h:102
DGtal::Dimension Dimension
Copy of the type used for the dimension.
Definition: SpaceND.h:129
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: A utility class that contains methods to perform integral linear algebra.
Definition: LinearAlgebra.h:62
static Integer determinant(const Point &a, const Point &b)
Space::Integer Integer
Definition: LinearAlgebra.h:67
void selfDisplay(std::ostream &out) const
BOOST_CONCEPT_ASSERT((concepts::CSpace< Space >))
Space::Point Point
Definition: LinearAlgebra.h:68
static bool isValid()
Space::Vector Vector
Definition: LinearAlgebra.h:69
static const Space::Dimension dimension
Definition: LinearAlgebra.h:70
Aim: Defines the concept describing a digital space, ie a cartesian product of integer lines.
Definition: CSpace.h:106