1111#line 2 "pure2-autodiff.cpp2"
1212class ad_test ;
1313
14- #line 156 "pure2-autodiff.cpp2"
14+ #line 155 "pure2-autodiff.cpp2"
1515class ad_test_twice ;
1616
1717
@@ -137,17 +137,17 @@ using intermediate_no_init_ret = double;
137137using while_loop_ret = double ;
138138
139139
140- #line 121 "pure2-autodiff.cpp2"
140+ #line 120 "pure2-autodiff.cpp2"
141141 public: [[nodiscard]] static auto while_loop (cpp2::impl::in<double > x, cpp2::impl::in<double > y) -> while_loop_ret;
142142using do_while_loop_ret = double ;
143143
144144
145- #line 130 "pure2-autodiff.cpp2"
145+ #line 129 "pure2-autodiff.cpp2"
146146 public: [[nodiscard]] static auto do_while_loop (cpp2::impl::in<double > x, cpp2::impl::in<double > y) -> do_while_loop_ret;
147147using for_loop_ret = double ;
148148
149149
150- #line 141 "pure2-autodiff.cpp2"
150+ #line 140 "pure2-autodiff.cpp2"
151151 public: [[nodiscard]] static auto for_loop (cpp2::impl::in<double > x, cpp2::impl::in<double > y) -> for_loop_ret;
152152struct add_1_d_ret { double r; double r_d; };
153153
@@ -259,13 +259,13 @@ public: [[nodiscard]] static auto for_loop_d(cpp2::impl::in<double> x, cpp2::imp
259259 public: auto operator =(ad_test const &) -> void = delete ;
260260
261261
262- #line 154 "pure2-autodiff.cpp2"
262+ #line 153 "pure2-autodiff.cpp2"
263263};
264264
265265class ad_test_twice {
266266using mul_1_ret = double ;
267267
268- #line 157 "pure2-autodiff.cpp2"
268+ #line 156 "pure2-autodiff.cpp2"
269269 public: [[nodiscard]] static auto mul_1 (cpp2::impl::in<double > x) -> mul_1_ret;
270270struct mul_1_d_ret { double r; double r_d; };
271271
@@ -285,12 +285,12 @@ public: [[nodiscard]] static auto mul_1_d_d2(cpp2::impl::in<double> x, cpp2::imp
285285 public: auto operator =(ad_test_twice const &) -> void = delete ;
286286
287287
288- #line 160 "pure2-autodiff.cpp2"
288+ #line 159 "pure2-autodiff.cpp2"
289289};
290290
291291auto write_output (cpp2::impl::in<std::string> func, cpp2::impl::in<double > x, cpp2::impl::in<double > x_d, cpp2::impl::in<double > y, cpp2::impl::in<double > y_d, auto const & ret) -> void;
292292
293- #line 166 "pure2-autodiff.cpp2"
293+ #line 165 "pure2-autodiff.cpp2"
294294auto main () -> int;
295295
296296// === Cpp2 function definitions =================================================
@@ -474,17 +474,16 @@ auto main() -> int;
474474 [[nodiscard]] auto ad_test::intermediate_no_init (cpp2::impl::in<double > x, cpp2::impl::in<double > y) -> intermediate_no_init_ret{
475475 cpp2::impl::deferred_init<double > r;
476476#line 114 "pure2-autodiff.cpp2"
477- r.construct (0.0 );// TODO: r has to be initialized before t (create issue or wait for fix)
478477 cpp2::impl::deferred_init<double > t;
479478 t.construct (x + y);
480479
481- r.value () = cpp2::move (t.value ());
480+ r.construct ( cpp2::move (t.value () ));
482481 return std::move (r.value ()); }
483482
484- #line 121 "pure2-autodiff.cpp2"
483+ #line 120 "pure2-autodiff.cpp2"
485484 [[nodiscard]] auto ad_test::while_loop (cpp2::impl::in<double > x, cpp2::impl::in<double > y) -> while_loop_ret{
486485 cpp2::impl::deferred_init<double > r;
487- #line 122 "pure2-autodiff.cpp2"
486+ #line 121 "pure2-autodiff.cpp2"
488487 int i {0 };
489488
490489 r.construct (x);
@@ -493,10 +492,10 @@ auto main() -> int;
493492 }return std::move (r.value ());
494493 }
495494
496- #line 130 "pure2-autodiff.cpp2"
495+ #line 129 "pure2-autodiff.cpp2"
497496 [[nodiscard]] auto ad_test::do_while_loop (cpp2::impl::in<double > x, cpp2::impl::in<double > y) -> do_while_loop_ret{
498497 cpp2::impl::deferred_init<double > r;
499- #line 131 "pure2-autodiff.cpp2"
498+ #line 130 "pure2-autodiff.cpp2"
500499 int i {0 };
501500
502501 r.construct (x);
@@ -507,10 +506,10 @@ auto main() -> int;
507506 cpp2::impl::cmp_less (i,2 ));return std::move (r.value ());
508507 }
509508
510- #line 141 "pure2-autodiff.cpp2"
509+ #line 140 "pure2-autodiff.cpp2"
511510 [[nodiscard]] auto ad_test::for_loop (cpp2::impl::in<double > x, cpp2::impl::in<double > y) -> for_loop_ret{
512511 cpp2::impl::deferred_init<double > r;
513- #line 142 "pure2-autodiff.cpp2"
512+ #line 141 "pure2-autodiff.cpp2"
514513 std::vector<double > v {};
515514
516515 CPP2_UFCS (push_back)(v, x);
@@ -739,10 +738,8 @@ double t_d {};
739738
740739 [[nodiscard]] auto ad_test::intermediate_no_init_d (cpp2::impl::in<double > x, cpp2::impl::in<double > x_d, cpp2::impl::in<double > y, cpp2::impl::in<double > y_d) -> intermediate_no_init_d_ret{
741740 double r {0.0 };
742- double r_d {0.0 };r_d = { };
743- r = 0.0 ;
744-
745- cpp2::impl::deferred_init<double > t_d;
741+ double r_d {0.0 };
742+ cpp2::impl::deferred_init<double > t_d;
746743
747744 cpp2::impl::deferred_init<double > t;
748745 t_d.construct (x_d + y_d);
@@ -815,10 +812,10 @@ auto const& t_d{*cpp2::impl::assert_not_null(t_d_iter)};
815812 return { std::move (r), std::move (r_d) };
816813 }
817814
818- #line 157 "pure2-autodiff.cpp2"
815+ #line 156 "pure2-autodiff.cpp2"
819816 [[nodiscard]] auto ad_test_twice::mul_1 (cpp2::impl::in<double > x) -> mul_1_ret{
820817 cpp2::impl::deferred_init<double > r;
821- #line 158 "pure2-autodiff.cpp2"
818+ #line 157 "pure2-autodiff.cpp2"
822819 r.construct (x * x);
823820 return std::move (r.value ()); }
824821
@@ -855,12 +852,12 @@ auto temp_1_d2 {x * x_d_d2 + x_d * x_d2};
855852 return { std::move (r), std::move (r_d2), std::move (r_d), std::move (r_d_d2) };
856853 }
857854
858- #line 162 "pure2-autodiff.cpp2"
855+ #line 161 "pure2-autodiff.cpp2"
859856auto write_output (cpp2::impl::in<std::string> func, cpp2::impl::in<double > x, cpp2::impl::in<double > x_d, cpp2::impl::in<double > y, cpp2::impl::in<double > y_d, auto const & ret) -> void{
860857 std::cout << " diff(" + cpp2::to_string (func) + " ) at (x = " + cpp2::to_string (x) + " , x_d = " + cpp2::to_string (x_d) + " , y = " + cpp2::to_string (y) + " , y_d = " + cpp2::to_string (y_d) + " ) = (r = " + cpp2::to_string (ret.r ) + " , r_d = " + cpp2::to_string (ret.r_d ) + " )" << std::endl;
861858}
862859
863- #line 166 "pure2-autodiff.cpp2"
860+ #line 165 "pure2-autodiff.cpp2"
864861auto main () -> int{
865862
866863 double x {2.0 };
0 commit comments