ttarkowski / quile Goto Github PK
View Code? Open in Web Editor NEWC++ genetic algorithms scientific library
License: MIT License
C++ genetic algorithms scientific library
License: MIT License
Quilë is a C++20 header-only general purpose genetic algorithms library with no external dependencies supporting floating-point, integer, binary and permutation representations. It is released under the terms of the MIT License (please see LICENSE file). The name of this library origins from fictional language Neo-Quenya and means “color”. This software strives to be minimal. List of contents doc/ Documentation. examples/ Short examples of the library features use. examples/ Examples. benchmark/ Benchmark programs and benchmark results. common/ Common files. evenstar/ Crystal structure prediction of nanowires. example_1/ Floating-point representation example. example_2/ Permutation representation example. mithril/ Crystal structure prediction of nanotubes. logo/ Logo artwork. paper/ Paper to The Journal of Open Source Software. quile/ The Quilë library itself. tutorial/ Tutorial. Installation The library is header-only, therefore installation on the user's system is done by copying the library source code. In case of GNU/Linux operating system it can be achieved by invoking following command in terminal in some directory, e.g. in /home/${USER}/repos directory: git clone https://github.com/ttarkowski/quile.git Please see the tutorial for more details. The latest stable release is v1.0.0 available for download at: https://github.com/ttarkowski/quile/releases/tag/v1.0.0 and described in following paper: Tomasz Tarkowski, Quilë: C++ genetic algorithms scientific library, Journal of Open Source Software, 8 (82), 4902 (2023). doi: 10.21105/joss.04902 List of dependencies The library does not depend on any other software. The user only need C++ compiler supporting C++20 standard of the language to compile programs written with use of the library. The software is known to work with both GCC and Clang compilers (the library was tested on GCC 10.2.1 and Clang 13.0.1). Compilation To compile programs written with use of the library, please use the following command: g++ -std=c++20 -DNDEBUG -O3 -Wall -Wextra -pedantic \ -I/home/${USER}/repos/quile/ -pthread your_program.cc or similar. Please see documentation and tutorial for more details. Documentation Documentation for the library can be generated from the source code with use of the Doxygen tool. Please see the tutorial for more details. Autogenerated library documentation for v1.0.0 is available at https://doi.org/10.5281/zenodo.7603809 . Tutorial If you need an easy introduction to the library, please see tutorial/ tutorial.txt file. Support If you need support, please visit: https://github.com/ttarkowski/quile/discussions and ask a question there. Reporting issues or problems If you find a bug in the library, please visit: https://github.com/ttarkowski/quile/issues and create an issue. Contributing to the software & Feature requests The Quilë library does not support code contributions. However, if you need some feature to be implemented in code, please visit: https://github.com/ttarkowski/quile/discussions and describe your feature request. However, please note that your request might be declined or permanently unresolved due to many reasons———including the facts that the library strives to be minimal and is intentionally developed as an one-person project. Test suite Test suite in form of the short examples of the library features use is located in doc/examples/ directory. The Makefile for GCC compiler is provided, so tests execution can be performed with make command. Code statistics * https://github.com/ttarkowski/quile/pulse * https://www.openhub.net/p/quile * * * This work is a result of the project funded by the National Science Centre of Poland (Twardowskiego 16, PL-30312 Kraków, Poland, http://www.ncn.gov.pl/) under the grant number UMO-2016/23/B/ST3/03575.
Dear author,
Generally speaking, the library works as described in the readme file of the repo, and the examples can be set up by following the instruction. However, there are minor fixes that can improve the quality of the submission:
evolution.dat
after 15 minutes. Maybe you need to mention any estimation of the time needed.P.S. This issue is related to openjournals/joss-reviews#4902
Dear author,
The paper is written well, but some minor things can be improved.
P.S. This issue is related to openjournals/joss-reviews#4902
Dear author,
The library has a set of small test cases with a Makefile intended to build and run these small test units. However, at the end of this process, it’s not clear whether the test is successful or not. As an improvement, I suggest that it reports to the user if each test passes or fails.
P.S. This issue is related to openjournals/joss-reviews#4902
There are many references in the JOSS paper the refer to the main branch of the code repository e.g. https://github.com/ttarkowski/quile/blob/main/tutorial/tutorial.txt and https://github.com/ttarkowski/quile/blob/main/README Since the main branch could be changed after the publication of the paper that could potentially create broken links. I think it would be better to create a tagged release of the code in github (the version of that release will be referred in the paper anyways) and create (permanent) links to files of that release.
In this section of the paper there is a mention in a search project in computational materials science (in ack the grant number is referred UMO-2016/23/B/ST3/03575) It would have been better to provide a link to that grant because it is not easy accessible through http://www.ncn.gov.pl/
Also regarding the sentence "PhD thesis (to be published on-line)", could you be more specific i.e. what is the title of the thesis, the author's name and the university. It is better to skip the note "to be published on-line" and instead create a bibliographic reference and cite that reference in the text.
Dear author,
The compiler requirement is elaborated in the tutorial file, but not enough information is provided in the readme file as the main documentation of the code. It took me some time to find out that I need GCC 10.2.1 to correctly build the examples. I first started with GCC 8 (with support for C++ 20 as described by the readme file), and then faced a couple of issues (like the #include <concepts>
statement).
So, I suggest that you elaborate on the compiler-related things by bringing the relevant stuff from the tutorial file up to the readme file.
P.S. This issue is related to openjournals/joss-reviews#4902
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.