![]() |
Добавлено: 2010-08-08 12:12:45 Тестирование cBigNumber 2.0 |
Raul Зарегистрирован(а): 17.03.2010 Сообщений: 101 (просмотреть) |
Тестовая сборка доступна на странице загрузки 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 для ускорения тестирования. |
Ответить | Цитировать | |
![]() |
Добавлено: 2010-09-30 19:37:37 |
Raul Зарегистрирован(а): 17.03.2010 Сообщений: 101 (просмотреть) |
Готова вторая тестовая сборка. - Реализовано оптимизированное 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 слов. |
Ответить | Цитировать | |
![]() |
Добавлено: 2010-10-01 14:18:54 |
Raul Зарегистрирован(а): 17.03.2010 Сообщений: 101 (просмотреть) |
Дистрибутив обновлен (вчера он был собран с ошибками) + добавлены 64-разрядные тесты для Intel Core i7 и AMD Phenom. |
Ответить | Цитировать | |
![]() |
Добавлено: 2010-11-20 20:58:54 |
Raul Зарегистрирован(а): 17.03.2010 Сообщений: 101 (просмотреть) |
Готова третья и последняя тестовая сборка. - Соглашение fastcall для вызова критических функций в 32-разрядном режиме Visual C++ как опция компиляции в Cbnl.h. По умолчанию отключено, т.к. неэффективно. - Альтернативный 32-разрядный ассемблерный код для Visual C++ с соглашением о связи fastcall как опция компиляции в Cbnl.h. По умолчанию отключен, т.к. неэффективен. - Удалены лишние операции из 64-разрядного ассемблерного кода. - Документированы макро _CBIGNUM_DEF_ALLOC и _CBIGNUM_NCHECKPTR. - Поправлены разделы 1.1, 1.2 и 4.3 документации. |
Ответить | Цитировать | |
![]() |
Добавлено: 2010-11-23 19:49:26 |
Raul Зарегистрирован(а): 17.03.2010 Сообщений: 101 (просмотреть) |
Дополнение к третьей тестовой сборке: - Аппаратное умножение с применением ассемблерной команды MUL для GNU G++ (в дополнительном пакете), выполняется в 8 раз быстрее. - Исполняемые файлы для Linux с ускоренным 32/64-разрядным аппаратным умножением. |
Ответить | Цитировать | |
![]() |
Добавлено: 2011-03-31 21:39:52 |
Raul Зарегистрирован(а): 17.03.2010 Сообщений: 101 (просмотреть) |
Третья тестовая сборка получила статус beta public. |
Ответить | Цитировать |