IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Boost C++ Discussion :

[ublas] matrix<double> vers double * et inversement


Sujet :

Boost C++

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 65
    Points
    65
    Par défaut [ublas] matrix<double> vers double * et inversement
    Bonjour,

    Suite à mes recherches et autre googelleries, je suis à la recherche de solutions permettant de :
    • passer d'un matrix<double> vers un const double *
    • passer d'un const double * à un matrix<double>

    un peu à la manière de c_str() d'une string...

    L'idée est de transférer mes données dans et depuis une fonction issue d'une lib externe pour la réalisation d'analyses mathématiques.

    Avez vous des pistes à me donner, car la doc ne veut pas me livrer tous ses secrets

    Merci tout plein !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    D'après la doc il existe la fonction data, et c'est certainement ce que tu cherches.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    Merci pour cette piste.

    J'avais essayé data, mais en vain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    bool inputFunction(uint32_t size, double *data)
    { [...] }
     
    boost::numeric::ublas::matrix<double> matData;
    [...]
    inputFunction(matData.size1() * matData.size2(), matData.data());
    avec comme erreur :
    note: no known conversion for argument 2 from ‘boost::numeric::ublas::matrix<double>::array_type {aka boost::numeric::ublas::unbounded_array<double, std::allocator<double> >}’ to ‘const double*’
    J'ai essayé de caster avec un static_cast<double *>, mais ça n'a pas fonctionné non plus

    En attendant, je viens d'essayer cette solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test->push_inputData(m_inputValues.size1() * m_inputValues.size2(), &m_inputValues(0, 0));
    Ça à l'air de fonctionner. Je verrai bien si sur les grandes matrices, il n'y a pas de problèmes complémentaires...

    En tous cas, merci beaucoup.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 963
    Points
    32 963
    Billets dans le blog
    4
    Par défaut
    Il est indiqué que data retourne le array_type, qui est à priori un vector. Donc data().data() retournerait std::vector::data.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/01/2009, 10h30
  2. Conversion double binaire vers décimal
    Par mess-mate dans le forum C++
    Réponses: 17
    Dernier message: 07/12/2008, 00h44
  3. Réponses: 5
    Dernier message: 03/09/2007, 13h52
  4. Conversion hexa vers double
    Par EnigmuS dans le forum C
    Réponses: 13
    Dernier message: 16/05/2007, 14h06
  5. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo