Тестирование cBigNumber 2.0

Raul
08.08.2010 12:12

Тестовая сборка доступна на странице загрузки
http://imach.uran.ru/cbignum/indexr.html

- ИЗМЕНЕНИЕ: Вместо типа long применяется CBNL, определенный в Cbnl.h
для обработки 64-битных чисел под Visual C++ в 64-битном
режиме.

- ИЗМЕНЕНИЕ: Методы code(), loword(), hiword(), bits(), exbits()
теперь выдают значение типа CBNL, которое в зависимости
от транслятора может быть long, __int64, __int128 и т.д.

- Новый метод преобразования toCBNL().

- Программы Arifexp64.exe, Matrix64.exe, Miller64.exe для 64-разрядной
Windows (могут работать медленнее, потому что ассемблерная оптимизация
еще не готова).

- Файл Millrand.bat вызывает Miller64.exe под 64-разрядной Windows
для ускорения тестирования.
Raul
30.09.2010 19:37
Готова вторая тестовая сборка.

- Реализовано оптимизированное x64 умножение в дополнительном пакете,
дающее 9-кратное ускорение в 64-разрядном режиме.

- ИЗМЕНЕНИЕ: Число со значением 0 может состоять из 0 слов.

- Все конструкторы, операции присваивания и метод set() не выделяют
память для числа 0, если память не была распределена ранее
(память выделяется при присваивании ненулевого значения или при
выполнении модифицирующей операции, даже если ее результат 0).

- Методы gc() и pack() освобождают всю память, выделенную под число 0.

- Документирован метод clear(), обеспечена его корректная работа.

- Программа Arifexp и тестовый файл Arifrand выполняют операции
~, @(abs), U(unsign), M(bits), U(exbits).

- Усовершенствован метод оценки времени в программе Arifexp.

- ИСПРАВЛЕНО: Некорректная реализация cBigAbs() и setabs().

- ИСПРАВЛЕНО: Некорректная реализация cBigExBits() и setexbits(),
неправильный пример в описании cBigExBits().

- ИСПРАВЛЕНО: Ошибка распределения памяти в методах преобразования
числа в строку и строки в число.

- ИСПРАВЛЕНО: Неверный результат cBigCompl() и setcompl()
для числа из 0 слов.

- ИСПРАВЛЕНО: Неверный результат +, -, ^, &, | для числа из 0 слов
и машинного числа.

- ИСПРАВЛЕНО: Метод loword() может выдать неверный результат для
числа из 0 слов.

- ИСПРАВЛЕНО: Порча памяти методами tab() и smp() для числа из 0 слов.

- ИСПРАВЛЕНО: Ошибка assert в отладочном режиме при возведении
в степень по модулю базы из 0 слов.

- ИСПРАВЛЕНО: Оценка времени сложения и вычитания в программе Arifexp.

- ИСПРАВЛЕНО: Ошибки контроля индексов в отладочном режиме
для числа из 0 слов.

Raul
01.10.2010 14:18
Дистрибутив обновлен (вчера он был собран с ошибками) + добавлены 64-разрядные тесты для Intel Core i7 и AMD Phenom.

Raul
20.11.2010 20:58
Готова третья и последняя тестовая сборка.

- Соглашение fastcall для вызова критических функций в 32-разрядном
режиме Visual C++ как опция компиляции в Cbnl.h.
По умолчанию отключено, т.к. неэффективно.

- Альтернативный 32-разрядный ассемблерный код для Visual C++ с
соглашением о связи fastcall как опция компиляции в Cbnl.h.
По умолчанию отключен, т.к. неэффективен.

- Удалены лишние операции из 64-разрядного ассемблерного кода.

- Документированы макро _CBIGNUM_DEF_ALLOC и _CBIGNUM_NCHECKPTR.

- Поправлены разделы 1.1, 1.2 и 4.3 документации.

Raul
23.11.2010 19:49
Дополнение к третьей тестовой сборке:

- Аппаратное умножение с применением ассемблерной команды MUL для
GNU G++ (в дополнительном пакете), выполняется в 8 раз быстрее.

- Исполняемые файлы для Linux с ускоренным 32/64-разрядным
аппаратным умножением.

Raul
31.03.2011 21:39
Третья тестовая сборка получила статус beta public.

Для написания ответа авторизуйтесь

Дизайн и программирование N-Studio
Любая перепечатка возможна только при выполнении условий.
Несанкционированное использование материалов запрещено. Все права защищены
©