Skip to content

Added Trig functions Sine, Cosine, Tan, Cotan, Secant, Cosecant, Arcsine, Arccosine, Arctan.#215

Open
DoggieGreg wants to merge 28 commits into
open-algebra:masterfrom
DoggieGreg:master
Open

Added Trig functions Sine, Cosine, Tan, Cotan, Secant, Cosecant, Arcsine, Arccosine, Arctan.#215
DoggieGreg wants to merge 28 commits into
open-algebra:masterfrom
DoggieGreg:master

Conversation

@DoggieGreg

@DoggieGreg DoggieGreg commented Apr 21, 2026

Copy link
Copy Markdown

This pull request adds comprehensive support for additional trigonometric and inverse trigonometric functions to the symbolic math library. It introduces new expression classes for cosine, tangent, secant, cosecant, cotangent, and their respective inverses (arcsine, arccosine, arctan), and integrates them throughout the expression system, visitor interfaces, and serializers. The changes ensure these new functions are recognized, differentiated, simplified, and serialized properly.

New trigonometric and inverse trigonometric expression classes:

  • Added new classes: Cosine, Tan, Secant, Cosecant, Cotan, Arcsine, Arccosine, and Arctan in the Oasis namespace, each inheriting from UnaryExpression and supporting integration and expression type/category macros. [1] [2] [3] [4] [5] [6] [7] [8]

  • Updated include/CMakeLists.txt to install new header files for these classes. [1] [2]

Integration into expression system:

  • Extended the ExpressionType enum to include all new trigonometric and inverse trigonometric types.
  • Added forward declarations for all new classes in FwdDecls.hpp. [1] [2]
  • Refactored the Sine class to match the new template style and interface.

Visitor and serialization support:

  • Updated the base Visitor and TypedVisitor interfaces to include visit methods for all new function types. [1] [2] [3]
  • Implemented corresponding TypedVisit methods in DifferentiateVisitor, SimplifyVisitor, InFixSerializer, and MathMLSerializer to handle the new expression types. [1] [2] [3] [4]

These changes collectively make the library capable of representing, manipulating, and serializing a full suite of trigonometric and inverse trigonometric expressions.

Merging new changes that fix featurs and changes how simplify work
@DoggieGreg

Copy link
Copy Markdown
Author

Integrate not implemented and erroring
Differentiate not implemented

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant