Calc history
Current version 2.8.4.477 (19.12.2025).
2.8.4.477 (19.12.2025):
* Code cleanup.
* Tests are updated.
2.8.3.473 (17.12.2025):
* Fixes for CODATA 2022 (May 2024) support: cleanup for duplicates in ids map.
* WIP CALC_USE_128_BIT_FLOAT: Added a warning related to the fast_float library.
* WIP CALC_USE_ERROR_TOKEN: Optimization in the error handling: Issue now using a string_view pointing to the static strings in the code instead of a copied text to the string to handle an error.
* Update for FMT to the latest head.
* TODO updated.
* Tests are updated.
* Improve compilation speed.
* Build in VS2026 (18.1.1).
2.8.2.469 (8.12.2025):
* Added function distance (Minkowski distance: parameters contains p all other parameters is distances d[i] = v[i] - w[i] for two vectors v and w).
* Added atan2. TODO updated for support more functions.
* Update for FMT to version 12.1.1.
2.8.1.461 (7.12.2025):
* GUI cleanup and fix.
* Fixes for CODATA 2022 (May 2024).
* Add functions: factorial, permutations / P, combinations / C, parabola, grad_to_radians, radians_to_grad, turn_to_radians, radians_to_turn, or, xor, and, not, shl, shr, sar.
* Update FMT to the latest head.
* Tests are updated.
2.8.0.451 (4.12.2025):
* Added many constants from CODATA 2022 (May 2024).
* Update for FMT to version 12.1.0 and the latest head.
* Added diagnostics about feature work.
* Small improvements in the code generation -> speedup!
* Rewrite GUI to C++ style with classes, cleanup and fix.
* Fix for about dialog placement.
* Tests are updated.
2.7.0.442 (30.11.2025):
* Correct support for DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 (PerMonitorHighDPIAware) for all elements and fonts: now it's resized automaticaly.
* Now position and size is saved to the HKCU\Software\HedgehogInTheCPP\Calc path in the system DB.
* Completely remove outdated MFC realization and rewrite all to the native Win32 API with maximal system compatibility (many thanks to ChatGPT and Copilot for helping analize me Windows SDK to properly write code): speedup, reducing size and great usability improvement.
* Added no_unique_address optimization.
* Build in VS2026 (18.0.2).
2.6.1.436 (21.11.2025):
* Update for my fork of fast_float.
* FloatingPointModel Fast.
* Added deprecated defines CALC_SUPPORT_WINDOWS_XP, CALC_SUPPORT_WINDOWS_7_8_81.
* Improve compilation speed.
* Build in VS2026 (18.0.1).
2.6.0.434 (18.11.2025):
* Update minimum supported version to Windows 10.
* Performance improve. Thank you for compiler and STL/SDK updates!
* Build in VS2026 (18).
2.5.15.429 (10.11.2025):
* Cleanup error formatting.
* FMT config improved.
* Tests are updated.
2.5.14.424 (09.11.2025):
* Cycles (for and while) cleanup in low level for the best compiler optimization and the best runtime.
* Additional cleanup and speedup for my fast_float fork.
* Updated FMT and fast_float to the latest version.
* Tests are updated.
* Currently vcpkg isn't used.
* Build in VS2022 (17.14.19).
2.5.13.417 (21.10.2025):
* EquationSize cant be bigger than unsigned int (4 bytes so the maximum is 4'294'967'295) because of GUI realization. TODO: need to update containers size usage.
* Updated FMT and fast_float to the latest versions.
* Error output small cleanup.
* Tests are updated.
* Build in VS2022 (17.14.18).
2.5.12.411 (20.09.2025):
* Small improvement in performance and size reduce.
* Improve code quality: add an empty body for template type generator.
* Improve code generation: fastcall for 64bit build, remove wchar_t from build.
* Update for FMT to version 12.0.0.
* Update for fast_float to version 8.1.0.
* Tests are updated.
* Build in VS2022 (17.14.15).
2.5.11.400 (13.05.2025):
* Added additional constants.
* Now FMT use FMT_USE_FULL_CACHE_DRAGONBOX for better performance.
* Tests are updated.
2.5.10.393 (05.05.2025):
* Additional cleanup and speedup for my fast_float fork.
* Update for FMT to version 11.2.0.
* Cleanup FMT through compilation options.
* Compilation speed improvements.
2.5.9.389 (30.04.2025):
* Preparation for the library creation.
* All types that Calc is used now in the flags.h.
* Hottest functions Lexer::next and Parser::parse_function is cleaned up and optimized.
* Reduce size of Token.
* Reduce errors handling logic messages because we can show user place when the problem exist after CALC_USE_ERROR_TOKEN is complete.
* Compilation speed improvements.
* Tests are updated.
2.5.8.387 (30.04.2025):
* Improvements in the error messages.
* Hottest functions Lexer::next and Parser::parse_function_or_constant is optimized and now have less branches and can be better auto improvements from CPU fusion.
* Cleanup code in GUI and reuse memory for user input.
* Set flush-to-zero and denormals-are-zero mode (SSE2).
* Enable additional macro in my fork FASTFLOAT_ONLY_ROUNDS_TO_NEAREST_SUPPORTED: this option is reduced code size and improve speed.
* Disable C4702 for FMT because of MSVC bug.
* Tests are updated.
2.5.7.379 (20.04.2025):
* Fix regression of the 2.5.6.370 when ^ operator isn't working properly.
* Use fast_float::from_chars_advanced for better performance with the original library, in my fork it's optional.
* Allow change type of Token::EquationSize.
* All code is now only uses only ASCII values of chars.
* Allow usage signed and unsigned char in the Token.
* Cleanup FMT through compilation options.
* Tests are updated.
2.5.6.370 (24.03.2025):
* Added functions: trunc, round, ceil, floor, fma.
* Updates for my fork of fast_float -> speedup and efficiency.
* Use standard assume, that isn't supported by MSVC.
* Tests are updated.
2.5.5.365 (21.03.2025):
* Fix a regression introduced in 2.5.3.357: the issues isn't cleans properly and this is a big problem because the calculation isn't working after that and stuck on that point.
* Improvements in the project settings for debug.
* Don't set FMT_EXCEPTIONS 0 because it's only increase the size.
* Tests are updated.
2.5.4.361 (19.03.2025):
* Cleanup error output.
* Compile options fix for maximum perfrormance.
* Build in VS2022 (17.13.4).
2.5.3.357 (13.03.2025):
* Equal button = replaced by Enter for more reliable user experience.
* Optimization in Lexer.
* Improvement in error handling.
* Added WIP functionality CALC_USE_ERROR_TOKEN.
* Added ability for using upstream fast_float.
* Tests are updated.
2.5.2.352 (10.03.2025):
* Return maximum available precision.
* Cleanup in error handling.
* Micro optimization for improve performance.
* Tests are updated.
2.5.1.348 (07.03.2025):
* Output precision is set to 15.
* Allow only inf as a constant.
* Disallow values begins from point, like ".3", only allow starting from number "0.3".
* Significantly improving performance and reduce executable size by using FMT library as a formatter.
* Tests are updated.
2.5.0.347 (06.03.2025):
* Significantly improving performance by using FastFloat library as a parser. Currently I use my personally patched version with much better performance. After pull request is accepted I will use main repository.
* Tests are updated.
2.4.9.343 (25.02.2025):
* Fix for regression in 2.4.8.340 for parsing constants and functions with _ symbol. I wrote broken tests.
* Remove compilation date from GUI.
* Tests are updated.
2.4.8.340 (16.02.2025):
* Fix window border painting.
* Added many special math functions.
* Small speedup in Lexer. Also assume is fixed.
* IssueManager API cleanup.
* Project settings cleanup.
* Tests are updated.
* Build in Visual Studio 2022 (17.13.0).
2.4.7.331 (30.01.2025):
* GUI code reviewed.
* Code cleanup.
* Tests are updated.
2.4.6.326 (27.01.2025):
* Added expm1 function for better precision.
* GUI code reviewed.
* Tests are updated.
* Compilation speedup.
2.4.5.320 (26.01.2025):
* Code cleanup.
* Program info updated.
2.4.4.318 (26.01.2025):
* Added the button to get calculation result (please press Enter or button '=' in the interface) and disable instant calculation.
* Added ability to resize and maximize the application window.
* Added documentation to the GUI code and pch, and cleanup includes for Windows and MFC into framework.
* Tests are updated.
* Cleanup build script.
2.4.3.313 (23.01.2025):
* Improvements in icon rendering (only bring 128x128 ico without smaller sizes).
* Improvements in font size (Segoe UI Semibold 8 -> Segoe UI 10).
* Tests are updated.
2.4.2.309 (18.01.2025):
* Formatter: cleanup output.
* To the Token class added EquationSize for feature customization.
* Using __assume instead of standard because MSVC doesn't support it.
* IssueManager cleanup.
* Cleanup Lexer interface.
* Tests are updated.
2.4.1.303 (16.01.2025):
* beta function re enabled.
* Tests are updated.
2.4.0.300 (15.01.2025):
* GUI review: don't show result if errors occurred, only show log and don't show log if answer is correct.
* FloatingPointModel -> Precise
* Replace std::pow with Identifiers::calc_pow for increasing calculation precision in pow function and in the operator ^.
Function exp and exp2 is removed from release, use pow instead.
* Add log1p function for better precision, you should use log1p(1e-16) instead of log(1 + 1e-16) - it's very useful in financial and statistics calculations.
* Add more constants.
* Small speed improvements in Parser.
* _CSTRING_DISABLE_NARROW_WIDE_CONVERSION.
* Formatter: std::to_chars -> std::format.
* IssueManager only using for error collecting -> cleanup.
* Tests are updated.
* Build in Visual Studio 2022 (17.12.4).
2.3.3.286 (06.01.2025):
* Parser speedup.
* IssueManager speedup.
* Tests are updated.
2.3.2.280 (05.01.2025):
* Added exp2 function.
2.3.1.278 (05.01.2025):
* Fix an error in the functions parsing.
* Precision reduced from 17 to 15 numbers.
* Improvements in GUI output.
* Tests are updated.
2.3.0.274 (28.12.2024):
* Small redesign and improvements in GUI: using more reliable font and remove additional dependencies.
* Precision increased from 15 to 17 numbers.
* Removed support for values with + sign like +123, only negative values allowed.
* Rewrite whole code for maximum performance: likely + unlikely and replace vector with array.
* Improvements in logging.
* Fix for compatibility version definitions.
* Cleanup for initialization constants and the pow function in Identifiers.
* Big improvements in bultin tests and add internal performance test.
2.2.0.260 (26.12.2024):
* Precision increased from 14 to 15 numbers.
* Rewrite Lexer and Parser for maximum speedup.
* Remove dependencies from slower C functions.
* Reduce size of the classes.
* Redefine and comment Windows version requirements: The minimal version of OS supported by application is Windows 7 and require SP1 and IE11 installed.
* Using NTDDI for Windows 8 for proper working with touch interfaces.
* Tests are updated.
2.1.6.250 (16.12.2024):
* Enable parallel buildings in building script.
* Enable assembly generation for release builds by default for post build analysis.
* /LARGEADDRESSAWARE:NO
* Build in Visual Studio 2022 (17.12.3).
* Improvements in error handling.
* Fix for includes.
* Fix for types.
2.1.5.248 (31.10.2024):
* Cleanup compilation settings.
* Win32 GUI complete.
2.1.4.246 (19.10.2024):
* Type unification in the code.
* Correction of using noexcept in GUI code.
* Cleanup magic number in formatter.
2.1.3.243 (14.10.2024):
* Clean-up all tests functions for special math from release.
* Build in Visual Studio 2022 (17.11.5).
* Small code improvements.
2.1.2.242 (06.10.2024):
* Clean-up all tests functions from release.
2.1.1.241 (04.10.2024):
* Minimize decencies.
2.1.0.239 (04.10.2024):
* Refactoring and big cleanup in the GUI code.
* Improving compilation speed.
* Cleanup project settings.
* Improve in the debugging settings.
2.0.6.232 (03.10.2024):
* Small code improvements.
* Build in Visual Studio 2022 (17.11.4).
2.0.5.231 (12.07.2024):
* Added function “mod” with two arguments, that return the remainder of the division operation. This function is completely equivalent to the operator %.
* Added function “minkowski_distance” with minimum two arguments, first of it represent p, all others represent distances between points.
* Build in Visual Studio 2022 (17.10.4).
2.0.4.230 (05.07.2024):
* Code generation optimization.
2.0.4.228 (14.06.2024):
* Small optimization.
* Build in Visual Studio 2022 (17.10.2).
2.0.4.226 (06.07.2023):
* Added many physicals constant, values for some update.
2.0.3.223 (29.06.2023):
* Cleanup for GUI code.
2.0.3.220 (24.06.2023):
* Small redesign and GUI code cleanup.
* Added special fma function and error functions: erf, erfc.
2.0.2.218 (23.06.2023):
* Added many special math functions.
* Build in Visual Studio 2022 (17.6.4).
2.0.1.213 (10.06.2023):
* Precision reduced from 15 to 14 numbers.
* Warnings temporary disabled.
2.0.0.204 (07.06.2023):
* Now product is unlicensed.
* Code quality improvements.
* Optimize code generation settings for maximum performance.
* Unification of the hypot2 and hypot3 function. Now it's the function named hypot for 2 and 3 parameters.
* Now ANSI synonyms for functions log, log10, log2 can be use: ln for log; lg for log10; lb for log2.
* Added the function riemann_zeta.
* Added the constant egamma.
* Improvements for error handling when calling a function with variadic parameters. Currently this is min and max functions.
2.0.0.197 (03.06.2023):
* The maximum precision is reduced from 17 to 15 digits.
* Added warning about precision.
* Added additional errors detection.
* Improvements in report.
* Stability improvements.
2.0.0.195 (03.06.2023):
* Optimization for speed.
* Fix incorrect error messaging when function and constant parsing.
* Added minimum version support for Windows 7 SP1 and newer.
2.0.0.189 (01.06.2023):
* New core with lexer and parser, that have properly architecture.
* The great gratitude of my beloved for helped me understand how parsers works. I sincerely consider her very smart and cool.
* Build in Visual Studio 2022 (17.6.2).
1.13.3.182 (29.05.2023):
* optimizing for rad function, added function deg.
* operation % now support floating values.
1.13.2.179 (31.03.2022):
* Build in Visual Studio 2022 (17.5.3).
1.13.1.178 (31.03.2022):
* Code quality improvements.
* Cleanup legacy code.
* Small optimization.
1.13.0.177 (31.03.2022):
* Added warnings support.
* Added operator % : it's reminder operator for integers only.
* Cleanup for all unusable variables (PVS).
* Small optimization in the functions calls (PVS).
* Build in Visual Studio 2019 (16.11.25).
1.12.0.175 (08.09.2022):
* The program use the English language now.
* Cleanup for all unusable comments.
* Small optimization in the functions calls (PVS).
* Complete deprecation of legacy CalculatorWideAdapter.
* Build in Visual Studio 2019 (16.11.18).
1.11.1.174 (11.11.2021):
* Сборка в Visual Studio 2019 (16.11.6).
1.11.0.173 (22.7.2021):
* Исправлена компиляция.
1.11.0.171 (22.7.2021):
* Сборка в Visual Studio 2019 (16.10.4).
* Обновлены данные разработчика.
1.10.1.171 (5.5.2020):
* Добавлена обработка ошибки "запись числа после функции недопустима".
1.10.0.170 (27.4.2020):
* Добавлена константа "e" - число Эйлера.
* Рефакторинг парсера линейных выражений: оптимизация, возврат числа вместо строки, убраны лишние действия.
* Рефакторинг обработки функций: оптимизация, убраны лишние конвертации в строку, исправление ошибок, добавлены проверки на некорректное написание числа.
* Добавлена обработка ошибки "у функции отсутствует закрывающая скобка".
* Добавлена обработка ошибки "запись числа перед функцией недопустима".
* Из лога убраны избыточные сообщения.
1.9.1.162 (18.4.2020):
* Рефакторинг парсера линейных выражений: исправлены ошибки.
* Отключена сложная избыточная проверка входной последовательности.
* Оптимизация обработки функций.
1.9.0.160 (18.4.2020):
* Добавлены новые функции "sqrt", "cbrt", "sh", "ch", "tanh", "abs", "log2", "log1p", "arsinh", "arcosh", "artanh", "tgamma", "lgamma", "trunc", "round", "max", "min", "hypot2", "hypot3".
* Исправлена входная валидация аргументов функций более чем с одним параметром.
* Исправлена ошибка при проверке параметров функций.
* Оптимизация.
* Сборка в Visual Studio 2019 (16.5.4).
* Прекращена поддержка Windows XP и для 32 битной сборки, для 64 битной прекращена уже давно.
1.8.5.157 (30.9.2018):
* Сборка в Visual Studio 2017 update 5.
* В диалог "О проекте Calc" добавлен вывод времени и даты сборки.
1.8.4.156 (29.9.2018):
* Оптимизация.
1.8.3.155 (7.9.2018):
* Оптимизация.
1.8.1.151 (22.2.2017):
* Добавлена функция rad для преобразования градусов в радианы. Пример использования: sin(30°): sin( rad(30) ) = 0.5.
* Поправлены на математические названия arccos, arcsin, arctan (ранее acos, asin, atan).
* Убрана сложная, долгая и малополезная проверка на "недопустимый символ", оставлена только проверка на "недопустимый символ после замены констант и обработки функций, проверьте правильность их написания".
1.8.0.146 (22.2.2017):
* Вычищен и избавлен от всех недостатков код линейного парсера. Он стал проще, быстрее и универсальнее.
* После полной доработки линейного парсера убраны все избыточные проверки валидатора.
* Исправлена ошибка вывода в лог неверной позиции с обнаруженной ошибкой.
* Теперь программа ругается если в процессе полного разбора произошла неописанная ошибка во внутренней логике.
* Несколько мелких оптимизаций за счёт перестановок проверок в составных условиях в наиболее горячих местах.
1.7.0.145 (29.9.2016):
* Убрал из лога малополезные ошибки при обработке линейного выражения.
* Избавился от остатков самой первой реализации.
* Убрал вывод предупреждений.
* Исправлена ошибка в проверке параметров функций: иногда обработка некорректных значений, например, при неверных символах в строке могла продолжаться дальше, а прерываться уже после в основном обработчике. Такое поведение хоть и не приводило к выводу неверных результатов, но затрудняло диагностику некорректно написанных больших выражений.
* Исправлена ошибка с некорректным указанием координаты ошибки в сложных выражениях с множеством вложенных.
* Оптимизация обработки параметров и поиска функций.
* Оптимизация в предварительных проверках входной строки.
* Почищен код.
1.6.0.141 (22.9.2016):
* Сборка в Visual Studio 2015 update 3.
* Поправлено несколько мест с потенциальными переполнениями буфера.
* Наведён больший порядок с типами, убраны вызовы deprecated и переходных функций.
* Небольшие оптимизации.
1.5.0.140 (18.6.2016):
* Сборка в Visual Studio 2015 update 2.
1.5.0.139 (18.6.2016):
* Исправлена ошибка при обработке пустого входного выражения, например при вводе только пробелов, добавлена соответствующая ошибка "Выражение не найдено".
* Ядро программы теперь работает с utf-8 строками, а в wide char и обратно строки конвертируются с помощью CalculatorWideAdapter.
* Немного почищен код.
1.4.1.138 (8.4.2013):
* Сборка в Visual Studio 2012 update 2.
1.4.0.136 (28.1.2013):
* Переход на Visual Studio 2012.
* 64х битная версия калькулятора теперь работает только под ОС не младше Windows Vista (Windows Server 2008R2).
* PVS: ложные срабатывания.
1.3.5.134 (15.7.2012):
* Вернулся на Visual C++.
1.3.4.133 (17.5.2012):
* Более жёсткая оптимизация со стороны компилятора + автораспараллеливание.
* Мелкие оптимизации кода.
1.3.3.132 (2.4.2012):
* Операция деления на нуль теперь допустима.
* Переход на компилятор Intel C++ Compiler XE 12.1.
* Убрал поддержку старых ОС (до WinXP).
* Мелкие оптимизации кода.
* Исправлены потенциальные ошибки и убраны ложные срабатывания (PVS-Studio)
1.3.2.129 (12.12.2010):
* Оптимизация (PVS-Studio)
* Отформатировал исходники Astyle
1.3.1.127 (14.09.2010):
* Обновил адрес сайта
1.3.0.126 (23.08.2010):
! Исправлена ошибка с заменой констант (не правильно считались выражения с константами без степенного символа)
! Оптимизирована предварительная проверка строки на валидность
! Небольшая оптимизация в замене констант
! Небольшая оптимизация в обработчике функций
! Оптимизировал обработчик RPN
* Убрал мусорок из кода
1.2.1.121 (13.08.2010):
! Заменил переключатели в вычислителе функций на массив указателей на функции
* Отключил минимальную пересборку в проекте
* Отформатировал исходники Astyle
1.2.0.120 (10.06.2010):
! Рефакторинг замены констант
! Рефакторинг системы ошибок
- Убрал избыточную ошибку: "Некорректное использование символа e сразу после показателя степени в позиции %d следует ещё один символ e"
+ В реллизных сборках теперь считается контрольная сумма
! Увеличил точность результатов до 15 знаков после запятой
~ Проставил в своих файлах год копирайта и тип лицензии, на основании которой распространяется исходный код приложения: GNU General Public License version 3
* Косметика кода
* Обновил ресурсы
1.1.1.111 (24.04.2010):
! Исправлена ошибка в алгоритме, добавленная в 1.1.0.107
1.1.1.109 (24.04.2010):
! Исправил ошибку, вызывавшую утечку памяти, появилась в версии 1.1.0.107
+ Добавил автоматическое убирание пробелов из выражения
1.1.0.107 (23.04.2010):
+ Добавил в диалог "О программе" ссылку на сайт
- Убрал опцию "Научный вид результата"
+ Добавил опцию "Авто вычисление результата" по умолчанию включена
! Исправил компиляцию debug версий
* Сделал юникодное ядро, это значительно увеличит скорость обработки, т.к. на входе и выходе теперь не потребуется преобразовывать строку
* Оптимизация алгоритмов
* Исправлен вывод в лог промежуточных значений
1.0.10.104 (23.04.2010):
! Исправил проверку на максимально (минимальное) доступное значение
1.0.9.102 (23.04.2010):
* Сборка в Visual Studio 2010
* Мелкая оптимизация кода на скорость кода
* Доделал вывод сообщений с помощью нового метода
1.0.8.100 (21.04.2010):
+ Добавлена функция sqrt (square root)
! Переработка обработчика сообщений и ошибок
+ Появилось возможность выбора в каком формате выводить число: в обычном или научном
! Теперь результат выводится в коротком формате, если это возможно
1.0.7.99 (1.12.2009):
* перевёл вычисления в "научный формат"
! исправил ошибки при вычислении ф-й:
- если в качестве параметра передавалось число со степенью, результат вычислялся не верно
- если в качестве параметра передавалась константа записанная с ошибками, вычисление производилось так, как будто был передан 0
- убрал из лога промежуточные строки (оставил только для Debug версии)
* обновил диалог "О программе"
* удалил мусор из репозитория
1.0.6.96 (29.11.2009):
- выкинул мусорок
! исправил ошибку при проверке валидности строк (сломал в версии 1.0.5.95, не работала функция log10(x))
1.0.5.95 (26.11.2009):
+ добавлен контроль ошибок:
- Закрывающая скобка находится раньше открывающей
- Запись числа перед открывающей скобкой недопустима
! исправлена ошибка в анализе аргумента ф-й (после последних оптимизаций отвалились отрицательные аргументы :)
* косметика в версиях разрешённых ОС
* исправлена ошибка при обработке строки вида (2+2)-(2+2)
* добавлен хак для исправления обработки строк вида (2+2)+-(2+2) и (2+2)--(2+2) , TODO переписать по нормальному
* добавлена временная заглушка (он же хак) для обработки строк вида 2+-(2+2) и 2--(2+2) , TODO переписать по нормальному
* оптимизировал работу с функциями и константами
- выкинул лишний код
1.0.4.88 (21.11.2009):
* заэкранировал в _DEBUG_FUNCTION самодельные ф-и (plus3, plus5, spin)дабы в релиз не попадало
! исправил ошибку с коррекцией count-a (отображается в сообщениях об ошибках) при обработке ф-й
! исправил ошибку с неверным номером аргумента передаваемого обработчику ошибок
! исправлена ошибка при наличии большого числа скобок в последнем аргументе ф-и
! исправлено использование константы в качестве параметра ф-и
! исправлена ошибка с неверным отображением параметров у функции, если их количество не верно
* косметика кода
* исправил ошибку в версии
1.0.3.84 (17.11.2009):
! исправлено несколько ошибок с использованием символа e как в спени так и содержащегося в именах ф-й
! исправлено возможное падение
1.0.2.82 (14.11.2009):
! исправлена ошибка при замене констант
1.0.1.77 (12.11.2009):
* теперь вычисления производятся в long double
+ обработка ошибки "e+-"
+ строка вида "1e-1e-1" считается ошибкой
+ добавлены ошибки при использовании числа со степенью (символ 'e')
- убрал ненужные модификаторы static
* косметика и наведение порядка
* доделал условия проверки констант
1.0.0.71 beta (10.11.2009):
+ добавлено несколько ф-й
* кое где заменил scanf на atof
* ограничил точность 14ю знаками после запятой
! исправлена часть ошибок в обработке констант
! исправлена ошибка в определении ф-и, ранее например вместо asin вызывался sin и выдавалась ошибка
+ добавлена поддержка произвольных вложенных выражений в качестве параметров ф-й
* вынес работу с функциями в отдельный модуль
* небольшие отимизации по ходу дела
1.0.0.68 beta (9.11.2009):
* значительные оптимизации кода:
- рефакторинг обработчика ф-й
- выкинуто много мусорка
+ добавлена поддержка вложенных выражений, пока без скобок
+ добавлено много мыслей и дополнительные ф-и, пока в комментариях
1.0.0.67 beta (8.11.2009):
+ добавлена поддержка констант
+ добавлена функция exp(x) , при x=1 получаем просто число e
* дальнейшая оптимизация кода
- удалил флаг _USE_Function
+ добавил 64х битную версию
1.0.0.66 beta (8.11.2009):
* косметика интерфейса
* глобальный рефакторинг проверки ошибок (функции не трогал):
- из RPN преобразователя убрал l_old_prioritet
- убрал несколько сомнительных моментов
- убрал различного рода мусорок из кода и интерфейса
+ добавлена поддержка выражений вида 1e-3 и подобных (степенных)
! пофиксил ошибки, вызванные разбором на модули
+ добавил одну ошибку в обработке ф-й
* разнёс код по модулям
- убрал глобальные переменные
* временно закоментил коррекцию длины числа, ибо не работает, а отлаживать влом :)
* косметика и рефакторинг кода
* первое приближение к поддержки сложных вложенных выражений и вложенных функций
+ Добавлена рекурсия для последнего оператора
* исправлено пара ошибок
+ добавлена поддержка вложенных выражений
+ поддержка функций с параметрами в виде конечных цифр, проверки многих ошибок ещё нет
* первое приближение к реализации функций
* расставил экранчики
1.0.0.48 beta (26.10.2009):
! убрал появлении дополнительной ошибки
1.0.0.47 beta (26.10.2009):
! исправил рассчёт степенной функции пример: 2^2
* рефакторинг обработки ошибок со скобками
+ добавил предупреждение о слишком большом числе
* рефакторинг не совсем прямого кода)
* рефакторинг системы сообщений и ошибок, убрал бессмысленные флаги состояния, обработчики теперь не возвращают значение
- удалил мёртвую иконку из репки
1.0.0.45 beta (24.10.2009):
- убрал криво-работающую проверку скобок
+ обновил иконку на свою
* косметика кода
* найдена куча ошибок, спасибо m/\dne
1.0.0.43 alpha (24.10.2009):
* рефакторинг прямого вычислителя
+ добавил проверку на пустые скобки
+ добавил "суслико устойчивость"
1.0.0.40 alpha (23.10.2009):
* небольшой рефакторинг процедуры сообщений
* убрал пока что лишний код
1.0.0.39 alpha (23.10.2009):
- удалил мусорок
* косметика сообщений
1.0.0.38 alpha (23.10.2009):
+ добавил поддержку отрицательных чисел
! при наличии ошибок выходная строка очищается
* небольшая оптимизация прямого вычислителя
* косметика кода
* добавил мысли
+ "научил" прямой вычислитель работать со скобками
* косметика кода
! убрал мусор из выходной строки
1.0.0.32 alpha (9.10.2009):
* рефакторинг структуры обработчика
* перевёл обработку на double
* рефакторинг выходного парсера
* поправил добавление сообщений в лог
* исправил работу с "длинной" последовательностью операторов
1.0.0.29 alpha (2.10.2009):
* рефакторинг системы сообщений
* буферы теперь имеют статические адреса -> повысится скорость, повысится потребление памяти
* косметика кода и приведение его к порядку
* добавил в проект недостающий хидер
! исправил маленькую ошибку в преобразователе в обратную польскую запись
- убрал пробелы из выходной строки
* подготовил выходную ф-ю к рекурсии
! исправил маленькую ошибку
* косметика
1.0.0.26 alpha (2.10.2009):
! исправил работу преобразователя в польскую запись
* начал писать выходной обработчик
* дальнейшая доработка контроля ошибок
* удалил мусорок
! исправил "размножение" записей в логе
* рефакторинг системы ошибок
! исправлена ошибка в модуле приоритетов
- удалён мусор из интерфейса
+ добавил проверку деелния на 0
+ добавил проверку корректности символов при составлении обратной польской записи
+ добавил проверку на валидность входных символов
* набросал ф-ю конечного рассчёта для RPN
+ добавил поддержку функций для RPN
* окончательно доделал функцию получения обратной польской записи
* теперь к красиво выводящимся промежуточным строкам выводятся комментарии
+ добавлен алгоритм стекового вычислителя для RPN
+ добавлена проверка количества скобок в выражении
! пофиксил трансляцию ошибок
+ очищаем строку результата при наличии ошибок для RPN
+ написана конструкция поиска и замены членов для RPN
