Windows Application
ATC 2.1.7 is distributed as a Windows desktop console application with x64 and x86 executables. Use x64 on modern 64-bit Windows systems and x86 when 32-bit compatibility is required.
ATC 2.1.7
Download and package notes for Advanced Trigonometry Calculator 2.1.7 for Windows.
ATC 2.1.7 is distributed as a Windows desktop console application with x64 and x86 executables. Use x64 on modern 64-bit Windows systems and x86 when 32-bit compatibility is required.
ATC is licensed under GPLv3. The project is open source and made in Portugal by Renato Alexandre dos Santos Freitas.
Advanced Trigonometry Calculator 2.1.7 =====================================
Advanced Trigonometry Calculator (ATC) is a free, open-source command-line mathematical application for Windows, developed by Renato Alexandre dos Santos Freitas.
Quick start -----------
Recommended first commands:
2+2 sin(pi/2) mode solve equation(x^2-5*x+6) solver(x+2) create matrix(foo\2\2\3) see variables exit
Documentation ------------- The docs folder contains the full user guides, cookbook, best practices and release notes in English and Portuguese.
Notes -----
License ------- ATC is licensed under GPL-3.0. See LICENSE.txt.
Source code ----------- See SOURCE.txt for the repository and source-code availability information.
Release date: 2026-06-09 Last updated: 2026-06-27
double and Boost mp_float.pi ande.
solve equation(x^7-12) and other simple textual polynomial equations.simplify polynomial(...) for simple textual polynomials and simpleproducts of polynomial factors.
.txt.statistics, update checking, startup and date/time parsing code paths.
roots-to-polynomial and equation solver commands.
min(...), max(...) and avg(...) list calculations andvalidated the same functions with matrix variable names.
function, constant and numeric-prefix names.
Windows 11, console colors are mapped correctly when Windows Terminal uses ANSI/VT sequences, and ATC can open new instances as Windows Terminal tabs when wt.exe is available.
verbose resolution: direct verbose resolution(1) andverbose resolution(0) commands are supported, and verbose output is no longer enabled during startup internals.
paths using real roots, pi, e and complex pii constants.
for ambiguous matches, broader command/function suggestions, dynamic user function suggestions and Up/Down history navigation.
main branch incommit f71e507 Improve project README.
Project documentation should be maintained in Portuguese and English from this point forward. Code comments, when present, should be written in English only.
ATC 2.1.7 documentation was expanded to make the project easier to learn, test and contribute to:
ATC now reads and writes:
%USERPROFILE%\Pictures\Advanced Trigonometry Calculator\higherPrecision.txt
Values:
0: double1: Boost mp_floatUsers can switch modes with:
higherprecision(1)
higherprecision(0)
The selected mode is applied after restarting ATC.
The command:
dp50dppi
now returns:
3.14159265358979323846264338327950288419716939937511
The command:
dp50dpe
now returns:
2.71828182845904523536028747135266249775724709369996
Technical changes:
printf("%f") with Boost multiprecisionvalues
pi and e use Boost constants in mp_float modeprecision values
ATC now normalizes simple textual polynomial equations before passing them to the coefficient-based solver.
Validated commands:
solve equation(x+2)
solve equation(x^2-5*x+6)
solve equation(x^7-12)
Expected examples:
solve equation(x+2)
x1=-2
solve equation(x^2-5*x+6)
x1=3
x2=2
Additional validated rational and symbolic-constant cases include:
solve equation(((x-5)(x+2))/(x-5))
solve equation((((x-5)(x+2))/(x-5))*(((x-5)(x+pi))/(x-5))*(((x-5)(x+e))/(x-5)))
solve equation(((x-e+pii)(x-e-pii))/(x-e-pii))
solver(((x-5)(x+2))/(x-5))
solver((x-e+pii)(x-e-pii))
For:
solve equation(x^7-12)
ATC now returns seven roots:
x1=1.42616
x2=0.889197+1.11502i
x3=0.889197-1.11502i
x4=-0.317351+1.3904i
x5=-0.317351-1.3904i
x6=-1.28493-0.618788i
x7=-1.28493+0.618788i
Commands that ask whether to export a report can now be driven by redirected stdin in automated runs.
This supports test flows such as:
1
C:\path\to\report.txt
Interactive use remains unchanged.
simplify polynomial(...) now keeps x symbolic for simple textual polynomial inputs instead of evaluating it as zero before simplification.
Validated commands now include:
simplify polynomial(x)
simplify polynomial(x+1)
simplify polynomial(x+x+1)
simplify polynomial(x^2-5*x+6)
simplify polynomial((x-2)*(x-3))
simplify polynomial((x+1)*(x+1))
simplify polynomial((2*x+1)*(x-3))
Example:
simplify polynomial((x-2)*(x-3))
(1+0i)x^2+(_5+0i)x^1+(6+0i)
Exact cancellable rational products are also covered, including:
simplify polynomial(((x-5)(x+2))/(x-5))
simplify polynomial((((x-5)(x+2))/(x-5))*(((x-5)(x+2))/(x-5)))
verbose resolution remains available as an interactive menu. ATC 2.1.7 also supports:
verbose resolution(1)
verbose resolution(0)
The setting is persisted in verboseResolution.txt, but it is no longer applied globally during startup. This prevents verbose traces from internal startup work while preserving useful calculation traces for user expressions.
Verbose output was also made easier to read: display-only trailing +0 terms are hidden, evaluated function arguments are labelled directly, function results are printed without the old interactor wording, and internal menu prompts keep their evaluation quiet even when verbose resolution is enabled.
The main ATC prompt now supports line editing and autocomplete while the user is writing an expression. Pressing Tab completes the closest documented command, mathematical function, alias or user function. When several matches are possible, repeated Tab presses cycle through them.
Autocomplete suggestions are ordered by shortest closest match first and then case-insensitively. The same expression can receive multiple completions, which is useful for longer mathematical input.
The prompt also supports Up and Down history navigation and normal cursor editing keys. The completion list is cached per input line to avoid rebuilding the vocabulary repeatedly while the user cycles suggestions.
Several 2.1.7 code paths no longer reserve large global buffers when the input size is known:
values and frees them before returning
fft(...) and ifft(...) allocate numeric buffers based on the number ofsamples instead of DIMDOUBLE
fft(...) loop no longer reads past the logical end of theinput and no longer depends on oversized zero-filled arrays
based on the number of submitted values
null inputs more safely
immediately before delete[]
capacity when validating before release
std::string and closesWinHTTP handles before returning
forsprintf buffer instead of leaking the firstallocation
fields instead of allocating DIM-sized temporaries
DIM allocations forone/two-character replacement keys
Variable-> ... variableData-> ... diagnostics no longer appear in normal interactive output
function study(...) now releases poleZerosR and poleZerosI beforereturning, avoiding repeated memory growth in that path
(x64: /HEAP:150000000,4194304; Win32: /HEAP:50000000,1048576) and remove duplicate manual /STACK options from AdditionalOptions
ATC now accepts broader Latin-letter variable names such as data, energy, beta, alpha, matx, matrixvar, sinx and bvar. This removes many legacy single-letter parser restrictions without allowing exact collisions with reserved names such as sin, log, pi, e, i, B, O, H, P, D, b, min, max and avg.
The parsing changes also protect guide syntaxes that use internal delimiter letters, including rtD...D(...) and logb...b(...).
The suite now validates inferred multiplication across constants, functions, parentheses, imaginary values, custom guide syntax and variables. Covered forms include 2pi, pi2, 2e, 2sin(pi/2), sin(pi/2)2, 2(3+4), (1+1)(2+3), 2i, 3(2i), 2rtD4D(16), 2logb2b(8), 2x, x2, x(4), (4)x, xy and x y.
Composite variable names keep priority after whitespace normalization. If xy exists, xy and x y resolve to that variable; if only x and y exist, the same forms resolve as x*y.
New files:
tests\run-atc-regression.ps1
tests\run-atc-memory-stress.ps1
tests\ATC_AUTOMATED_TEST_CASES.md
Run:
powershell -ExecutionPolicy Bypass -File .\tests\run-atc-regression.ps1 -AtcExe .\x64\Release\atc.exe
Current result for both Release x64 and Release x86:
Summary: 359 passed, 0 failed
Current isolated coverage result:
Summary: 65 passed, 0 failed
Memory stress run:
powershell -ExecutionPolicy Bypass -File .\tests\run-atc-memory-stress.ps1 -Iterations 10
Latest Release x64 10-iteration peak working-set observations:
simplify polynomial(...) ~115-117 MB
roots to polynomial(...) ~115 MB
solve equation(x^2-5*x+6) ~141 MB
solve equation(1\8\1\_42) ~144 MB
solve equation(x^7-12) ~165 MB
Covered areas:
rest, quotient, rtD...D,logb...b, afact
min, max, avg, including matrix variableslinsnum, colsnum, getlins, getcolsvariables.txtsinc, fft, ifft.txt report exportsolver paths
deterministic graph navigation simulation, navigation edge clamping and explicit graph-range navigation
atc over cmd, mockedatc from cmd, mocked to solve, mocked enable txt detector, safe eliminate strings, and real-file solve txt response generation
about andauto adjust window
microeconomics, physics, statistics, geometry, financial calculations, triangles rectangles solver and arithmetic matrix solver
Up/Down history navigation
clock checks and timer syntax guards
suppression of verbose traces for internal menu inputs
double and Boost mp_float precision behaviorRelease x64 build succeeds with MSBuild:
& 'C:\Program Files\Microsoft Visual Studio\18\Insiders\MSBuild\Current\Bin\MSBuild.exe' '.\Advanced Trigonometry Calculator.sln' /p:Configuration=Release /p:Platform=x64 /m:1
Release Win32/x86 builds are also supported by the solution and remain a compatibility target for older Windows versions. The current regression suite has been validated against both x64\Release\atc.exe and Release\atc.exe.
The latest Release x86 and Release x64 builds completed successfully with 0 Warning(s), 0 Error(s).
The automatic suite intentionally avoids:
covered through explicit test mocks
arithmetic matrix solver, conversions, finance, physics, microeconomics and statistics menus
Important code areas:
Advanced Trigonometry Calculator\main.cpp
Advanced Trigonometry Calculator\auto_complete.cpp
Advanced Trigonometry Calculator\commands.cpp
Advanced Trigonometry Calculator\dirent.h
Advanced Trigonometry Calculator\main_aux_processor.cpp
Advanced Trigonometry Calculator\processing_core.cpp
Advanced Trigonometry Calculator\scripting.cpp
Advanced Trigonometry Calculator\stdafx.h
Advanced Trigonometry Calculator\dynamic_allocations.cpp
Advanced Trigonometry Calculator\digital_signal_processing.cpp
Advanced Trigonometry Calculator\sorting.cpp
Advanced Trigonometry Calculator\statistics_calculations.cpp
Advanced Trigonometry Calculator\check_for_updates.cpp
Advanced Trigonometry Calculator\versioninfo.rc
README.md
Documentation and tests:
docs\ATC_2.1.7_DOCUMENTATION.md
docs\RELEASE_2.1.7.md
tests\ATC_AUTOMATED_TEST_CASES.md
tests\ATC_USER_GUIDE_COVERAGE.md
tests\run-atc-regression.ps1
tests\run-atc-isolated-coverage.ps1
Esta release 2.1.7 reforca a estabilidade tecnica do ATC e prepara o projeto para uma distribuicao mais clara como projeto open-source.
Principais pontos em portugues:
double e Boost mp_float;dp50dppi e dp50dpe;solve equation, solver e simplify polynomial, incluindoprodutos racionais com fatores cancelaveis e constantes simbolicas como pi, e e pii;
verbose resolution, agora com verbose resolution(1) everbose resolution(0), evitando logs internos durante o arranque;
instancias/abas quando o Windows Terminal esta disponivel;
varios caminhos;
359 passed, 0 failed em Release x64 eRelease x86;
65 passed, 0 failed, incluindo autocomplete enavegacao por historico;
main no commitf71e507 Improve project README;
comentarios no codigo devem permanecer apenas em ingles.