You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-6Lines changed: 5 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ It has been implemented in the [Valgrind](https://valgrind.org/)
8
8
framework for building dynamic analysis tools.
9
9
10
10
For more information beyond this [README.md](README.md), you may have a look at our papers:
11
-
- M. Aehle, J. Blühdorn, M. Sagebaum, N. R. Gauger: *Forward-Mode Automatic Differentiation of Compiled Programs*. [arXiv:2209.01895](https://arxiv.org/abs/2209.01895), 2022.
11
+
- M. Aehle, J. Blühdorn, M. Sagebaum, N. R. Gauger: *Forward-Mode Automatic Differentiation of Compiled Programs*. [ACM Transactions on Mathematical Software](https://doi.org/10.1145/3716309), 2025.
12
12
- M. Aehle, J. Blühdorn, M. Sagebaum, N. R. Gauger: *Reverse-Mode Automatic Differentiation of Compiled Programs*. [arXiv:2212.13760](https://arxiv.org/abs/2212.13760), 2022.
13
13
14
14
## Building Derivgrind
@@ -19,11 +19,10 @@ this file to reproducibly obtain an environment that contains all dependencies.
19
19
Clone this repository with `git clone --recursive`, and run the following commands in the root directory:
The flags `--enable-python` and `--enable-fortran` enable wrappers for client request (see below), which
26
-
are necessary to run all unit tests successfully. For many applications, you may however leave them out.
25
+
You may supply arguments `--enable-python --enable-fortran` to the `./configure` call to build client request wrappers for Python and Fortran. These wrappers allow to declare AD inputs and outputs from Python and Fortran code, and are required to run Derivgrind's testcases for these languages. Building these wrappers requires Python C extension headers (e.g. `python3-dev`) and a Fortran compiler (e.g. `f77`), respectively, to be installed on your system.
The names of the unit tests are composed of an AD mode, architecture, language/compiler, floating-point type and
35
34
arithmetic formula. You may use `*` as a wildcard to run several tests at once. You may specify the
36
35
Derivgrind installation directory with `--prefix=path`. Specify a directory with `--tempdir=path` if
37
-
you want to inspect the temporary files created by Derivgrind and the test system.
36
+
you want to inspect the temporary files created by Derivgrind and the test system. Derivgrind must have been configured with `--enable-python` and `--enable-fortran` to run the Python and Fortran tests.
38
37
39
38
## Differentiating a Simple C++ Program in Forward Mode
40
39
Compile a simple C++ "client" program from
@@ -141,7 +140,7 @@ Placing the directory on a ramdisk like `/dev/shm/` might speed the recording up
141
140
in manifold ways. For example, a bitwise logical "and" can be used to set the
142
141
sign bit to zero, and thereby compute the absolute value. Derivgrind recognizes only
143
142
the most important of these constructs. More details can be found in our
144
-
[forward-mode paper](https://arxiv.org/abs/2209.01895). Generally, avoid direct manipulation
143
+
[forward-mode paper](https://doi.org/10.1145/3716309). Generally, avoid direct manipulation
145
144
of a floating-point number's binary representation in your program, and avoid the
146
145
differentiation of highly optimized numerical libraries.
147
146
- While Valgrind supports many more platforms, only X86/Linux and AMD64/Linux
0 commit comments