Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/petru-braha/algebraic-structures
Visualisation of the concepts learned in algebra
https://github.com/petru-braha/algebraic-structures
Last synced: about 2 months ago
JSON representation
Visualisation of the concepts learned in algebra
- Host: GitHub
- URL: https://github.com/petru-braha/algebraic-structures
- Owner: petru-braha
- Created: 2024-06-19T12:46:46.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-07-22T07:58:15.000Z (7 months ago)
- Last Synced: 2024-07-22T09:28:10.723Z (7 months ago)
- Language: C++
- Homepage:
- Size: 48.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readMe.md
Awesome Lists containing this project
README
# Algebra
## TO DO / actual strategy:
- i have doubts about the implementation of the numbers. i will now focus only on sets
- after implementing sets, i will focus on building the second version of my numbers### Purpose:
- finite sets: check subsets and properties
- infinite structures: check properties, find formula
- finite structures: the most important (Zn, Fn)- types of structures: semi-groups, monoids, groups, rings, division rings, integral domain, fields, vector spaces
- computations: multiplying values / is the result in the structure
- commutativity
- check if it is closed
- check if it is a subgroup / field### Implementation:
- it is not that important to be stingy about the memory (taking into account this article: https://www.quora.com/What-is-the-practical-use-for-large-numbers-with-an-extremely-high-amount-of-digits-millions)
- extend the number to a maximum capacity of 3GB, where a single digit takes up 1B.
- limit the maximum number of bytes taking into account, how many RAM GB is free.
- good practice! reduce before any operation the fractions
- a primitive float will be represented just with 2 decimals, arbitrary decision### future development:
- expression classes, polynomials: vector < [complex_number constant, new type x, int integer] >
- vector spaces### what i would do different if i will start a similar project again (version 2):
- i will implement the numbers as an array of digits and not list! in this current vision i ran into 2 problems
- O(n) - access time of a bit instead of linear. this evolves into O(n^2) - addition between two numbers (not great)
- the original plan was to build a large number depending on the available space. i wished to maximize the information of a number in small quantities.- let's consider the following number: 10
- can be represented in 4 bytes, as a int
- can be represented in 2 bytes, as a array of char
- natural numbers class: total cost of my implementation : 16(first digit node) + 16(second digit node) + 8(the variable "bytes" - unsigned long long int) + 8(vfptr - the virtual table) = 48 bytes == 12 * sizeof((int)10).
- *UPDATE*: i found a better choice!: array of unsigned long long int values (check "version 2.md").