{"id":25832859,"url":"https://github.com/katieumbra/compxclib","last_synced_at":"2026-05-10T22:35:14.287Z","repository":{"id":64469524,"uuid":"576068427","full_name":"KatieUmbra/CompxCLib","owner":"KatieUmbra","description":"Complex Complete Library, a feature rich complex numbers library for Kotlin and Java","archived":false,"fork":false,"pushed_at":"2025-01-15T05:00:36.000Z","size":2544,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T07:11:36.943Z","etag":null,"topics":["advanced-mathematics","complex-numbers","fun","java","kotlin","library","math"],"latest_commit_sha":null,"homepage":"https://katieumbra.github.io/CompxCLib/","language":"Kotlin","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/KatieUmbra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-08T23:54:18.000Z","updated_at":"2025-01-15T05:00:37.000Z","dependencies_parsed_at":"2023-11-09T00:29:51.932Z","dependency_job_id":"b0b93cc5-1060-41f4-83e6-bd890424c73f","html_url":"https://github.com/KatieUmbra/CompxCLib","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KatieUmbra%2FCompxCLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KatieUmbra%2FCompxCLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KatieUmbra%2FCompxCLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KatieUmbra%2FCompxCLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KatieUmbra","download_url":"https://codeload.github.com/KatieUmbra/CompxCLib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241246621,"owners_count":19933410,"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":["advanced-mathematics","complex-numbers","fun","java","kotlin","library","math"],"created_at":"2025-02-28T21:49:19.364Z","updated_at":"2026-05-10T22:35:14.280Z","avatar_url":"https://github.com/KatieUmbra.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress ALL --\u003e\n\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\n\u003cdiv align=center\u003e\n\u003cimg src=\"https://github.com/KatieUmbra/compxclib/blob/main/assets/Repo%20Icon.png?raw=true\" alt=\"Repository Icon\" width=\"200\"\u003e\n\u003ch1\u003e \u003cb\u003eCompxCLib\u003c/b\u003e \u003c/h1\u003e\nComplex Complete Library\n\u003cbr/\u003e\n\u003c!-- Description  --\u003e\n\nA complete library for all of your \u003cb\u003ecomplex\u003c/b\u003e needs!\n\n\u003cbr/\u003e\n\n[![contributors][Contributors]][Contributors-url]\n[![forks][Forks]][Forks-url]\n[![stars][Stars]][Stars-url]\n[![issues][Issues]][Issues-url]\n[![license][License]][License-url]\n[![pull requests][PullRequests]][PullRequests-url]\n\n\u003c/div\u003e\n\n\u003cdetails\u003e\n    \u003csummary\u003eTable of contents\u003c/summary\u003e\n        \u003col\u003e\n            \u003cli\u003e\u003ca href=\"#About\"\u003eAbout\u003c/a\u003e\u003c/li\u003e\n                \u003cul\u003e\n                    \u003cli\u003e\u003ca href=\"#Inspiration\"\u003eInspiration\u003c/a\u003e\u003c/li\u003e\n                    \u003cli\u003e\u003ca href=\"#Tools used\"\u003eTools used\u003c/a\u003e\u003c/li\u003e\n                \u003c/ul\u003e\n            \u003cli\u003e\u003ca href=\"#Installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#Usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#Roadmap\"\u003eRoadmap\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#Contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#License\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#Contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n            \u003cli\u003e\u003ca href=\"#Acknowledgements\"\u003eAcknowledgements\u003c/a\u003e\u003c/li\u003e\n        \u003c/ol\u003e\n\u003c/details\u003e\n\n---\n\n## About\n\n\u003cdiv align=\"center\"\u003e\n\n\n\u003cimg src=\"https://raw.githubusercontent.com/KatieUmbra/compxclib/main/assets/examples/1.png\" alt=\"Graph of a complex function\" width=\"250\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/KatieUmbra/compxclib/main/assets/examples/2.png\" alt=\"Graph of a complex function\" width=\"250\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/KatieUmbra/compxclib/main/assets/examples/3.png\" alt=\"Graph of a complex function\" width=\"250\"\u003e\n\n\u003e these images were generated using [Processing].\n\n\u003c/div\u003e\n\nCompxCLib is a library targeted at everyone that needs to work with complex numbers in a straightforward and elegant manner, utilizing the features of the Kotlin language to make it accessible and simple.\n\n*but why not use one of the many libraries out there?* compxclib has unique features that make using complex numbers a *breeze*.\n\nHere are some of the unique features that **Compxclib** has:\n\n- Main intuitive complex number class, with plenty of operator extensions and `infix pow` function (kotlin exclusive)\n- Number operator extensions\n- Trig, exp, and other kinds of operations that are well optimized\n- An **expression parser** to quickly evaluate mathematical expressions that use complex numbers.\n\n### Inspiration\nThe reason I started working on this library was that I'm in love with complex algebra and I wanted to have a simple-to-use tool in order to create interesting and aesthetically pleasing simulations.\n### Tools used\nThese were some of the tools I used to build this project (except processing, that was used to make the graphics in this document)\n\n- [![Gradle Logo][GradleIMG]][Gradle]\n- [![Processing Logo][ProcessingIMG]][Processing]\n- [![IntelliJ IDEA logo][IntelliJIMG]][Idea]\n- [![ShadowJar on Github][ShadowJarIMG]][ShadowJar]\n- [![Kotlin Logo][KotlinIMG]][Kotlin]\n\n## Getting Started\n### Installation\n\n[![repository][MavenCentral]][MavenCentral-url]\n\n\u003cdetails\u003e \u003csummary\u003eMaven\u003c/summary\u003e\n\u003cdiv align=center\u003e\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd\u003epom.xml\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd align=left\u003e\n\n```xml\n\n\u003cdependency\u003e\n  \u003cgroupId\u003edev.kaytea\u003c/groupId\u003e\n  \u003cartifactId\u003ecompxclib\u003c/artifactId\u003e\n  \u003cversion\u003e1.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\u003c/tr\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eGradle\u003c/summary\u003e\n\u003cdiv align=center\u003e\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd\u003ebuild.gradle\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd align=left\u003e\n\n```gradle\ndependencies {\n    //other dependencies...\n    implementation 'dev.kaytea:compxclib:1.2'\n}\n```\n\n\u003c/tr\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e \u003csummary\u003eGradle kotlin\u003c/summary\u003e\n\u003cdiv align=center\u003e\n\u003ctable\u003e\n\u003ctr\u003e\u003ctd\u003ebuild.gradle.kts\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd align=left\u003e\n\n```kotlin\ndependencies {\n  //other dependencies...\n  implementation(\"dev.kaytea:compxclib:1.2\")\n}\n```\n\u003c/tr\u003e\u003c/table\u003e\u003c/div\u003e\n\u003c/details\u003e\n\n## Examples\n\n\u003cdiv align=center\u003e\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eparsing user input to a complex number\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=left\u003e\n\n```java\nimport compxclib.ComplexNumber;\nimport compxclib.parser.Parser;\nimport java.util.Scanner;\n\npublic class App{\n  private static final Scanner scanner = new Scanner(System.in);\n\n  private static void calculate() {\n    String input = scanner.nextLine();\n    Parser parser = new Parser(input);\n    ComplexNumber result = parser.parse();\n    System.out.println(input +\" = \"+ result);\n  }\n\n  public static void main(String[] args) {\n    System.out.println(\"Introduce an expression\");\n    calculate();\n  }\n}\n```\n\u003c/table\u003e\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd\u003erun multiple operations efficiently\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=left\u003e\n\n```kotlin\nimport compxclib.ComplexNumber\nimport compxclib.functions.sin\n\nfun main() {\n  val (width, height) = Pair(1920, 1080)\n  val results = Array(height) { Array(width) { ComplexNumber(0,0) } }\n  for (i in 0 ..\u003c height) {\n    for (j in 0 ..\u003c width){\n      val currentNumber = ComplexNumber(height, width)\n      val sinOfCurrentNumber = sin(currentNumber)\n      results[i][j] = sinOfCurrentNumber\n    }\n  }\n  println(results)\n}\n\n```\n\u003c/table\u003e\n\n\u003c/div\u003e   \n\n## Roadmap\n\n- [X] Adding a fully functioning complex number class\n- [X] Handling typical functions such as `exp(x)` or `log(x)`\n- [ ] Refractor codebase and optimize\n- [ ] Handling extra functions\n  - [X] Trig functions\n  - [ ] Hyperbolic functions\n- [ ] Adding a parser\n  - [x] Parser returns values\n  - [ ] Parser returns functions\n- [ ] Examples inside the documentation\n\n## Contributing\n\nContributing is what makes open source projects so magical, and it unites the community.\nif you want to suggest a feature then you could either\n- Create a new issue with the \"Suggestion tag\"\n- Create a pull request:\n  1. Fork the Project\n  2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n  3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n  4. Push to the Branch (`git push origin feature/AmazingFeature`)\n  5. Open a Pull Request\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n## Contact\n\nYou can contact me with the name \"Katherine\" \n- Email: `contact@kaytea.dev`\n- Repo: `https://github.com/KatieUmbra/compxclib`\n## Acknowledgements\n\n- [This readme is heavily inspired on this][README-inspiration]\n- [Processing framework used for the images][Processing]\n\n\u003c!-- LINKS AND IMAGES --\u003e\n\n[Contributors]: https://img.shields.io/github/contributors/KatieUmbra/compxclib?color=blue\u0026style=for-the-badge\n[Forks]: https://img.shields.io/github/forks/KatieUmbra/compxclib?style=for-the-badge\n[Stars]: https://img.shields.io/github/stars/KatieUmbra/compxclib?style=for-the-badge\n[Issues]: https://img.shields.io/github/issues/KatieUmbra/compxclib?style=for-the-badge\n[License]: https://img.shields.io/github/license/KatieUmbra/compxclib?style=for-the-badge\n[PullRequests]: https://img.shields.io/github/issues-pr/KatieUmbra/compxclib?style=for-the-badge\n[MavenCentral]: https://img.shields.io/maven-central/v/dev.kaytea/compxclib?style=for-the-badge\n\n[Contributors-url]: https://github.com/KatieUmbra/compxclib/graphs/contributors\n[Forks-url]: https://github.com/KatieUmbra/compxclib/network/members\n[Stars-url]: https://github.com/KatieUmbra/compxclib\n[Issues-url]: https://github.com/KatieUmbra/compxclib/issues\n[License-url]: https://mit-license.org/\n[PullRequests-url]: https://github.com/KatieUmbra/compxclib/pulls\n[MavenCentral-url]: https://repo1.maven.org/maven2/dev/kaytea/compxclib/\n\n[README-inspiration]: https://github.com/othneildrew/Best-README-Template\n[Gradle]: https://gradle.org/\n[Processing]: https://processing.org/\n[Idea]: https://www.jetbrains.com/idea/\n[ShadowJar]: https://github.com/johnrengelman/shadow\n[Kotlin]: https://kotlinlang.org/\n\n[GradleIMG]: https://img.shields.io/static/v1?label=\u0026message=Gradle\u0026color=lightgray\u0026logo=Gradle\u0026style=flat-square\n[ProcessingIMG]: https://img.shields.io/static/v1?label=\u0026message=Processing\u0026color=4d4d4d\u0026logo=ProcessingFoundation\u0026style=flat-square\n[IntelliJIMG]: https://img.shields.io/static/v1?label=\u0026message=IntelliJIDEA\u0026color=000000\u0026logo=IntelliJIDEA\u0026style=flat-square\n[ShadowJarIMG]: https://img.shields.io/static/v1?label=\u0026message=ShadowJar\u0026color=gray\u0026logo=GitHub\u0026style=flat-square\n[KotlinIMG]:https://img.shields.io/static/v1?label=\u0026message=Kotlin\u0026color=FF3850\u0026logo=kotlin\u0026style=flat-square\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkatieumbra%2Fcompxclib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkatieumbra%2Fcompxclib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkatieumbra%2Fcompxclib/lists"}