Изображение квадрата Дюрера

ООО АВТОМАТИКА плюс

Rambler's Top100

Рейтинг@Mail.ru

Часто задаваемые вопросы и ответы на них

Q: В каких версиях Delphi можно использовать Matrix32?

A: Matrix32 тестировался автором на Delphi 6, Delphi 7 и Delphi 2007. В Delphi.Net система работать не может.

Q: Существуют ли аналоги системы Matrix32?

A: Что касается других языков программирования, то аналоги наверняка есть. В том же C++ разработать подобную систему можно куда проще, чем в Delphi. Что касается Delphi, то нет более разработок с таким мощным и гибким вычислительным движком, как в Matrix32. Наверное в качестве наиболее схожего аналога стоит отметить платный сборник библиотек SDL Delphi Component Suite. Там есть очень много полезных математических функций. Есть поддержка библиотеки Lapack. Также стоит упомянуть набор библиотек от Дэвида Батлера, причем в этом наборе можно найти и многие полезные математические функции. Его разработки вы можете увидеть на сайте Delphi Fundamentals.

Q: Какие средства были использованы при разработке справочной системы Matrix32?

A: Для этих целей использовался весьма мощный инструмент генерации справочных систем time2help. Это инструмент стоит денег, однако я за него не платил не копейки, поэтому считаю своим долгом здесь его попиарить :)

Q: Стоило ли изобретать Matrix32, ведь в Delphi уже и так есть все необходимые типы данных, которых достаточно для решения любой задачи?

A: Да, действительно, в Delphi есть все необходимые структуры: статические массивы, динамические массивы, вариантные массивы. Но в каждой перечисленной структуре есть свои недостатки. Статические массивы зачастую самый затратный тип данных. При заранее неизвестном входном массиве данных программист зачастую делает статический массив таких размеров, которые позволили бы хранить в нем весь массив данных. Динамические массивы позволяют при выполнении программы изменять свои размеры, однако из-за подобных возможностей элементы массива оказываются разбросанными в памяти, и к таким массивам невозможно применять методы потоковой обработки данных. (Все это не относится к одномерным динамическим массивам). Вариантные массивы хранят данные более собранно, ими можно обмениваться с помощью технологии COM между приложениями, им можно динамически задавать любые размеры. Однако перечень типов возможных хранимых данных весьма ограничен. Размер хранимых в вариантном массиве элементов не может превышать 8 байт. Именно поэтому переменные типа Extended нельзя хранить в таком массиве. Matrix32 лишен всех перечисленных недостатков.

Q: Matrix32 достаточно весомый модуль. При одном только подключении данного модуля к VCL-проекту размер исполняемого файла увеличивается на 80 кбайт. Можно ли каким-нибудь образом уменьшить это значение?

A: Уменьшить это значение можно весьма существенно, если поколдовать с опциями условной компиляции. Отключение опции MatrixCheckRange дает выигрыш в 5 кбайт. Отключение опции RecreateEObj также даст выигрыш порядка 5 кбайт. Наибольший выигрыш должно дать отключение опции RegisterMatrixClasses. При отключении данной опции практически никакой код модуля Matrix32 линковаться не будет. Еще можно отключить опцию CreateBaseWorkspace, что также позволит уменьшить размер модуля. Отключите опцию RegisterMatrixClasses в том случае, если вы уверены, что все объекты модуля Matrix32 Вам не нужны. Но классы используемых объектов рекомендую все-таки зарегистрировать (иначе вам будут недоступны операции с потоками и двоичными файлами).

Логинов Дмитрий © 2005-2015