Je suis en train de travailer avec une bibliothèque matricielle que j'ai trouvée ur GitHub, la bibliotheque Tiger (https://github.com/hosseinmoein/Tiger)
je voulais juste l'utiliser et la modifier un peu pour un projet perso sauf que je n'arrive même pas à la faire fonctionner.
C:\Users\Yolo974\Desktop\CodeBlocks\Test2.0\main.cpp|17|undefined reference to `hmma::Matrix<hmma::DenseMatrixBase, double>::operator()(unsigned int, unsigned int)'|
Les fichiers complets du header et du code de la bibliothèque Matrix.h étant vraiment longs pour le confort de votre lecture je met juste ici le code important :
Matrix.h (extrait) :
#pragma once
#include <future>
#include "DenseMatrixBase.h"
#include "SymmMatrixBase.h"
// ----------------------------------------------------------------------------
namespace hmma
{
template<template<class T> class BASE, class TYPE = double>
class Matrix : public BASE<TYPE> {
public:
using BaseClass = BASE<TYPE>;
using size_type = typename BaseClass::size_type;
using value_type = typename BaseClass::value_type;
using reference = typename BaseClass::reference;
using const_reference = typename BaseClass::const_reference;
using pointer = typename BaseClass::pointer;
using const_pointer = typename BaseClass::const_pointer;
public:
inline Matrix() = default;
inline Matrix (size_type row,
size_type col,
const_reference def_value = value_type ()) noexcept
: BaseClass (row, col, def_value) { }
inline reference operator() (size_type r, size_type c) noexcept;
inline const_reference operator() (size_type r, size_type c) const noexcept;
};
// ----------------------------------------------------------------------------
typedef Matrix<DenseMatrixBase, double> DDMatrix;
typedef Matrix<DenseMatrixBase, long double> DLDMatrix;
typedef Matrix<SymmMatrixBase, double> SDMatrix;
typedef Matrix<SymmMatrixBase, long double> SLDMatrix;
} // namespace hmma
Matrix.cpp (extrait) :
#include <math.h>
#include <algorithm> // std::max and min
#include "MathOperators.h"
#include "Matrix.h"
// ----------------------------------------------------------------------------
namespace hmma
{
template<template<class T> class BASE, class TYPE>
inline typename Matrix<BASE, TYPE>::reference
Matrix<BASE, TYPE>::operator () (size_type r, size_type c) noexcept {
return (BaseClass::at (r, c));
}
} // namespace hmma
Je précise tout de même qu'à la base le cpp etait un tcc dont j'ai recopié le code dans un cpp que j'ai mis dans mon projet car juste ajouter le tcc au projet ne marchais pas. Je suis sur Code::Blocks.
Je précise tout de même qu'à la base le cpp etait un tcc dont j'ai recopié le code dans un cpp que j'ai mis dans mon projet car juste ajouter le tcc au projet ne marchais pas. Je suis sur Code::Blocks.