Dear organizers, as requested I send the revised version of our paper and the commented reviews with this email (please see the attachments). I have also submitted the new version (PS and TGZ) via the web interface. Regards, Andreas Kowarz -- ********************************************************************* Attention: My email address "kowarz@math.tu-dresden.de" is subject to removal within the next few month. Please use my new address "Andreas.Kowarz@tu-dresden.de" in order to contact me per mail. Please update your address book. Thanks. ********************************************************************* major comments: A: related to pg 5 first paragraph etc: The condition for retaping is stated only to be a change of control flow. ... Since a lot of this paper is about the nested taping it think it should undertake the effort to precisely characterize when a tape representative for a time step is valid, which invalidating scenarios are automatically caught and which extra steps are required. Comment: Now, we explain that the function evaluation is retaped automatically when the control flow changes due to a change of an adouble value. Furthermore, now we provide a flag such that if this flag is set to 1 the function evaluation is retaped for each reverse differentiation to be on the save side. A corresponding explanation is contained in the revised version of the paper. B: related to the numerical example in Sect 3. I would find it much more compelling if the paper gave more detail on the practical example ... The paper would gain significantly if this effect could be shown in a practically relevant application. Comment: We skipped the trajectory example and present now only the robotor example in detail. minor comments: pg 2, first paragraph: The statement of "enormous memory reduction" should be qualified. I.e. it should be stated that - presumably - it is compared to the tape (I guess more precisely execution trace and value tape) arising from purely split mode. Comment: done pg 2, insert: "The size of the much smaller randomly accessed ...." ^^^^^^^^^^^ Comment: done pg 2 last paragraph first sentence: The memory grows with run-time, regardless if this is a time-stepping procedure or not and what is acceptable depends on the user. I suggest to refer directly to the new nested tape facility in ADOL-C and point out that time-stepping procedures usually imply repetitions of identical operation sequences on the tape which the nested taping eliminates as explained on the bottom of page 3. Comment: We reformulated this sentence pg 4 end of first paragraph insert: "... presented at the AD 2004 conference." ^^^^^^^^^^ Comment: done pg 5 Interface section: The time_step_function signature requires the user to pack and unpack the state data that might be distributed over various arrays into u. I am not sure that everybody agrees this is "minimal user effort". Instead it might be fairer to say that the objective is a "lean and concise interface" which I believe has been achieved. Comment: reformulated correspondingly The following is more of a general comment. As ADOL-C wants to attract not only C but also C++ codes it should consider providing actual C++ interfaces along with the old C style ones. Serious C++ users of ADOL-C will likely cringe at the sight of the CpInfos* to be populated and a bunch of C functions when all of this perfectly lends itself to a well organized class. Comment: We added a C++ interface and changed the description correspondingly. p. 3 Fig 1, Fig 2: The light grey rectangle used in the new tape generation should be explained. What is the difference w.r.t the original ones ? Comment: A description of this light grey rectangle is contained in the text. What is the semantic of the arrows ? If you manage to show graphically the different tapes it would enforce the paper. Comment: The figures were rearranged and are hopefully easier to understand now. p. 4: You talk about the "external diff. function", but give no explanation nor a pointer to the paper at AD2004. Comment: This was presented in the poster session. We plan to have a documentation of this "external diff. function" facility in the ADOL-C manual within the near future. p. 5: You should give a code or a function example to clarify the user intervention. Explain the difference with a manual use of resolve from the user point of view. Comment: From out point of view, there is no space for such an explanation when the page limit is set to 8. Once more, we plan to have a corresponding documentation in the ADOL-C manual within the near future. Typos: p. 1 section 1: you use e.g sometimes in an unapropriate way. Comment: Well, we tried to fix as many as possible p. 7: "despite the fact of the" should be changed. Comment: done Experiments are made on a very small academic example. The results are quite convincing. I'm looking forward to results on real-life codes. Comment: We switched from the academic example to the roboter example Table 1 is puzzling. It actually looks like a simple affine function: tape-size = 492 + l*252. From which I deduce that it shows the memory consumption without any checkpointing? If there was some sort of optimal checkpointing, size should grow like log(l), right? Then why not show a table that shows that, which would better illustrate the benefits of checkpointing? Comment: In the old version, the Table shows the tape-size without any checkpointing. The tape size itself is constant if the checkpointing is use within ADOL-C. Only the amout of memory needed to store the checkpoints grows. The table now shows the tape size needed without and with checkpointing. Minor stuff: --The "applied checkpointing procedure" sounds bizarre cause it makes me wonder what is "applied checkpointing". Comment: Reformulated. --I was told that "allowing the usage..." is incorrect, should be "allowing us to use...", or "permits the usage..." Comment: Reformulated.