Тестирование 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.

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

Любая перепечатка возможна только при выполнении условий.
Несанкционированное использование материалов запрещено. Все права защищены.
Политика конфиденциальности сайта
Согласие пользователя сайта на обработку персональных данных
©