Ada_Ru форум

Обсуждение языка Ада

GNAT2012 Ошибка в Ada.Numerics.Generic_Real_Arrays ?

Оставить новое сообщение

Сообщения

KsiCom
GNAT2012 Ошибка в Ada.Numerics.Generic_Real_Arrays ?
2012-07-13 12:37:45

Кажется в функции умножения вектора на матрицу есть ошибка.

 

Ada.Numerics.Generic_Real_Arrays;

function "*" (Left : Real_Vector; Right : Real_Matrix) return Real_Vector;

Программа:

with Ada.Numerics.Real_Arrays;

use Ada.Numerics.Real_Arrays;

with Ada.Text_IO;

use Ada.Text_IO;

 

procedure Test1 is

   A : constant Real_Vector := (1.0, 2.0);

   B : constant Real_Matrix :=

     ((3.0, 5.0),

      (7.0, 8.0));

   C : constant Real_Vector := A * B;

begin

   for i in C'Range (1) loop

      Put_Line (C (i)'Img);

   end loop;

end Test1;

 

Результаты на GNAT2011 и GNAT2012

 

------ GNAT 2011 -------

 

[ksicom@x58l GNAT_BUG2]$ ./test1

 1.70000E+01

 2.10000E+01

 

------ GNAT 2012 -------

 

[ksicom@x58l GNAT_BUG2]$ ./test1

 1.00000E+01

 2.60000E+01

 

Такая ошибка отлавливается элементарным тестом. Векторно-матричные операции вроде включены в стандарт Ada2005. Значит по идее должны быть тесты, проверяющие соответствие  стандарту. На эту функцию их получается нет или как? Где в стандартной библиотеке проходит граница между тем, чем можно спокойно пользоваться и тем, что лучше подменять собственными надёжными велосипедами?

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти