Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The sets of numbers in mathematics #31

Draft
wants to merge 47 commits into
base: main
Choose a base branch
from
Draft

The sets of numbers in mathematics #31

wants to merge 47 commits into from

Conversation

TheRustifyer
Copy link
Member

This PR aims to bring types and operations that represents the most common set of numbers in mathematics, which are:

  • Naturals
  • Integers
  • Rationals
  • Irrationals
  • Complex

The idea is to provide strong types over the typical numerical datatypes that stores the underlying values, and also provide safe API's to work with them.

Also, ideally they will include operations to be able to work with them in set theory operations and other fields

To see the working implementation up until now, refer to the numbers_tests.cpp file under the zero/tests directory.

code: added the imaginary and real part unicode symbol for the two different parts of a complex number
code: added also the Euler's number like letter to the math symbols
ci: now, the GH actions are executing the tests again for the project, since we are replacing the Catch2 suite with our own
… now includes the Naturals, the Integers and part of the Complex numbers
@TheRustifyer TheRustifyer self-assigned this Nov 11, 2023
@TheRustifyer TheRustifyer added enhancement New feature or request feature labels Nov 11, 2023
code: marking noexcept almost every function and constructor on the types
…eas determined for our codebase. The stylizer function has been refactored to be more memory efficient, saving a lot of potential std::string allocations on the concatenations
…ype satisfies the criteria to be a Number

code(numbers): implemented the basic operations for Rationals
code(numbers): Implemented the implementation of the equality operators for Naturals, Integers and Rationals
code(numbers): implemented some operator overloads for mix arithmetic operations between types
…ype satisfies the criteria to be a Number

code(numbers): implemented the basic operations for Rationals
code(numbers): Implemented the implementation of the equality operators for Naturals, Integers and Rationals
code(numbers): implemented some operator overloads for mix arithmetic operations between types
code(tsuite-assertions): cleaned the assertions module, and refactored the way of how are assertions handled internally
code(zero::concepts): Created a set of concepts to constrain types that are printable
Note that a few modules has some troubles compiling:
    - There's issues on the legacy iterator module (pending to review,
left commented now)
    - MSVC refuses to compile the `matrix.cppm` Matrix template type
when we provide template arguments to the Row and Column Matrix template
constructors
    - Tests are yet untested
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant