Libctl release notes
From AbInitio
(Difference between revisions)
Revision as of 01:14, 16 October 2005 (edit) Stevenj (Talk | contribs) ← Previous diff |
Current revision (18:17, 28 March 2014) (edit) Stevenj (Talk | contribs) |
||
Line 1: | Line 1: | ||
+ | {{libctl}} | ||
Here, we describe what has changed between releases of the [[libctl]] package. You can also refer to the <code>NEWS</code> file in the libctl package (or the <code>ChangeLog</code> file for a more detailed listing). | Here, we describe what has changed between releases of the [[libctl]] package. You can also refer to the <code>NEWS</code> file in the libctl package (or the <code>ChangeLog</code> file for a more detailed listing). | ||
{{TOCright}} | {{TOCright}} | ||
+ | |||
+ | ==libctl 3.2.2== | ||
+ | <small>28 March 2014</small> | ||
+ | |||
+ | * Bug fix to <code>interpolate-uniform</code> for guile 1.8+. | ||
+ | |||
+ | ==libctl 3.2.1== | ||
+ | <small>8 August 2012</small> | ||
+ | |||
+ | * Fix incorrect <code>gh_symbol2newstr</code> macro replacement. | ||
+ | |||
+ | ==libctl 3.2== | ||
+ | <small>20 July 2012</small> | ||
+ | |||
+ | * Now works with Guile version 2.x (older versions are still supported). | ||
+ | * Add <code>libctl_quiet</code> variable to <code>main.c</code> so that libctl-using programs can suppress all output if desired (e.g. to avoid duplicate outputs on parallel machines). | ||
+ | * Added <code>wedge</code> object type for circular/cylindrical wedges, as a subclass of <code>cylinder</code>: <code>(make wedge (center ...) (axis ...) (radius ...) ...)</code> with two new properties: <code>(wedge-angle ...)</code> for the angle in radians, and <code>(wedge-start v)</code> for a vector v such that the wedge angles start at zero in the (v, axis) plane. [Caveat: subpixel averaging is currently inaccurate for the flat wedge edges.] | ||
+ | * list-type constructors now accept either <code>(name ...elements...)</code> or <code>(name (list ...elements...))</code>. | ||
+ | * Add <code>vector3->exact</code> function for to-integer rounding. Otherwise, ensure that interpolation results are floating-point to prevent type-conversion errors. | ||
+ | * Added <code>ctl-set-prompt!</code> to set interactive prompt in both old and new Guile versions. | ||
+ | * Rename <code>string</code> to <code>char*</code> in <code>ctl-io.h</code> for C++ compatibility. | ||
+ | * Bug fix in normal-to-object near corners of blocks. | ||
+ | |||
+ | ==libctl 3.1== | ||
+ | <small>5 June 2008</small> | ||
+ | |||
+ | * Support specifying the location of the <code>guile</code> and <code>guile-config</code> programs with <code>GUILE</code> and <code>GUILE_CONFIG</code> environment variables in the <code>configure</code> script. | ||
+ | * Support for calling [[NLopt]] optimization library (also requires the program using libctl to be changed to link nlopt). | ||
+ | * New <code>ellipsoid_overlap_with_object</code> function, analogous to <code>box_overlap_with_object</code> function. | ||
+ | * Bug fix in <code>include</code> function for recent versions of Guile, to properly keep track of the current include directory. | ||
+ | * Bug fix in numerical-derivative routine, which didn't converge when the error was exactly zero. | ||
+ | |||
+ | ==libctl 3.0.3== | ||
+ | <small>27 February 2008</small> | ||
+ | |||
+ | * Added "<code>begin-timed</code>" function, which is similar to "<code>begin-time</code>" except that it returns the value of the last statement (like "<code>begin</code>") rather than the time. | ||
+ | * Bug fix: allow classes to have <code>boolean</code> properties. | ||
+ | * Bug fixes for compilation under C++, thanks to David Foster: include missing <code>string.h</code> header and fixed <code>gh_new_procedure</code> prototype. | ||
+ | |||
+ | ==libctl 3.0.2== | ||
+ | <small>22 August 2006</small> | ||
+ | |||
+ | * Fix minor Guile incompatibility on some systems. | ||
+ | |||
+ | ==libctl 3.0.1== | ||
+ | <small>5/1/2006</small> | ||
+ | |||
+ | * Change shared-library version to 3:0:0 instead of 0:0:0. This avoids conflicts with shared library version numbers that has been assigned to earlier versions of libctl for Debian; thanks to Josselin Mouette for the suggestion. | ||
+ | |||
+ | ==libctl 3.0== | ||
+ | <small>4/1/2006</small> | ||
+ | |||
+ | * Switch to use <code>automake</code> and <code>libtool</code>. Can now install shared libraries with <code>--enable-shared</code>. | ||
+ | * License is now GNU GPL (v2 or later) rather than the GNU LGPL, due to use of third-party GPL code for multi-dimensional integration (below). | ||
+ | * <code>gen-ctl-io</code> now supports separate generation of code and header files via <code>--code</code> and <code>--header</code> arguments. (Better for parallel make.) Also support a <code>-o</code> option to give a different output file name. | ||
+ | * <code>gen-ctl-io</code> can now export C++ code by using the <code>--cxx</code> flag. | ||
+ | * <code>gen-ctl-io</code> can now export SWIG <code>.i</code> files for automatic type conversion in SWIG wrapper generation, using the <code>--swig</code> flag. | ||
+ | * Backwards incompatible change: users must include their own <code>ctl-io.h</code> *before* <code>ctlgeom.h</code>, or you get <code>ctlgeom-types.h</code> instead (this is for use with the "stand-alone" <code>libctlgeom.a</code> library below. | ||
+ | * New multi-dimensional integration routines using adaptive cubature. (Much more efficient than nested 1d integrations.) Adapted in part from the HIntlib Library by Rudolf Schuerer and from the GNU Scientific Library (GSL) by Brian Gough. | ||
+ | * New <code>interpolate-uniform</code> function that tries to maintain a uniform distance between points (i.e. variable number of interpolated points between different list elements, as needed). | ||
+ | * Now install a "stand-alone" <code>libctlgeom.a</code> library to make it easier to call geometry routines from non-Scheme code. | ||
+ | * New routines to compute overlap fraction of box with object, compute analytical normal vectors, etcetera. (For upcoming versions of Meep and MPB.) Also new routines to get the object of a point, not just the material. Also new routines to operate on a supplied geometry list parameter instead of using the global; unlike the old material_of_point_in_tree functions, these functions do not shift the argument to the unit cell, but you can use the new function shift_to_unit_cell to get this behavior. | ||
+ | * <code>gen-ctl-io</code> now generates object equal/copy functions. | ||
+ | * In <code>unit-vector3</code>, only return 0 when norm==0, not merely if it is small. | ||
+ | * Added one-sided numerical derivative routine. | ||
+ | * Define "<code>verbose?</code>" variable corresponding to main.c variable. | ||
+ | * <code>(print)</code> calls <code>(flush-all-ports)</code> to keep C and Scheme I/O in sync. | ||
+ | * Fix in <code>find-root-deriv</code> to prevent infinite loop in some cases where the root does not exist; thanks to XiuLun Yang for the bug report. | ||
+ | * Bug fix in <code>make_hermitian_cmatrix3x3</code>; thanks to Mischa Megens. | ||
==libctl 2.2== | ==libctl 2.2== | ||
Line 6: | Line 76: | ||
* Added simple trapezoidal-rule adaptive numeric integration routine. | * Added simple trapezoidal-rule adaptive numeric integration routine. | ||
- | * Numerical derivative routines now allow numerical differentation of vector-valued function. Added deriv2 convenience routine. | + | * Numerical derivative routines now allow numerical differentation of vector-valued function. Added <code>deriv2</code> convenience routine. |
- | * Added find-root-deriv functions for faster root-finding of functions for which the derivative is also available. | + | * Added <code>find-root-deriv</code> functions for faster root-finding of functions for which the derivative is also available. |
- | * Added missing (cvector3 ...) constructor, and fixed corresponding constructor for cvector3 object properties; thanks to Doug Allan for the bug report. | + | * Added missing <code>(cvector3 ...)</code> constructor, and fixed corresponding constructor for <code>cvector3</code> object properties; thanks to Doug Allan for the bug report. |
- | * Added generic 'memoize' function. | + | * Added generic '<code>memoize</code>' function. |
* libctl programs now print out command-line parameters when they run. | * libctl programs now print out command-line parameters when they run. | ||
- | * Fixed incomplete support for generic SCM type. | + | * Fixed incomplete support for generic <code>SCM</code> type. |
* Fixed to work with Guile 1.5+ (thanks to Mike Watts for the bug report). | * Fixed to work with Guile 1.5+ (thanks to Mike Watts for the bug report). | ||
Line 18: | Line 88: | ||
* Bug fix: complex-number input variables were read as garbage if they had imaginary parts; does not affect complex-number outputs. | * Bug fix: complex-number input variables were read as garbage if they had imaginary parts; does not affect complex-number outputs. | ||
- | * Added generic SCM type for i/o variables and parameters, as a catch-all for other Scheme objects. | + | * Added generic <code>SCM</code> type for i/o variables and parameters, as a catch-all for other Scheme objects. |
- | * main.c now has ctl_export_hook (enabled by defining CTL_HAVE_EXPORT_HOOK) with which to define additional Guile symbols. | + | * <code>main.c</code> now has <code>ctl_export_hook</code> (enabled by defining <code>CTL_HAVE_EXPORT_HOOK</code>) with which to define additional Guile symbols. |
- | * gen-ctl-io: converts "!" in symbols to "B" in C identifiers. | + | * <code>gen-ctl-io</code>: converts "!" in symbols to "B" in C identifiers. |
==libctl 2.0== | ==libctl 2.0== | ||
<small>3/10/2002</small> | <small>3/10/2002</small> | ||
- | * New set-param! function, analogous to define-param, that allows you to change the value of a parameter in a way that can still be overridden from the command line. | + | * New <code>set-param!</code> function, analogous to <code>define-param</code>, that allows you to change the value of a parameter in a way that can still be overridden from the command line. |
- | * In libgeom, allow user to specify the resolution instead of the grid-size. New no-size support in lattice class to reduce dimensionality, and new (get-grid-size) function. | + | * In libgeom, allow user to specify the resolution instead of the grid-size. New <code>no-size</code> support in lattice class to reduce dimensionality, and new <code>(get-grid-size)</code> function. |
- | * Support for Scheme complex numbers, along with a few new associated functions: conj, vector3-cdot, matrix3x3-adjoint. | + | * Support for Scheme complex numbers, along with a few new associated functions: <code>conj</code>, <code>vector3-cdot</code>, <code>matrix3x3-adjoint</code>. |
* New functions to compute numerical derivatives using Ridder's method of polynomial extrapolation. | * New functions to compute numerical derivatives using Ridder's method of polynomial extrapolation. | ||
- | * Documented object-property-value; thanks to Theis Peter Hansen for the suggestion. | + | * Documented <code>object-property-value</code>; thanks to Theis Peter Hansen for the suggestion. |
- | * Get rid of unneeded make-default, and use consistent syntax for define-property and define-post-processed-property, compared to define-input-var. NOT BACKWARD COMPATIBLE (for developers; users are not affected). Thanks to Theis Peter Hansen for the suggestion. | + | * Get rid of unneeded make-default, and use consistent syntax for <code>define-property</code> and define-post-processed-property, compared to <code>define-input-var.</code> '''Not backward compatible''' (for developers; users are not affected). Thanks to Theis Peter Hansen for the suggestion. |
- | * Call ctl_stop_hook even with --help, --version, etcetera; this makes the behavior nicer e.g. with MPI. | + | * Call <code>ctl_stop_hook</code> even with <code>--help</code>, <code>--version</code>, etcetera; this makes the behavior nicer e.g. with MPI. |
==libctl 1.5== | ==libctl 1.5== | ||
<small>11/15/2001</small> | <small>11/15/2001</small> | ||
- | * geometry-lattice now has a separate basis-size property, so that you can specify the basis vectors as being something other than unit vectors. | + | * <code>geometry-lattice</code> now has a separate <code>basis-size</code> property, so that you can specify the basis vectors as being something other than unit vectors. |
* More functions are tail-recursive, helping to prevent stack overflows; thanks to Robert Sheldon for the bug report. | * More functions are tail-recursive, helping to prevent stack overflows; thanks to Robert Sheldon for the bug report. | ||
- | * New fold-left and fold-right functions, documented in the manual. | + | * New <code>fold-left</code> and <code>fold-right</code> functions, documented in the manual. |
- | * The configure script now checks that guile is in the $PATH. Thanks to Bing Li and Giridhar Malalahalli for their bug reports. | + | * The configure script now checks that <code>guile</code> is in the <code>$PATH</code>. Thanks to Bing Li and Giridhar Malalahalli for their bug reports. |
==libctl 1.4.1== | ==libctl 1.4.1== | ||
Line 49: | Line 119: | ||
<small>2/23/2001</small> | <small>2/23/2001</small> | ||
- | * Renamed "display-many" function to more felicitous "print" and added "print-ok?" global variable that allows you to disable program output. | + | * Renamed <code>display-many</code> function to more felicitous <code>print</code> and added <code>print-ok?</code> global variable that allows you to disable program output. |
- | * Added support for passing 'function types back and forth (just a SCM object pointing to a Scheme function). | + | * Added support for passing <code>'function</code> types back and forth (just a SCM object pointing to a Scheme function). |
* Cosmetic fixes to yes/no? and menu-choice interaction functions. | * Cosmetic fixes to yes/no? and menu-choice interaction functions. | ||
* Support start/exit hooks for use e.g. with MPI. | * Support start/exit hooks for use e.g. with MPI. | ||
Line 57: | Line 127: | ||
<small>1/7/2001</small> | <small>1/7/2001</small> | ||
- | * Added improved "subplex" multidimensional optimization algorithm (for maximize-multiple and minimize-multiple). | + | * Added improved "subplex" multidimensional optimization algorithm (for <code>maximize-multiple</code> and <code>minimize-multiple</code>). |
- | * Documented vector3-x, vector3-y, vector3-z functions for extracting vector3 components. | + | * Documented <code>vector3-x</code>, <code>vector3-y</code>, <code>vector3-z</code> functions for extracting <code>vector3</code> components. |
==libctl 1.2== | ==libctl 1.2== | ||
<small>7/9/2000</small> | <small>7/9/2000</small> | ||
- | * Added new "cone" geometric object type. | + | * Added new <code>cone</code> geometric object type. |
- | * Added reciprocal->cartesian, cartesian->lattice, lattice->reciprocal, etcetera functions to libgeom for converting vectors between bases. | + | * Added <code>reciprocal->cartesian</code>, <code>cartesian->lattice</code>, <code>lattice->reciprocal</code>, etcetera functions to libgeom for converting vectors between bases. |
- | * Added routines rotate-vector3 and rotation-matrix3x3 for rotating vectors. | + | * Added routines <code>rotate-vector3</code> and <code>rotation-matrix3x3</code> for rotating vectors. |
* Added support for returning lists from external functions. | * Added support for returning lists from external functions. | ||
- | * Fixed bug in matrix3x3-inverse function. | + | * Fixed bug in <code>matrix3x3-inverse</code> function. |
* Fixed bug in find-root for converging to negative roots. | * Fixed bug in find-root for converging to negative roots. | ||
* Use Nelder-Mead simplex algorithm for multi-dimensional minimization (it seems to be more robust than the old routine). | * Use Nelder-Mead simplex algorithm for multi-dimensional minimization (it seems to be more robust than the old routine). | ||
Line 74: | Line 144: | ||
<small>1/28/2000</small> | <small>1/28/2000</small> | ||
- | * Use CPPFLAGS environment variable instead of the less-standard INCLUDES to pass -I flags to the configure script (for header files in non-standard locations). | + | * Use <code>CPPFLAGS</code> environment variable instead of the less-standard <code>INCLUDES</code> to pass <code>-I</code> flags to the configure script (for header files in non-standard locations). |
- | * Compilation fixes. We need to set SHELL in the Makefile for make on some systems. Also added rule to insure ctl-io.h is created before main.c is compiled. Thanks to Christoph Becher for the bug reports. | + | * Compilation fixes. We need to set <code>SHELL</code> in the Makefile for make on some systems. Also added rule to insure <code>ctl-io.h</code> is created before main.c is compiled. Thanks to Christoph Becher for the bug reports. |
==libctl 1.1== | ==libctl 1.1== | ||
Line 82: | Line 152: | ||
* geom: radius and height of objects is now permitted to be zero. | * geom: radius and height of objects is now permitted to be zero. | ||
* geom: material_of_point_* routines now report whether the point is in any object; necessary for use with MPB 0.9. | * geom: material_of_point_* routines now report whether the point is in any object; necessary for use with MPB 0.9. | ||
- | + | * Added man page for <code>gen-ctl-io</code>, based on a contribution by James R. Van Zandt. | |
- | * Added man page for gen-ctl-io, based on a contribution by James R. Van Zandt. | + | |
==libctl 1.0.1== | ==libctl 1.0.1== | ||
<small>11/22/1999</small> | <small>11/22/1999</small> | ||
- | * geom: handle case where ensure-periodicity is false. | + | * geom: handle case where <code>ensure-periodicity</code> is false. |
- | * geom: bug fix in geometric-objects-lattice-duplicates for non-orthogonal lattices; thanks to Karl Koch for the bug report. | + | * geom: bug fix in <code>geometric-objects-lattice-duplicates</code> for non-orthogonal lattices; thanks to Karl Koch for the bug report. |
==libctl 1.0== | ==libctl 1.0== |
Current revision
libctl |
Manual: Introduction |
Basic User Experience |
Advanced User Experience |
User Reference |
Developer Experience |
Guile and Scheme links |
License and Copyright |
Here, we describe what has changed between releases of the libctl package. You can also refer to the NEWS
file in the libctl package (or the ChangeLog
file for a more detailed listing).
|
[edit]
libctl 3.2.2
28 March 2014
- Bug fix to
interpolate-uniform
for guile 1.8+.
[edit]
libctl 3.2.1
8 August 2012
- Fix incorrect
gh_symbol2newstr
macro replacement.
[edit]
libctl 3.2
20 July 2012
- Now works with Guile version 2.x (older versions are still supported).
- Add
libctl_quiet
variable tomain.c
so that libctl-using programs can suppress all output if desired (e.g. to avoid duplicate outputs on parallel machines). - Added
wedge
object type for circular/cylindrical wedges, as a subclass ofcylinder
:(make wedge (center ...) (axis ...) (radius ...) ...)
with two new properties:(wedge-angle ...)
for the angle in radians, and(wedge-start v)
for a vector v such that the wedge angles start at zero in the (v, axis) plane. [Caveat: subpixel averaging is currently inaccurate for the flat wedge edges.] - list-type constructors now accept either
(name ...elements...)
or(name (list ...elements...))
. - Add
vector3->exact
function for to-integer rounding. Otherwise, ensure that interpolation results are floating-point to prevent type-conversion errors. - Added
ctl-set-prompt!
to set interactive prompt in both old and new Guile versions. - Rename
string
tochar*
inctl-io.h
for C++ compatibility. - Bug fix in normal-to-object near corners of blocks.
[edit]
libctl 3.1
5 June 2008
- Support specifying the location of the
guile
andguile-config
programs withGUILE
andGUILE_CONFIG
environment variables in theconfigure
script. - Support for calling NLopt optimization library (also requires the program using libctl to be changed to link nlopt).
- New
ellipsoid_overlap_with_object
function, analogous tobox_overlap_with_object
function. - Bug fix in
include
function for recent versions of Guile, to properly keep track of the current include directory. - Bug fix in numerical-derivative routine, which didn't converge when the error was exactly zero.
[edit]
libctl 3.0.3
27 February 2008
- Added "
begin-timed
" function, which is similar to "begin-time
" except that it returns the value of the last statement (like "begin
") rather than the time. - Bug fix: allow classes to have
boolean
properties. - Bug fixes for compilation under C++, thanks to David Foster: include missing
string.h
header and fixedgh_new_procedure
prototype.
[edit]
libctl 3.0.2
22 August 2006
- Fix minor Guile incompatibility on some systems.
[edit]
libctl 3.0.1
5/1/2006
- Change shared-library version to 3:0:0 instead of 0:0:0. This avoids conflicts with shared library version numbers that has been assigned to earlier versions of libctl for Debian; thanks to Josselin Mouette for the suggestion.
[edit]
libctl 3.0
4/1/2006
- Switch to use
automake
andlibtool
. Can now install shared libraries with--enable-shared
. - License is now GNU GPL (v2 or later) rather than the GNU LGPL, due to use of third-party GPL code for multi-dimensional integration (below).
-
gen-ctl-io
now supports separate generation of code and header files via--code
and--header
arguments. (Better for parallel make.) Also support a-o
option to give a different output file name. -
gen-ctl-io
can now export C++ code by using the--cxx
flag. -
gen-ctl-io
can now export SWIG.i
files for automatic type conversion in SWIG wrapper generation, using the--swig
flag. - Backwards incompatible change: users must include their own
ctl-io.h
*before*ctlgeom.h
, or you getctlgeom-types.h
instead (this is for use with the "stand-alone"libctlgeom.a
library below. - New multi-dimensional integration routines using adaptive cubature. (Much more efficient than nested 1d integrations.) Adapted in part from the HIntlib Library by Rudolf Schuerer and from the GNU Scientific Library (GSL) by Brian Gough.
- New
interpolate-uniform
function that tries to maintain a uniform distance between points (i.e. variable number of interpolated points between different list elements, as needed). - Now install a "stand-alone"
libctlgeom.a
library to make it easier to call geometry routines from non-Scheme code. - New routines to compute overlap fraction of box with object, compute analytical normal vectors, etcetera. (For upcoming versions of Meep and MPB.) Also new routines to get the object of a point, not just the material. Also new routines to operate on a supplied geometry list parameter instead of using the global; unlike the old material_of_point_in_tree functions, these functions do not shift the argument to the unit cell, but you can use the new function shift_to_unit_cell to get this behavior.
-
gen-ctl-io
now generates object equal/copy functions. - In
unit-vector3
, only return 0 when norm==0, not merely if it is small. - Added one-sided numerical derivative routine.
- Define "
verbose?
" variable corresponding to main.c variable. -
(print)
calls(flush-all-ports)
to keep C and Scheme I/O in sync. - Fix in
find-root-deriv
to prevent infinite loop in some cases where the root does not exist; thanks to XiuLun Yang for the bug report. - Bug fix in
make_hermitian_cmatrix3x3
; thanks to Mischa Megens.
[edit]
libctl 2.2
9/12/2002
- Added simple trapezoidal-rule adaptive numeric integration routine.
- Numerical derivative routines now allow numerical differentation of vector-valued function. Added
deriv2
convenience routine. - Added
find-root-deriv
functions for faster root-finding of functions for which the derivative is also available. - Added missing
(cvector3 ...)
constructor, and fixed corresponding constructor forcvector3
object properties; thanks to Doug Allan for the bug report. - Added generic '
memoize
' function. - libctl programs now print out command-line parameters when they run.
- Fixed incomplete support for generic
SCM
type. - Fixed to work with Guile 1.5+ (thanks to Mike Watts for the bug report).
[edit]
libctl 2.1
3/21/2002
- Bug fix: complex-number input variables were read as garbage if they had imaginary parts; does not affect complex-number outputs.
- Added generic
SCM
type for i/o variables and parameters, as a catch-all for other Scheme objects. -
main.c
now hasctl_export_hook
(enabled by definingCTL_HAVE_EXPORT_HOOK
) with which to define additional Guile symbols. -
gen-ctl-io
: converts "!" in symbols to "B" in C identifiers.
[edit]
libctl 2.0
3/10/2002
- New
set-param!
function, analogous todefine-param
, that allows you to change the value of a parameter in a way that can still be overridden from the command line. - In libgeom, allow user to specify the resolution instead of the grid-size. New
no-size
support in lattice class to reduce dimensionality, and new(get-grid-size)
function. - Support for Scheme complex numbers, along with a few new associated functions:
conj
,vector3-cdot
,matrix3x3-adjoint
. - New functions to compute numerical derivatives using Ridder's method of polynomial extrapolation.
- Documented
object-property-value
; thanks to Theis Peter Hansen for the suggestion. - Get rid of unneeded make-default, and use consistent syntax for
define-property
and define-post-processed-property, compared todefine-input-var.
Not backward compatible (for developers; users are not affected). Thanks to Theis Peter Hansen for the suggestion. - Call
ctl_stop_hook
even with--help
,--version
, etcetera; this makes the behavior nicer e.g. with MPI.
[edit]
libctl 1.5
11/15/2001
-
geometry-lattice
now has a separatebasis-size
property, so that you can specify the basis vectors as being something other than unit vectors. - More functions are tail-recursive, helping to prevent stack overflows; thanks to Robert Sheldon for the bug report.
- New
fold-left
andfold-right
functions, documented in the manual. - The configure script now checks that
guile
is in the$PATH
. Thanks to Bing Li and Giridhar Malalahalli for their bug reports.
[edit]
libctl 1.4.1
7/4/2001
- Support function lists.
[edit]
libctl 1.4
2/23/2001
- Renamed
display-many
function to more felicitousprint
and addedprint-ok?
global variable that allows you to disable program output. - Added support for passing
'function
types back and forth (just a SCM object pointing to a Scheme function). - Cosmetic fixes to yes/no? and menu-choice interaction functions.
- Support start/exit hooks for use e.g. with MPI.
[edit]
libctl 1.3
1/7/2001
- Added improved "subplex" multidimensional optimization algorithm (for
maximize-multiple
andminimize-multiple
). - Documented
vector3-x
,vector3-y
,vector3-z
functions for extractingvector3
components.
[edit]
libctl 1.2
7/9/2000
- Added new
cone
geometric object type. - Added
reciprocal->cartesian
,cartesian->lattice
,lattice->reciprocal
, etcetera functions to libgeom for converting vectors between bases. - Added routines
rotate-vector3
androtation-matrix3x3
for rotating vectors. - Added support for returning lists from external functions.
- Fixed bug in
matrix3x3-inverse
function. - Fixed bug in find-root for converging to negative roots.
- Use Nelder-Mead simplex algorithm for multi-dimensional minimization (it seems to be more robust than the old routine).
[edit]
libctl 1.1.1
1/28/2000
- Use
CPPFLAGS
environment variable instead of the less-standardINCLUDES
to pass-I
flags to the configure script (for header files in non-standard locations). - Compilation fixes. We need to set
SHELL
in the Makefile for make on some systems. Also added rule to insurectl-io.h
is created before main.c is compiled. Thanks to Christoph Becher for the bug reports.
[edit]
libctl 1.1
1/2/2000
- geom: radius and height of objects is now permitted to be zero.
- geom: material_of_point_* routines now report whether the point is in any object; necessary for use with MPB 0.9.
- Added man page for
gen-ctl-io
, based on a contribution by James R. Van Zandt.
[edit]
libctl 1.0.1
11/22/1999
- geom: handle case where
ensure-periodicity
is false. - geom: bug fix in
geometric-objects-lattice-duplicates
for non-orthogonal lattices; thanks to Karl Koch for the bug report.
[edit]
libctl 1.0
11/19/1999
- Initial public release.