Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations forums :
    Inscription : juin 2006
    Messages : 917
    Points : 373
    Points
    373

    Par défaut Modélisation de matrice

    Bonjour, j'aurais besoin d'un coup de main pour modéliser une matrice.
    J'ai un modèle en C, page 19 de ce document : http://http://www.google.fr/url?q=ht...JYvxq5zbNZtP8Q

    Voici ce que j'ai commencé à faire, je sais je travaille à l'envers, mais je m'amuse plutôt ici.

    Code ada :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    with PragmARC.Complex;
    
    package Quantum is
    
       package Complex is new  PragmARC.Complex(Long_Float);
    
       subtype Qubit_Type is Complex.Number;
       -- Les Qubit sont des complexes.
    
       use Complex;
    
    
    end Quantum;



    Code ada :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    package Quantum.Matrix is
    
    
       type Quantum_Matrix_Type is array (Positive range <>, Positive range <>) of Qubit_Type;
       -- Une matrice est un tableau d'élément de deux dimensions.
    
       protected type Matrix_Type
         (
          Lines   : Positive;
          Cols : Positive
         )
          is
    
    
          private
             Quantum_Matrix : Quantum_Matrix_Type(1..Lines, 1..Cols);
       end Matrix_Type;
    
    
    end Quantum.Matrix;


    Déjà la y a un truc qui me gène, c'est la visibilité sur le type Quantum_Matrix_Type.

    Quelqu'un s'y connait en C et en Ada ?

    Merci pour vos réponses.

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    juin 2006
    Messages
    917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations forums :
    Inscription : juin 2006
    Messages : 917
    Points : 373
    Points
    373

    Par défaut

    Si non, j'ai trouvé dans PragmARC une bibliothèque de matrice, mais je sais pas quoi mettre pour la valeur Neg_One.

    Et si non, j'ai essayé ça :

    Code ada :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with Ada.Numerics.Generic_Complex_Types;
    with Ada.Numerics.Generic_Real_Arrays;
    procedure Main is
       package Quantum is new Ada.Numerics.Generic_Complex_Types(Float);
       package Matrix is new Ada.Numerics.Generic_Real_Arrays(Float);
    
    
    begin
    
       null;
    end Main;

    Je m'aperçois que mon compilo n'est pas au point :
    e# gnatmake main.adb
    gnatbind -x main.ali
    gnatlink main.ali
    /usr/bin/ld: cannot find -llapack
    collect2: ld returned 1 exit status
    gnatlink: error when calling /usr/bin/gcc-4.4
    gnatmake: *** link failed.

    Que se passe t- il ?

    Merci pour vos réponses.

  3. #3
    Nouveau Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : avril 2012
    Messages : 27
    Points : 32
    Points
    32

    Par défaut

    Bonjour,


    tout d'abord, le lien vers ton document est soit faux soit cassé. Ensuite, je ne vois pas quel problème de visibilité il pourrait y avoir sur Quantum_Matrix_Type. Ce n'est pas parce que ton type protégé a une composante privée que le type de cette composante doit être nécessairement privé.

    Enfin, je ne vois pas de paramètre générique Neg_One dans lesdits packages. Je dois louper une étape

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •