2020#

View page source

Release Notes for 2020#

mm-dd#

12-01#

  1. Advance to cppad_mixed-20201130. This fixes a problem installing on the Mac with port. To be specific, the directory /opt/local is searched when looking for cholmod.h . It also gives better error messaging during the install procedure.

  2. Group the install error messages under the program being run; i.e., get_cppad_mixed.sh , i.e., old_setup.py , i.e., check_all.py .

  3. Added a discussion of the cholmod.h error message.

11-20#

  1. Add the f@check_for_nan and pow_int functions.

  2. CppAD errors were not being translated to python exceptions (except for mixed class operations). This has been fixed; see Converting CppAD Errors To Python Exceptions .

  3. More error detection and reporting when numpy vectors or matrices do not have the correct dimensions.

11-19#

Advance to cppad_mixed-20201119. Also make version of cppad installed by bin/get_cppad.sh the same as by bin/get_cppad_mixed.sh .

11-18#

  1. Advance to cppad_mixed-2020118. This adds support for mac using port to install packages. The previous version assumed the mac was using brew to install packages.

  2. Add a symbolic link and cppad.pc, cppad_mixed.pc entries to the list of install error messages.

  3. Remove under construction from the Laplace Approximation of Mixed Effects Models class; i.e., it has reached a stable state.

  4. Make a separate definition for the random and Fixed Effects Likelihood.

  5. Fix the definition of n_fixed and n_random.

11-17#

  1. The setup@py script was improved. To be specific:

    • The covid 19 example was removed from the automatic testing because it is slow.

    • The python matplotlib module is no longer required because is was only used by the covid 19 example.

    • Separate headings were created for local testing and install testing.

  2. The PyEval_CallObject function was deprecated in python3.9. It’s use was converted to PyObject_CallObject to avoid this warning.

11-16#

  1. API change: the pat member function was added to the sparse_rcv class and the constructor was change to have no arguments. The old syntax

          matrix = cppad_py.sparse_rcv ( pattern )

    will need to be changed to

          matrix = cppad_py.sparse_rcv()
          matrix.pat ( pattern )
  2. The hes_fixed_obj mixed class member function syntax was changed to make the result an argument instead of return value. This avoids having to make an extra copy of the sparse matrix.

  3. Add hes_random_obj to the mixed class operations.

11-15#

  1. Fix a memory leak in the destructor for a d_fun object.

  2. The syntax for the c++ sparse_rcv and sparse_rcv constructors has changed. To be specific, they no longer use the assignment operator = .

  3. Add the word destructor to the xrst dictionary.

  4. Add hes_fixed_obj to the mixed class operations.

11-14#

Add optimize_random to the mixed class operations.

11-12#

  1. Improve the ipopt options documentation.

  2. Fix the font in the syntax for the rosen3_step functions f , f_t , and f_y .

  3. Remove some extra space when a ‘.’ character appears between the change between italic and literal font.

  4. Add an install error entry for when the cppad_py module can’t be found.

11-11#

Improve the install instructions in old_setup.py and old_setup.py.error.

11-10#

  1. API change : the xrst child_list command was changed to child_table and a table, instead of a list, was used to display the names and corresponding titles. In addition, the child_link command was changed to child_list.

  2. Remove an extra backquote ' that was placed at the end of each line of the Table of Contents.

  3. Add more documentation for the index.rst file (including how to link to the table of contents).

  4. The java runtime environment as add to the install requirements.

11-08#

  1. Change old_setup.py local build and test instructions so they work on Mac OS.

  2. Fix bin/get_cppad_mixed.sh so that it is not necessary to set LD_LIBRARY_PATH or PKG_CONFIG_PATH before running it.

  3. Where appropriate, reduce the spacing between italic and literal font; e.g.,

          prefix/libdir /python3. minor /site-packages/cppad_py

    was changed to

          prefix/libdir/python3.minor /site-packages/cppad_py

11-06#

  1. The install with include_mixed false was broken by the changes on 11-03. This has been fixed.

  2. The installation and testing instructions in setup@py were brought up to date and improved. This includes discussion of the following environment variables: LD_LIBRARY_PATH, PKG_CONFIG_PATH, PYTHONPATH.

  3. The setting cppad_lib was changed to the automatically determined value libdir.

11-05#

Advance to cppad_mixed-20201105. This fixes some problems with it’s install in Mac OS.

11-04#

The install prefix for cppad in bin/get_cppad.sh is called cmake_install_prefix in cppad_py, but it is called cppad_prefix in cppad. The cmake command in bin/get_cppad.sh has been fixed to account for this.

11-03#

The install prefix name was changed from cppad_prefix to cmake_install_prefix.

10-31#

Fix some problems with the macOS install when include_fixed is true.

10-30#

The install command no longer creates a local copy of cppad_py for testing. (On macOS systems the local copy would cause problems during the install.) The Local Build still builds the local copy for testing.

10-29#

  1. The cppad_libdir setting was added to bin/get_cppad.sh. This fixed a problem on some systems where bin/get_cppad.sh and bin/get_cppad_mixed.sh might install the cppad library in two different locations and confuse the setup procedure.

  2. Fix a problem with old_setup.py where it sometimes puts the distribution in site-packages/cppad_py- version .egg/cppad_py instead of site-packages/cppad_py. This may have something to do with the install egg being a directory instead of a zip file.

10-28#

  1. Improve the setup@py install instructions. To be specific, change python to python3 and edit the external requirements.

  2. Improve the Get cppad script so that it gets and updates posted to the remote repository (since the previous run of the script).

10-21#

  1. Add a second optimize_fixed example.

  2. Advance to cppad-20201021 (this fixes a warning on some compilers).

10-19#

Add the non linear constraint functions of the fixed effects to the mixed class; see Fixed Effects Constraint Function.

10-17#

  1. The default value (corresponding to None) for fixed_in (random_in) in optimize_fixed was changed from zero to fixed_init (random_init). The ran_likelihood: Example and Test example was changed to use this default.

  2. There was a problem linking the needed libraries when include_mixed was true. This has been fixed.

  3. A match_op.hpp warning was added to the install errors section (it has since been removed).

  4. The numpy syntax was added to the documentation python syntax for a_double unary functions; for an example see Python: a_double Unary Functions with AD Result: Example and Test.

10-16#

  1. Add the Laplace Approximation of Mixed Effects Models class an make it optional during the install process; see include_mixed. This class is under construction and its API may change. Check this page for such changes.

  2. Change the install process so both a debug and release version of cmake_install_prefix can be installed at the same time.

  3. Some of the install steps in Old Configure and Build the cppad_py Python Module have changed.

10-13#

The xrst.py utility would crash if a section had child_cmd and was indented. This has been fixed

10-02#

  1. The library documentation that is for both c++ and python was improved. To be specific, both the c++ and python syntax was included. Also these sections were moved from children of The C++ Library to children of The CppAD Py Libraries.

  2. The xrst.py utility has been improved. To be specific, it no longer overwrites *.rst files that have not changed. This makes the sphinx build operation faster (by not reprocessing files that have not changed).

  3. Use the 95% quantile, instead of maximum, absolute residual when testing simulated fit in Example Fitting an SEIRWD Model for Covid-19. This reduces the change of a random failure.

09-30#

  1. The error_message routine was replaced by exceptions (error_message was not thread safe). This is a change to the API, you will have to use exceptions objects instead of the error_message routine to retrieve the error messages.

  2. Change the release version so it also throws exceptions for cppad_py error messages (cppad error messages still require using the debug version).

09-14#

  1. xrst: the target command line argument was added and the section numbers were removed from the html output. This was done so that adding or removing one section does not cause changes in the github pages for all the other sections. In addition, the table of contents and link to the index now appear in the navigation frame for both the html and pdf output. Furthermore, the table of contents uses the section number for the link so that the title is easier to read.

  2. xrst: A begin_parent must be the first begin command in a file. This restriction is new and makes the pdf output for the parent come before its children.

09-13#

  1. The text xrst: was added to the beginning of each whats new item (see below) that only pertained to the xrst.py program.

  2. xrst: The order of the sections in the pdf file and the table of contents was corrected.

  3. xrst: Put spaces around table of contents levels that have more that one entry. Also remove the level of indentation in table of contents by one because the root section stands out has having not number in front of it.

  4. The latex numbering of sections is incorrect, so change them to the corresponding xrst section numbers in both the html and pdf output.

  5. xrst: Correct position of sphinx_dir in the command line syntax.

09-12#

  1. xrst: A table of contents that only contains section titles, not headings within a section, was added.

  2. xrst: The following restriction was added: a section_name can not begin with xrst_.

07-31#

  1. xrst: An empty line at beginning of xrst input file was causing it to crash (this has been fixed).

  2. xrst: Putting version number in the documentation navigation side bar changes every gh-pages file when version changes. Move it to the first heading under the title cppad_py

  3. xrst: spell checking is not done for a url of the form ` < url > `_ or ` text < url > `_.

07-30#

xrst: The words ‘anl’, ‘dir’, ‘mcs’ were removed from the xrst dictionary. The word ‘initialization’ was added to the xrst dictionary.

07-29#

  1. xrst: Add the optional command line argument line_increment. This is an aid for finding the source of errors and warnings reported by sphinx.

  2. xrst: Sometimes xrst would not recognize a command that came directly after a Fix file_cmd. This has been fixed.

07-28#

  1. xrst: Move version number from the title in cppad_py to the documentation navigation side bar.

  2. xrst: Add the configure section.

  3. xrst: The xrst begin command was not recognized at the beginning of a file (when there is no new line before it). This has been fixed.

  4. xrst: Change the index_file to keyword and spell_file to spelling

07-25#

  1. xrst: Install xrst.py during the install procedure.

  2. xrst: Add a purpose paragraph to xrst documentation.

  3. Move the *.omh files to *.xrst files (they have been converted from omhelp input files to xrst input files).

  4. xrst: Change the keyword to use python regular expressions and remove the whats new month-day headings from the index.

07-24#

  1. xrst: Add the xrst.py program which extracts sphinx *.rst files from source code. This program is not yet installed but you can use it by placing the script bin/xrst.py in your execution path.

  2. Convert the cppad_py documentation to xrst input files, which are mostly sphinx rst with a few extra xrst commands.

  3. Use xrst and sphinx to generate this documentation for cppad_py.

07-18#

  1. The experimental bin/xrst.py program was added. This program runs its tests and builds its documentation (in the sphinx ) directory with the command bin/check_xrst.sh. The intention is to convert the cppad_py documentation from omhelp to sphinx.

  2. Convert all the cppad_py source code to use spaces instead of tabs (with tab stops at multiples of 4 spaces).

07-05#

  1. The prototype for vec2a_double was the same as for d_vec_std2cppad. This has been fixed.

  2. The limits for the fun_from_json_xam.py and fun_to_json_xam.py example code were incorrect (this has been fixed).

  3. The in fun_from_json_xam.cpp the title was corrected; to be specific, to_json was changed to from_json

05-17#

The abs a_double_unary_fun was added (works the same as the fabs function).

05-16#

  1. A discussion of some subtle issues, when interpolation is used to define an ODE, was added to the ode_multi_step ; see set_t_all_index.

  2. Add the alpha parameter to the SEIRWD model.

05-15#

The file ode_solve.py was moved to ode_multi_step.py and numeric_ode_multi_step was extended to allow for different ODE solvers (steppers).

05-14#

  1. The example semi-stiff integrator numeric_rosen3_step was added.

  2. The example file runge4.py was moved to ode_solve.py in preparation for other solvers.

  3. Add the numeric_simple_inv example routine for AD inversion of matrices.

  4. Add mention of which numeric_xam routines can take a_double values.

  5. Simplify the numeric_seirwd_model_xam.py example using numpy vector operations.

  6. More improvements to were made to covid-19 example.

05-12#

  1. More improvements to were made to covid-19 example.

  2. The n_step option was added to the SEIRWD model example.

  3. A delay between when is no longer infectious and when one dies was added to the SEIRWD model using a W compartment (Will die compartment).

05-09#

The covid-19_modeling_example application of AD is changing on a regular basis, so the details of the changes will no longer be tracked in this file, just see current example if you are interested.

05-08#

  1. The numeric_seirs_fit_xam.py example was renamed numeric_covid_19_xam.py. And it was change to fit covariate multipliers that model the infectious rate \(\beta\).

  2. The numeric_seirs_model was renamed numeric_seirwd_model, the D compartment was added to track total deaths, the data was changed from Infectious to cumulative death, and noise was added to the data.

  3. In numeric_covid_a9_xam , reduce to just E and I as unknowns in initial conditions. Initial R = D = 0, S = 1 - E - R.

  4. Use the observed information matrix to estimate the covariance of the optimal parameters.

05-07#

  1. The function scipy.misc.factorial has been deprecated so change it to scipy.special.factorial .

  2. Add the numeric_seirs_model utility example which allows rates in the ODE to change with time. This enabled changing the numeric_covid_19_xam.py example to estimate a \(\beta\) coefficient that changes with time.

  3. The numeric_seirs_class example was removed because numeric_seirwd_model replaces it with more general capabilities.

05-06#

  1. Add the following utility examples: numeric_optimize_fun_class, numeric_runge4_step, numeric_ode_multi_step, numeric_seirs_class . (The numeric_seirs_class was later replaced by numeric_seirwd_model.)

  2. Add mention of using DYLD_LIBRARY_PATH in the libcppad_lib install error instructions for the Mac.

05-05#

Add the numeric_runge4_step_xam.py example.

05-04#

Add the numeric_optimize_fun_xam.py example.

04-28#

The f_from_json() function was added. In addition, the empty_function constructor was added.

04-27#

The old_setup.py program now installs a separate copy of CppAD and provides instructions at the end for modifying your LD_LIBRARY_PATH. These instructions have been removed and placed in the old_setup.py documentation; see LD_LIBRARY_PATH .

04-26#

The old_setup.py program was modified to try to automatically solve the libcppad_lib problem.

04-25#

The f_to_json() function was added.

04-24#

The newer Mac systems seems to require that one use -stdlib=libc++ compile and link flag. The install has been changed to check for and adapt to this condition. In addition, old_setup.py now runs the cmake command; i.e., the user no longer needs to run cmake to test the C++ library.

04-23#

Add an old_setup.py.error section to the documentation.

04-22#

  1. Instructions were added for installing using pip (this install was not kept up to date and has been removed).

  2. The binary operators were extended to include x op ay where: x is a double (python float ), ay is an a_double , and op is + , - , * , / , or ** . Note that this automatically transfers to numpy arrays; e.g x * ay where x is a double and ay is a numpy array of a_double .

04-20#

  1. Move configuration setting from old_setup.py to bin/get_setup.sh. They have since been moved to install_settings.py .

  2. First version that installs using pip . Install instructions for pip will be added soon.

04-19#

  1. Move the python source that gets distributed from lib/python to lib/python/cppad_py so that more like a standard python package.

  2. Drop support for python2. It is not consistent with python3 in some of the old_setup.py actions.

04-18#

  1. Change yq to xq , correct documentation, for xq in the c++ and python reverse mode documentation.

  2. Remove the --inplace option from the syntax for building the cppad_py python module.

04-13#

  1. The z = pow ( x , y ) functions was added; see a_double_binary.

  2. Add the var2par function and improve the notation in the near_equal notation.

04-12#

  1. Add the erf function was added to the list of a_double unary fun that have been implemented.

  2. The dynamic parameter argument was missing from the syntax for the python version of the independent function. This has been fixed.

  3. Improve the test and install discussion in old_setup.py .

04-10#

  1. Change the documentation display on the web using a more recent version of the documentation program omhelp-20200130 .

  2. Add caching to the CppAD install.