## История изменений программы.

[1.3.0 beta]

1. Исправлен вывод информации по команде PRINT=COMPINFO о точности вычислений.
2. Добавлен вывод гиперэллипсоида ошибок после работы команды MINIMIZE.
3. Добавлен вывод степени обусловленности задачи после работы команды MINIMIZE.
4. Добавлена новая важная возможность Robust-минимизации. См. команду ROBUSTM.
5. Исправлена утечка памяти при работе команды IMAGE=INTSCAN
6. Улучшена процедура извлечения электронографических кривых интенсивности из изображений дифракционных картин, особенно для картин с узкими кольцами (например от поликристаллов) и для дальней области обычных картин газовых образцов. Увеличено до 20-ти количество итераций, принятое по умолчанию.
7. Ключ IntExclBadPts больше не нужен и убран из поля BASE.
8. Добавлен ключ WriteWeightsImg в поле BASE для управления записью файла с весами точек на дифракционной картине.
9. Теперь можно "на лету" менять настройки UNEX с помощью многократного выполнения команды BASE в любом месте рабочего задания.
10. По самым свежим таблицам (из NIST) обновлены массы основных изотопов элементов.
11. Появился принципиально новый режим работы команды SEARCH, т.е. поиска глобального минимума значения функционала - метод Монте-Карло. Подробности см. в документации.
12. Добавлена возможность ограничения работы команды SEARCH по времени. Для этого в поле BASE добавлен ключ SrchTime. Обратите внимание на его значение по умолчанию.
13. Исправлено вычисление концентраций молекул (если моделируется смесь) в команде SEARCH.
14. Теперь после выполнения команды SEARCH параметры модели автоматически принимают найлучшие найденные командой SEARCH значения.
15. Исправлен вывод некоторых геометрических параметров по команде PRINT=ALLGEOM и командам PRINT=BOND, PRINT=ANGLE, PRINT=TORSION.
16. Добавлена возможность выводить матрицу коэффициентов корреляций между оцениваемыми точками интенсивности по команде IMAGE=INTSCAN. См. ключ ImgPrintIntCorrs в поле BASE.
17. Более удобный вывод матрицы коэффициентов корреляций между оцениваемыми параметрами по команде MINIMIZE (или ROBUSTM).
18. Улучшен алгоритм работы команды STANDART.
19. Теперь выводятся ошибки оцениваемых по команде STANDART точек секторной функции.
20. С помощью ключа StdPrintSecCorrs в поле BASE можно выводить матрицу коэффициентов корреляций между оцениваемыми точками секторной функции по команде STANDART.
21. По команде AUTOGROUP=AMPLITUDES теперь группируются амплитуды только тех расстояний, атомы которых не содержат водородов.
22. Исправлено падение программы во время вывода теоретической и экспериментальной кривых sM(s) для стандартов.

[1.2.0 beta]

1. Добавлена возможность варьировать геометрические параметры молекул по экспериментальным вращательным постоянным любого колебательного уровня. Смотрите команду MINIMIZE=MOLMW.
2. Каждая молекула теперь может иметь набор изотопомеров.
3. Добавлена возможность устанавливать в полях молекул экспериментальные вращательные постоянные, их ошибки и соответствующие поправки к вращательным постоянным на равновесную геометрию.
4. Добавлена возможность самостоятельно вводить необходимые массы изотопов в z-матрицах.
5. Добален ключ (PrintMainInertXYZ) управляющий тем, будут выводится декартовые координаты молекул в системе главных осей инерции или в другой произвольной системе (в зависимости от z-матрицы).
6. Опять изменен синтаксис команды сканирования значения функционала. Теперь, если используются только электронографические данные,то нужно использовать команды вроде этой: SEARCH=SCAN,GEDINT,,,1-1
7. Улучшена стратегия комбинированного (МНК + метод золотого сечения) типа минимизации.
8. Введена возможность с помощью ключа MinMethod выбирать методы минимизации: комбинированный, только МНК или же только метод золотого сечения.
9. Исправлена не критическая ошибка, проявляющаяся при условии существования молекул с динамической моделью и связанная с невозможностью ввести кривые интенсивности до ввода всех кривых потенциальной энергии.
10. Исправлено сканирование R-фактора по параметрам молекул с динамической моделью.
11. Исправлена проблема утечки памяти при многократной минимизации ортогональных параметров.
12. В таблицу оцениваемых параметров, которая выводится после минимизации, добавлено значение параметра до уточнения для более удобного сравнения результатов минимизации.
13. Более оптимальная работа с памятью. Теперь UNEX использует меньше оперативной памяти, особенно в случаях использования динамической модели газовой электронографии.
14. Исправлена ошибка, связанная с тем что при введении граничных значений угловых параметров для команды SEARCH=SCAN градусы не конвертировались в радианы. Эта ошибка была только в версии 1.1.0 beta.
15. Исправлена не критическая ошибка вывода результатов SEARCH=SCAN в лог: угловые параметры не конвертировались в градусы.
16. Значительно улучшено проведение электронографических линий фона с использованием секторной функции.
17. Документация несколько переработана и дополнена разнообразными графиками сравнений производительности различных версий программы.

[1.1.0 beta]

1. Переработана большая часть кода.
2. Изменено поведение динамической модели. Теперь понятие "динамическая модель" относится не ко всей системе, а только к молекуле. Как следствие, теперь можно моделировать разнообразные смеси динамических и статических молекул с разной и/или одинаковой топологией (см. тесты). По этой же причине несколько изменился способ ввода информации, касающейся данимаческой модели (см. документацию, примеры, тесты).
3. В связи с изменением способа задания динамической модели команды PRINT=POTENTIAL и PLOT=POTENTIAL требуют имена молекул.
4. Несколько изменен синтаксис команды MINIMIZE (введен тип минимизации). Теперь, для минимизации по электронографическим sM(s) нужно использовать MINIMIZE=GEDINT,1-1,...
5. Добавлена SMP-поддержка. Теперь на многопроцессорных компьютерах минимизация идет значительно быстрее.
6. В поле BASE добавлен ключ CpuNum для принудительного задания количества процессоров.
7. В связи с тем что ведутся работы над новыми способами поиска минимумов R-факторов (кроме SCAN), изменен способ задания информации на сканирование (SCAN) - теперь используется более общая команда SEARCH с соответствующими параметрами (см. документацию, примеры, тесты).
8. Теперь каждый Scale-фактор всех электронографических интенсивностей для варьирования должен иметь свой уникальный номер группы. Хотя по умолчанию программа сама задает разные номера групп Scale-факторам, рекомендуется вводить их самостоятельно так как в противном случае автоматические номера могут зависеть от наличия других групп параметров.
9. Добавлен параметр ImgPrintIntR, определяющий вывод полученной по команде IMAGE=INTSCAN интенсивности в зависимости от параметра s или от расстояния до центра фотопластинки.
10. Теперь команда PRINT=FURTERMS требует имя молекулы.
11. Появилась версия программы для Linux.

[1.0.0 release]

1. MyKced переименнована в UNEX.
2. Обширные внутренние изменения.
3. Доступны новые ключи для управления процессом извлечения кривых интенсивности из дифракционных картин. Теперь можно запретить/разрешить варьировать центр, центр сектора, фон, выбрасывать плохие точки.
4. Новые ключи для разрешения/запрещения создания файлов с изображениями фона и кривой интенсивности при первичной обработке.
5. Теперь по умолчанию при первичной обработке не создается файл с изображением аддитивного фона.

[0.9.2 beta]

1. Появился новый тип (4) строки z-матрицы, предназначенный для удобного "замыкания" циклов.
2. Более аккуратное выбрасывание плохих точек на изображении клина во время работы процедуры WEDGE.
3. Возможно варьирование ортогональных параметров (ключ MinOrthoParams). Это полезно в трудных случаях минимизации (много параметров, большие корреляции и т.д.).
4. Появилась версия MyKced для FreeBSD 5.x

[0.9.1 beta]

1. Оптимизированная по скорости версия 0.9 beta MyKced.

[0.9 beta]

1. Введена работа с несжатыми 8/16-битными файлами формата TIFF.
2. Команда PRINT=IMGINFO выводит информацию о всех рабочих изображениях.
3. Новая команда IMAGE:
   - IMAGE=COMPARE,file1,file2,.... - Сравнение изображений.
   - IMAGE=INTSCAN,file1,file2,.... - Извлечение кривой интенсивности.
   - IMAGE=HISTOGRAM,file1,file2,.... - Получение гистограмм.
4. Новая команда WEDGE для калибровки сканеров по клину.
5. Новая команда SECTOR для ввода секторной функции.
6. Команда PRINT=SECTOR выводит секторную функцию.
7. Новый ключ в поле BASE, управляющий еденицами энергии в программе.
8. Улучшения в работе команды IBGL.
9. Новый ключ в поле BASE, управляющий количеством точек перегиба на сплайне, используемом для аппроксимации разностной кривой в команде IBGL.
10. Сделан более удобный вывод таблиц различных кривых.
11. Начата работа над составлением списка часто задаваемых вопросов.
12. Сделана более удобная схема выбора имени выходного файла (добавлен символ подчеркивания). Теперь легче использовать имена входных файлов, заканчивающиеся цифрой.
13. Документация теперь в формате HTML (просматривать можно любым браузером).
14. Сделана команда SBGL для проведения линий фона с использованием секторной функции.
15. Исправлена и улучшена команда PRINT=ALLGEOM, теперь лишние параметры вроде не должны выдаваться. Схема "распознавания" связей теперь построена на основе валентных радиусов атомов.
16. В поле BASE добавлен новый ключ FurMultR, управляющий тем, будет ли умножаться Фурье-кривая на r или нет.
17. Изменена и переписана схема определения секторной функции и длины волны электронов в команде STANDART. Изменения направлены на то, чтобы увеличить эффективность работы стандарта при одновременной обработке многих кривых интенсивности.

[0.8 beta]

1. Дополнительно к CCl4 добавлена поддержка бензола как газового стандарта. Несколько переработана схема оценки секторной функции. В поле BASE появился параметр, отвечающий за тип газового стандарта (CCl4 или C6H6).
2. Вывод информации о структурных параметрах газовых стандартов возможен с помощью команды PRINT=STDPARAMS
3. Расширены возможности команды AVERAGE. Теперь можно усреднять кривые sM(s) и смотреть экспериментальный R-фактор.
4. Формат таблицы оцениваемых параметров в конце минимизации стал более удобным и информативным. Более удобный вывод коэффициентов корреляций между оцениваемыми параметрами. См. документацию.
5. Добавлена возможность выводить в лог таблицу термов с помощью команды PRINT=TERMS,mol_name.
6. Сделана возможность временно приостанавливать работу программы (пауза), нажатием клавиш Ctrl-C или Ctrl-Break. Пауза работает только в OS/2-версии программы.
7. Расширены возможности команды PRINT: PRINT=ALLGEOM,mol_name выводит таблицу всех внутренних параметров молекулы.
8. Добавлены ключи в поле BASE, управляющие критериями останова процесса минимизации функционала. См. документацию.
9. Теперь в начале минимизации автоматически вычисляются найлучшие (до уточнения параметров) оценки параметров Scale.
10. Более жестко оценивается несогласованность геометрии молекулы при использовании (+2,-2)-типа строк в z-матрицах.
11. Новая возможность: PRINT=FURTERMS выводит таблицу всех термов с вкладами в дифракционную картину. Полезная команда при построении графиков Фурье-кривых.

[0.7 beta]

1. Расширены возможности команды PRINT: Можно узнать информацию об операционной системе, установленном оборудовании и математических особенностях с помощью команды PRINT=COMPINFO.
2. Теперь команда PRINT=RSORTU работает значительно быстрее за счет применения более быстрого алгоритма сортировки.
3. Добавлена автоматическая группировка амплитуд для варьирования! См. команду AUTOGROUP=AMPLITUDES
4. Увеличение скорости расчета g-функций и атомного рассеяния.
5. Добавлена команда для усреднения кривых интенсивности, AVERAGE=INT,..
6. Новая команда SPESR=mol_name для вынужденного расчета декартовых координат.
7. Появилась команда SET=, с помощью которой можно отдельно вводить значения независимых внутренних параметров молекул (переменных z-матриц).
8. Добавлен автоматический расчет ошибок для зависимых геометрических параметров при выполнениии команд PRINT=BOND, PRINT=ANGLE и PRINT=TORSION.
9. Добавлена команда (IBGL=) для автоматического проведения фона сплайнами с исправлением по разностной кривой sM(s).

[0.6 beta]

1. Вычисления g-функций внутри программы теперь проводятся с помощью двумерного (U & s) интерполяционного кубического сплайна (взамен линейной интерполяции).
2. По каманде PRINT=IAT,mol_name можно выводить функцию атомного рассеяние в лог.
3. При вводе в формате GFN, g-функции умножаются на 2, т.к. программа GFN выдает их вдвое уменьшенными.
4. Команда BGL стала поддерживать множественные задания, например BGL=1-1,1-2,2
5. Появилась команда (SMS=) для ввода готовых экспериментальных кривых sM(s).
6. Сделана возможность назначать варьируемые группы прямо в команде MINIMIZE. Это удобно при большом количестве групп и/или когда нужно варьировать параметры по отдельности.
7. Более аккуратная минимизация плохо обусловленных задач. Если метод Левенберга-Макгварда в пологом минимуме исчерпает свои возможности, то производится попытка подойти ближе к минимуму с помощью покоординатного спуска методом золотого сечения. После отработки метода золотого сечения, в случае когда число допустимых итераций еще не исчерпано, продолжается минимизация методом Левенберга-Макгварда.
8. Сделана возможность проведения линий фона полиномами любых степеней.
9. Более гибкий ввод данных в поле BASE.
10. Теперь возможно управлять формой damp-фактора в процессе минимизации. Можно назначить конкретное число, либо выбрать линейное или сигмоидальное изменение дампа в ходе минимизации.
11. Улучшения в команде FUR. Теперь интегрирование идет гораздо точнее как для равноотстоящих точек sM(s) так и для неравноотстоящих (используется метод Ридберга). Кривые радиального распределения можно строить на основе любого количества экспериментальных sM(s). Введена возможность расчитывать кривые радиального распределения тремя различными способами (см. документацию). Вывод вкладов отдельных термов убран.
12. Поддержка газового стандарта CCl4 (на экспериментальной стадии). Уточнение длины волны электронов, секторной функции. (См. команду STANDART).

[0.5 beta]

1. Внутренние изменения, которые привели к существенному росту скорости минимизации. На маленьких задачах скорость возросла в полтора-два раза. На больших задачах (например в динамической молели), ускорение пятикратное-шестикратное.
2. Добавлена возможность управления степенями релаксационных полиномов в динамической модели (ключ DynRelaxPln в поле BASE).
3. Добавлена возможность управленя точностью численного вычисления производных. См. ключи MaxDerErr и MinDerErr в документации.
4. Добавлена новая команда PLOT для вывода псевдографиков в лог. Доступны варианты PLOT=POTENTIAL (потенциал динамической модели) и PLOT=SMS вывод экспериментальных кривых SMS.
5. Добавлены ключи Wplot и Hplot в поле BASE для управления высотой и шириной псевдографических рисунков в логе.
6. Исправлено нестабильное поведение программы когда в исходном файле есть очень длинные строки.
7. Для удобства ввода амплитуд в программе добавлена функция перенумерации атомов "на лету".

[0.4 beta]

1. Новая возможность: многомерное сканирование.
2. Расширение возможностей команды PRINT: PRINT=INFO выводит основную информацию о текущих настройках программы.
3. PRINT=PARAMS,mol_name выводит геометрическую информацию о молекуле.
4. Добавлена сортировка амплитуд по межьядерным расстояниям. PRINT=RSORTU,mol_name. Полезно при разбиении амплитуд на группы для варьирования.
5. Исправлено падение программы в случае неверного использования команды PRINT. Если не указывалось имя молекулы где нужно (например в команде PRINT=PARAMS,mol_name), то программа аварийно завершала работу. Теперь в таких случаях выводится предупреждение о неправильной команде и продолжается работа.
6. PRINT=GF,mol_name - вывод g-функций молекулы mol_name.
7. Имя dinamic изменено на правильное dynamic. (model=dynamic).
8. Новый параметр в поле BASE: AngleUnits. Позволяется управлять форматом вводимых в программу геометрических углов (градусы/радианы).
9. Параметр Temperature в поле BASE - температура ГЭ эксперимента. Важен для динамической модели.
10. Добавлен параметр PotCoefNum в поле BASE для регулировки количества членов в потенциальной функции динамической модели.

[0.3 beta]

1. Моделирование конформационного состава. Можно моделировать системы с множеством различных молекул.
2. Поддержка динамической модели газовой электронографии (одномерный вариант).
3. Автоматическое управление точностью численного расчета производных. Это с одной стороны позволяет ускорить программу, а с другой стороны снизить вероятность возникновения биений уточняемых параметров.
4. В связи с введением динамической модели, расширены возможности команды PRINT (PRINT=POTENTIAL).
5. Добавлено два примера использования программы: пример смеси двух конформеров, и пример использования динамической модели.

[0.2 beta]

1. Для повышения удобства ввода информации несколько изменены правила составления тегов информационных полей. Теги полей для таких команд как ZMATRIX, AMPLITUDES, GF и др. теперь не привязаны к именам молекул, а значит для разных молекул можно использовать одни и те же поля. Это удобно например при считывании g-функций, когда разным молекулам подходит одно и тоже поле. В целом, структура тегов полей стала еще проще. Подробности - в примерах.
2. Ввод амплитуд в SRINKU формате стал проще: теперь нет необходимости указвать группу 0 если не нужно варьировать амплитуду.
3. Более точный численный расчет производных зависимых расстояний от параметров, соответственно более аккуратная минимизация (особенно в пологих минимумах). Остальные производные берутся аналитически.
4. Новые мощные критерии остановки минимизации (подробности в документации и примерах).
5. Поддержка мнимых атомов в z-матрицах. Теперь можно очень просто задавать любую симметрию молекул.
6. Расширение и дополнение документации.

[0.1 beta]

1. Первый выход в свет.