DGtal 1.3.0
Loading...
Searching...
No Matches
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
50namespace 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