##### TL;DR

Add trigonometric functions (sin, cos, tan, asin, acos, atan) and hyperbolic functions (sinh, cosh, tanh, asinh, acosh, atanh) to arithmetic combinators, or add a new geometric combinator to support them.##### What ?

Arithmetic combinators OR the new geometric combinator can now process trigonometric and hyperbolic calculations for 12 total functions.The following 6 trigonometric functions are supported:

**sin:**f(θ, M, A) = A * sin(θ * 2π / M)**cos:**f(θ, M, A) = A * cos(θ * 2π / M)**tan:**f(θ, M, A) = A * tan(θ * 2π / M)**asin:**f(y, A, M) = M * asin(y / A) / 2π**acos:**f(x, A, M) = M * acos(x / A) / 2π**atan:**f(y, x, M) = M * atan2(y, x) / 2π

**sinh:**f(θ, M, A) = A * sinh(θ * 2π / M)**cosh:**f(θ, M, A) = A * cosh(θ * 2π / M)**tanh:**f(θ, M, A) = A * tanh(θ * 2π / M)**asinh:**f(y, A, M) = M * asinh(y / A) / 2π**acosh:**f(x, A, M) = M * acosh(x / A) / 2π**atanh:**f(y, x, M) = M * atanh(y, x) / 2π

**θ:**Angle**M:**Modulus (Defaults to 360)**A:**Amplitude (Defaults to 1000)**x:**Run distance**y:**Rise distance

It should be noted that the "atan" function is actually an "atan2" function, taking both rise and run as inputs rather than a slope. This ensures that angles greater than or equal to 90° and less than or equal to -90° are handled correctly. However, it is functionally identical to the other inverse trigonometric functions, as the "y" and "x" inputs may also instead be treated as a slope and an amplitude respectively.

There are 3 ways these functions could be implemented with the existing arithmetic combinator OR in the new geometric combinator:

- All 12 functions are added separately.
- Only 3 functions are added (sin, cos, tan) where each function also has 2 other options: One for normal/inverse, and the other for trigonometric/hyperbolic (both either as checkboxes, dropdowns, or sliders).
- Only 4 functions are added (sin, asin, sinh, asinh) since each of the remaining functions can be easily derived using other combinators.