2010-07-23 2 views
4

Поскольку Ada не обладает хорошими библиотеками для научных вычислений, мне было интересно, сможет ли кто-нибудь использовать математические функции Matlab, такие как eig (для вычисления собственных значений и собственных векторов) внутри Ada.Ada: сопряжение с Matlab

Я вижу, что существуют некоторые интерфейсы для simulink и Ada. Но я не являюсь пользователем Simulink. Я хотел бы просто использовать математические функции Matlab, возможно, с помощью функций и процедур Ada.

PS: В предыдущих документах Ada было много переговоров и обещаний создать хорошие числовые библиотеки, подобные NAG или NUMAL. Я действительно удивляюсь, почему это никогда не конкретизировалось успешно, и любая хорошая и надежная библиотека научных вычислений была доступна. Наверняка язык Ады не бледнеет перед любым другим языком научных вычислений, на мой взгляд.

Большое спасибо ...

ответ

2

Я не могу найти ничего об этом, что действительно немного удивительно.

Если у него есть интерфейс C, вы можете написать свои собственные привязки к необходимым вам процедурам. Просто используйте interfacing pragmas. Также будут полезны типы, определенные в пакете Ada.Interfaces.C. Приобретение вещей, связанных и протестированных в пользовательской привязке, может быть небольшим количеством проблем.

Кроме того, похоже, что последние версии Gnat поставляются с binding generator, которые могут создавать привязки Ada для вас из файлов заголовков C. Есть еще шесть таких инструментов available here, в том числе тот, который работает на Windows COM DLLs, о котором я хорошо слышал.

+0

Спасибо. Я начал использовать C-числовую библиотеку из Visual Numerics (www.vni.com). Мне нужно дать это испытание с Адой. 1 проголосуйте за всю информацию. – yCalleecharan

1

Очень легко использовать lapack от Ada. Для этого вам не нужно звонить Matlab. Lapcak - это та же самая библиотека, которую использует Matlab.

+0

Спасибо. Да, действительно, у Ады есть лапак. Я не считаю это настолько легким, что можно связать его с Ada. Есть ли какая-либо информация в Интернете с простыми примерами о том, как сделать сопряжение? – yCalleecharan