blob: 8c5fb6d58c10b9126167f32cdd56b3a9f36094f9 [file] [log] [blame]
Changes in Version 1.1
======================
1) New COPYRIGHT -- the Mathematics and Computer Science Division
at Argonne National Laboratory has agreed to relicense PGAPACK
under the MPICH2 license. The COPYRIGHT file as well as all
source files in source/*.c have been updated accordingly.
2) man/manl/*.l: Set Section to 3
3) source/integer.c: The off-by-one error reported by Robin Farin
in http://bugs.debian.org/333381 has been corrected.
4) source/report.c: Made two print statements conditional on
ctx->rep.PrintFreq > 0 to allow for complete suppression
5) source/mpi_stub.c: A different set of #define statements for
Fortran name mangling was introduced.
6) source/system.c: If PGAPACK was compiled with 'FAKE_MPI' defined
for a 'serial' debug version, print 'Sequential' instead of
'Parallel' in the version number statement.
7) README: updated, removed two sections referring to now-defunct
websites and mailing lists.
Changes in Version 1.0
======================
1) Added support for parallel execution of the global model (single
population) using MPI (Message Passing Interface).
2) Added support for a restart operator. The best string is used
to reinitialize the population.
3) Added support for new native data type Character.
4) Added support to specify the multiplier of the worst evaluation
value when remapping a minimization problem.
5) Separated specification of mutation type from rate.
6) Added new integer mutation operators.
7) Added an option to maintain integer and real allele values within
the range specified on initialization after mutation.
8) The configure script argument -optimize has been removed and
replaced with the -debug switch for compiling a debug version.
An optimized version of PGAPack is now built by default.
9) The configure script argument -arch AIX has been replaced with
-arch rs6000.
10) The configure script now accepts the -cflags and -flags switchs to
supply supply options to the C and FORTRAN compiler, respectively.
11) Changed PGATRUE and PGAFALSE to PGA_TRUE and PGA_FALSE.
12) Renamed debug macros to begin with PGA_DEBUG instead of PGADEBUG.
13) Renamed report macros to begin with PGA_REPORT (instead of, for
example PGA_ONLINE).
14) Removed macro PGAERROR from pgapack.h.
15) Rewrote PGARandomInterval(ctx, L, U) so that it would not
return L-1. It now returns [L, U].
16) PGADone, PGAUpdateGenertaion and PGAEvaluate all take an MPI
communicator as the last argument. See PGARunGM in parallel.c
for details on how to rewrite a user run routine.
17) Removed "Time" from the output.
18) Shortened the names of the source files as follows:
character.c char.c
crossover.c cross.c
duplicate.c duplcate.c
f2c_interface.c f2c.c
19) Shortened the name of the examples files as follows:
maxbit_custom.c maxbitc.c
maxbit_menu.c maxbitm.c
maxint_custom.c maxbitc.c
rastrigin.c rstrgnb.c
real_rastrigin.c rstrgnr.c
udt_struct.c udtstr.c
udt_struct_array.c udtastr.c
20) Replaced the function names on the left with the function
names on the right. The Perl script ./util/upgrade_script.pl
may be of use in automating part of the renaming process on
exisiting files.
PGABinaryBuildIndividualDatatype()
-> PGABinaryBuildDatatype()
PGABinaryRandomize() -> PGABinaryInitString()
PGABinaryWrite() -> PGABinaryPrint()
PGABinaryWriteString() -> PGABinaryPrintString()
PGABuildIndividualDatatype() -> PGABuildDatatype()
PGACharacterBuildIndividualDatatype()
-> PGACharacterBuildDatatype()
PGACharacterRandomize() -> PGACharacterInitString()
PGACharacterWriteString() -> PGACharacterPrintString()
PGAFitnessLinNor() -> PGAFitnessLinearNormal()
PGAFitnessLinRank() -> PGAFitnessLinearRank()
PGAFitnessMinRecprl() -> PGAFitnessMinReciprocal()
PGAGetEvalUpToDate() -> PGAGetEvaluationUpToDateFlag()
PGAGetEvaluate() -> PGAGetEvaluation()
PGAGetFitnessRankMax() -> PGAGetMaxFitnessRank()
PGAGetBest() -> PGAGetBestIndex()
PGAGetWorst() -> PGAGetWorstIndex()
PGAGetInitIntegerMax() -> PGAGetMaxIntegerInitValue()
PGAGetInitIntegerMin() -> PGAGetMinIntegerInitValue()
PGAGetInitRealMax() -> PGAGetMaxRealInitValue()
PGAGetInitRealMin() -> PGAGetMinRealInitValue()
PGAGetIntegerType() -> PGAGetIntegerInitType()
PGAGetIter() -> PGAGetGAIterValue()
PGAGetMaxDouble() -> PGAGetMaxMachineDoubleValue()
PGAGetMaxInt() -> PGAGetMaxMachineIntValue()
PGAGetMaxIter() -> PGAGetMaxGAIterValue()
PGAGetMinDouble() -> PGAGetMinMachineDoubleValue()
PGAGetMinInt() -> PGAGetMinMachineIntValue()
PGAGetMutateIntegerVal() -> PGAGetMutationIntegerValue()
PGAGetMutateOnlyNoCross() -> PGAGetMutationAndCrossoverFlag()
-> PGAGetMutationOrCrossoverFlag()
PGAGetMutateRealVal() -> PGAGetMutationRealValue()
PGAGetNoDuplicates() -> PGAGetNoDuplicatesFlag()
PGAGetNprocs() -> PGAGetNumProcs()
PGAGetNumReplace() -> PGAGetNumReplaceValue()
PGAGetOptDir() -> PGAGetOptDirFlag()
PGAGetPID() -> PGAGetRank()
PGAGetPopReplace() -> PGAGetPopReplaceType()
PGAGetPrintFreq() -> PGAGetPrintFrequency()
PGAGetRandomInit() -> PGAGetRandomInitFlag()
PGAGetRestart() -> PGAGetRestartFlag()
PGAGetRestartFrequency() -> PGAGetRestartFrequencyValue()
PGAGetSortPop() -> PGAGetSortedPopIndex()
PGAGetStoppingRule() -> PGAGetStoppingRuleType()
PGAGetStringLen() -> PGAGetStringLength()
PGAGetUniformCrossProb() -> PGAGetUniformCrossoverProb()
PGAIntegerBuildIndividualDatatype()
-> PGAIntegerBuildDatatype()
PGAIntegerRandomize() -> PGAIntegerInitString()
PGAIntegerWriteString() -> PGAIntegerPrintString()
PGAParallelDone() -> PGADoneMS()
PGAParallelEvaluateMS() -> PGAEvaluateMS()
PGAPrintContext() -> PGAPrintContextVariable()
PGAPrintVersion() -> PGAPrintVersionNumber()
PGARealBuildIndividualDatatype()-> PGARealBuildDatatype()
PGARealRandomize() -> PGARealInitString()
PGARealWriteString() -> PGARealPrintString()
PGARunMutateAndCross() -> PGARunMutationAndCrossover()
PGARunMutateOrCross() -> PGARunMutationOrCrossover()
PGASelectNext() -> PGASelectNextIndex()
PGASetCharacterInit() -> PGASetCharacterInitType()
PGASetEvaluate() -> PGASetEvaluation()
PGASetEvalUpToDate() -> PGASetEvaluationUpToDateFlag()
PGASetFitnessRankMax() -> PGASetMaxFitnessRank()
PGASetIntegerInitLU() -> PGASetIntegerInitRange()
PGASetMaxIter() -> PGASetMaxGAIterValue()
PGASetMaxNoChange() -> PGASetMaxNoChangeValue()
PGASetMaxSimilarity() -> PGASetMaxSimilarityValue()
PGASetMutateOnlyNoCross() -> PGASetMutationOrCrossoverFlag()
-> PGASetMutationAndCrossoverFlag()
PGASetMutationIntegerVal() -> PGASetMutationIntegerValue()
PGASetMutationRealVal() -> PGASetMutationRealValue()
PGASetNoDuplicates() -> PGASetNoDuplicatesFlag()
PGASetNumReplace() -> PGASetNumReplaceValue()
PGASetPopReplacement() -> PGASetPopReplacementType()
PGASetPrintFreq() -> PGASetPrintFrequencyValue()
PGASetRandomInit() -> PGASetRandomInitFlag()
PGASetRealInitLU() -> PGASetRealInitRange()
PGASetRestart() -> PGASetRestartFlag()
PGASetRestartFrequency() -> PGASetRestartFrequencyValue()
PGASetStoppingRule() -> PGASetStoppingRuleType()
PGASetSupportingDebugFlags() -> PGASetDebugFlag()
PGASetUniformCrossProb() -> PGASetUniformCrossoverProb()
PGAWriteString() -> PGAPrintString()
Changes in Version 0.2b
=======================
1) In PGABinaryTwoPointCrossover, add<ed a test before left-shifting.
The right operand of a shift must be strictly less than the number
of bits in the left operand, otherwise the result is undefined.
2) In udt_char.c, changed the data type to signed char since whether
char is signed is implementation dependent.
3) In real_rastrigin, made upper and lower to be dynamic arrays rather
than static arrays to allow variable string length.
Changes in Version 0.2a
=======================
1) Created pgapack-0.2.a.tar.Z to replace pgapack-0.2.tar.Z
when we found the IRIX's do not have a ranlib (unless it
is in /usr/local.
2) Deleted a space from ./examples/c/Makefile.in
3) Added the -w flag to FFLAGS for the freebsd version to
suppress warnings.
Changes in Version 0.2
======================
1) In PGASetUp, we changed the default value for the number of
individuals to replace each generation from 10 to 10% of the
population size.
2) Took all the parallel stuff out.
3) Defined PGAPrintReport and put various PGAPrint functions in
the new file system.c
5) Changed EvalUpToDate to all lower case.
6) Changed PGARunMutateOnlyNoCross to take PGA_OLDPOP and PGA_NEWPOP
as arguments
7) Changed the low-level ops functions to take p,pop as arguments
instead of a void pointer
8) Changed PGAMutate to a 3-argument function. It just mutates,
but does not copy the string to its final location. Use
PGACopyIndividual for that.