{"id":23757557,"url":"https://github.com/petru-braha/algebraic-structures","last_synced_at":"2025-06-15T09:36:09.985Z","repository":{"id":245127906,"uuid":"817309690","full_name":"petru-braha/algebraic-structures","owner":"petru-braha","description":"Visualisation of the concepts learned in algebra","archived":false,"fork":false,"pushed_at":"2024-07-22T07:58:15.000Z","size":51110,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-12-31T19:48:29.698Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/petru-braha.png","metadata":{"files":{"readme":"readMe.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-19T12:46:46.000Z","updated_at":"2024-07-22T07:58:18.000Z","dependencies_parsed_at":"2024-07-22T09:29:41.445Z","dependency_job_id":null,"html_url":"https://github.com/petru-braha/algebraic-structures","commit_stats":null,"previous_names":["petru-braha/algebraic-structures"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2Falgebraic-structures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2Falgebraic-structures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2Falgebraic-structures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petru-braha%2Falgebraic-structures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petru-braha","download_url":"https://codeload.github.com/petru-braha/algebraic-structures/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239927846,"owners_count":19719836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-31T19:49:01.820Z","updated_at":"2025-02-20T23:15:16.092Z","avatar_url":"https://github.com/petru-braha.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Algebra\n\n## TO DO / actual strategy:\n- i have doubts about the implementation of the numbers. i will now focus only on sets\n- after implementing sets, i will focus on building the second version of my numbers\n\n### Purpose:\n\n- finite sets: check subsets and properties\n- infinite structures: check properties, find formula\n- finite structures: the most important (Zn, Fn)\n\n- types of structures: semi-groups, monoids, groups, rings, division rings, integral domain, fields, vector spaces\n\n- computations: multiplying values / is the result in the structure\n- commutativity\n- check if it is closed\n- check if it is a subgroup / field\n\n### Implementation:\n- 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)\n- extend the number to a maximum capacity of 3GB, where a single digit takes up 1B.\n- limit the maximum number of bytes taking into account, how many RAM GB is free.\n- good practice! reduce before any operation the fractions\n- a primitive float will be represented just with 2 decimals, arbitrary decision\n\n### future development: \n- expression classes, polynomials: vector \u003c [complex_number constant, new type x, int integer] \u003e \n- vector spaces\n\n### what i would do different if i will start a similar project again (version 2):\n- i will implement the numbers as an array of digits and not list! in this current vision i ran into 2 problems\n\t- O(n) - access time of a bit instead of linear. this evolves into O(n^2) - addition between two numbers (not great)\n\t- 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.\n\n\t- let's consider the following number: 10\n\t\t- can be represented in 4 bytes, as a int\n\t\t- can be represented in 2 bytes, as a array of char\n\t\t- 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).\n\t\n\t- *UPDATE*: i found a better choice!: array of unsigned long long int values (check \"version 2.md\").","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetru-braha%2Falgebraic-structures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetru-braha%2Falgebraic-structures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetru-braha%2Falgebraic-structures/lists"}