A "Java Problems" page has been added with information about the Microsoft VM
and Sun Java plug-in. The Elf page now checks to see whether Elf can run successfully
with the installed Java VM.
The Music dialog now allows the COM and method balance weighting values to
be configured, allowing full control over all aspects of composition score.
A bug fixed in the Music dialog which disallowed music scores of more than 9.
Two bugs fixed in the calculation of initial minimum COM: single-method searches
(1-spliced) now become possible, and it is also now possible to specify "Max COM" for
2-spliced searches with an odd number of leads in the part, because a single duplicate
lead pair is allowed for this search.
The method balance percentage now includes a measure of distribution of methods
between first and second half-leads (for half-lead spliced). A composition will
only score 100% if each method occurs the same number of times in both the first and
second halves. This value is now also used by the heuristic pruning algorithm,
which should result in faster and faster search speed as compositions with better
method distribution are found (unless of course the pruning has already been set to
the maximum value with the "optimum balance" composing option).
Indis build
It is now possible to fix the halflead COM - that is, produce leadhead-spliced-only
compositions - by ticking the "LH spliced only" option. Bobs are automatically
enabled in this mode.
An easier-to-use Method Library dialog split into two pages has been provided.
The first page is a simplified composition method chooser;
the second a "library management" page with the functions for changing abbreviations,
removing methods completely, and importing from the MicroSiril libraries.
On both pages methods are listed in alphabetical order of their abbreviation.
Fixed a bug in the Eärwen with-bobs search - not all compositions were being found.
"Nice" part-ends for 10-part searches added. For 7, 10 and 12-parts searches the
tenors-together option has also been made to work meaningfully: it ensures that there
is at least one coursing pair unaffected in each part, as for example in
Norman Smith's 23-spliced.
Most windows and layouts scale sensibly for Windows "large fonts".
An "Example Compositions" page has been added to Elf Help.
The rotationally-sorted search algorithm is now used for all searches. Other
performance enhancements include:
Use of composite methods to collapse the half-lead nodes into single leads.
Precalculation of all music tables.
Optimisation of the composition rotation checker.
Leadheads proof-checked during search, and results from full composition proof
fed back into the search pruner - effective for longer searches, especially
leadhead-only.
A five-fold improvement in table-building speed, but due to the composite
method table more data to be built; overall, build time approximately halved.
Whilst the rotational sort algorithm is not directly comparable with the previous
conventional search engine, and the actual leads/second rate is in fact slightly less,
the effective comparative rate for the 8-spliced ATW search is approximately
16.5 million.
Eärwen build
Music types and scoring can now be configured using the Elf Music
dialog.
Multiple methods can be selected in the Add and Remove lists.
The MicroSiril libraries are now available on the Add Method page.
"Nice" part-ends for 12-part searches added; those for 4-parts improved.
Searches can be paused and resumed.
The current top ten compositions can be viewed in a separate text window;
only the best composition now updated dynamically on the main composer page.
Many improvements to the content and layout of the web pages.
Fixed a bug where the final stats weren't updated with the end-of-search values.
Three times speed improvement over Elenwë build, from the following optimisations:
Almost all memory pre-allocated - zero garbage collection now required unless
compositions are being output.
Precalculated music tables used to speed up scoring - for every possible
leadhead and halflead, a music count for each method is stored to prevent
every row having to be calculated. These tables are however built up on the fly,
to avoid lengthening the initial table build phase. The music tables
are normally fully built within five minutes of the search start, after with
the search proceeds at full speed. Note that compositions are now pruned for
music before proving.
A separate composing loop spawned off for the bobs search. Call code then
removed from the primary loop, speeding up search and backtrack.
Checks for stats update and abort status performed less often.
Rearrangement and fine-grain code optimisation of inner composing loops.
Benchmark leads/second rate now 3.6 million.
Elenwë build
The first build of Elf, the applet version of the
original half-lead spliced composing engine. Allows the user to specify
number of leads, parts, methods, and five composing options.
Major optimisation work for delivery to 1.1 browser VM. Optimisations include:
Row-node tables - one node created per row on 8 bells (40320 total). These
contain pre-built permutation links for every possible place notation plus
the leadhead and half-lead permutations of the chosen methods. The composing
loop therefore no longer needs to permute rows.
Code optimisations including finalising (inlining) methods, reducing
garbage collection, and use of efficient data structures.
Benchmark leads/second rate approximately 1.4 million.