{"id":20789169,"url":"https://github.com/umstek/exsolver","last_synced_at":"2026-05-22T01:36:26.129Z","repository":{"id":20105395,"uuid":"23375021","full_name":"umstek/ExSolver","owner":"umstek","description":"Expression solver.","archived":false,"fork":false,"pushed_at":"2023-12-15T02:37:27.000Z","size":81,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-17T15:21:09.118Z","etag":null,"topics":["calculator","java","mathematics"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umstek.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":"2014-08-27T03:03:05.000Z","updated_at":"2017-02-04T16:32:07.000Z","dependencies_parsed_at":"2023-12-15T03:36:47.298Z","dependency_job_id":"f474ad36-22a3-407a-a785-e6186825b891","html_url":"https://github.com/umstek/ExSolver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umstek%2FExSolver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umstek%2FExSolver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umstek%2FExSolver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umstek%2FExSolver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umstek","download_url":"https://codeload.github.com/umstek/ExSolver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234494532,"owners_count":18842086,"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":["calculator","java","mathematics"],"created_at":"2024-11-17T15:20:06.913Z","updated_at":"2025-12-26T02:13:58.490Z","avatar_url":"https://github.com/umstek.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExSolver\n\nExpression solver.\n\nOriginal Comments from 2013-12-28\n\nmathex™ Solver.\n\nmathex™ Solver simplifies any mathematical expression.\nIt can handle any number of nested brackets.\nVariables which have their predefined values can be used in the expression.\nRadix convertions from 2 to 36 including hexadecimal, octal and binary number systems are supported. \nVarious functions including but not limited to sin(), cos(), ln() ... are supported.\n\nI followed the rule \"practice design, not decoration\" rule to some extent.\nTried to simplify the GUI to make the software more user-friendly.\nI used swing controls designing the GUI. \nTooltips are used to guide the user to use the software. \nI used the html-like tag support for clarity.\n\nInternally, I used a constructor which accepts the expression as a String and, a TreeMap of variables. \nI used a function called \"selectAndSolve\" which selects what operations to perform.\nBeing the main point of the program, it is recursively called by other parts of the program.\nBy doing so, I managed to decrease code redundancy. \nI divided the program into different parts. \nBy using different methods for each of the operations, (one method for a operator and its opposite),\nit was easy to maintain cohesion. \nBefore doing the calculation, I used a method to make it cleaner \n(i.e.: removing whitespaces, adding operators where not given, remove repeated operators...). \nI commented when necessary, so I can easily maintain the code. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumstek%2Fexsolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumstek%2Fexsolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumstek%2Fexsolver/lists"}