GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/sot/core/memory-task-sot.hh Lines: 0 7 0.0 %
Date: 2023-03-13 12:09:37 Branches: 0 10 0.0 %

Line Branch Exec Source
1
/*
2
 * Copyright 2010,
3
 * François Bleibel,
4
 * Olivier Stasse,
5
 *
6
 * CNRS/AIST
7
 *
8
 */
9
10
#ifndef __SOT_MEMORY_TASK_HH
11
#define __SOT_MEMORY_TASK_HH
12
13
#include <sot/core/matrix-svd.hh>
14
#include <sot/core/task-abstract.hh>
15
16
#include "sot/core/api.hh"
17
18
/* --------------------------------------------------------------------- */
19
/* --- CLASS ----------------------------------------------------------- */
20
/* --------------------------------------------------------------------- */
21
22
namespace dynamicgraph {
23
namespace sot {
24
25
class SOT_CORE_EXPORT MemoryTaskSOT : public TaskAbstract::MemoryTaskAbstract {
26
 public:  //   protected:
27
  typedef Eigen::Map<Matrix, Eigen::internal::traits<Matrix>::Alignment>
28
      Kernel_t;
29
  typedef Eigen::Map<const Matrix, Eigen::internal::traits<Matrix>::Alignment>
30
      KernelConst_t;
31
32
  /* Internal memory to reduce the dynamic allocation at task resolution. */
33
  dynamicgraph::Vector err, tmpTask, tmpVar, tmpControl;
34
  dynamicgraph::Matrix Jt;  //( nJ,mJ );
35
36
  dynamicgraph::Matrix JK;  //(nJ,mJ);
37
38
  SVD_t svd;
39
  Kernel_t kernel;
40
41
  void resizeKernel(const Matrix::Index r, const Matrix::Index c) {
42
    if (kernel.rows() != r || kernel.cols() != c) {
43
      if (kernelMem.size() < r * c) kernelMem.resize(r, c);
44
      new (&kernel) Kernel_t(kernelMem.data(), r, c);
45
    }
46
  }
47
48
  Kernel_t &getKernel(const Matrix::Index r, const Matrix::Index c) {
49
    resizeKernel(r, c);
50
    return kernel;
51
  }
52
53
 public:
54
  /**
55
   * \param mJ is the number of joints
56
   * \param nJ the number of feature in the task
57
   **/
58
  MemoryTaskSOT(const Matrix::Index nJ = 0, const Matrix::Index mJ = 0);
59
60
  void display(std::ostream &os) const;
61
62
 private:
63
  void initMemory(const Matrix::Index nJ, const Matrix::Index mJ);
64
65
  Matrix kernelMem;
66
};
67
68
} /* namespace sot */
69
} /* namespace dynamicgraph */
70
71
#endif  // __SOT_MEMORY_TASK_HH