After receiving numerous requests, we have altered the license with which CIlib is now released. The up coming version will be released using the LGPL and not the GPL.
We hope that this will aid our users
As always, feedback is appreciated.
Types. They are the heart of the any language, similarly they are the core of what CIlib operates on.
We are always looking to make things simpler and less error prone, as a result we have decided to look at the core of the library. A refactoring to solidify the core design, with the intention of refactoring as we go to correct the remainder of the library, has started and so far we are pleased with the results.
The reasoning for the refactor include:
- Simpler usage of types.
- Easy to understand API.
- Type instances that have clearly defined responsibilities.
- Immutability wherever possible to prevent snowball effects of errors.
Additionally, Vector instances are now created using a builder with all the current constructors on Vector being deprecated for the moment. Obviously, the intention is to remove all deprecations as soon as possible.
There will be changes to the manner in which our users use the Vector, however, we believe that the changes are very valid and warrant the minor API change.
It’s been some time since the last release, but we are please to announce the release of CIlib 0.7.4.
Numerous changes have been applied in this release, the most notable of them all being the manner in which threading has altered for simulation instances. CIlib will now make full use of the available number of processing units available. Nett result should be a very real improvement in the speed with which simulations will execute.
Head on over to the Google Code page and download a copy.
The full ChangeLog is as follows:
- Rename of the Random interface to RandomProvider. Prevents ambiguity.
- Removed container.Array classes.
- Created an ArithmeticOperator enum class to replace the MutationOperatorStrategy classes.
- Updates to the simulator to prevent outside acces and simplified a lot of the internal classes. Dependency Injection was employed to achieve the simplifications.
- Thread level data output. All simulation threads are now completely independent – data from the simulations is maintained in temporary files and then merged once all simulations have completed execution.
- REMOVED: Removed a direct dependency to the JDK within the pom.xml. The enforcement of the Java version is now perfromed using the maven-enforcer-plugin. Additionally, versions have been defined for the plugins to prevent any problems with the build.
- REMOVED: The
bioinf packages have been removed. They will be added once again, when the implementation has been cleaned up. They were not up to standard.
- Corrected value for lower bound activation function.
- Prevented potential issue with an invalid FileReader object.
- Corrected multi-valued patterns.
- Corrected the implementation of Cauchy random numbers.
- Corrected implementations of the Quartic, Quadric, Himmelblau, Goldstein Price and HyperEllipsoid functions.
- Corrections to Selection API. The methods are now much more fluent. Many more updates are probably required to ensure that the API is as usable as what is required.
Activity is picking up
As a result we are hoping that other CIlib contributors will be posting their current activities to keep the rest of us informed.
Some changes are coming regarding PSO velocity updates and simulation speed increases.
When using the simulator, the current manner in which CIlib’s internal threading works could result in simulations actually slowing down.
This has never really been an issue in the past. Lately, however, we are seeing that it is becoming something which is more and more important. The generic nature of CIlib is a great benefit to all, but with such a generic nature, it often means that we need to extra careful with regards to performance.
In the past that was something that we didn’t really focus on, but we have spent some time lately making sure that the performance is better. To that end, the latest changes are looking very promising. There is currently some internal testing going on, with the aim to include these new performance changes in the 0.7.4 release. There is, however, something to note regarding these changes: Your XML specifications will need to be adapted slightly to cater for the rearrangement of logic.
These specification changes do not impact the algorithm or problem definitions at all, however, some changes are required on the measurement and simulation tags. More details will be provided once the API is a little more stable. For the meantime, if you have the itch to have a look, feel free to get a clone of the repository and checkout the pu branch.
Feedback is always welcome
We finally managed to update the site to the new design using the WordPress backend. It’s rather cool, we’ll be providing a lot more feedback regarding plans for future development and the current status of work, including the progress on some of the more exciting features.
Stay tuned!
After a long struggle with updating the current website from the maven site, it was obvious that the current process was not something that would work down the road.
In order to potentially solve this, we had a look at a few alternatives and eventually thought of trying out WordPress as the basis for the new website. First and foremost, adding news items would be simple and the ability to add nice themes and widgets without much effort was rather appealing. Let’s see how it goes.