0

Ada の Pplot は、ada.numerics.real_arrays を使用するファイルを必要とし、他の場所での使用を防ぎます。同時に、ベクトル操作はそれによって隠され、その結果、明らかに ada のすべての pplot の例は要素単位の操作を使用し、そもそも特殊化された線形代数型の目的を無効にします。

私は間違ったことをしているだけですか、それともplplotの本当の制限ですか?

例として:

with ada.text_io;  use  ada.text_io;   -- 'use' allows using library functions without fuilly qualified names
with ada.float_text_io; use ada.float_text_io;
--with ada.numerics.real_arrays; use ada.numerics.real_arrays;

with
PLplot_Auxiliary,
PLplot;
use
PLplot_Auxiliary,
PLplot;

 procedure Simple is
   procedure Put (X : Real_Vector) is -- vector version of above, 1D instead of 2D
    type Fixed is delta 0.01 range -100.0..100.0;
   begin
     for I in X'Range (1) loop
       Put (Fixed'Image (Fixed (X (I))));
       New_Line;
     end loop;
   end Put;

    x, y : Real_Vector(-10 .. 10);


 begin
    for i in x'range loop
       x(i) := float(i);
       y(i) := x(i)**2;
       y := x+y; --This line cause compilation to fail because plplot_auxiliary does not provide "+" for Real_Vector
    end loop;

    put(x);

    Initialize_PLplot; -- Call this only once.
    Simple_Plot(x, y); -- Make the plot.
    End_PLplot;        -- Call this only once.
 end Simple;

ビルド:

gnatmake -aI/usr/share/ada/adainclude/plplotadad -aL/usr/lib64/ada/adalib/plplotadad simple.adb \
-cargs `PKG_CONFIG_PATH="/usr/lib64/pkgconfig:%{_PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig" pkg-config  --cflags plplotd-ada` -largs  `PKG_CONFIG_PATH="/usr/lib64/pkgconfig:%{_PKG_CONFIG_PATH}:/usr/lib64/pkgconfig:/usr/share/pkgconfig" pkg-config  --libs plplotd-ada`
gcc -c -I/usr/share/ada/adainclude/plplotadad -I/usr/include/plplot simple.adb
gnatbind -aI/usr/share/ada/adainclude/plplotadad -aO/usr/lib64/ada/adalib/plplotadad -x simple.ali
gnatlink simple.ali -lplplotadad -lplplotd
4

1 に答える 1

1

libplplot-ada1-devDebian/Jessie のパッケージによって提供されるソース ファイルを見るとPLPlot_Auxilary、Ada 95 バージョンまたは Ada 2005 バージョンのいずれかでパッケージを提供できるようです。Ada 2005 バージョンは Ada 数値パッケージを使用しますが、Ada 95 バージョンは使用しません。

于 2016-04-17T10:28:34.750 に答える